mega_mozg

MMJOY2 (бесплатная прошивка и софт для самодельного контроллера джойстика)

MMJOY2 (бесплатная прошивка и софт для самодельного контроллера джойстика)

аппаратный USB 2.0, обновление данных до 1000 пакетов в секунду.

возможность изменения USB VID/PID/Названия, можно подключать несколько платок как разные независимые игровые устройства.

 

ввод до 8 осей и 128 кнопок.

подключение оси аналоговые: резисторы, холлы, магрезы. можно подключить через внешние 12 битные(4000 отсчетов) АЦП линейки MCP3201/3202/3204/3208.

подключение оси цифровые: TLE5010/5011, KMA200, KMZ60+MCP3202.

подключение кнопки: матрица кнопок через диоды, сдвиговые регистры 74HC165, сдвиговые регистры HEF4021B (ручки джойстиков Defender Cobra M5, Thrustmaster FLCS/Cougar/Warthog).

функции работы с осями: калибровка, инвертирование, фильтр-сглаживание шумов, мертвые зоны, кривые отклика, зум, оси в кнопки.

функции работы с кнопками: хатка, тумблеры, енкодеры, софт-тумблеры, шифты, кнопки в оси.

составное устройство: эмуляция клавиатуры, эмуляция мышки.

 

вывод светодиоды WS2811/2812 RGB до 20 штук (можно задать любой оттенок RGB любому светодиоду в цепочке независимо от других), символьные числовые экранчики MAX7219 до 4х экранчиков (всего 32 знака, также каждый управляется независимо), !!!В РАЗРАБОТКЕ стрелочные индикаторы MicroServo G9 до 4 штук (ход стрелки 180 градусов) В  РАЗРАБОТКЕ!!!

 

 

основная страничка где будут инструкции и статьи, а так же можно скачать обновления

 

СОДЕРЖИМОЕ АРХИВА

 

"MMJoySetup" - программа конфигуратор, так же через неё выполняется обновление прошивки.

"MMJoyPanel" - программа для связи с игрушками, читает данные анализирует по правилам пользователя и отправляет в контроллер.

"MMJoyLEDControl" - программа для ручного управления светодиодами, параметры передаются через командную строку.

папка "Pictures" - картинки подсказки куда что можно подключать к контролерам.

папка "PCB" - хранилище разных версий платок, дополнений, разводок сенсоров/осей/кнопок в формате SprintLayout6.

папка "Drivers" - коллекция драйверов для разных платок контроллеров.

папка "Firmware" - хранилище прошивок.

папки "JoyLoader_arduino" / "JoyLoader_atmeldfu" / "JoyLoader_teensy2" - служебные, тут хранятся программы прошивальщики.

папка "PanelProfile" - тут хранятся файлы настроек для программы "MMJoyPanel"

папка "Tools" утилитки для работы с джойстиками.

 

FAQ (обновлено 2016.05.22)

 

Какая разница между контроллерами?

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

Нашел в китае/местном магазине такую-то платку она подойдет?

Поддерживаются только платки из списка: https://sites.google.com/site/mmjoyproject/kontrollery-sovmestimye-bazovye-platy

Для тех кто разбирается можно самому собрать свою платку с нуля или выбрать клона, основные условия чип из списка "at90usb646, at90usb1286, atmega32u4" питание 5 вольт и кварц 16Мгц.

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

Купил новую платку, как прошить?

Читаем https://sites.google.com/site/mmjoyproject/prosivka

 

Если есть проблемы установки драйверов Arduino на Windows 8.1?
Windows 8: Ошибка при попытке добавить драйвер в хранилище. http://www.woinfo.ru/windows-8-oshibka-pri-popytke-dobavit-drajver-v-xranilishhe.html
 
Что такое VID/PID/Poll?
Ключевые параметры USB устройства.
VID/PID - идентификаторы вендора(производителя) и продукта(линейка устройств у одного производителя), вводятся в шестнадцатеричном формате (0-9/А-F). Для ОС Windows эта пара является основной "зацепкой" для работы с устройством, два одновременно подключенных устройства с одинаковыми VID/PID будут вызывать ошибки.
Poll - интервал опроса джойстика ОС Windows, вводится кратно двум. опросы выполняются не чаще 1000 в секунду с указанным интервалом. 1 - 1000 опросов в секунду, 2 - 500, 3 - 256, 4 - 128.
для сравнения старичек "MJOY8" в быстрой версии Mercury имел 128 обновлений в секунду, "MJOY16" всего 64 обновления в секунду кстати столько же и Trustmaster HOTAS X.
 

Как подключить два(и более) устройства одновременно и независимо?

Вручную меняем VID и/или PID так чтобы у всех устройство они были разными.

 

Устройство в панели управления ОС Windows не открывается, или открывается с ошибками?

При первом подключении к ОС по ключам VID/PID запоминает текущую конфигурацию кнопок и осей. ОС не может предположить что конфигурация может изменится, поэтому возможны ошибки. исправляем заменой VID/PID на новые, которых раньше не было в ОС.

 

После применения конфигурации устройство не определяется?

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

 

Как что и куда подключить, ничего не понимаю?

если всё совсем плохо, настоятельно рекомендую раскуривать схему подключения осей и кнопок из классики MJOY8 например у Меркури http://mercury13.tut.su/files/mjoy/Mjoy_2011.png

разница лишь в том, что там все жестко зафиксировано 6 осей (на определенные ножки) и матрица кнопок 7*4(тоже на определенные ножки) а тут открыто пользователь сам решает сколько и какие ножки и на какие функции отводить.

 

Как подключить сенсоры Defender Cobra M5?

кобры было три версии:

первая версия контроллер на чипе "Atmega", там сенсор "МАРС" разработки ВКБ - не поддерживается.

вторая версия контроллер "Njoy32", так же сенсор "МАРС" разработки ВКБ - не поддерживается.

третья версия контроллер на чипе "PIC", сенсор аналоговый магрез. можно подключить как резистор или холл.

 

Какие резисторы можно подключить?

Физически работать будут любые, они бывают логарифмические(звуковые) или линейные. но нам для адекватного управления нужен линейный тип это наша маркировка "А" или импортная "B".

корпус может быть любой "крутилка" или "ползунок", главное это тип линейный.

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

 

Какие холлы можно подключить?

любые линейные аналоговые. типичные представители Honeywell SS495A, Allegro 1302.

 

Смотрел на подписи к контактам Arduino и назначил оси или кнопки "A0" - "A5". ничего не работает?

нельзя ориентироваться на метки Arduino. правильные имена для ножек контроллера нужно смотреть в картинках подсказках. правильные имена это названия ножек из документации ATMEL к своим чипам.

Разбор примера: "Arduino A0" это "F7", "Arduino A1" это "F6" и т.д.

 

Какие есть режимы работы кнопок/тумблеров?

"ТУМБЛЕР" - кнопка джойстика кратковременно срабатывает один раз когда тумблер включается и ОНА ЖЕ так же один раз когда тумблер выключается.
"ТУМБЛЕР ВКЛ" кнопка джойстика кратковременно срабатывает один раз когда тумблер включается.
"ТУМБЛЕР ВЫКЛ"кнопка джойстика кратковременно срабатывает один раз когда тумблер вЫключается.
если тумблер подключить и не указывать спец.режимов работы, то кнопка джойстика будет физически соответствовать положению тумблера в одном положении постоянно включена в другом постоянно выключена.
"СОФТ-ТУМБЛЕР" имитация работы тумблера но от простой одинарной кнопки, одно кратковременное нажатие кнопки и виртуальный тумблер переключается и фиксируется.

 

 

ПРИМЕРЫ ПЕРЕДЕЛОК

 

СТАРАЯ ШАПКА

 

MJoy

(давайте не будем плодить темы по сборке/настройке/покупке, пусть всё будет тут)

 

кто не знает что это такое, это самодельная электроника для вашего джойстика.

всей теме уже больше 10 лет, тем не менее проект живет и развивается.

 

MJoy8 - первый продукт в линейке, может поддерживать до 6 осей 24 кнопок + хатку.

самый простой в сборке и реализации, может быть собран на макетке:

diy_20mHz_1.JPGможет быть изготовлен на вытравленной плате:

Mjoy8_GVL.JPG

 

 

MJoy16 - следующий продукт в линейке, может поддерживать до 8 осей 96 кнопок + хатку и энкодеры.

уже не такой простой в сборке и реализации:

Mjoy16_bboard.JPG

 

Mjoy16_GVL.JPG

MJoy16.jpg

 

ну и собственно MMJoy это (пока еще) не новая схема, это новая прошивка для двух предыдущих продуктов.

новая прошивка работает в паре с программой конфигуратором:

mmjoy.PNG

вот некоторые функции:

отключение неиспользуемых осей и(или) кнопок.

настройка параметров USB (имени устройства, можно подключать сколько угодно к одному компьютеру)

настройка разных режимов отклика джойстика на действие с кнопкой (на нажатие, на отпускание, переключение кнопки)

настройка параметров сенсора оси(инвертирование, автокалибровка, режим относительной оси, режим когда ось работает от кнопок)

вот некоторые примеры как можно конфигурировать:

mmjoy_sample0.PNG

mmjoy_sample1.PNG

mmjoy_sample2.PNG

mmjoy_sample3.PNG

mmjoy_sample4.PNG

 

 

 

 

 

забыл добавить:

 

проект открыт для новый идей и людей

открыты исходные коды и программы и прошивки

 

всё можно взять тут https://code.google.com/p/mmjoy/

Изменено пользователем mega_mozg
medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я тута ))) спрашивайте радиотехника... фото насобираю выложу но хотелосьбы на долго (навеки вечные)...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собрал MJoy16 по инструкции (http://www.joysticks.ru/joysticks/handmade/mjoy16.shtml).

 

Прошивка 20140108 (https://code.google.com/p/mmjoy/downloads/list).

 

Как подцепить энкодеры?

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

При включении Энкодера как 2 кнопки, наблюдаетсся нечеткое срабатывание (когда крутиш медленно)

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет. С наступающим праздником всех. Хочу похвастатся вот недавно замутил такую штуковину

post-1013450-0-53885500-1393074827_thumb

post-1013450-0-10551500-1393074841_thumb

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

День добрый! С прошедшим праздником всех!

Теперь по поводу самодельных джойстиков и контроллеров. Скажите пожалуйста, прошивку контроллера MJoy16 War Thunder поддерживает или нет? Если у кого стоит данный контроллер и работает, отпишитесь пожалуйста. Просто я на этапе проектирования джойстика, и хотелось бы знать, работает данная система в игре или нет, и стоит ли тратить зря силы на разработку и дальше.

Заранее спасибо за ответ и помощь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

День добрый! С прошедшим праздником всех!

Теперь по поводу самодельных джойстиков и контроллеров. Скажите пожалуйста, прошивку контроллера MJoy16 War Thunder поддерживает или нет? Если у кого стоит данный контроллер и работает, отпишитесь пожалуйста. Просто я на этапе проектирования джойстика, и хотелось бы знать, работает данная система в игре или нет, и стоит ли тратить зря силы на разработку и дальше.

Заранее спасибо за ответ и помощь.

У меня самодельный джой на MJOY16, все нормально работает. РУС, РУД и педули.

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ребятки, а подскажите пожалуйста, как в MJoy16 реализована "хатка". Не в смысле подключения, а как она работает, на клаве нажимаем 8 смотрим в верх, 2 низ, потом нужно нажать 5 чтоб восстановить прежний вид, а тут как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ребятки, а подскажите пожалуйста, как в MJoy16 реализована "хатка". Не в смысле подключения, а как она работает, на клаве нажимаем 8 смотрим в верх, 2 низ, потом нужно нажать 5 чтоб восстановить прежний вид, а тут как?

вы путаете мягкое с теплым.

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

как конкретная игрушка откликается на те или иные кнопки - другое дело.

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

извините, но я так и не чего не понял. Если мы на "хатке"  нажимаем в право, обзор поворачивается на право,а затем отпускаем, обзор сам возвращается, или надо как на клаве 5 кнопку нажимат?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

извините, но я так и не чего не понял. Если мы на "хатке"  нажимаем в право, обзор поворачивается на право,а затем отпускаем, обзор сам возвращается, или надо как на клаве 5 кнопку нажимат?

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

Изменено пользователем Zona_Kem
medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Расскажу об интересных обновлениях:

1) теперь контроллеры поддерживают внешние АЦП (будем называть "цифровые сенсоры") фирмы Microchip MCP3201 / MCP3202 / MCP3204 / MCP3208 - подключение по цифровой линии SPI. первый одноканальный, все остальные многоканальные (4я цифра в модели). А так же старичек KMA200.

что это дает:

а) возможность вытянуть сенсор(или несколько сенсоров) очень далеко от контроллера (например в педалях) без потерь качества сигнала;

б) возрасла точность оцифровки до 12 бит, или 4096 отсчетов;

"MCP320x" очень приятные в работе, не требуют сложной обязательной обвязки и способны работать как есть.

post-59452-0-40221400-1394004241_thumb.p

например  MCP3201 + резистор, всё готово к работе.

основная страничка документации по цифровым сенсорам

 

2) аппаратные USB 2.0 контроллеры. пока работают на двух чипах "AT90USB646" и "ATMEGA32U4".

для "ATMEGA32U4" есть множество готовых плат разработки "Arduino micro" / "Teensy 2" / "ProMicro". 

что это дает:

а) первую очередь удобство работы с контроллером, не требуется внешний программатор. прошивка выполняется самой платой при подключении по USB;

б) скорость работы контроллера, снято ограничение (USB 1.1) 125 пакетов в секунду, и джойстик способен нащелкать до 500-700 обновлений осей/кнопок в секунду.

в) для готовых плат не нужно выполнять сложных паяльных операций;

основная страничка документации по USB 2.0 контроллерам

 

И отдельно про мою любимицу "ProMicro":

Это совместимая с "Arduino micro" платка, просто меньших размеров и не все ножки выведены.

Тем не менее она позволяет сразу использовать 6 встроенных АЦП осей и 36 кнопок (матрица 6*6).

Её главные плюсы это размеры 3,3мм*1,77мм можно запихнуть в любой корпус заводского джойстика, для модификации. И цена китайских клонов ~5$.

 

post-59452-0-27017100-1394005434_thumb.j

BR/BC - подключение матрицы кнопок; ADCXX - подключение осей.

 

Для удобства подключения можно на макетке набросать штырей выведенных по логике: отдельно оси / отдельно кнопки:

post-59452-0-46154800-1394005568_thumb.p

post-59452-0-27035900-1394005606_thumb.p

варианты от china

 

post-59452-0-57646100-1394005814_thumb.j

мой вариант чуть более сложной разводки (для модернизации HOTAS Saitek x35/x36), система

основной платы расширения (куда подключается промикро, устанавливается в РУД)

и дополнительной платы расширения (связана шлейфом с основной, устанавливается в РУС)

обе платы расширения имеют подключенный MCP3208(со своим стабилизатором напряжения 7805 на радиаторе) и каждая из них может подключить до 8 осей.

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

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

 

И полезные ссылки: Родной сайт ProMicro - Sparkfun Китайские клоны на EBAY ~5$

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в догонку:

post-59452-0-19426200-1394008428_thumb.p

родная утилитка для прошивки плат на USB 2.0 чипах.

 

поддерживает бутлодеры:

а) Atmel FLIP (родной Atmel, для тех кто собрал схемку самостоятельно);

б) Arduino;

в) Тeensy 2;

 

 

 

 

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Механика: Донор Saitek x35/x36, в РУС алюминевая механика на подшипниках, углы хода 25 градусов, загруза практически нет.
Электроника: USB 2.0 контроллер 'ProMicro', использовано 6 осей (X,Y и Throttle на холлах), хатка и 24 кнопки.

 

корпус РУС

post-59452-0-81716500-1394447957_thumb.j

 

корпус РУД

post-59452-0-52306400-1394447971_thumb.j

 

ручка РУС

post-59452-0-84251500-1394447965_thumb.j

 

общий вид с подсветкой

post-59452-0-79483400-1394448052_thumb.j

больше фото тут

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не хочется мне начинать тут флуд,и антимонии другие разводить,но только этот,и подобный ему труд несправедливо будет недооценить.Не знаю,взять ещё слова какие,тут похвала простая будет неуместна-у человека руки явно не кривые,да и растут из нужного им места.А что он для контроллеров "творит",не каждый может наваять такое-за нолик ставит "крестик":))))),бит за бит,за байтом байт-и вот прошивка для М-Джоя.Чтоб дальше не словопоносить тут,да и не выглядеть оленем,хочу сказать спасибо за ваш труд,надеюсь,все мы его ценим.

medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

P.S.  Чтоб гаджетом владеть таким,вирпил,задумайся под "Клинское",ученья свет в башке необходим,иначе будешь тыквой хеллоуинскою,такой "пример-другим наука",чем хныкать "вот бы,если б,мне бы",вирпилы-"голову вам в руки".Желаю всем удачи в небе!

medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

легким движением руки, пересажена ручка от раритета Suncom F15:

post-59452-0-40549000-1395214702_thumb.j

post-59452-0-66730500-1395214708_thumb.j

post-59452-0-47578600-1395214714_thumb.j

 

схема использованных плат расширения:

post-59452-0-85646700-1395214750_thumb.p

 

схема настройки в конфигураторе:

post-59452-0-34112100-1395214738_thumb.j

 

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а можно расписать назначение кнопок и хатки, какие функции управления они выполняют

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а можно расписать назначение кнопок и хатки, какие функции управления они выполняют

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

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На основе программно-аппаратного комплекса Мегамозга было модернизировано это "чудо" китайской электронной промышленности. Лимит по кнопкам не использован, можно ещё три подключить. Ручка на этом джойстике очень удобная, а вот нижняя часть не очень. Пришлось ставить утяжелитель, и руд программировать так, полный газ- вниз, иначе рычаг мешает РУС крутить.

post-1044818-0-39892400-1395728332_thumbpost-1044818-0-07865700-1395728358_thumbpost-1044818-0-62613600-1395728373_thumbpost-1044818-0-27821200-1395728438_thumb

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
"чудо" китайской электронной

а сенсоры по осям оптические оставил или на холлы переставил?

вижу кварц 20МГц, вопросов нет? все таки для атмега8 это нештатный "разогнанный" режим работы.

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Оставил оптику, холлы к люфтам критичны. Да и оптика уже готова была. Проверь личку, были непонятки, там описал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу