Собрал на Arduino Pro Micro джойстик из старого пульта.
Моя прошивка тут: sourceforge.net/projects/rc-usb-joystick/files/
Пришлось помучиться с конструированием USB дескриптора. Джойстик поддерживает оси X, Y, Throttle, Rudder, 1 кнопку.
На 9600 выдает координаты в последовательный порт (для отладки).
Моя плата распознается как Arduino Leonardo, естественно надо сделать калибровку. Джойстик заработал в симуляторе HotProps. В FreeRider почему-то не реагирует на оси.
Каталог libraries создала среда Arduino, когда я установил Sketchbook locations. Наверное, она хотела мне что-то сказать этим, но я не понял и оставил его пустым 😃
(включены в проект и модифицированы):
… подумал там должно быть это… а что модифицировать в библиотеках - они как я понял заточены под Мега32
вкурил… на фото показалось ПроМИНИ…перечитал дошло что ПроМИКРО.
ИНтересно, что для Леонардо скетч собирается, а для всех других плат нет…странно.
Блин, подумал что наоборот - Джойстик в качестве ручки управления коптером 😃,
а по сабжу - из любви к искусству оно конечно здорово, но врде есть просто переходники для управления в симах? У меня вон даже пульт Kyosho от Piper Cub работает.
Мне не хотелось изнашивать (и таскать с собой в поездки) реальный пульт. Переходник я отдал. Скетч работает под Leonardo, т.к. использует его встроенный настоящий USB (который не просто USB-COM).
Для пущего понимания не хватает схемки. А так - хорошая реализация, и вторая жизнь для стареньких пультов, которые и выкинуть жалко, и к делу не приспособить.
Егор, да какая там схемка то… перемнный резюк - три вывода - один на плюс, второй на минус, средний на микроконтроллер. Распиновка микроконтроллера в прошивке.
const int pinButton = 15;
const int pinX = A1;
const int pinY = A0;
const int pinThrottle = A2;
const int pinRudder = A3;
Гы =) В программу не смотрел. Тогда вопросов нету =)
Да, кнопка - тоже переключатель. Крайние выводы на плюс и минус, средний (перекидной) - на pinButton.
подумал что наоборот - Джойстик в качестве ручки управления коптером 😃,
Я пробовал в симуляторе летать на коптере с обычным джойстиком - абслютно не катит. Можно только висеть и медленно ползать по воздуху. С пультом же, все как у реального коптера.
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"41b8a4ac3df9550077792e83":{"_id":"41b8a4ac3df9550077792e83","hid":5271,"name":"Prikupets","nick":"Prikupets","avatar_id":null,"css":""},"497ec4283df9550077772a70":{"_id":"497ec4283df9550077772a70","hid":43414,"name":"gorbln","nick":"gorbln","avatar_id":null,"css":""},"4aa699843df955007776a487":{"_id":"4aa699843df955007776a487","hid":53341,"name":"Andrew1978","nick":"Andrew1978","avatar_id":null,"css":""},"4cc71da73df955007775ab86":{"_id":"4cc71da73df955007775ab86","hid":73930,"name":"Маныч","nick":"Маныч","avatar_id":null,"css":""},"50cb6bbd3df955007773cc15":{"_id":"50cb6bbd3df955007773cc15","hid":131077,"name":"Дмитрием_меня_зовут","nick":"Дмитрием_меня_зовут","avatar_id":null,"css":"user__m-banned"}},"settings":{"blogs_can_create":false,"blogs_mod_can_delete":false,"blogs_mod_can_hard_delete":false,"blogs_mod_can_add_infractions":false,"can_report_abuse":false,"can_vote":false,"can_see_ip":false,"blogs_edit_comments_max_time":30,"blogs_show_ignored":false,"blogs_reply_old_comment_threshold":30,"votes_add_max_time":168},"entry":{"_id":"567d39449970730077113ebc","hid":21205,"title":"USB джойстик для квадрокоптерных симуляторов из старого пульта","html":"<p>Собрал на <a href=\"https://www.sparkfun.com/products/12640\" class=\"link link-ext\" data-nd-link-orig=\"https://www.sparkfun.com/products/12640\" target=\"_blank\" rel=\"nofollow noopener\">Arduino Pro Micro</a> джойстик из старого пульта.<br>\nМоя прошивка тут: <a href=\"http://sourceforge.net/projects/rc-usb-joystick/files/\" class=\"link link-ext link-auto\" data-nd-link-type=\"autolink\" data-nd-link-orig=\"http://sourceforge.net/projects/rc-usb-joystick/files/\" target=\"_blank\" rel=\"nofollow noopener\">sourceforge.net/projects/rc-usb-joystick/files/</a><br>\nПришлось помучиться с конструированием USB дескриптора. Джойстик поддерживает оси X, Y, Throttle, Rudder, 1 кнопку.<br>\nНа 9600 выдает координаты в последовательный порт (для отладки).<br>\nМоя плата распознается как Arduino Leonardo, естественно надо сделать калибровку. Джойстик заработал в симуляторе HotProps. В FreeRider почему-то не реагирует на оси.</p>\n<p>Использованы файлы из библиотеки (включены в проект и модифицированы): <a href=\"https://github.com/MHeironimus/ArduinoJoystickLibrary\" class=\"link link-ext link-auto\" data-nd-link-type=\"autolink\" data-nd-link-orig=\"https://github.com/MHeironimus/ArduinoJoystickLibrary\" target=\"_blank\" rel=\"nofollow noopener\">github.com/MHeironimus/ArduinoJoystickLibrary</a></p>\n<!--cut-->\n<p><a href=\"https://fotki.yandex.ru/next/users/prikupets/album/134867/view/1979602\" class=\"link link-ext\" data-nd-link-orig=\"https://fotki.yandex.ru/next/users/prikupets/album/134867/view/1979602\" target=\"_blank\" rel=\"nofollow noopener\"><span class=\"image\" style=\"width: 286px\" data-nd-image-orig=\"https://img-fotki.yandex.ru/get/16193/3168243.5/0_1e34d2_3982f15e_M.jpg\"><img src=\"https://img-fotki.yandex.ru/get/16193/3168243.5/0_1e34d2_3982f15e_M.jpg\" alt referrerpolicy=\"no-referrer\"><span class=\"image__spacer\" style=\"padding-bottom: 104.8951%\"></span></span></a> <a href=\"https://fotki.yandex.ru/next/users/prikupets/album/134867/view/1979601\" class=\"link link-ext\" data-nd-link-orig=\"https://fotki.yandex.ru/next/users/prikupets/album/134867/view/1979601\" target=\"_blank\" rel=\"nofollow noopener\"><span class=\"image\" style=\"width: 300px\" data-nd-image-orig=\"https://img-fotki.yandex.ru/get/9103/3168243.5/0_1e34d1_af42a132_M.jpg\"><img src=\"https://img-fotki.yandex.ru/get/9103/3168243.5/0_1e34d1_af42a132_M.jpg\" alt referrerpolicy=\"no-referrer\"><span class=\"image__spacer\" style=\"padding-bottom: 93.6667%\"></span></span></a> <a href=\"https://fotki.yandex.ru/next/users/prikupets/album/134867/view/1979600\" class=\"link link-ext\" data-nd-link-orig=\"https://fotki.yandex.ru/next/users/prikupets/album/134867/view/1979600\" target=\"_blank\" rel=\"nofollow noopener\"><span class=\"image\" style=\"width: 300px\" data-nd-image-orig=\"https://img-fotki.yandex.ru/get/5907/3168243.5/0_1e34d0_6a9a8ab4_M.png\"><img src=\"https://img-fotki.yandex.ru/get/5907/3168243.5/0_1e34d0_6a9a8ab4_M.png\" alt referrerpolicy=\"no-referrer\"><span class=\"image__spacer\" style=\"padding-bottom: 56.6667%\"></span></span></a> <a href=\"https://fotki.yandex.ru/next/users/prikupets/album/134867/view/1979599\" class=\"link link-ext\" data-nd-link-orig=\"https://fotki.yandex.ru/next/users/prikupets/album/134867/view/1979599\" target=\"_blank\" rel=\"nofollow noopener\"><span class=\"image\" style=\"width: 243px\" data-nd-image-orig=\"https://img-fotki.yandex.ru/get/15558/3168243.5/0_1e34cf_a6e4972a_M.png\"><img src=\"https://img-fotki.yandex.ru/get/15558/3168243.5/0_1e34cf_a6e4972a_M.png\" alt referrerpolicy=\"no-referrer\"><span class=\"image__spacer\" style=\"padding-bottom: 123.4568%\"></span></span></a></p>\n","user":"41b8a4ac3df9550077792e83","ts":"2015-12-25T12:40:36.000Z","st":1,"cache":{"comment_count":10,"last_comment":"56825fce9970730077127b51","last_comment_hid":10,"last_ts":"2015-12-29T10:26:22.000Z","last_user":"41b8a4ac3df9550077792e83"},"views":2095,"bookmarks":0,"votes":0},"subscription":null},"locale":"en-US","user_id":"000000000000000000000000","user_hid":0,"user_name":"","user_nick":"","user_avatar":null,"is_member":false,"settings":{"can_access_acp":false,"can_use_dialogs":false,"hide_heavy_content":false},"unread_dialogs":false,"footer":{"rules":{"to":"common.rules"},"contacts":{"to":"rco-nodeca.contacts"}},"navbar":{"tracker":{"to":"users.tracker","autoselect":false,"priority":10},"forum":{"to":"forum.index"},"blogs":{"to":"blogs.index"},"clubs":{"to":"clubs.index"},"market":{"to":"market.index.buy"}},"recaptcha":{"public_key":"6LcyTs0dAAAAADW_1wxPfl0IHuXxBG7vMSSX26Z4"},"layout":"common.layout"}