Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Самодельные педали руля для авиасимулятора: пошаговое руководство

Компоненты и материалы

КомпонентКоличествоПримечание
Arduino Nano R31Или Arduino UNO для аналогового выхода
Arduino Micro1Если нужен только ЦИФРОВОЙ выход (Windows 8-10)
Arduino UNO1Или Arduino Nano для аналогового выхода
Цифровой потенциометр MCP41050 (SPI)3По одному на руль и два тормоза
Датчик Холла SS49E (линейный)4Или аналоги: AH3503 (только линейные, не ключи!)

О проекте

Обновление 2021: Новая версия педалей имеет HID-интерфейс и улучшенный дизайн. Продвинутый модуль датчиков Холла обеспечивает очень точный контроль. Подробности на сайте автора.

Привет, любители полётов! Я изобрёл и собрал педали для авиасимулятора, где основную роль играет Arduino. Хочу поделиться этой разработкой. Собрать педали можно за два дня, но описание процесса заняло две недели. Поэтому я снял несколько подробных видео.

Варианты подключения

Arduino можно подключить к симулятору двумя способами:

Оба способа, схема подключения и настройка датчиков показаны в видео.

Датчики и электроника

Интересно ваше мнение о конструкции — оставляйте комментарии!

Программный код (аналоговый выход через digiPOT)

#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() {
  // ---------- РУЛЬ: диапазон -128 ... +128 ----------
  // Левый датчик руля
  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;

  // Правый датчик руля
  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 += 128;
  else tuning_rudder = abs(tuning_rudder - 128);

  // ---------- ТОРМОЗА: 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;

  // ---------- ОТПРАВКА В ЦИФРОВЫЕ ПОТЕНЦИОМЕТРЫ ----------
  // РУЛЬ
  digitalWrite(CS_RUDDER, LOW);
  SPI.transfer(0b00010001);
  SPI.transfer(tuning_rudder);
  digitalWrite(CS_RUDDER, HIGH);
  delay(5);

  // ЛЕВЫЙ ТОРМОЗ
  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);
}

Схемы подключения

Самодельные педали руля для авиасимулятора: пошаговое руководство
Самодельные педали руля для авиасимулятора: пошаговое руководство
Самодельные педали руля для авиасимулятора: пошаговое руководство

Производственный процесс

  1. Панель управления полётным симулятором 2020 на Arduino Nano: LCD и CDI-дисплеи
  2. Умный вольтметр на Arduino и смартфоне — простое DIY-проект
  3. Сборка DIY VR-скейтборда на Arduino, Google Cardboard и Bluetooth
  4. DIY Arduino Radionics EMR Treatment Device — радионическое устройство
  5. Умная система мониторинга температуры для школ: точно, в реальном времени, безопасно
  6. Библиотека 8-битного порта ввода-вывода для Arduino — расширение цифрового управления
  7. Arduino 64-клавишная прототипная клавиатура: матрица на сдвиговых регистрах
  8. DIY 2D гоночный симулятор движения на Arduino Nano и сервоприводах SG90
  9. Мастерство управления двигателем постоянного тока: экспертные советы и трюки
  10. Создание дешевого детектора молний на Arduino Uno