1530

Начал собирать джойстик. И куда меня это завело

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

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

Вступление

Мой хороший знакомый Саня (Лосяра) поделился ссылкой на джой, проект показался интересным, да и к тому же очень не хватало РУДа для симуляторов. (играю в DCS, Ил-2 Штурмовик, War Thunder).
В основу лег вот такой проект от товарища MagniBY https://www.thingiverse.com/thing:4935709 , который в свою очередь, брал наработки пользоватей @busel и @propeler с форума "Ил-2: Штурмовик".
Отличие моей версии - буду использовать платы сдвиговых регистров.

4 оси, 2 крутилки потенциометров, 5 тумблеров, 1 джойстик (как на джойстиках от плойки/Xbox), 3 хатки (5ти позиционные кнопки), 5 кнопок.

Прошивка для платы - Freejoy

Комплектующие и цены

Общая стоимость проекта - 11 тыс. руб.
* Из них комплектующие - 4200 руб. 3д печать - 7000 руб. Заказывал у этих товарищей - https://3ddworld.ru/ Кажется, можно было найти дешевле. Если есть свой принтер, то на пластик ушло бы тысячи 2-3.

Многие лоты на Али составляли бОльшее количество деталей, нежели мне было нужно + стоимость доставки уже включена в цену.
Итак, комплектующие и инструменты:

Болты, шурупы и пр.:

  • M4 болт 20mm - 26 шт

  • M4 гайка - 32 шт

  • M3 болт 10mm - 36 шт

  • M3 болт 20mm - 8 шт

  • M3 гайка - 8 шт

  • M2 болт- 8 шт

  • M1.7 болт - 4 шт

Процесс сборки

1. Прошивка.
Первое что я сделал - подключил программатор и прошил плату. Это делается один раз. В дальнейшем при изменении конфигурации пинов - просто подлючаем по USB плату и меняем в программе что нам нужно, программатор ST-link больше не потребуется.
Ниже детали, как накатить прошивку:

Скачиваем утилиту https://www.st.com/en/development-tools/stsw-link004.html и прошивку FreeJoy (ссылка на последние релизы)

Подключаем программатор ST-Link v2 как показано на рисунке ниже (сверяйтесь с подписями контактов на программаторе и плате контроллера):

фотка с github freejoy

фотка с github freejoy

Далее Подключаем программатор ST-Link v2 к компьютеру;

Запускаем программу ST-Link;

Нажмите в программе "File->Open File" и выберите файл с расширением .hex который расположен в архиве релиза FreeJoy;

Теперь вы увидите страницу загрузки бинарных кодов:

Нажмите "Target->Connect". После подключения устройства вы можете видеть такую информацию как ID устройства, размер флэш-памяти и семейство устройства в блоке сверху и просмотреть содержимое внутренней памяти в основном блоке:

На этом этапе может оказаться, что выдается такое сообщение: "STM32 cannot read memory. Disable read out protection and retry". Для того, что бы продолжить прошивку, необходимо нажать: пункты меню "Target", "Option Bytes" в окошке "Read Out Protection" (в левом верхнем углу) заменить "Enabled" на "Disabled" и нажать "Apply".

Нажмите "Targert->Erase chip" и "OK" в открывшемся окне;

Теперь нажмите "Target->Program & Verify" и в открывшемся окне нажмите "Start". Начнется программирование контроллера:

После успешного программирования контроллера отключите все соединения и подключите плату контроллера к компьютеру посреством MicroUSB кабеля.

FreeJoy устройство определится в системе как игровой контроллер.


2. Пайка осей
Начал я сразу с пайки осей - в джойстике для меня это была самая главная функция.

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

схема пайки датчика Хола и назначения контакта на плате STM32

схема пайки датчика Хола и назначения контакта на плате STM32

Схема поключения датчиков Хола.

Между левой и центральной ножками (если смотреть на датчик "спереди") напаиваем конденсатор.

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

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

Паяем датчики Хола, сразу примеряем как они ложатся в паз (черная деталь на фото)

Правую ножку паяем на контакт А7, а в программе FreeJoy Configurator назначаем пину А7 значение Axis_Analog.

на фотке - уже промеченные мной контакты платы. А7-А0 под оси и крутилки, остальное идет под кнопки (сдвиг регистры)

на фотке - уже промеченные мной контакты платы. А7-А0 под оси и крутилки, остальное идет под кнопки (сдвиг регистры)

Далее в программе на вкладке Axes Config в выпадающем списке выбираем нашу ось и пин А7. И записываем в плату (подключаем по USB и жмем Write Config to device).

После чего не отключая от ПК плату можем протестировать - поднести магнит к дачику на 0.5-0.7 мм и покрутить - в программе увидим что значение оси изменяется.

Мы великолепны - теперь отключаем плату от ПК и напаиваем остальные 3 датчика Хола аналогичным способом (правые ножки паяем на пины А6-А4, центральные на питание 3.3V, левые - на GND), прописываем в программе FreeJoy значения пинов, не забывая записывать наши изменения (Write config to Device).
Готово, укладываем дачики холла в джойстик. Собираем ручки осей (подшипники вставляем в пазы напечатанных деталей, наклеиваем фетр, собираем ручки).

ручка газа в сборе

ручка газа в сборе

фетр для "загрузки" осей, держится хорошо,+ прижимной скобой можно регулировать податливость ручки газа

фетр для "загрузки" осей, держится хорошо,+ прижимной скобой можно регулировать податливость ручки газа

Прижимаем фетр скобкой и закручиваем

запасайтесь цветными проводами! иначе придется клеить бумажки и нумеровать - что не так удобно (совсем не удобно)

запасайтесь цветными проводами! иначе придется клеить бумажки и нумеровать - что не так удобно (совсем не удобно)

И готовим ручку к прокладке проводов. В идале брать бразноцветные, у меня были черные - поэтому пронумировал их бумажками

3. Пайка кнопок, тумблеров, джойстика

Здесь мы имеем дело с а) платой сдвиговых регистров б) 5ти позиционными кнопками, (6 лапок) в) джойстиком. г) кнопками (4 лапки)

Первым делом разберемся и спаяем тестовый вариант, проверим что всё работает.
Берем сдвиговый регистр и припаиваем его к плате.
Сдвиговый регистр паяем так: вставляем коннектор с проводами с той стороны, где подписано DATA OUT (смотри на плату сверху). На моем фото это ряд контактов наверху.

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

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

GND припаиваем к плате STM32 на землю GND.

VCC припаиваем на 3.3V.

CS припаиваем на контакт B11 на плате STM32.

DATA припаиваем на B1.

SCK припаиваем на B10.

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

Начинаем паять кнопку - нам нужно припаяться к земле и к одному из проводов в центре, паяем наискосок (замыкание идет в центре, поэтому упрощаем себе задачу):

Готово - подключим плату STM32 по USB к ПК, в программе FreeJoy назначим контактам

B11 - ShiftReg Latch,

B1 - ShiftReg Data,

B10 - ShiftReg CLK

накидал себе в экселе распиновку на плате STM32 и сдвиговых регистрах, чтобы не запутаться

накидал себе в экселе распиновку на плате STM32 и сдвиговых регистрах, чтобы не запутаться

Соответсвие контактов на регистре пинам на плате STM32 и назначениям в программе Freejoy

На вкладке Shift Registers выбираем тип регистра CD4021 Pull Up, прописываем количество кнопок = 24 (на фото я уже припаял 2ю плату регистров)

Записываем на устройство, открываем вкладку Button Config и проверяем что наша кнопка работает при нажатии.

Кнопки в итоге спаиваем по схеме - Крайние провода это земля, их можно припаивать цепочкой, второй контакт паяем на провода посередине коннектора, не соединя между собой:

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

Один коннектор дает возможность припаять до 4 проводов питания кнопок. Можно припаивать одну кнопку к разным коннекторам (т.е. земля от одного коннектора, а провод питания идет от другого коннектора).

уместить всё в ручку оказалось еще той задачей. Хорошо, что использовал сдвиговые регистры, иначе с матрицей кнопок намучился бы..

уместить всё в ручку оказалось еще той задачей. Хорошо, что использовал сдвиговые регистры, иначе с матрицей кнопок намучился бы..

Далее я паял джойстика, тумблеры и крутилки (потенциометры).
Дальнейший процесс опишу в ближайшее время + надо схему всего этого чуда накидать.

Итоговый результат

Видео, где показываю работоспособность девайса

Спасибо за внимание. Надеюсь, статья пригодится и поможет.

Лига 3D-принтеров

3.4K пост14.1K подписчик

Правила сообщества

Запрещено хамство и оскорбления, уважайте чужой опыт и труд

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества