Construisez Vos Propres Pales de Direction pour Simulateur de Vol : Guide DIY Étape par Étape
Composants et fournitures
| Composant | Quantité | Notes |
|---|---|---|
| Arduino Nano R3 | 1 | Ou Arduino UNO pour sortie analogique |
| Arduino Micro | 1 | Si sortie numérique seulement (Windows 8-10) |
| Arduino UNO | 1 | Alternative au Nano pour sortie analogique |
| Potentiomètre numérique MCP41050 (SPI) | 3 | Simple/Double |
| Capteur Hall linéaire SS49E | 4 | Ou AH3503 (capteur linéaire, pas commutateur !) |
À propos du projet
Mise à jour 2021
La nouvelle version des pédales intègre une interface HID et un design amélioré. Le module à capteurs Hall avancé offre un contrôle d'une grande précision. Détails sur mon site web.
Bonjour les simulateurs de vol ! J'ai conçu et réalisé des pédales de direction pour simulateur d'avion, dont le cœur est un Arduino. Je souhaite partager ce développement avec vous. La fabrication prend environ deux jours, mais la documentation en a demandé deux semaines. J'ai donc réalisé plusieurs vidéos montrant le processus en détail.
Fabrication des pédales
L'Arduino peut se connecter au simulateur de deux manières :
- Connexion numérique : via la bibliothèque ArduinoJoystickLibrary et une carte Arduino Micro. Lien vers la méthode numérique.
- Connexion analogique : c'est celle que j'utilise. Le code fourni ici correspond à cette méthode.
Les deux approches (câblage, configuration des capteurs) sont présentées dans les vidéos.
Capteurs et électronique
Je suis très intéressé par vos avis sur ce design, n'hésitez pas à laisser vos commentaires.
Code : Sortie analogique via potentiomètres numériques
#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() {
// --------------------------------------------------------
// PÉDALES DE DIRECTION : -128 --- x --- +128
// --------------------------------------------------------
// Capteur gauche
val_left = analogRead(SENSOR_RUDDER_LEFT);
if (val_left <= 950) {
remap_left = map(val_left, 30, 870, -128, 0);
} else remap_left = 0;
if (remap_left > 0) remap_left = 0;
if (remap_left <= -128) remap_left = -128;
// Capteur droit
val_right = analogRead(SENSOR_RUDDER_RIGHT);
if (val_right <= 950) {
remap_right = map(val_right, 0, 820, 132, 0);
} else remap_right = 0;
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);
}
// --------------------------------------------------------
// FREINAGE
// --------------------------------------------------------
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;
// --------------------------------------------------------
// ENVOI VERS LES POTENTIOMÈTRES NUMÉRIQUES (SPI)
// --------------------------------------------------------
// Gouvernail
digitalWrite(CS_RUDDER, LOW);
SPI.transfer(0b00010001);
SPI.transfer(tuning_rudder);
digitalWrite(CS_RUDDER, HIGH);
delay(5);
// Frein gauche
digitalWrite(CS_LEFT, LOW);
SPI.transfer(0b00010001);
SPI.transfer(remap_brake_left);
digitalWrite(CS_LEFT, HIGH);
delay(5);
// Frein droit
digitalWrite(CS_RIGHT, LOW);
SPI.transfer(0b00010001);
SPI.transfer(remap_brake_right);
digitalWrite(CS_RIGHT, HIGH);
delay(5);
}
Schémas de câblage
Processus de fabrication
- Panneau de contrôle Arduino Nano pour Flight Simulator 2020 – Affichage LCD et CDI
- Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
- Construisez un skateboard VR DIY avec Arduino, Google Cardboard et Bluetooth
- Dispositif de Traitement Radionique EMR DIY avec Arduino Nano
- Système de Surveillance Thermique Scolaire : Précis, Temps Réel et Sécurisé
- Bibliothèque Arduino efficace pour port E/S 8 bits — Étendez le contrôle numérique
- Clavier prototype 64 touches Arduino avec registres à décalage - Matrice clavier DIY
- Simulateur de Course 2 Axes DIY : Arduino Nano & Servos SG90
- Maîtriser le contrôle de moteur à courant continu : Astuces et conseils d'expert