Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Construye tus Propios Pedales de Timón para Simulador de Vuelo: Guía DIY Paso a Paso

Componentes y suministros

ComponenteCantidadNotas
Arduino Nano R31O Arduino UNO para salida analógica
Arduino Micro1Solo si necesitas salida DIGITAL (Windows 8-10)
Arduino UNO1Alternativa al Nano para salida analógica
Potenciómetro digital SPI MCP410503Uno por eje (timón, freno izq, freno der)
Sensor Hall lineal SS49E4O 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:

  1. Conexión digital: usando ArduinoJoystickLibrary y placa Arduino Micro (reconoce como joystick HID nativo en Windows 8/10/11).
  2. 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

  1. Panel de control para Flight Simulator 2020 con Arduino Nano: Pantallas LCD y CDI
  2. Construye un Voltímetro Inteligente con Arduino y Smartphone – Proyecto DIY Fácil
  3. Construye un Skateboard VR Casero con Arduino, Google Cardboard y Bluetooth
  4. Construye un dispositivo de tratamiento radiónico EMR con Arduino DIY
  5. Sistema inteligente de monitorización de temperatura para escuelas: preciso, en tiempo real y seguro
  6. Librería Eficiente de Puerto I/O de 8 Bits para Arduino – Expande el Control Digital
  7. Teclado Prototipo de 64 Teclas con Arduino: Matriz con Registros de Desplazamiento
  8. Simulador de Carreras 2D DIY con Arduino Nano y Servos SG90
  9. Control Experto de Motores DC: Consejos y Trucos con Controlador PID
  10. Detector de Rayos Económico con Arduino Uno
  11. Construye un Cerco RFID Portátil con Arduino – Guía Paso a Paso