Найти тему
Rozjkeee

Джойстик РУД своими руками

Оглавление

Время чтения: 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.

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

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

  • 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 как показано на рисунке ниже (сверяйтесь с подписями контактов на программаторе и плате контроллера):

-2

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

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

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

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

-3

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

-4

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

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

-5

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

-6

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

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


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

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

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

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

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

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

-9

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

-10

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

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

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

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

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

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

-13

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

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

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

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

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

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

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

-14

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

B11 - ShiftReg Latch,

B1 - ShiftReg Data,

B10 - ShiftReg CLK

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

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

-16

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

-17

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

-18

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

-19

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

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

... допишу в ближайшее время)

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

-21

Видео, где показываю работоспособность девайса
https://dzen.ru/video/watch/66a6d6b193ecc5541046e996?rid=2502164914.1102.1722266304455.77324

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

Не забудь подписаться!

Также ссылки на мой
Discord, если появятся вопросы/предложения, ник пользоватлея Rozjkeee.
Ссылки на мои стримы, смотри где удобно:

Если захотелось поощрить мои труды - ссылка на бусти ниже:
https://boosty.to/rozjkeee/donate

-22