Rueda de Trimado Compacta para FlightGear con Arduino Nano: Control Analógico DIY
Componentes y suministros
| Arduino Nano R3 (o compatible) | ×1 |
| Potenciómetro rotativo | ×1 |
| Condensador 100 µF | ×1 |
| Pantalla OLED SSD1306 0.96" | ×1 |
| Cables de conexión | ×1 |
Aplicaciones y servicios
- Arduino IDE
- Anaconda (Python)
- FlightGear
Sobre el proyecto
Interfaz analógica compacta y económica para controlar la rueda de trimado del elevador en el simulador FlightGear. El Arduino lee el potenciómetro y envía los datos por serie; un script Python convierte la serie en paquetes UDP que FlightGear entiende mediante un protocolo genérico XML.
¿Qué es una rueda de trimado?
Dispositivo analógico que ajusta la pestaña de trimado del elevador, manteniendo el pitch del avión sin esfuerzo del piloto.
Requisitos previos
- Python con librerías
serial,socket,sys(instalables víaconda install -c anaconda pyserial). - FlightGear instalado.
- Librería Arduino
U8glibpara la OLED.
Arquitectura del software
- Sketch Arduino (
arduinoElevatorTrimOLED.ino): lee potenciómetro (A6), muestra aguja en OLED, envía valor normalizado (-1.0 a +1.0) por serie a 9600 baudios. - Script Python (
arduinoElevatorTrim.py): abre puerto serie (ej. COM4), reenvía cada línea por UDP alocalhost:21567. - Protocolo XML (
arduinoElevatorTrim.xml): colocar en<FlightGearRoot>/data/protocol. Define mapeo a/controls/flight/elevator-trim.
Puesta en marcha
- Cargar sketch en Arduino (ajustar línea 2 según tu OLED).
- Ejecutar script Python:
python ruta\arduinoElevatorTrim.py. - Iniciar FlightGear con parámetro:
--generic=socket,in,30,localhost,21567,udp,arduinoElevatorTrim.
¡Disfruta de tu rueda de trimado física!
Código
arduinoElevatorTrimOLED.ino (Arduino)
#include
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);
// ... [código completo: lectura pot, mapeo, dibujo aguja en OLED, envío serie]
arduinoElevatorTrim.py (Python)
#!/usr/bin/python
import sys, serial
from socket import *
host = "localhost"; port = 21567
UDPSock = socket(AF_INET, SOCK_DGRAM)
tty = "COM4" // ajustar a tu puerto
ser = serial.Serial(tty, 9600)
while 1:
line = ser.readline()
UDPSock.sendto(line, (host, port))
arduinoElevatorTrim.xml (XML)
\n
,
Elevator trim
/controls/flight/elevator-trim
float
Esquemáticos
Diagrama Fritzing: conexiones Nano – potenciómetro – OLED (I2C) – condensador desacople.
Repositorio
GitHub: dciliberti/arduinoElevatorTrimOLED
Proceso de manufactura
- Proyecto Dados Digitales Arduino: Construye tu Propio Generador de Números Aleatorios con LCD
- Construye un Iron Man animado con Arduino: componentes, sensores y guía paso a paso
- Reloj analógico por persistencia de visión (POV) con Arduino Nano – Proyecto DIY
- Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
- Construye un Brazo Robótico Impreso en 3D Controlado por Arduino – Guía Paso a Paso
- Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
- Pong Neón en Matriz NeoPixel con Arduino Nano
- Construye un volante joystick personalizado con Arduino para gaming
- Construye un Receptor FM Potente con Arduino y Módulo TEA5767
- Arduino 101: Construye un Podómetro con Sensor DHT11 y Pantalla LCD
- Construye un Mezclador de Colores RGB con Arduino – Tutorial Paso a Paso