En esta lección te vamos a explicar cómo implementar la función de seguimiento de línea en el Smart Robot Car V 4.0 para que se mueva siguiendo el trazo negro que dibujes. Es un proceso tranqui, pero prestá atención a los detalles de los sensores para que el auto se desplace bárbaro por la pista.
Consejos para armar tu pista
Si tenés ganas de armar tu propio circuito, fijate que las partes curvas sean lo más suaves posible. Si el radio de giro es muy cerrado, es muy probable que el auto pierda el camino y se salga de la pista. Además de seguir líneas, podés usar tu imaginación para desarrollar otros programas basados en esta misma lógica, como por ejemplo uno que mantenga al auto encerrado en un área determinada sin importar cómo lo muevas.
Funcionamiento del módulo de rastreo
La magia del seguimiento de línea ocurre gracias al módulo de rastreo, que viene con tres sensores fotoeléctricos. Cada sensor tiene un emisor/receptor infrarrojo y un fototransistor de silicio NPN. El emisor tira una luz que rebota en el suelo y vuelve al receptor; según cómo sea ese rebote, el circuito procesa la información para detectar cambios de color o brillo en la superficie, permitiendo distinguir entre la línea negra y el fondo.
Programación y configuración de pines
Para empezar, definimos los pines en el archivo DeviceDriverSet_xxx0.h. Usamos la clase DeviceDriverSet_ITR20001 para encapsular las operaciones: Init() para inicializar los sensores y funciones específicas para leer los valores analógicos del sensor izquierdo (A2), el central (A1) y el derecho (A0). En el archivo .cpp configuramos estos pines como INPUT para que el Arduino pueda recibir las señales correctamente.
Calibración y prueba de datos
Cuando vayas a subir el código, acordate de poner el interruptor “Upload-Cam” en la posición “Upload”. Una vez que el programa se cargó, abrí el monitor serie y vas a ver que los valores fluctúan cerca de 1000 cuando los sensores están en el aire. Si acercás un papel blanco, vas a notar que el valor baja a menos de 100. Con estos datos podés configurar un umbral: si el valor es más bajo que el límite que fijaste, el programa entiende que el sensor está sobre la superficie blanca.
Lógica de aplicación final
Ahora que ya sabés usar los sensores, toca combinarlos con las funciones de movimiento. En el archivo ApplicationFunctionSet_xxx0.h declaramos la lógica de alto nivel, incluyendo la función Tracking() para seguir la línea negra y SensorDataUpdate() para ir monitoreando los valores en tiempo real. Mirá bien la jerarquía de llamadas en el código para entender cómo se integran los motores con las lecturas de los sensores; es la forma más efectiva de aprender sin marearte.