Construye tus Propios Pedales de Timón para Simulador de Vuelo: Guía DIY Paso a Paso
Componentes y suministros
| Componente | Cantidad | Notas |
|---|---|---|
| Arduino Nano R3 | 1 | O Arduino UNO para salida analógica |
| Arduino Micro | 1 | Solo si necesitas salida DIGITAL (Windows 8-10) |
| Arduino UNO | 1 | Alternativa al Nano para salida analógica |
| Potenciómetro digital SPI MCP41050 | 3 | Uno por eje (timón, freno izq, freno der) |
| Sensor Hall lineal SS49E | 4 | O similar (AH3503), debe ser lineal, no interruptor |
Sobre el proyecto
Actualización 2021: La nueva versión de los pedales tiene interfaz HID y diseño mejorado. El módulo avanzado de sensores Hall proporciona control muy preciso. Detalles en mi web.
¡Hola, entusiastas de la simulación de vuelo! Inventé y construí pedales para simulador de avión, cuya función principal realiza Arduino. Quiero compartir este desarrollo. Se pueden fabricar en dos días, pero documentar el proceso lleva dos semanas. He grabado varios videos mostrando el proceso en detalle.
Fabricación de los pedales
Arduino puede conectarse al simulador de dos formas:
- Conexión digital: usando
ArduinoJoystickLibraryy placa Arduino Micro (reconoce como joystick HID nativo en Windows 8/10/11). - Conexión analógica: la que uso yo. El sketch proporcionado corresponde a este método.
Ambos métodos, creación del circuito y configuración de sensores, se muestran en los videos adjuntos.
Sensores y electrónica
Estoy muy interesado en vuestra opinión sobre este diseño. ¡Dejad vuestros comentarios!
Código: Salida analógica mediante potenciómetros digitales
#include <SPI.h>
#define CS_RUDDER 10
#define CS_LEFT 8
#define CS_RIGHT 9
#define SENSOR_LEFT_PEDAL A6
#define SENSOR_RIGHT_PEDAL A5
#define SENSOR_RUDDER_LEFT A0
#define SENSOR_RUDDER_RIGHT A1
int val_left, val_right, remap_left, remap_right, rudder;
int val_brake_left, val_brake_right, remap_brake_left, remap_brake_right;
int tuning_rudder = 128;
void setup() {
Serial.begin(9600);
SPI.begin();
pinMode(CS_RUDDER, OUTPUT);
pinMode(CS_LEFT, OUTPUT);
pinMode(CS_RIGHT, OUTPUT);
}
void loop() {
// --------------------------------------------------------
// PEDALES DE TIMÓN: rango -128 a +128
// --------------------------------------------------------
// Sensor timón IZQUIERDO
val_left = analogRead(SENSOR_RUDDER_LEFT);
if (val_left <= 950) {
remap_left = map(val_left, 30, 870, -128, 0);
} else remap_left = 0;
// Límites
if (remap_left > 0) remap_left = 0;
if (remap_left <= -128) remap_left = -128;
// Sensor timón DERECHO
val_right = analogRead(SENSOR_RUDDER_RIGHT);
if (val_right <= 950) {
remap_right = map(val_right, 0, 820, 132, 0);
} else remap_right = 0;
// Límites
if (remap_right < 0) remap_right = 0;
if (remap_right >= 127) remap_right = 127;
rudder = remap_left + remap_right;
// Ajuste fino (centering)
if (remap_left == 0) {
tuning_rudder = tuning_rudder + 128;
} else {
tuning_rudder = abs(tuning_rudder - 128);
}
// --------------------------------------------------------
// FRENOS (0-255)
// --------------------------------------------------------
val_brake_left = analogRead(SENSOR_LEFT_PEDAL);
if (val_brake_left <= 328) {
remap_brake_left = map(val_brake_left, 200, 328, 0, 255);
} else remap_brake_left = 255;
if (remap_brake_left < 0) remap_brake_left = 0;
val_brake_right = analogRead(SENSOR_RIGHT_PEDAL);
if (val_brake_right <= 328) {
remap_brake_right = map(val_brake_right, 200, 328, 0, 255);
} else remap_brake_right = 255;
if (remap_brake_right < 0) remap_brake_right = 0;
// --------------------------------------------------------
// ENVIAR DATOS A POTENCIÓMETROS DIGITALES (MCP41050)
// --------------------------------------------------------
// Timón
digitalWrite(CS_RUDDER, LOW);
SPI.transfer(0b00010001); // Comando escribir wiper
SPI.transfer(tuning_rudder);
digitalWrite(CS_RUDDER, HIGH);
delay(5);
// Freno izquierdo
digitalWrite(CS_LEFT, LOW);
SPI.transfer(0b00010001);
SPI.transfer(remap_brake_left);
digitalWrite(CS_LEFT, HIGH);
delay(5);
// Freno derecho
digitalWrite(CS_RIGHT, LOW);
SPI.transfer(0b00010001);
SPI.transfer(remap_brake_right);
digitalWrite(CS_RIGHT, HIGH);
delay(5);
}
Esquemáticos
Se adjuntan tres imágenes con los esquemas de conexión: circuito principal, detalle de sensores Hall y conexiones de los potenciómetros digitales SPI.
Proceso de manufactura
- Panel de control para Flight Simulator 2020 con Arduino Nano: Pantallas LCD y CDI
- Construye un Voltímetro Inteligente con Arduino y Smartphone – Proyecto DIY Fácil
- Construye un Skateboard VR Casero con Arduino, Google Cardboard y Bluetooth
- Construye un dispositivo de tratamiento radiónico EMR con Arduino DIY
- Sistema inteligente de monitorización de temperatura para escuelas: preciso, en tiempo real y seguro
- Librería Eficiente de Puerto I/O de 8 Bits para Arduino – Expande el Control Digital
- Teclado Prototipo de 64 Teclas con Arduino: Matriz con Registros de Desplazamiento
- Simulador de Carreras 2D DIY con Arduino Nano y Servos SG90
- Control Experto de Motores DC: Consejos y Trucos con Controlador PID
- Detector de Rayos Económico con Arduino Uno
- Construye un Cerco RFID Portátil con Arduino – Guía Paso a Paso