Hola comunidad! El artículo es una "bicicleta" clásica, pero para principiantes en electrónica y robótica puede ser interesante.
Como saben, la robótica más pequeña y simple ahora se ensambla en microcontroladores como Atmega o STM. Aquí en el artículo básicamente no tomo el nivel de mini computadoras como Raspberry.
En robótica, además de los movimientos, a veces es necesario hacer al menos una evaluación del espacio circundante. Entonces, no encontré un sensor óptico de trama para MK simples. El popular "sensor de línea" no es eso. Una búsqueda en Giktims y recursos similares proporcionó enlaces a cámaras, pero son demasiado rápidos para MK simples y un artículo sobre el uso de 8 PC. LED como fotodiodos.
Por lo tanto, la idea nació para hacer un sensor de trama primitivo: protoglaze, por analogía con los primeros organismos vivos. Todo lo que se escribió a continuación se hizo solo para mi propio entretenimiento, con gastos mínimos y no se suponía una aplicación práctica. Deje la bicicleta de nuevo, pero con respecto a
Nipkov y los padres de la televisión mecánica.Detalles debajo del corte ...
Un fototransistor BPW85C estaba disponible. Es lógico que se pueda hacer un escáner de radar con luz de enfoque en el fotosensor.
Opcion 1
Para enfocar, puede usar un espejo parabólico giratorio y un fototransistor estacionario para enfocar. No tenía espejo, pero había una hoja plana de estaño. Después de 3 horas de trabajo con mis manos, se obtuvo un espejo de 10 kopeks y una forma casi parabólica.
Espejo parabólico. Es difícil tomar un espejo))Después de ensamblar la instalación giratoria, se descubrió que la luz de alguna manera entra no solo desde el espejo, sino también desde todos los lados. La pantalla no puede cubrir el sensor, ya que la mayor parte de la vista también se cierra. Tuve que negarme.
Opción 2
Para enfocar, use una lente colectora, recolectando un análogo de la cámara.
No se encontraron lentes del diámetro requerido (12 mm); tuve que usar mis manos para hacerlas con un disco compacto (hay plástico con buenas propiedades ópticas).
Sí, esta es una infancia dura, juguetes de madera. Resultó que el enfoque es aceptable, el punto focal es aún más pequeño que el cristal del fototransistor.
Vista de la lenteInstalación giratoria: en un motor paso a paso en miniatura de 15 mm. Reductor de correa de la misma serie - "de la nada". El ángulo de rotación hacia la izquierda y hacia la derecha es de aproximadamente 45 °.
Vista generalA través del controlador A4988, el Amtega328P MK controla el motor paso a paso. Se utiliza el modo de medio paso, y para cada medio paso, la señal se lee desde el ADC MK. Antes del ADC, también hay un amplificador en el transistor, porque la señal del fototransistor es débil. Los datos recibidos sin procesamiento se transmiten inmediatamente a través de RS-232 a una computadora. Ya se está construyendo un diagrama de iluminación en la computadora.
Vista generalTotal: mientras que un escaneo horizontal. La resolución de 320 líneas al leer, la resolución real es difícil de medir, en la prueba con una fuente de luz de un punto resultó 6/320, es decir, aproximadamente 53 líneas por trama.
Pero este es el primer modelo, el segundo (para 2D) estará en el próximo artículo.Pruebas:
Prueba para diferentes luces. El diagrama verde es el nivel de voltaje en el ADC, la imagen en blanco y negro es el resultado de la conversión de señal que el MK "ve".
Prueba de punto único. La resolución real es de aproximadamente 53 líneas.
"Disparo" de baterías de tres dedos sobre un fondo claroLa velocidad del "video" es de 4 cuadros (ciclos) por segundo y está determinada por las capacidades de la SD. Para una aplicación hipotética (?) En un robot simple, suficiente.
Lo principal es que la grabación de video ocupa pocos recursos del microcontrolador, todavía hay posibilidades para otras acciones e incluso para el reconocimiento de imágenes, si es necesario.
También hubo un intento de hacer AGC (exposición automática), pero la ganancia fue demasiado no lineal. En el amplificador operacional se puede hacer en las próximas versiones.
Fuentes:
Archivo con fuente para CodeVisionAVR y receptor en VBasic 6
Alexander