Простейший EFIS на Arduino определяемый как джойстик — «Железные» кокпиты

Может кому будет интересно, EFIS в простейшем варианте.
 
Определяется всеми как джойстик, имеет оси, хатки, кнопки, энкодеры. У меня пользуется на PMDG737 FSX, но разницы где включать — нет,  это просто джойстик.
 
20141116-IMG_2232.jpg
 
Особых знаний не нужно, травить платы и паять микросхемы тоже лишнее. Что имеем:
 
 
Arduino Leonardo 1 шт 
Энкодеры R182 4шт     
Тумблеры 2 шт             
Миникнопки  7 шт           
Ручки 4 шт                       
Резисторы 10кОм 15шт  
 
Паяем кнопки, энкодеры, с подвесом через резюки.
 
20141118-IMG_2238.jpg
 
Грузим Arduino 1.5.8. Указываем плату как Arduino Leonardo HID, тип работы — gamepad. Описано здесь http://mysku.ru/blog…ress/29785.html
 
Зашиваем такой скетч  Прикрепленный файл
 test_13_joy.zip   673байт
  42 Количество загрузок:  — и крутим и нажимаем все подряд — он показывает номерацию кнопок.
Далее такой Прикрепленный файл
 Efis_control_joy_1.zip   1.24К
  37 Количество загрузок:   — он уже правильно обрабатывает энкодеры и нажатия кнопок.
 
Потом либо во фсупик, либо штатными средствами, я пользовался LINDA — назначаем все что нам нужно:
 
post-88977-0-25906700-1474410536.jpg
 
В общем то и все, дешево и сердито.

Ответов: 16

Ссылка на блог не работает.

Ссылочку поправьте пожалуйста. И может подскажете как собрать таким же образом MCP? 

Крайне интересно. А как узнавать положения осей джойстика? Дребезга осей тут принципиально нет? 

Ссылочку поправьте пожалуйста. И может подскажете как собрать таким же образом MCP? 

http://www.avsim.su/…-вечеров/page-1

Ссылочку поправьте пожалуйста. И может подскажете как собрать таким же образом MCP? 

 

Поправка

 

http://mysku.ru/blog…ress/29785.html

 либо 

http://mysku.su/novo…-pro-micro.html

 

либо вот сохраненная копия с яндекса

 

http://hghltd.yandex…0b6567c&keyno=0

 

Можно и MCP, только без индикации, так же вставляем энкодеры, подключаем, прописываем в скетче, прописываем в LINDA, и все готово.

Крайне интересно. А как узнавать положения осей джойстика? Дребезга осей тут принципиально нет? 

Положения осей как у обычного джойстика, калибруется стандартным образом. А дребезг, я думаю можно убрать программно.

Положения осей как у обычного джойстика, калибруется стандартным образом. А дребезг, я думаю можно убрать программно.

У обычного джойстика плохо, но можно оценить по положению ручки. Положение энкодера менее информативно. Или нет? Зачем программно убирать дребезг если его тут принципиально не должно быть. Вы вообще врубаетесь о чем речь идет? 

У обычного джойстика плохо, но можно оценить по положению ручки. Положение энкодера менее информативно. Или нет? Зачем программно убирать дребезг если его тут принципиально не должно быть. Вы вообще врубаетесь о чем речь идет? 

Да, если честно, не совсем понимаю о чем Вы меня спрашиваете? конкретно в моем EFIS мне не надо знать положение крутилки, потому как я пользуюсь масштабированием, давлением и переключением типа карты, а тут и так все понятно, налево крутишь — меньше, направо — больше, а давление и масштаб и так на дисплеях видно.

Приношу свои искренние извинения, что задал грубо вопрос автору и человеку, который реально руками что-то сделал для сима. Забыл, кто автор темы :( Творческих людей на сайте мало. 

 

Мне кажется, что такой джойстик удобен мухобойщикам типа на шаг винта, качество смеси, триммеры. На многих «самолетах» посмотреть в каком положении ручки достаточно сложно, а какую скажем смесь выставил — забывается. В реале ручки переставляешь частенько ощупью, в знакомое положение. В симе хотелось бы посмотреть например на цифровой индикатор и убедиться, что ручка смеси в положении 80% 

 

Теоретически дребезг оси, назначенной на скажем триммер, должен дергать самолет, и тем самым его тормозить, снижать качество. Для мухобойки в аварийной ситуации это может быть критично. Не знаю как в симе запрограммировано, но из-за дребезга отказался от джойстиков с сопротивлениями на такие оси. 

 

С удовольствием купил бы готовый продукт с индикацией значения оси. Как люди летают на 4-х моторниках поршневиках вообще не представляю :) На Ил-4 качество смеси подбирали по цвету выхлопных патрубков, но в симе такое пока не реализовано. Хотя бы четко знать положение управляющих элементов. 

Наставил плюсиков :) :)  :) 

Приношу свои искренние извинения, что задал грубо вопрос автору и человеку, который реально руками что-то сделал для сима. Забыл, кто автор темы :( Творческих людей на сайте мало. 

 

Мне кажется, что такой джойстик удобен мухобойщикам типа на шаг винта, качество смеси, триммеры. На многих «самолетах» посмотреть в каком положении ручки достаточно сложно, а какую скажем смесь выставил — забывается. В реале ручки переставляешь частенько ощупью, в знакомое положение. В симе хотелось бы посмотреть например на цифровой индикатор и убедиться, что ручка смеси в положении 80% 

 

Теоретически дребезг оси, назначенной на скажем триммер, должен дергать самолет, и тем самым его тормозить, снижать качество. Для мухобойки в аварийной ситуации это может быть критично. Не знаю как в симе запрограммировано, но из-за дребезга отказался от джойстиков с сопротивлениями на такие оси. 

 

С удовольствием купил бы готовый продукт с индикацией значения оси. Как люди летают на 4-х моторниках поршневиках вообще не представляю :) На Ил-4 качество смеси подбирали по цвету выхлопных патрубков, но в симе такое пока не реализовано. Хотя бы четко знать положение управляющих элементов. 

 

Я понял Вашу идею, Вам надо жесткое соответствие положения ручки и передаваемого сигнала без дребезга. Какие проблемы, берете потенциометр, внутри Arduino программно обрабатываете его показания с задержкой в 200мс, сглаживаете, и транслируете это уже на выход Arduino. Получаете джойстик со сглаженным сигналом без дребезга. Я думаю как то так.

 

вот нашел и тему соответсвующую http://arduino.ru/fo…-potentsiometra

 

обработку можно вести как в спортивном судействе, из допустим 10 значений за 100мс выбрасывать два минимальных и два максимальных, остальные усреднять. 

 

 

+ взаимно) 

Чем и прекрасен Arduino, что можно самому себе создать  любой продукт джойстик с любыми характеристиками, под любую задачу, заточить его, и это уже будет законченное аппаратное решение с разъемом USB.

+
:good:
Я так понимаю используются не все функции EFIS, или вы каким то образом смогли впихнуть все в леонардо?

+
:good:
Я так понимаю используются не все функции EFIS, или вы каким то образом смогли впихнуть все в леонардо?

 

Да Вы правильно понимаете, я использую только то, что мне надо ( к примеру переключение дюймы-гектопаскали вообще мной не используется, как и многое другое). Настроил один раз и хватит. Но для реализму — почему нет?

 

И в Leonardo  можно с легкостью запихать весь EFIS, со всеми кнопками, тумблерами и энкодерами. У него 14 цифровых и 6 аналоговых входов. Из цифровых входов можно сделать матрицу — допустим 6х6 (12 входов) это уже 36 кнопок или 18 крутилок, + остаются еще 2 цифровых и 6 аналоговых,а ежели их через резюки, так это вообще можно расширить до границ вселенной))  Для полного EFIS должно хватать с запасом. Но тут я не знаю, может быть у джойстика есть ограничение по количеству кнопок? Этот вопрос я еще не изучал.

То есть если использовать мегу можно теоретически вообще заменить весь MIP?
Интересная мысль.
А как ардуино работает в плане скорости срабатывания? Нет ли задержек?
Я чего интересуюсь? Крутится в голове мысль плавно переходить на ардуино.

То есть если использовать мегу можно теоретически вообще заменить весь MIP?

 

Тут есть один нюанс — точно известно, что Leonardo умеет прикидываться джойстиком, про Mega мне не известно такое…..

 

 

А как ардуино работает в плане скорости срабатывания? Нет ли задержек?

 

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