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

Педали руля для самостоятельной сборки для Flight Simulator

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

Arduino Nano R3
Или Arduino UNO для аналогового вывода
× 1
Arduino Micro
Если вам нужен только ЦИФРОВОЙ ВЫХОД для Windows 8-10
× 1
Arduino UNO
Или Arduino NANO для аналогового вывода
× 1
Одинарный / двойной цифровой потенциометр с интерфейсом SPI ™ MCP41050
× 3
Линейный датчик на эффекте Холла SS49E
Или любые подобные датчики, например - AH3503 (не переключатель или не цифровой !!!)
× 4

Об этом проекте

Обновление 2021 года

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

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

Изготовление педалей

Arduino можно подключить к симулятору полета двумя способами. Ссылка на цифровое соединение с использованием библиотеки ArduinoJoystickLibrary и платы Arduino Micro здесь.

Я подключаю свои педали аналоговым соединением. И приведенный здесь эскиз относится к этому способу подключения.

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

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

Мне очень интересно ваше мнение об этой конструкции, оставляйте, пожалуйста, свои комментарии.

Код

  • Аналоговый вывод через digiPOT.
Аналоговый вывод через digiPOTs Arduino
 #include  #define CS_RUDDER 10 #define CS_LEFT 8 #define CS_RIGHT 9 #define SENSOR_LEFT_PEDAL A6 #define SENSOR_LEFT_PEDAL A6 #define SENSOR_LEFT_PEDAL A6 #define SENSOR_LEFT_PEDAL A6 #define SENSOR_RIGHT_PEDAL A5 #define SENSOR_RUDDER_LEFT A0 # define SENSOR_RUDDER_LEFT_VALDER_VALDER_RUDER_RUD_VALDER_VALDER_RUDDER_VALDER_VALDER_VALDER_RUD val_brake_right, remap_brake_left, remap_brake_right; int tuning_rudder =128; // int tuning_left_brake =255; // int tuning_right_brake =255; void setup () {Serial.begin (9600); SPI.begin (); pinMode (CS_RUDDER, ВЫХОД); pinMode (CS_LEFT, ВЫХОД); pinMode (CS_RIGHT, ВЫХОД); } void loop () {// ------------------------------------------ -------------- // ПЕДАЛИ РУЛЯ -128 --- x --- 128 // -------------------- ------------------------------------ // Чтение и переназначение датчика RUDDER LEFT val_left =analogRead (SENSOR_RUDDER_LEFT); если (val_left <=950) {remap_left =map (val_left, 30, 870, -128, 0); // -40} иначе remap_left =0; // Устанавливаем ограничения RUDDER LEFT if (remap_left> 0) remap_left =0; если (remap_left <=-128) remap_left =-128; // Считываем и переназначаем датчик RUDDER RIGHT val_right =analogRead (SENSOR_RUDDER_RIGHT); если (val_right <=950) {remap_right =map (val_right, 0, 820, 132, 0); // -50} иначе remap_right =0; // Устанавливаем ограничения RUDDER RIGHT if (remap_right <0) remap_right =0; если (remap_right> =127) remap_right =127; руль =remap_left + remap_right; если (remap_left ==0) {tuning_rudder =tuning_rudder + 128; } else {tuning_rudder =abs (tuning_rudder - 128); } // ----------------------------------------------- --------- // ТОРМОЖЕНИЕ // ------------------------------------ -------------------- val_brake_left =analogRead (SENSOR_LEFT_PEDAL); если (val_brake_left <=328) {remap_brake_left =map (val_brake_left, 200, 328, 0, 255); } иначе remap_brake_left =255; если (remap_brake_left <0) remap_brake_left =0; val_brake_right =аналоговое чтение (SENSOR_RIGHT_PEDAL); если (val_brake_right <=328) {remap_brake_right =map (val_brake_right, 200, 328, 0, 255); } иначе remap_brake_right =255; если (remap_brake_right <0) remap_brake_right =0; / * // НАСТРОЙКА ARDUINO // Настройка нейтральных датчиков Serial.print (val_left); Serial.print ("|"); Serial.println (val_right); задержка (400); // Настройка вывода Serial.print (remap_brake_left); Serial.print ("|"); Serial.println (remap_brake_right); Serial.print ("|"); Серийный принт (руль направления); Serial.print ("|"); Serial.println (tuning_rudder); delay (400); * / // ----------------------------------------- --------------- // ОТПРАВИТЬ ДАННЫЕ НА digiPOT // --------------------------- ----------------------------- digitalWrite (CS_RUDDER, LOW); SPI.transfer (0b00010001); SPI.transfer (tuning_rudder); digitalWrite (CS_RUDDER, HIGH); задержка (5); // Задержка сглаживания данных по времени digitalWrite (CS_LEFT, LOW); SPI.transfer (0b00010001); SPI.transfer (remap_brake_left); digitalWrite (CS_LEFT, HIGH); задержка (5); digitalWrite (CS_RIGHT, LOW); SPI.transfer (0b00010001); SPI.transfer (remap_brake_right); digitalWrite (CS_RIGHT, HIGH); задержка (5);} 

Схема


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

  1. ЖК-панель с Arduino для симулятора полета
  2. Вольтметр своими руками с использованием Arduino и смартфона
  3. Скейтборд виртуальной реальности «Сделай сам»
  4. Сделай сам Arduino РАДИОНИКА Лечение MMachine
  5. Мониторинг температуры SMART для школ
  6. 8-битная библиотека портов ввода-вывода для Arduino
  7. 64-клавишная матрица клавиатуры для прототипирования для Arduino
  8. Самодельный двухмерный гоночный симулятор
  9. Уловки для управления двигателями постоянного тока
  10. Детектор молний для Arduino