Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bouw Je Eigen Vluchtsimulator Ruiterpedalen: Stap-voor-Stap DIY Handleiding

Onderdelen en benodigdheden

Onderdeel Opmerking Aantal
Arduino Nano R3 Of Arduino UNO voor analoge output 1
Arduino Micro Alleen als je DIGITALE OUTPUT nodig hebt voor Windows 8-10 1
Arduino UNO Of Arduino NANO voor analoge output 1
Single/Dual Digital Potentiometer met SPI™ Interface MCP41050 3
SS49E Hall-effect lineaire sensor Of vergelijkbare sensoren zoals AH3503 (geen schakelaar, geen digitale!) 4

Over dit project

Update 2021

De nieuwe versie van de pedalen heeft een HID-interface en een verbeterd ontwerp. De geavanceerde Hall-effect sensoren module biedt zeer nauwkeurige controle. Details op mijn website.

Hallo vluchtsimmers! Ik heb ruiterpedalen voor een vliegtuigsimulator ontworpen en gebouwd, waarbij de Arduino de hoofdfunctie vervult. Ik wil deze ontwikkeling graag met jullie delen. Het bouwen van dergelijke pedalen duurt ongeveer twee dagen, maar het documenteren van het proces kost twee weken. Daarom heb ik verschillende video's gemaakt die het proces zo gedetailleerd mogelijk tonen.

Pedalen bouwen

De Arduino kan op twee manieren verbonden worden met de vluchtsimulator. Link naar de digitale verbinding met ArduinoJoystickLibrary en Arduino Micro board hier.

Ik verbind mijn pedalen via een analoge verbinding. De hier gegeven sketch betreft deze verbindingsmethode.

Beide methoden, het maken van de schakeling en het configureren van sensoren, worden in de volgende video getoond.

Sensoren en elektronica

Ik ben erg geïnteresseerd in jullie mening over dit ontwerp, laat jullie reacties achter.

Code

Analoge output via digiPOTs (Arduino)

#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() {
  // --------------------------------------------------------
  // RUITERPEDALEN -128 --- x --- 128
  // --------------------------------------------------------
  
  // Sensor RUITER LINKS lezen en hermapen
  val_left = analogRead(SENSOR_RUDDER_LEFT);
  if (val_left <= 950) {
    remap_left = map(val_left, 30, 870, -128, 0);
  } else {
    remap_left = 0;
  }
  
  // Beperkingen RUITER LINKS
  if (remap_left > 0) remap_left = 0;
  if (remap_left <= -128) remap_left = -128;
  
  // Sensor RUITER RECHTS lezen en hermapen
  val_right = analogRead(SENSOR_RUDDER_RIGHT);
  if (val_right <= 950) {
    remap_right = map(val_right, 0, 820, 132, 0);
  } else {
    remap_right = 0;
  }
  
  // Beperkingen RUITER RECHTS
  if (remap_right < 0) remap_right = 0;
  if (remap_right >= 127) remap_right = 127;
  
  rudder = remap_left + remap_right;
  
  if (remap_left == 0) {
    tuning_rudder = tuning_rudder + 128;
  } else {
    tuning_rudder = abs(tuning_rudder - 128);
  }
  
  // --------------------------------------------------------
  // REMME
  // --------------------------------------------------------
  
  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;
  
  /*
  // ARDUINO SETUP - Neutral sensors setup
  Serial.print(val_left); Serial.print(" | "); Serial.println(val_right); delay(400);
  // Output setup
  Serial.print(remap_brake_left); Serial.print(" | "); Serial.println(remap_brake_right);
  Serial.print(" | "); Serial.print(rudder); Serial.print(" | "); Serial.println(tuning_rudder); delay(400);
  */
  
  // --------------------------------------------------------
  // DATA NAAR digiPOTs STUREN
  // --------------------------------------------------------
  
  digitalWrite(CS_RUDDER, LOW);
  SPI.transfer(0b00010001);
  SPI.transfer(tuning_rudder);
  digitalWrite(CS_RUDDER, HIGH);
  delay(5); // Vertraging voor data gladstrekken
  
  digitalWrite(CS_LEFT, LOW);
  SPI.transfer(0b00010001);
  SPI.transfer(remap_brake_left);
  digitalWrite(CS_LEFT, HIGH);
  delay(5);
  
  digitalWrite(CS_RIGHT, LOW);
  SPI.transfer(0b00010001);
  SPI.transfer(remap_brake_right);
  digitalWrite(CS_RIGHT, HIGH);
  delay(5);
}

Schema's

Bouw Je Eigen Vluchtsimulator Ruiterpedalen: Stap-voor-Stap DIY Handleiding

Bouw Je Eigen Vluchtsimulator Ruiterpedalen: Stap-voor-Stap DIY Handleiding

Bouw Je Eigen Vluchtsimulator Ruiterpedalen: Stap-voor-Stap DIY Handleiding

Productieproces

  1. Arduino Nano Flight Simulator 2020 Bedieningspaneel – LCD & CDI Display
  2. Een slimme voltmeter bouwen met Arduino en smartphone – Eenvoudig DIY-project
  3. Bouw een DIY VR-skateboard met Arduino, Google Cardboard en Bluetooth
  4. Bouw een DIY Arduino Radionica EMR Behandelapparaat
  5. Slim Temperatuurmonitoring Systeem voor Scholen: Nauwkeurig, Real-time en Beveiligd
  6. Efficiënte 8-bit IO-poort bibliotheek voor Arduino – Uitbreiding digitale controle
  7. Arduino 64-toets Prototoetsenbord Matrix – Bouw een Aangepast Toetsenbord met Shift Registers
  8. DIY 2D Motion Racing Simulator met Arduino Nano & SG90 Servo's
  9. DC-motorbeheersing onder de knie: Expert Tips & Trucs met PID-regeling
  10. Bouw een Kosteneffectieve Bliksemdetector met Arduino Uno
  11. Bouw een draagbare RFID-deurslot met Arduino – Stap-voor-stap handleiding