1 Отредактировано Voldemar0 (13-12-2020 08:45)

Тема: USB joystick

Привет!

Возникло желание заиметь USB-шный джойстик с двумя аналоговыми двухкоординатными ручками. Наиболее близкие модели: Dynam 6CH USB и FlySky FS-SM600.
Но ценник у них довольно значительный: около 2 т.р.. C учётом того, что я не уверен, что мне оно нужно надолго (игрушку погонять одну хочу) - отдавать столько денег, да потом эта коробка будет валяться - совсем не хочется. Есть вариант на avito, но там стоимость + доставка = примерно столько же.

На али продаются такие вот платки:

https://aliexpress.ru/item/400096193863 … 2729900081

https://aliexpress.ru/item/33029941789. … 7281141122

Это как бы конверторы каких-то физических датчиков в USB-HID-JOY-протокол.
Написано, что они работают с некими MAME  (иногда SANWA) джойстиками, но я не могу найти инфу о том, что это за джои - аналоговые резисторы или просто кнопки ?

Идея в том, чтобы к этой плате прикрутить резисторы и сколхозить что-то простое и компактное для начала. Но важно, чтобы платы эти понимали именно резисторы (или какой-то аналоговый источник сигнала), а из китайского объяснения это совсем не очевидно.

В общем, любые идеи или знания по вопросу будут интересны.

2 Отредактировано Prol (14-12-2020 01:35)

Re: USB joystick

Коробку потом продать можно. Еще как вариант купить нормальный пульт(дороже) и шнурок к нему для симулятора(дешевый). Нормальный пульт потом продать проще. SANWA это марка аппаратуры для РУ моделей, была очень популярна лет 15-20 назад. Если самому колхозить, вместо резисторов лучше сразу датчики Холла ставить. А что за игрушка, может ей обычный com - порт сойдет через эмулятор? Могу вечером глянуть, что там по шнурку идет, скорее всего ШИМ смесь со входа передатчика.

Глянул, да там PPM код, можно самому синтезировать на микропроцессоре. http://www.poprobot.ru/theory/ppm-pcm
Шнурок типа такого https://aliexpress.ru/item/4000063727150.html

3

Re: USB joystick

Voldemar0 пишет:

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

В качестве идеи - могу предложить погонять джойстик Logitech Attack 3. Джойстик довольно известный в прошлом, я с ним и летал и на машине ездил, пока не купил руль. Так что если для побаловаться - нет смысла покупать, потом либо будет пылиться, либо продать за бесценок.

4 Отредактировано Voldemar0 (14-12-2020 10:35)

Re: USB joystick

:) Я несколько лет пытался руль g27 продать, вот этой весной, наконец, избавился от него :)
За 9 т.р.. (брал лет 5-6 назад за 8, но потом он сильно взлетел по цене).

Руль был в идеале, но никто не интересовался.

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

Классического db-25-порта на компе нет, да и классический порт - это две оси, а тут надо 4.
Но COM-ы есть, так что если можно как-то программно изобразить Joy over COM - это было бы решение.

---

Сами пульты у меня есть, несколько игрушечных, которые до весны не понадобятся (родственники дали подшаманить-поиграть, а дети уже, в целом, наигрались, так что можно экспериментировать) и есть Hubsan ht012d - но там тоже не датчики Холла. Выходов на комп нет ни у какого, но, возможно, если поковыряться как следует внутри, найти что-то можно.

---

2prol:
Я правильно понимаю, что этот шнурок

https://aliexpress.ru/item/400006372715 … 0163424666

изображает USB-джойстик , при этом он получает информацию от ручек в виде PPM -кода ?
Или это виртуальный COM ?

5 Отредактировано Prol (14-12-2020 13:02)

Re: USB joystick

Voldemar0 пишет:

Хотя не обязательно эту, можно любой халявный эмулятор квадрокоптера, просто эта сходу заработала на компе и настройки вроде очень наглядные.
...изображает USB-джойстик , при этом он получает информацию от ручек в виде PPM -кода ?
Или это виртуальный COM ?

Я уже не помню, как конкретно он выбирается в симуляторе, на компе он появляется в виде
HID-совместимый игровой контроллер и USB-устройство ввода, то есть не com. На входе джек 3.5 с PPM. Использовал с симулятором FMS(квадрокоптеры там тоже есть), он более точно передает физику, то есть для обучения реальному управлению. Игровой составляющей в нем нет.

Можно еще с другой стороны зайти, но там уже другие ценники и возможности.
https://www.avsim.su/forum/uploads/mont … 794349.jpg

По датчикам Холла. https://sfw.so/1149033286-ustanovka-d...dzhoystik.html И так нелегко управлять, а шумящие резисторы вконец выбешивают.

6

Re: USB joystick

Я ещё вспомнил, когда-то давно знакомый делал джойстик для полётов по популярному проекту MMJOY: https://sites.google.com/site/mmjoyproject/
Может, информация пригодится. Можно не только сделать свой джойстик с нуля, но и отремонтировать вышедший из строя.

7 Отредактировано Voldemar0 (14-12-2020 13:58)

Re: USB joystick

Resume:
Я так понял, что PIC-Serial - это протокол, похоже, реализованный только в FlyModelSim. Хотя он и выглядит очень вкусно. Его можно легко получить из PPM привлекая PIC-контроллер и есть готовые прошивки для этого. Но это будет иметь смысл, если хоть с одного пульта я сниму PPM. Если же цепляться на прямки к резисторам - то либо делать сразу конвертор аналог->PIC-COM или аналог->PPM, а дальше делать PPM->PIC-COM-конвертор, что выглядит двойной работой.

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

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

----

Вообще, цель всего этого: научиться летать на квадре в режиме честного (без лагов) FPV.
Я как-то попробовал это и сходу понял, что нифига не могу даже оценить на какой высоте находиться квадр - то ли падает, то ли взлетает. А суперцель: в поездках по всяким тёмным сибирским дебрям иметь возможность посмотреть с высоты на дорогу. Заросли, лужи, топи, болота и т.д. Возможно, пролететь под кронами корабельных сосен, коих у нас полно (у них ветви только вблизи кроны, ниже - десятки метров идеально ровный голый ствол). GPS они глушат неплохо, со спутника тоже ничего не видно, так что выше крон взлетать даже не стоит, но пролететь над просекой, которая похожа на дорогу, было бы полезно.

8

Re: USB joystick

Если планируется летать, то пульт все равно понадобится.

9

Re: USB joystick

Собрал MJoy
http://www.joysticks.ru/joysticks/handmade/mjoy.shtml                                                               
Работает :)
Придумаю аттенюаторы для согласования с пультом и сделаю печатку.

Post's attachments

DSC00001.jpg, 102.68 kb, 621 x 443
DSC00001.jpg 102.68 kb, 10 downloads since 2020-12-16 

10

Re: USB joystick

Мощно! Особенно интересен выбор макетки :) :)

11 Отредактировано Voldemar0 (17-12-2020 12:15)

Re: USB joystick

У меня есть ещё более интересная макетка: ударопрочная утяжелённая :))
Её большое преимущество - она по столу не бегает за проводами.

Это я хитрый драйвер для десятка светодиодов мощных делал.
Vin = 30..50v, Iout = 500 ma, Vout = ~30v + тепловая защита светодиодов.

Post's attachments

dsc02808s.jpg, 78 kb, 648 x 432
dsc02808s.jpg 78 kb, 11 downloads since 2020-12-17 

12

Re: USB joystick

Расковырял пульт, на резисторах всё идеально: 0-3.3v, вообще без аттенюаторов можно завести на мегу, только резисторы защитные добавить.

Решил поковырять протокол обмена между процом и трансмиттером.
Скорее всего обмен двунаправленный.
Трансмиттер имеет 8 лап. Судя по замерам, тут используется двунаправленная SPI-шина,
дополненная тремя дополнительными сигналами. Назначение пинов следующее:
1 - общий
2 - синхронизация по словам (инверсный)
3 - синхронизация по битам (прямой). На каждый низкий уровень "2" тут пробегает 16 высоких уровней.
4 - данные.
5 - похоже, что это сигнал от приёмника к ЦП о том, что он готов к обмену. Этот сигнал на некоторое время падает, когда меняются следующие два сигнала. В этот момент сигнал "2" замирает.
6, 7 - похоже, это сигналы включения передатчика или приёмника. Они меняются строго с частотой 100 Гц и являются противофазными.
8 - питание 3.3v.

К сожалению, такое обилие линий как бы намекает на то, что тут явно не PPM или что-то подобное.
Скорее всего, передатчик получает слово и пуляет его в эфир, возможно, как -то дополнительно кодируя (помимо обычной модуляции).

Пакеты обмена (если предположить, что каждый сеанс/фрейм ограничен переключением линий 6, 7) содержат довольно много байт, несколько десятков. Хотя, возможно, там просто несколько повторов одного фрейма.

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

13

Re: USB joystick

Может, по напряжению лучше защитить не резисторами, а стабилитронами или супрессорами?

14

Re: USB joystick

> Супрессоры тут - слишком серъёзно :)

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

Можно просто диоды на землю и на питание кинуть.
Но резистор всё равно нужен.
Если бы серию делал - тогда, да: есть сборочки маленькие со всем фаршем: и стабилитроны и диоды....
Где-то даже валяются вроде.

---

Полетал в FMS - там почти всё идеально, только почему-то из 6 осей пульта он видит только 5.
Хотя винда видит все шесть. Но в FMS нет квадра :(((. Надо поискать, мож где-то скачать можно модели...

А вот rotorcross не видит выше 4 осей (причем не тех, которые видит FMS :), но у него странное восприятие ручек: он почему-то видит только половину хода: от центра и выше. Ниже не хочет видить.
Пока не нашел, как ему объяснить.

В виндовой панели всё нормально работает - полный размах, калибровку можно сделать нормально....

15

Re: USB joystick

Voldemar0 пишет:

Но в FMS нет квадра :(((.

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

16

Re: USB joystick

Voldemar0 пишет:

> Супрессоры тут - слишком серъёзно :)

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

Можно просто диоды на землю и на питание кинуть.

Я использую BAT54S - очень удобно, в одном корпусе два диода последовательно и падение малое. Рекомендую :)

17

Re: USB joystick

Ну я тогда рекомендую tpd2e001*   :)
Подходит даже для USB-шных шин.
Защищает сразу две линии, содержит для каждой линии пару диодов и стабилитрон.

18 Отредактировано AlexBel (18-12-2020 10:12)

Re: USB joystick

Знакомая штука, я подобное использовал для защиты HDMI, только не по 2 линии, а по 4 - RCLAMP0574. Но они мелкие, их на самодельные платы паять затруднительно, а SOT23 - без проблем, особенно там, где нет больших частот и не очень критична ёмкость защитных диодов.

19 Отредактировано Voldemar0 (18-12-2020 16:30)

Re: USB joystick

Нашел одну модельку тут
http://rc-aviation.ru/mgamesim/simulato … drokoptera

20

Re: USB joystick

В общем, от rotorcross так и не добился правильного понимания хода ручек. Настроек мало, но зато вид там хороший. У FMS всё наоборот: не хватает FVP, да и когда камеры сбоку - тоже неудобно получается, например, нельзя коптер поставить под определённым углом к себе. Не нашел возможности включить у коптера хотя бы горизонтальную стабилизацию. Зато джой работает по всем 4 осям - всё ровно, полный ход ручек.

Похоже, придётся лезть в steam и там подбирать что нибудь бюджетное.

21

Re: USB joystick

Voldemar0 пишет:

Похоже, придётся лезть в steam и там подбирать что нибудь бюджетное.

А потом на рутрекер за этим самым бюджетным :)

22 Отредактировано Voldemar0 (28-12-2020 19:19)

Re: USB joystick

Попробовал ещё две игрушки:

fpv freerider - косячит с пультом точно также как и rotorcross.

fpv air II - вот тут интересно: сперва тоже косячила, но у неё в углу настроек есть интересная галочка "Taranis / BFlight". После её установки всё заработало почти идеально.
А вот тут
https://www.youtube.com/watch?v=XlR5eqm1aKE
рассказывают о настройке пульта Taranis для fpv freerider. И там суть как раз в чём: обучают пульт выдавать значение в диапазоне [0..50] вместо диапазона - [-50..+50]. Похоже джои бывают разных видов ...
И надо покопать прошивку MJoy на тему этой коррекции.

23

Re: USB joystick

Маленько подшаманил прошивку - rotorcross заработал.

Но - что интересно: под WinXP и Win8 он по разному видит оси (как бы нумерация отличается).
И на встроенной видяхе (внешняя как раз на прошлой неделе кони двинула :( ) он че-то рисует всё неправильно.

Суть бага прошивки пока не понял, но всё крутиться вокруг выдаваемых значений и таблицы HID Report Descriptors - там описывается разрядность, диапазоны крутилок, их количество и всё такое.
То ли таблица заполнена неверно, то ли проги её не сильно смотрят и расчитывают на то, что джой должен выдавать всё как-то "стандартно"... Пока просто уменьшил разрядность выдаваемых данных на один бит и выдача теперь беззнаковая. HIDRD не трогал. Игровым прогам нравиться, но виндовая панель управления явно потеряла понимание ситуации. Буду дальше копать.