Случилось так, что волею событий переселился я в другую страну. С пультом, но без моделей, без паяльника и самое стремное, что в зоне досягаемости достать ни второе ни третье ни радиодеталей никак нельзя. Пока жду свой первый пепелац из поднебесной зачесалось хоть в симе полетать. Но к сожалению, SmartPropoPlus с предустановленным vJoy, хоть и работали, но для моих целей не подходили. SPP и PPJoy вроде работали и для моих целей, но только из тестового режима Вынь 8 х64. И тут я вспомнил, что всунул при отъезде в сумку пару ардуин. Почему бы не сделать кабель для сима из arduino?
В Ардуино UNO и MEGA2560 интерфейс с ПК выполнен на AVR. Для плат R1 и R2 это чип Atmega8U2, а для R3 - Atmega16U2. Эти чипы запрограммированы таким образом, что представляются компьютеру как USB Serial interface, и они подключают “главную” Atmega ардуины через TTL Serial port (цифровые пины 0 и 1).
Чипы 8U2 и 16U2 могут быть перепрограммированы при помощи DFU (Device Firmware Upgrade mode). Это означает, что USB Serial firmware может быть заменена другой USB firmware с тем, чтобы превратить ардуино в разные USB девайсы, например мышь, клавиатуру, MIDI устройство, джойстик (подробнее тут). Итак, для работы понадобятся:
Архив с HID firmware, USB serial firmware (для восстановления) и скетчем для ардуины. Вперед!
Открываем счетч из архива и заливаем его в плату ардуино.
Переводим Atmega8U2 в DFU режим. Для этого.
2.1. Устанавливаем джампер как на картинке.
2.2. Касаемся проводком, одной стороной подключенным к GND, к левому выводу конденсатора (как на той же картинке). При этом светодиод несколько раз моргнет
2.3. Убираем джампер
2.4. Если это сделано первый раз, то нужно установить драйвера на DFU из папки куда был установлен flip.
Заливаем в Atmega8U2 firmware (прошивку) Arduino-big-joystick.hex при помощи flip. Если позже захочется восстановить ардуину к прежнему виду (чтоб для ПК она была не джойстиком, а последовательным портом), то после перевода Atmega8U2 в DFU режим загрузите в нее Arduino-usbserial.hex
Убираем все провода с Ардуино. Переподключаем ее к компьютеру. Подключаем ППМ от пульта на вывод D3 Ардуины, соединяем общие у пульта и ардуины. Все. Можно идти в “Игровые устройства” Windows, найти там Arduino joystick, запускать эмулят…, ой, сим и тренироваться.
Удачи.
До 16 каналов определяет и сует в буфер. Полярность ППМ не важна. Сейчас в коде 8 каналов из ППМ пачки направляются в джойстик в качестве осей.
Ищите строку
int ppm[8]; //array for storing up to 16 servo signals
и заменяете 8 на желаемое максимальное количество каналов, принимаемых в ППМ пачке. Но то, как их обрабатывать придется дописать. Ибо осей у джоя всего 8 штук. А, ну и 40 кнопок 😃. Примеры работы с кнопками в коде есть.
Странно у меня после установки драйвера из папки flip ардуина становится Atmega16U2 это нормально?
Или я чего где напутал…
Нормально. Это зависит от версии платы. У меня же написано
Для плат R1 и R2 это чип Atmega8U2, а для R3 - Atmega16U2.
Костя привет) отличная статья) спасибо)
спасибо Вам Константин. Работает.
Чётко, по делу, и сразу всё работает - очень профессионально! Благодарю!
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"463efb2c3df955007778479b":{"_id":"463efb2c3df955007778479b","hid":22882,"name":"dollop","nick":"dollop","avatar_id":null,"css":""},"4d5ed0fb3df9550077755d65":{"_id":"4d5ed0fb3df9550077755d65","hid":81303,"name":"Андрей#","nick":"Андрей#","avatar_id":null,"css":""},"520c90733df9550077733563":{"_id":"520c90733df9550077733563","hid":169930,"name":"kensi","nick":"kensi","avatar_id":null,"css":""},"53399bb93df955007772aa1d":{"_id":"53399bb93df955007772aa1d","hid":198969,"name":"bb_svyaznoy","nick":"bb_svyaznoy","avatar_id":null,"css":""},"59885f5d3df9550077704465":{"_id":"59885f5d3df9550077704465","hid":296415,"name":"en0t","nick":"en0t","avatar_id":null,"css":""},"5eaaea993df95500776f56f7":{"_id":"5eaaea993df95500776f56f7","hid":354599,"name":"aLDime","nick":"aLDime","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":"543fb5db9970730077110cec","hid":19539,"title":"Шнур для симулятора из Arduino UNO без пайки и использования звуковой карты","html":"<p>Случилось так, что волею событий переселился я в другую страну. С пультом, но без моделей, без паяльника и самое стремное, что в зоне досягаемости достать ни второе ни третье ни радиодеталей никак нельзя. Пока жду свой первый пепелац из поднебесной зачесалось хоть в симе полетать. Но к сожалению, SmartPropoPlus с предустановленным vJoy, хоть и работали, но для моих целей не подходили. SPP и PPJoy вроде работали и для моих целей, но только из тестового режима Вынь 8 х64. И тут я вспомнил, что всунул при отъезде в сумку пару ардуин. Почему бы не сделать кабель для сима из arduino?<br>\nВ Ардуино UNO и MEGA2560 интерфейс с ПК выполнен на AVR. Для плат R1 и R2 это чип Atmega8U2, а для R3 - Atmega16U2. Эти чипы запрограммированы таким образом, что представляются компьютеру как USB Serial interface, и они подключают “главную” Atmega ардуины через TTL Serial port (цифровые пины 0 и 1).<br>\nЧипы 8U2 и 16U2 могут быть перепрограммированы при помощи DFU (Device Firmware Upgrade mode). Это означает, что USB Serial firmware может быть заменена другой USB firmware с тем, чтобы превратить ардуино в разные USB девайсы, например мышь, клавиатуру, MIDI устройство, джойстик (подробнее <a href=\"http://hunt.net.nz/users/darran/weblog/15f92/Arduino_UNO_Big_Joystick_HID_firmware.html\" class=\"link link-ext\" data-nd-link-orig=\"http://hunt.net.nz/users/darran/weblog/15f92/Arduino_UNO_Big_Joystick_HID_firmware.html\" target=\"_blank\" rel=\"nofollow noopener\">тут</a>).<br>\n<strong data-nd-pair-src=\"**\">Итак, для работы понадобятся:</strong></p>\n<ol>\n<!--cut</ol>-->\n<li>Arduino UNO</li>\n<li>джампер и проводок</li>\n<li><a href=\"http://www.atmel.com/tools/flip.aspx\" class=\"link link-ext\" data-nd-link-orig=\"http://www.atmel.com/tools/flip.aspx\" target=\"_blank\" rel=\"nofollow noopener\">Flip</a>. Скачать и установить</li>\n<li><a href=\"https://yadi.sk/d/tp9TkDrUc4wbe\" class=\"link link-ext\" data-nd-link-orig=\"https://yadi.sk/d/tp9TkDrUc4wbe\" target=\"_blank\" rel=\"nofollow noopener\">Архив </a>с HID firmware, USB serial firmware (для восстановления) и скетчем для ардуины.<br>\n<strong data-nd-pair-src=\"**\">Вперед!</strong></li>\n<li>Открываем счетч из <a href=\"https://yadi.sk/d/tp9TkDrUc4wbe\" class=\"link link-ext\" data-nd-link-orig=\"https://yadi.sk/d/tp9TkDrUc4wbe\" target=\"_blank\" rel=\"nofollow noopener\">архива </a> и заливаем его в плату ардуино.</li>\n<li>Переводим Atmega8U2 в DFU режим. Для этого.<br>\n2.1. Устанавливаем джампер как на <a href=\"https://yadi.sk/i/wcsvYPfJc4xCe\" class=\"link link-ext\" data-nd-link-orig=\"https://yadi.sk/i/wcsvYPfJc4xCe\" target=\"_blank\" rel=\"nofollow noopener\">картинке</a>.<br>\n<a href=\"http://hostingkartinok.com/show-image.php?id=30033d34b4c74bef5f7a95905a00ba8b\" class=\"link link-ext\" data-nd-link-orig=\"http://hostingkartinok.com/show-image.php?id=30033d34b4c74bef5f7a95905a00ba8b\" target=\"_blank\" rel=\"nofollow noopener\"><span class=\"image\" style=\"width: 150px\" data-nd-image-orig=\"http://s7.hostingkartinok.com/uploads/thumbs/2014/10/30033d34b4c74bef5f7a95905a00ba8b.png\"><img src=\"http://s7.hostingkartinok.com/uploads/thumbs/2014/10/30033d34b4c74bef5f7a95905a00ba8b.png\" alt referrerpolicy=\"no-referrer\"><span class=\"image__spacer\" style=\"padding-bottom: 70.0000%\"></span></span></a><br>\n2.2. Касаемся проводком, одной стороной подключенным к GND, к левому выводу конденсатора (как на той же картинке). При этом светодиод несколько раз моргнет<br>\n2.3. Убираем джампер<br>\n2.4. Если это сделано первый раз, то нужно установить драйвера на DFU из папки куда был установлен flip.</li>\n<li>Заливаем в Atmega8U2 firmware (прошивку) Arduino-big-joystick.hex при помощи flip. Если позже захочется восстановить ардуину к прежнему виду (чтоб для ПК она была не джойстиком, а последовательным портом), то после перевода Atmega8U2 в DFU режим загрузите в нее Arduino-usbserial.hex</li>\n<li>Убираем все провода с Ардуино. Переподключаем ее к компьютеру. Подключаем <strong data-nd-pair-src=\"**\">ППМ от пульта</strong> на вывод <strong data-nd-pair-src=\"**\">D3 Ардуины</strong>, соединяем общие у пульта и ардуины. Все. Можно идти в “Игровые устройства” Windows, найти там Arduino joystick, запускать эмулят…, ой, сим и тренироваться.<br>\n<a href=\"http://hostingkartinok.com/show-image.php?id=e2bf6b99bfa60c384da14170837a1759\" class=\"link link-ext\" data-nd-link-orig=\"http://hostingkartinok.com/show-image.php?id=e2bf6b99bfa60c384da14170837a1759\" target=\"_blank\" rel=\"nofollow noopener\"><span class=\"image\" style=\"width: 150px\" data-nd-image-orig=\"http://s7.hostingkartinok.com/uploads/thumbs/2014/10/e2bf6b99bfa60c384da14170837a1759.png\"><img src=\"http://s7.hostingkartinok.com/uploads/thumbs/2014/10/e2bf6b99bfa60c384da14170837a1759.png\" alt referrerpolicy=\"no-referrer\"><span class=\"image__spacer\" style=\"padding-bottom: 84.0000%\"></span></span></a><br>\n<a href=\"http://hostingkartinok.com/show-image.php?id=f2d6559aa09d7b022fc96323ca56f6e8\" class=\"link link-ext\" data-nd-link-orig=\"http://hostingkartinok.com/show-image.php?id=f2d6559aa09d7b022fc96323ca56f6e8\" target=\"_blank\" rel=\"nofollow noopener\"><span class=\"image\" style=\"width: 139px\" data-nd-image-orig=\"http://s7.hostingkartinok.com/uploads/thumbs/2014/10/f2d6559aa09d7b022fc96323ca56f6e8.png\"><img src=\"http://s7.hostingkartinok.com/uploads/thumbs/2014/10/f2d6559aa09d7b022fc96323ca56f6e8.png\" alt referrerpolicy=\"no-referrer\"><span class=\"image__spacer\" style=\"padding-bottom: 107.9137%\"></span></span></a><br>\nУдачи.</li>\n</ol>\n","user":"463efb2c3df955007778479b","ts":"2014-10-16T12:11:07.000Z","st":1,"cache":{"comment_count":7,"last_comment":"5ec25bc79970730077131c19","last_comment_hid":7,"last_ts":"2020-05-18T09:56:23.000Z","last_user":"5eaaea993df95500776f56f7"},"views":6341,"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"}