Джойстик для авиасимулятора

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

Приветствую уважаемое сообщество! Я тут впервые - так сложилось что не знал об arduino вообще ничего и тут вдруг))) Заранее прошу прощения у модераторов и всего честного народа, если расположил эту тему не там где надо...
История длинная)) Любитель я авиации, и вот, в давние временя купил джойстик. ПОлетал - понравилось, но он вскоре сдох. Купил еще - и он через пол-года сдох. Потом купил лучше - но все равно сдох! Понял, что так дело не пойдет. Начал искать причины - оказалось что резисторы дохнут у всех джойстиков, и надо брать на датчиках Холла. Ну ладно, начал искать - а цены.... В общем сказать, что я офигел - не сказать ничего. Кобра М5 с кучей косяков, заедающей оси и прочих прелестей - стоит уже 4000 рублей, а учитывая что я хотел бы педали на нее поставить, и не желал бы мириться с глючащей осью твиста.... В общем ценник ушел до 9000 рублей почти незаметно. А тем не менее все главные прелести  как то хреновый пластиковый корпус и прочее - остались. С паяльником в принципе дружу, хотя по профессии музыкант - и схемы читать мне тяжело, да и в коде разбираться. Но тут намечается проект, который даст сразу:

А) навык программирования или хотя бы базовое понимание законов оного для arduino

Б) джойстик, который действительно будет долго служить, пусть бы и цена его окажется недешевой.

Теперь довольно лирики, выходные денные.
Имеются 2 джойстика на резисторах - в меру убитые. Один можно в принципе использовать как временный корпус. Второй - кнопок понадергать))) Электроника у них вся рабочая, но резисторы сдохли, компоновка кнопок не устраивает, педалей нет... Хотя путь наименьшего сопротивления - заменить резисторы датчиками Холла - вот только далеко не факт что джойстик будет нормально работать после.

Требования к джойстику. Ручка подвижна в 2-х плоскостях (крен и тангаж самолета), рядом в форме слайдера или рычага есть третья ось - ось тяги двигателя. Таких осей в идеале две бы иметь, но я не хочу пока зарываться. Потому посчитаем что тяга - 3-я ось. Наконец педали (их часто упраздянют в фабричных джостах - добавляя твист у ручки, что ИМХО негативно сказывается). Педали управляют рысканьем самолета - это 4-я аналоговая ось.

Кнопки, чем больше - тем лучше. Буду согласен на 12 дискретных кнопок. Если меньше - не страшно. Главное не меньше 4-х.

Задачу я сформировал - теперь вопросы - так как я дуб дубом - то прошу совета - что надо купить из начинки? кнопки есть - от старых джойстиков. Нужно я так понимаю 4 датчика холла и минимум 4 магнита? каких магнита... Вот тут я уже в тупике. По arduino тоже не в курсе какой именно нужен. В общем очень надеюсь на форум, может как то прояснится все это. Заранее спасибо. Николай.

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

Неужели моя задача невыполнима? Быть того не может... Хорошо, упрощу вопрос - что надо купить из комплектующих? какой вариант arduino подходит? Mega, nano и т.п..... Что нужно для того чтобы запрограммировать его? у меня ноутбук, COM порта естественно нет

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

OmertaJazz, вам нужно найти форум любителей джойстиков. Размышления на тему что купить возможно только после чёткого представления как сделаны джойстики на датчиках холла, вплоть до конкретных моделей датчиков и зарисовок конструкции. Может там одноосевые датчики , может двухосевые, может выход напряжения, может выход тока. Может к нему усилитель потребуется, может нет. Когда в этом вопросе наступит полная ясность, можно начать решать другие вопросы.

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

Зарисовок не находил... К сожалению. Но конструктив представляю. Каждый датчик отвечает за одну ось (выходит что одноосевой). Датчиков следовательно 4. Изменение отдаленности магнита (или его полярности - вот тут пробел в памяти) - меняет вольтаж на датчике Холла. Это изменение вольтажа и дает информацию об отклонении ручки. В принципе в простых джойстиках используются резисторы с крутилками (подстроечные) - и именно изменение выходного напряжения с них дает информацию об отклонении ручки.

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Привет, OmertaJazz.
Я юзаю дешевый джой Genius на Condor(soaring) лет пять без особых проблем, хотя многое в нем не нравится.
Без больших затрат можешь для начала попробовать взять на Али  Arduino Uno, макетную плату, поищи любой <joystick arduino> и пачку проводочков.

Поиграйся, попробуй скетчи написать. Там и увидешь, насколько ЭТО тебе нравится.

Мое ИМХО-нужна хорошая и крепкая механика: кардан джоя, крепкие педали, тяги. Электроника тут мне кажется мелочью.

PS. Дай мыло-скину мой начальный дешевый алишный комплект, которого вполне может хватить на твою задачу. Сюда PDF не вставляется :(

 

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

Блин, а тут личка походу отсутствует...  или я не там гляжу. Ну да ладно - мыло Nikolay.Bazhilin@ya.ru

Sinister
Offline
Зарегистрирован: 14.06.2012

Я начинал переделывайть джой с контроллером MJoy16. РУД до сих пор на этом контроллере работает, а РУС с педалями уже на более навороченом. На РУСе и педалях стоят магниторезисторы. На suhoi.ru были темы по переделке и изготовлению джоев.

Если нужна информация по изготовлению MJoy16 и по механике могу поделиться.

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

Делитесь) я правда не в курсе где этот Mjoy16 достать и как им пользоваться... Ну да ладно - не все сразу)

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Прелюбопытнейшая механика http://forum.warthunder.ru/index.php?/topic/34234-prosteishaia-samodelnaia-mekhanika-dlia-dzhoia/
Там даже есть инструкция по сборке и ролик по работе.
У чела руки из правильного места растут.

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Совсем необязательно делать на контроллере MJoy16: https://sites.google.com/site/mmjoyproject/kontrollery-sovmestimye-bazovye-platy

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

 

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

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

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Личка отсутствует, вы правы...

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

А какая ардуино нужна? По ссылке нарисована Леонардо... другие не пойдут? Uno например... Извиняюсь - пока чайник в этом...

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Как я понял, лучше всего катит Про Микро из-за своих малых размеров. Её проще в старый корпус джоя запихивать. и функционала вполне хватает.

http://arduino.ua/ru/hardware/Micro

 

at0mix
at0mix аватар
Offline
Зарегистрирован: 23.11.2015

На мой взгляд нано лучше будет:

про микро:

озу 2.5кб, флеш 32-4 на загрузчик, габариты 4.8 см и 1.77 см, 20 входов-выходов, из них 12 анаголовых входов, 7 - ШИМ.

нано:

озу 2.0кб, флеш 32-2 на загрузчик, габариты 4.3 см и 1.85 см, 22 входа-выхода, 14 цифровых (6 ШИМ) и 8 анаголовых

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Проблема в том, что у наны нету железного USB, в отличие от микро.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Олег М. пишет:

Как я понял, лучше всего катит Про Микро из-за своих малых размеров. Её проще в старый корпус джоя запихивать. и функционала вполне хватает.

http://arduino.ua/ru/hardware/Micro

Вы говорите о ПроМикро, а ссылку даёте на микро. А это несколько разные платы :)

at0mix
at0mix аватар
Offline
Зарегистрирован: 23.11.2015

Yarik.Yar пишет:
Проблема в том, что у наны нету железного USB, в отличие от микро.

Разъясни плиз, что есть "железный USB"?

У меня нано - определяется как сом5. вераил-принт работает. В мини-про есть еще какие-то доп фичи?

Да, нано с чипом 340, куплен тут (еще по 130р ;):

http://ru.aliexpress.com/item/Freeshipping-Funduino-Nano-3-0-controller-compatible-For-arduino-nano/1332251505.html

Возможно ты имел ввиду ардуино мини?

http://arduino.ua/ru/hardware/Mini

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Не спорю, поскольку не совсем в теме ПроМикро и просто Микро :(
Лучше всего о конкретных поддерживаемых платах спросить автора MMJoy https://sites.google.com/site/mmjoyproject/

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Разъясняю.

"Железный" USB - значит, он встроен как модуль непосредственно в контроллер. Он - просто периферия, как таймер, интрефейс UART - только USB. Нано/ПроМини - не имеют USB. Для подключения к ПК используется USB<->UART преобразователь, как CH340G, FT232, CP2102 etc. 

Можно организовать программный USB, тема с библиотекой на форуме была. 

at0mix
at0mix аватар
Offline
Зарегистрирован: 23.11.2015

Спасибо за внятный ответ. Как я понял - это фича МК ATmega32u4, который идет на микро и леонардо.

тот же 328 такого контроллера не имеет и использует внешний.

В принципе из плюсов ю4 - 2.5кб озу и 12 аналоговых входов - против 6-8 на остальных.

Минус - загрузчик в 4Кб против 2Кб у других.

Только вот на али цена от 300 и выше, а нано - от 130.....

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Эта фича есть у относительно большого кол-ва микроконтроллеров; помечается она буквой U(словом usb) в названии модели aka at90usb82, at90usb162, atmega8u2, atmega16u2, atmega32u4....

Да, цены немаленькие, 264руб самая дешёвая на Али...сколько тебе необходимо входов? Может посмотреть на Digispark? На крайняк, на нём можно организовать программный UART, подключить любую другую плату по UARTу, датчики подключить к той самой другой плате. Короче, Digispark бует как переходник между любой ардуиной и ПК. Библиотека джойстика для него есть.

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Если кого заинтересовала тема-приведу минимальное число контролируемых параметров для управления симулятором летательного аппарата.
1. Три аналоговых канала для управления по курсу/крену/тангажу. Два канала на ручке управления (джойстике), один- на педалях. Или тоже на джойстике.
2. Аналоговый канал для управления двигателем (или воздушным тормозом для безмоторных планеров).
3. Крайне желательно два аналоговых канала для управления взглядом (влево-вправо/вверх-вниз). Но обычно делают на кнопках. Хотя встречается управление поворотом/наклоном головы.
4. Очень много дискретных: пушки/пулеметы, уборка/выпуск шасси, тормоз, закрылки, бомболюки, ракеты  и т.п.

Ну а крутые перцы делают такое, что ни одного Ардуино на хватит :)))

 

 

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

Ух))) как много информации))) Последняя картинка это что-то из области болезней небом) Я как больной больше первой мировой - 12 кнопок даже не факт если смогу пристроить) Да и не люблю я джой с тонной кнопок - предпочитаю такие операции как например свет в кокпите или там например запустить двигатель - с клавы делать - букву легче запомнить чем номер кнопки... Обзор мне удобен через freetrack. Потому - 4 аналоговых оси.... ну 6-8 кнопок (или часть тумблерами, подумать надо)
Короче  как я понял нужна мне микро ардуино. Бум заказывать. К ней еще что-то надо такое.... микросхемное? В том смысле можно ли на "голой" ардуино, подключив энкодеры и кнопки получить начинку джоя? или нужны расширения?
А пока это все будет идти из далекого Китая, надо будет заняться механикой. Ссылочку дали очень хорошую))

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Если б кто-нибудь подсказал бы неплохой бесплатный авиасимулятор, то мне стало бы интересно собрать электронику и полетать)

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

Ну.... первая мировая - Rise of flight - он бесплатный (условно - ибо не все самолеты открыты - но имеющихся хватает)
не сказать чтобы симулятор - но в режиме исторического боя War thunder - этот вообще бесплатный....

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Просто попробовать можно и в Google Earth в меню Инструменты/Войти в имитатор полета.

Посмотреть можно тут: https://youtu.be/PX0-voWK4mw

Тут: https://youtu.be/bhFZuDpS-tY

Роликов в тырнете завались.

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

кнопок можно и больше чем на картинке. 74hc165

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Как я понял, нужно подключить датчики/кнопки, залить в Arduino прошвку отсюда: https://sites.google.com/site/mmjoyproject/prosivka, установить драйвер Arduino-джоя и настроить джой конфигуратором MMJoy2.
И вперед!!!

Никаих скетчей писать не нужно. Вся обработка ведется в компе.

И да поправит меня мудрейший...

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

Олег - ну тогда вобще песня! Пошел покупать ардуину)))

 

Вот нашлась на Али (а можно публиковать ссылки? естественно не реклама...) - но перевод китайцев коряв... И я в сомнениях - это оно, или нет? http://ru.aliexpress.com/item/Leonardo-R3-Pro-Micro-ATmega32U4-Board-For-Arduino-Compatible-IDE-free-USB-cable/1893754883.html?spm=2114.30010708.3.21.iwxhIA&ws_ab_test=searchweb201556_9,searchweb201644_4_505_506_503_504_301_502_10001_10002_10016_10005_10006_10012_10003_10004_10007,searchweb201560_5,searchweb1451318400_-1,searchweb1451318411_6452&btsid=e9c310f2-39f9-43d2-903d-be697016e9e1

P.S. Однако возможности этого "конструктора" меня зацепили... Я думаю что надо бы еще сделать автоматическую поливальную систему для растений))) но это не в этой теме, да и мне кажется что после джойстика вопросов будет куда меньше)

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Ты нашёл то, но не проще/мньше/дешевле ли это?)

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

Опять же перевод смутил еще больше))))  Да и разница в цене несущественна, учитывая будущую "настульную" механику, размер не сильно имеет значение, а функционал типа больше.  Но в принципе можно и это)) Короче заказываю)) Хотя сейчас еще энкодеры погляжу, а то все ругают датчики Холла... Вот ЭТО те самые энкодеры ( или ЭТО), которые могут заменить датчики Холла на аналоговых осях?
 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Верите - нет, то же самое в маленьком формфакторе)) как уно и нано.

 

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

Верю) Тогде действительно проще и дешевле взять микру

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Насчет поливалки для растений. Здесь на форуме такуя тема попадалась.
Еще рекомендую заочно поучиться тут: https://www.coursera.org/learn/roboty-arduino
Для общего развития самое то.
Курс, как я понимаю, бесплатный, а для получения сертификата нуно заплатить бабосы и пройти экзамены.
Четвертая неделя курса так и называется "Как полить цветок из другого города".
 

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

OmertaJazz пишет:

Опять же перевод смутил еще больше))))  Да и разница в цене несущественна, учитывая будущую "настульную" механику, размер не сильно имеет значение, а функционал типа больше.  Но в принципе можно и это)) Короче заказываю)) Хотя сейчас еще энкодеры погляжу, а то все ругают датчики Холла... Вот ЭТО те самые энкодеры ( или ЭТО), которые могут заменить датчики Холла на аналоговых осях?
 

Поясню, в чем может быть засада энкодеров и резисторов.
Угол качания ручки по крену и тангажу примерно -30 - +30 градусов, у педалей меньше.
На весь диапазон качания желательно получать примерно 512 импульсов, а обычные энкодеры дают гораздо меньше, если их напрямую посадить на оси джойстика.
Вот тут и нужно искать либо правильный :) экнодер, либо заморачиваться с "повышающей" механической передачей на энкодер/резистор.
Странно, что никто не предлагал/пробовал делать оптические датчики со светодиодом, фоторезистором и заслонкой, установленной прямо на джойстике.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Олег М. пишет:

Странно, что никто не предлагал/пробовал делать оптические датчики со светодиодом, фоторезистором и заслонкой, установленной прямо на джойстике.


Когда речь идет о демонстрации фотоэффекта на школьной лабе - там все предельно просто. А когда нужно на 60 угловых градусов получить разрешение в 512 отсчетов, да еще в миниатюрном исполнении, то не всякий завод осилит. Посмотрите цены и размеры промышленных энкодеров. В 70-х годах проскакивали статьи с описанием фотоэлектрических педалей для электромузыкальных инструментов. Размеры - соответствующие, разрешение - никакое. Чисто "музыку сбацать". Баловство.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну что то по моему Олег М. загнул. ну зачем такая точность? чтобы было?

Sinister
Offline
Зарегистрирован: 14.06.2012

Можно собрать на KMZ41 датчики осей, магниты выдрать из компьютерных сиюдюков. Начинал с таких при переделки джоя. Сейчас стоит такой на стояночном тормозе правой педали. Как включу комп выложу схему на этом датчике.

Повышающая механика даст люфты, соотвественно будет дребезг осей.

OmertaJazz
Offline
Зарегистрирован: 27.01.2016

Пофиг, делаю на Холлах, с ними мне хоть все понятно, а перестанет устраивать - вот и будет повод модернизации. Лучшее - враг хорошего. Еще не факт что мех. часть меня устроит)

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

jeka_tm пишет:

ну что то по моему Олег М. загнул. ну зачем такая точность? чтобы было?

Пользуясь сандартным драйвером винды я вижу, что при калибровке джоя по осям крен/тангаж/курс получается вся шкала 128 у.е :).
Действительно, тогда получается, что этого вполне достаточно.
Но почему-то на форуме мегаджой очень радуются каждому повышению разрядности АЦП. 1024 и выше.

Хотя получается, что 128 вполне хватит.
Более того, я почти уверен, что собственно СИМУ (проге-симулятору) тоже вполне достаточно 128 градаций полжения органов управления.

 

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Duino A.R. пишет:
Олег М. пишет:

Странно, что никто не предлагал/пробовал делать оптические датчики со светодиодом, фоторезистором и заслонкой, установленной прямо на джойстике.

Когда речь идет о демонстрации фотоэффекта на школьной лабе - там все предельно просто. А когда нужно на 60 угловых градусов получить разрешение в 512 отсчетов, да еще в миниатюрном исполнении, то не всякий завод осилит. Посмотрите цены и размеры промышленных энкодеров. В 70-х годах проскакивали статьи с описанием фотоэлектрических педалей для электромузыкальных инструментов. Размеры - соответствующие, разрешение - никакое. Чисто "музыку сбацать". Баловство.

Если помните, чел хочет сделать джой  для самолета первой мировой. Там размеры "джоя" порядка метра (700-800 мм). Здесь минитюаризация как бы ни к чему.
 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Олег М. пишет:

Но почему-то на форуме мегаджой очень радуются каждому повышению разрядности АЦП. 1024 и выше.

это как с мышками, чем выше dpi чем круче мышка))) да много таких примеров

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

В защиту мышей ;)
Взял где-то в тырнете: "..Максимальное разрешение светодиодных (оптических) мышек составляет всего 1800 dpi, в то время как лазерная мышка имеет разрешение 5700 dpi."
Простой расчет показывает, что даже  обычную оптическую мышку с разрешением 1800 dpi для получения 128 отсчетов достаточно двигать примерно на +- 1 мм. А сам ведь оптический датчик не намного больше магниторезисторов с магнитами.
Если я правильно понимаю, досточно выдрать "мышиный" оптический датчик, правильно прикрутить его к джою и можно получить нужные точностные и линейные характеристики по двум осям.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ага только постоянно нужно будет выставлять в ноль, так как мышка отслеживает относительное перемещение, а не абсолютное, и это без учета того как это все собрать

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Многие игроки начинают "летать" на мышках. Там выставление на ноль делается просто подниманием мышки над столом ;)
И если у тебя джой сам спокойно стоит "в нуле", при его включении там и будет "0". Или сделай кнопку сброса.
Я себе на джой назначил одну из кнопок на установку в 0 курса ("педалей") . Там стоит резистор, колесико маленькое, устанавливать 0 вручную во время игры весьма проблематично. А криво стоящий руль направления мало заметен в игре, но качество в итоге снижает хорошо.

Sinister
Offline
Зарегистрирован: 14.06.2012

Схема на KMZ41:

Схема на HMC1501:

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Правильно ли я понимаю, что ОУ ставят из-за того, что используется лишь малая часть характеристики датчика, и этот рабочий участок нужно растягивать для получения приемлемого диапазона на выходе АЦП ?

Sinister
Offline
Зарегистрирован: 14.06.2012

В архиве по ссылке схемы, чертежи плат в SprinLayout, описания настроек, сохраннёные страницы сайтов переделки джоя Сайтек 52 на эти датчики. 
https://drive.google.com/file/d/0B2WeTV2e9ZbuTkdqQTNBU3QxZjg/view?usp=sh...

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Привет всем!
Кто-нибудь пробовал использовать миниджойстик: http://ru.aliexpress.com/item/1pc-Free-Shipping-Higher-Quality-Dual-axis-XY-Joystick-Module-PS2-Joystick-Control-Lever-Sensor-For/32400076473.html?spm=2114.10010208.100005.1.rYA1wc&isOrigTitle=true

Из-за его маленьких размеров трудно оценить линейность и максимальные углы.
У моего на глазок +- 20 град по обоим осям.
Ноль по оси Х=526, по оси Y=501.

Механика слабая, но на хатку может пойти.

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

для интереса посмотри

http://ru.aliexpress.com/item/White-New-nunchuk-nunchuck-controller-remo...

джойстик, 2 кнопки и гироскоп или акселерометр. подключается по i2c

в свое время я их брал по 70 рублей)))