Время чтения: 15 минут
Делюсь своим опытом сборки. Сразу скажу - проект доступен новичку, т.к. и я паяльник взял в руки незадолго до... Подписывайся, чтобы не пропустить новые полезные статьи!
Вступление
Мой хороший знакомый Саня (Лосяра) поделился ссылкой на джой, проект показался интересным, да и к тому же очень не хватало РУДа для симуляторов. (играю в DCS, Ил-2 Штурмовик, War Thunder).
В основу лег вот такой проект https://www.thingiverse.com/thing:4935709
4 оси, 2 крутилки потенциометров, 5 тумблеров, 1 джойстик (как на джойстиках от плойки/Xbox), 3 хатки (5ти позиционные кнопки), 5 кнопок.
Прошивка для платы - Freejoy
Комплектующие и цены
Общая стоимость проекта - 11 тыс. руб.
* Из них комплектующие - 4200 руб. 3д печать - 7000 руб. Заказывал у этих товарищей - https://3ddworld.ru/ Кажется, можно было найти дешевле. Если есть свой принтер, то на пластик ушло бы тысячи 2-3.
Многие лоты на Али составляли бОльшее количество деталей, нежели мне было нужно + стоимость доставки уже включена в цену.
Итак, комплектующие и инструменты:
- Паяльник - 352 руб
- Самоклеящиеся кружки для мебели - 4 шт - 50 рублей
- Arduino ky-023 joystick - 1 шт - 52 руб.
- Ceramic capacitor 50V 104 100nF 0.1uf - 4 шт - 59 руб
- Циллиндирческие магниты (5x10mm) - 4 шт - 306 руб.
- 5ти позиционные переключатели 5-Way Switch 10x10x10mm Multi Direction Switch Touch Reset Button - 3 шт- 169 руб.
- Потенциометры (WH148) 10K Ohm (B10K) - 2 шт - 220 руб.
- Колпачки для потенциометров - 2 шт - 80 руб
- Кабель для подлкючения к ПК - Micro-USB 5pin Micro USB 2.0 Male to USB 2.0 B Type Female Connector Cable 30cm With Panel Mount Hole cables - 1 шт - 132 руб.
- Провода (лучше тонкие) - 24-28 AWG - 366 руб.
- Эпоксиный клей / клей момент - 1 шт
- Плата сдвиговых регистров + провода с коннекторами. Заказывал у этого товарища с форрума Ил-2 (пишите в личку или в тред на форуме). - 2 шт - 1940 руб.
Болты, шурупы и пр.:
- 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 как показано на рисунке ниже (сверяйтесь с подписями контактов на программаторе и плате контроллера):
Далее Подключаем программатор 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. Пайка осей
Начал я сразу с пайки осей - в джойстике для меня это была самая главная функция.
Для проверки что у нас уже всё будет работать - спаял по схеме первый датчик.
Между левой и центральной ножками (если смотреть на датчик "спереди") напаиваем конденсатор.
Правую ножку паяем на контакт А7, а в программе FreeJoy Configurator назначаем пину А7 значение Axis_Analog.
Далее в программе на вкладке 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
На вкладке Shift Registers выбираем тип регистра CD4021 Pull Up, прописываем количество кнопок = 24 (на фото я уже припаял 2ю плату регистров)
Записываем на устройство, открываем вкладку Button Config и проверяем что наша кнопка работает при нажатии.
Кнопки в итоге спаиваем по схеме - Крайние провода это земля, их можно припаивать цепочкой, второй контакт паяем на провода посередине коннектора, не соединя между собой:
5ти позиционные кнопки паяем аналогично, только контактов понадобится больше. 1я ножка - это земля (идет к крайним проводам коннектора), остальные ножки паяем к центральным проводам коннекторов сдвигового регистра. Замыкание цепи происходит внутри между 1м контактом и N-ным.
Один коннектор дает возможность припаять до 4 проводов питания кнопок. Можно припаивать одну кнопку к разным коннекторам (т.е. земля от одного коннектора, а провод питания идет от другого коннектора).
Далее рассмотрим пайку джойстика, тумблеров и потенциометра.
... допишу в ближайшее время)
Итоговый результат
Видео, где показываю работоспособность девайса
https://dzen.ru/video/watch/66a6d6b193ecc5541046e996?rid=2502164914.1102.1722266304455.77324
Спасибо за внимание. Надеюсь, статья пригодится и поможет.
Не забудь подписаться!
Также ссылки на мой Discord, если появятся вопросы/предложения, ник пользоватлея Rozjkeee.
Ссылки на мои стримы, смотри где удобно:
- Стрим на Youtube: https://www.youtube.com/c/rozjkeee
- Стрим на Twitch: https://www.twitch.tv/rozjkeee
- Стрим в VKPlay: https://vkplay.live/rozjkeee
Если захотелось поощрить мои труды - ссылка на бусти ниже:
https://boosty.to/rozjkeee/donate