Paso 7: Prototipo #3
Uno de los problemas que plagaron los prototipos anteriores era la velocidad de actualización lenta. El timón simplemente no reaccionó lo suficientemente rápido a cambio de un cojinete, por lo incluí en mi lista de metas:
- Aumentar la velocidad de actualización del piloto automático
- Agregar controladores de motor
- Programa un motor mezclador
- Adición de un receptor
Aumentar la velocidad de actualización
El único problema con la biblioteca TinyGPS ++ es que es lento. El problema era, el Arduino Uno no se puede ejecutar dos cosas al mismo tiempo (bien puede, pero no realmente). Una solución sencilla sería tener otro Arduino utiliza la TinyGPS ++ biblioteca para analizar los datos GPS, a continuación, envíe la posición a otro piloto automático. Problema era que no tenía otro Arduino.
Un Arduino Uno es esencialmente un chip AtMega328 y algunos componentes extras. Es fácil de construir su propio "Arduino" en un protoboard, por lo es exactamente lo que hice. Aquíde una muy buena guía sobre cómo hacerlo. Después construí mi placa Arduino, conectado un módulo GPS de Ublox NEO - 6M nuevo de la misma manera que conectado mi GPS anterior. Programé este nuevo Arduino a usar biblioteca Easy Transfer de Bill Porter, y utilicé alambre para formar una conexión serial unidireccional entre el principal Arduino y protoboard uno. Con esta nueva placa Arduino, pude aumentar la velocidad de actualización de 4Hz, a 50Hz!
Agregar controladores de Motor
Me gusto mucho el ProtoSheild para el Arduino Uno que estaba usando, pero encontré que no tenía suficiente espacio para albergar dos controladores de motores. Arrancó la placa vieja, mini y me puso en una mucho más grande.
El circuito para el controlador del motor es simple, que un MOSFET, con la ayuda de PWM, controla el voltaje promedio que va al motor. Una resistencia de 1 k limita la corriente de puerta para que no queme el Arduino y un resistor de k 10 mantiene el MOSFET cuando no hay entrada.
Programación de un Motor mezclador: pasando de un timón para motores
Este barco no tiene un timón, pero en su lugar, utiliza dos motores para dirigir. Quería tomar ventaja de los dos motores en lugar de pegar un servo el barco. Ya construí el controladores de motor, ahora lo único que se dejó para hacer es programar el Arduino para controlar estos controladores de motores.
Empecé programando un programa de maqueta en Visual Studio. Utiliza puntos de interrupción para depurar mi código, y finalmente tuve un motor mezclador. Ahora todo lo que quedaba no era transferencia el código de VS para el Arduino, que no era muy difícil, teniendo en cuenta que eran muy similares lenguajes (C# y C++).
Adición de un receptor RC
He añadido un receptor RC a este prototipo de alumbrado. Es fácil medir los valores de entrada con la función pulseIn y el piloto automático reaccionan a esos valores.
Probando el prototipo
Coloca este prototipo en el barco, conectados los motores a los MOSFETs y previamente programado una ruta en la charca local. El barco fue capaz de completar el triángulo trazado una vez, luego dejó de funcionar y falleció. Tuve que rescatar con un bote inflable. Da vuelta hacia fuera, el alto voltaje de la batería (12v), frito los reguladores de tensión de 5v.