Esquema de control del ROV Beaglebone Black

Estoy buscando algunos consejos sobre la configuración de mi control para un ROV y cómo hacerlo lo más suave posible. Actualmente, tengo dos joysticks de estilo arcade con microinterruptores estándar en su interior. La forma en que visualizo el funcionamiento del sistema es así: el joystick emite 3,3 V o 1 lógico equivalente a una entrada GPIO en el BBB. Tengo una configuración de secuencia de comandos para ejecutar en el arranque para el BBB que configura inmediatamente los pines de entrada y establece los pines de salida en bajo (temporalmente) para evitar cualquier flotación alta. Una serie de bucles while o equivalentes designan qué entrada en qué pin corresponderá a la BBB emitiendo un valor ALTO en otro pin, que luego va a un tablero de relés de 16 canales, que a su vez alimenta a 8 (máximo) bomba de achique de 12 V motores

Ahora aquí está mi problema: ¿Cómo hago para que el joystick emita una señal que tenga el voltaje/amperaje adecuado para no dañar el BBB al dañar el sustrato al hacer que un GPIO absorba demasiada corriente? He visto algunos reguladores de 3,3 V, y asumo que con una resistencia limitadora de corriente adecuada, el sistema funcionaría correctamente sin dañar el Beaglebone. Sin embargo, no estoy seguro de si esto funcionaría y cómo se configuraría para un funcionamiento óptimo. Por ejemplo, ¿debería tener un regulador que alimente 3.3V a los microinterruptores y el interruptor del joystick a 3.3V? Parece que esto funcionaría en teoría, pero realmente me gustaría estar seguro antes de dañar el tablero.

Si aún no está seguro de cuál es mi pregunta, déjeme planteársela de esta manera: ¿Cuál sería la configuración óptima utilizando los componentes anteriores para producir un sistema que sea seguro para el BBB y funcional para el propósito previsto (controlar 12V motores de bombas de achique accionando un tablero de relés). Para ser claros, no le pido a nadie que me diseñe esto, solo busco comentarios constructivos y críticas para ver si hay algo que pueda mejorar. Avísame si necesitas alguna aclaración.

¿Por qué está el BBB allí en primer lugar? ¿No puedes simplemente conectar los interruptores del joystick a los relés? Además, los relés son una cosa bastante pesada para controlar el movimiento, para cualquier cosa que cambie tan a menudo con ese grado fino de control, sería mejor usar transistores de estado sólido (transistores, FET, etc.)
Los joysticks son presumiblemente completamente pasivos, ¿solo interruptores? ¿Los quiere al final de un cable largo? ¿Tiene suficiente GPIO para los joysticks (presumiblemente 8 pines, uno para cada dirección del interruptor)?

Respuestas (1)

Varias cosas para comentar aquí.

En primer lugar, si el joystick emite 3.3v, entonces no dañará el BBB. Si puede controlar el cableado de los joysticks (supongo que son solo microinterruptores y puede modificar el cableado), entonces un mejor plan sería conectar una señal de tierra a un lado del interruptor j/s y el BB al otro. Los chips Atmel tienen pullups integrados. No puedo imaginar que el BBB tenga esa característica. En cuyo caso, conecte la señal a Vcc a través de una resistencia de 10K o 47K. Agregue un pequeño condensador para el rebote.

En funcionamiento normal, el interruptor está abierto. La resistencia lleva su entrada de señal a un estado alto. Cuando opera el interruptor, la resistencia se pone en cortocircuito a tierra y su entrada baja. El condensador simplemente quita el "borde" de la señal para evitar los bordes ásperos que obtiene con su interruptor promedio.

Secundaría el comentario de otra persona sobre el uso de relés. Sus bombas de achique funcionan con +12v con una corriente de alrededor de 2A (más o menos). En su lugar, puede usar un MOSFET de canal N para impulsar la bomba. Conecte el + a +12v y el - al drenaje del MOSFET. Conecte la fuente a tierra y la puerta a la BBB. Más barato, más pequeño y mejor que un relé. También coloque un diodo de derivación a través de él.

Asegúrese de usar un MOSFET que tenga un umbral de puerta compatible con la salida BBB o no se encenderá.

La otra ventaja del MOSFET es que puede pulsar el paso a paso con bastante rapidez. Para evitar que las bombas "pateen" cuando se encienden, las encendería en el software durante un milisegundo (por ejemplo) y luego las dejaría apagadas durante 9 ms. Enciéndelos por 2 y apágalos por 8, etc, hasta que estén completamente encendidos. De esa manera, a medida que opere el joystick, los motores se acelerarán, en lugar de patear con fuerza y ​​dificultar, si no imposibilitar, los pequeños movimientos.