Квадрант дроссельной заслонки и колесо дифферента
Компоненты и расходные материалы
| × | 1 | ||||
| × | 3 | ||||
| × | 1 |
Необходимые инструменты и машины
| ||||
|
Приложения и онлайн-сервисы
|
Об этом проекте
Введение
Недавно обновив свой компьютер, чтобы на нем можно было запускать MS FS2020, я был вдохновлен на улучшение элементов управления, которые я использовал. Клавиатура не совсем подходит для полета, и я хотел улучшить ее. Я не увлекаюсь полетами на полную ставку и не могу позволить себе место или деньги, чтобы потратить много времени на создание полноценной кабины или даже на приобретенный набор органов управления.
Дизайн
Я приступил к разработке набора элементов управления в САПР, которые можно было бы создать с помощью имеющихся у меня инструментов, и дать разумное представление о том, как я представляю себе настоящий самолет, я никогда не касался элементов управления на плоскости, поэтому он основан на том, что Думаю, они бы понравились.
Я решил, что мне нужны отдельные рычаги управления дроссельной заслонкой, закрылками, шасси и триммером руля высоты. В симуляторе я в основном летаю на небольших легких одномоторных самолетах, поэтому сосредоточился именно на этом.
Декоративное колесо было сложнее всего разработать, и потребовалось несколько набросков в течение многих дней, чтобы придумать дизайн, который, как я думал, обеспечил бы внешний вид, который я хотел.
Сборка
На моем UP все детали были напечатаны на 3D-принтере из АБС-пластика! Затем они были окрашены и подключены к Arduino, Leonardo для начала, а затем заменены на Micro. Чтобы получить устройство plug and play, которое можно легко убрать, когда оно не используется.
Детали
Список деталей, напечатанных на 3D-принтере
Для каждого модуля рычага потребуется
Для каждого колесного модуля потребуется
Детали задней панели можно использовать для размещения Arduino и проводки.
Заключение
Очень приятная сборка, очень простая с точки зрения кодирования, настоящая проблема в этой сборке заключалась в дизайне, особенно торцевом колесе и ощущении правильно.
Код
- Quadrant.ino
Quadrant.ino Arduino
Используйте переменную настройки и монитор последовательного порта, чтобы найти значения конечных точек для каждого потенциометра, введите их в массив axisLimits#includeJoystick_ Joystick; // поместите в них максимальные и минимальные значения из аналога. массивы // они преобразуются в диапазон от 0 до 1023 int axisLimits0 [] ={686, 338}; int axisLimits1 [] ={345, 695}; int axisLimits2 [] ={327, 678}; int axisLimits3 [] ={342, 692}; int axisLimits4 [] ={0, 1023}; int axisLimits5 [] ={0, 1023}; // включаем или выключаем оси, задавая эти переменные bool a0Used =true; bool a1Used =true; bool a2Used =true; bool a3Used =true; bool a4Used =false; bool a5Used =false; // режим установки выводит значение вывода и переведенное значение на серийный монитор // int setting =-1; // нет печати на серийный монитор // int setting =2; // значения 0 - 5, вывод значений выводов в последовательный монитор int setting =-1; void setup () {if (a0Used) pinMode (A0, INPUT); если (a1Used) pinMode (A1, INPUT); если (a2Used) pinMode (A2, INPUT); если (a3Used) pinMode (A3, INPUT); если (a4Used) pinMode (A4, INPUT); если (a5Used) pinMode (A5, INPUT); Joystick.begin (); if (установка> =0) Serial.begin (9600);} void loop () {int value =0; int pos =0; если (a0Used) {значение =analogRead (A0); pos =translateValue (значение, axisLimits0 [0], axisLimits0 [1]); Джойстик.setThrottle (pos); если (настройка ==0) settingPrint (значение, позиция); } если (a1Used) {значение =analogRead (A1); pos =translateValue (значение, axisLimits1 [0], axisLimits1 [1]); Joystick.setRxAxis (pos); если (настройка ==1) settingPrint (значение, позиция); } если (a2Used) {значение =analogRead (A2); pos =translateValue (значение, axisLimits2 [0], axisLimits2 [1]); Joystick.setRyAxis (pos); если (настройка ==2) settingPrint (значение, позиция); } если (a3Used) {значение =analogRead (A3); pos =translateValue (значение, axisLimits3 [0], axisLimits3 [1]); Джойстик.setRzAxis (поз); если (настройка ==3) settingPrint (значение, позиция); } если (a4Used) {значение =analogRead (A4); pos =translateValue (значение, axisLimits4 [0], axisLimits4 [1]); Joystick.setXAxis (pos); если (настройка ==4) settingPrint (значение, позиция); } если (a5Used) {значение =analogRead (A5); pos =translateValue (значение, axisLimits5 [0], axisLimits5 [1]); Joystick.setYAxis (pos); если (настройка ==5) settingPrint (значение, позиция); } delay (5);} int translateValue (int v, int f1, int f2) {// переводит значения в диапазон от 0 до 1023 int result =0; int start =0; диапазон с плавающей запятой =0; если (f1 1023) результат =1023; вернуть результат;} void settingPrint (int value, int pos) {Serial.print (value); Serial.print (""); Serial.println (pos);}
Изготовленные на заказ детали и корпуса
Один без вкладки на случай, если он вам нужен Тот, который я используюSketchfab все еще обрабатывается.
Этот файл содержит все части в виде файла STEP Release_u3k8QjPXzJ.stpСхема
Чтобы добавить дополнительные элементы управления, подключите 5V и GRD и используйте контакты с A1 по A5 quadrant_ZkMygPyRiE.fzzПроизводственный процесс
- ЖК-анимация и игры
- Вольтметр своими руками с использованием Arduino и смартфона
- Регистратор данных температуры и влажности
- Колесо вкладки аналогового триммирования FlightGear
- Связь Python3 и Arduino
- Клеточные автоматы на основе Arduino и OLED
- FM-радио с использованием Arduino и RDA8057M
- Система посещаемости на основе Arduino и Google Spreadsheet
- IoT:Windows Remote Arduino и универсальные приложения
- Понимание балансировки колес и сход-развала