Paso 3: Conversión de señal auto-tanque lógica
Me vino para arriba con la tabla anterior y llegó a la conclusión que iba a necesitar más las señales de control del transmisor para poder controlar no sólo el tanque maniobras pero también rotación de torreta y dos láseres (uno para la ametralladora) y otro para el canon. Me di cuenta que allí estaban no más disponibles las señales de control de Tx/Rx. Así que resolví el problema con el software, utilizando las palancas de control de Tx de una manera similar a los botones de transporte en un reproductor de música, donde un constante empuje FFWs la música, y un empuje momentáneo selecciona la siguiente pista de música. Había codificado las señales de salida en el programa de Arduino como sigue:
FWD/REV constante empuje - se mueve el tanque FWD/REV
FWD empuje momentáneo - cambia el cañón láser de encendido/apagado
REV empuje momentáneo - alterna la Ametralladora láser de encendido/apagado
Empuje constante de palanca izquierda/derecha - mueve el tanque de izquierda FWD o REV izquierda/derecha en combinación con un empuje constante de la palanca de FWD/REV. Presionando izquierda constante sólo hace que el tanque de vuelta izquierda en lugar. Pulsando derecha constante sólo hace el tanque derecho en lugar de la vuelta.
IZQUIERDA empuje momentáneo - alterna la rotación del CCW de torreta
Pulsador derecho momentáneo - alterna torreta CW rotación
El código está escrito para que ninguna otra señal de entrada tendrá algún efecto después de un conmutador de señal hasta que se reciba la correspondiente palanca señal. Por lo tanto, si momentáneamente pulsa izquierda, la torreta girará CCW hasta que otra vez momentáneamente empuje izquierda. Mientras que la torreta está girando, se omitirán enviar otra señal de control. Para la simplicidad.
El programa debounces las señales de empuje la palanca de la Tx por tomar una lectura, esperando unas milisegundos y tomar una segunda lectura. Si la segunda lectura es el mismo que el primero, la señal se asume estable y válido, si no, las señales de la palanca se lee otra vez. Introduce un retraso pero casi no es notable (a mí, de todos modos).
Este es el sketch de Arduino: