Paso 4: Programar el Arduino
Fotocélulas
Como se describió anteriormente, las fotocélulas y los servos se conectaron a la misma Arduino. El Arduino fue programado entonces para leer la entrada de las fotocélulas. El Arduino salidas valores enteros entre 0 y 1023 para diferentes brillos. El código tiene una variable para el umbral. Esto se debe establecer mediante la medición de la salida de la fotocélula de luz de fondo y con el láser apuntando a él. Terminamos usando valores entre 200 y 900, dependiendo de qué tan rápido el láser se movió y cuanta luz había en la habitación que estábamos usando.
Servos
Pueden mover los servos escribiendo un valor entre 0 y 180, que es igual a su gama completa de 180 grados. Dependiendo de que las fotocélulas superaron el umbral, los servos ajustan el láser para seguir apuntando al objetivo.
Asegúrese de comprobar en qué dirección de giro de los servos. En nuestro caso, el servo horizontal estaba en la posición 0 en la extrema izquierda y en 180 en la extrema derecha. El servo vertical estaba en la posición 0 en la parte superior y a 180 en la parte inferior. Si esto es diferente, el código debe ser adaptado para los servos mover el laser como se esperaba.
Se implementaron dos mecanismos principales:
Ajustes 1 / pequeño
En primer lugar, las fotocélulas que rodean el objetivo real causando los servos mover el láser en la dirección de la blanco, e.g. Si la fotocélula derecha es golpeada por el láser, se moverá a la izquierda.
2 / búsqueda de patrones
El segundo mecanismo son patrones de búsqueda. Si no fotocélula detecta el laser y también no hay información sobre contactos anteriores con las fotocélulas almacenados, el láser comenzará a ejecutar un patrón de búsqueda. El primer patrón de búsqueda que se implementó analizado simplemente un cuadrado en el que el destino esperaba por barrido hacia arriba y hacia abajo, lentamente moverse hacia los lados mientras lo hace.
El segundo patrón de búsqueda es más sofisticado: se comienza la exploración en el centro de la Plaza, luego espirales hacia afuera hasta que ha cubierto la zona completa. La principal ventaja de esto es que la búsqueda comienza en el lugar con la más alta probabilidad de encontrar el objetivo. Otra diferencia con el primer algoritmo de búsqueda es que este patrón de búsqueda ajusta el área analiza cada vez que conecta el láser a la meta: estas coordenadas son entonces como el nuevo centro de la zona de búsqueda la señal de ser perdido. Ambos patrones de búsqueda reiniciar si el objetivo no es adquirido después de que el área ha sido cubierta.
A continuación se presentan ilustraciones de patrones de búsqueda y dos archivos de código de Arduino que haga funcionar el sistema con cada uno de los patrones de búsqueda.