Недавно мой друг предложил мне поуправлять коптером с джойстика.
И даже притащил мне свой компьютерный джойстик для экспериментов.
Эксперимент удался, и полетать по джойстику нам удалось.
И сейчас я расскажу, как управлять моделью с помощью обычного джойстика и ардуино.
Для начала придется открыть джойстик и найти в нем потенциометры, отвечающие за газ, курс, крен, тангаж.
Мой джойстик внутри выглядит так:
Необходимо найти потенциометры, отвечающие здесь за нужные каналы, выглядят так:
В Вашем джойстике они могут выглядеть иначе, например как ползунковые резисторы
но это не имеет значения. нужно подключиться к ним по такой схеме:
Суть в том, чтобы объединить их крайние контакты и подключить их к +5в и gnd ардуино, а выходы к а0..а3 соответственно.
Скорее всего, на алате джойстика они будут объединены и так.
отрывать их от платы не надо, это не помешает. нужно просто найти точки соединений и подпаять их к ардуине.
Важно! не перепутайте полярность контактов на джойстике. чтобы это проверить - включите его в комп и проверьте мультиметром.
Если перепутаете, то микросхема джойстика может сгореть.
В моем случае соединение выглядит так:
Еще понадобится миниджек или гнездо, для соединения аккустическим проводом:
На схеме выше видно, какие контакты необходимо задействовать.
Дальше в ардуину надо залить скетч:
(cppm_out.ino)
Для компиляции скетча нужна эта библиотека: http://playground.arduino.cc/Code/Timer1
и соединить пульт с ардуиной по получившемуся миниджеку.
дальше настроить каналы тренер-ученик.
вот фотка для прошивки er9x
Элероны и руль высоты я настроил на тумблер шасси, а газ и РН на трехпозиционник.
можно все на одну ручку настроить, но так удобнее страховать друг друга. когда первый раз взлетаешь по джойстику, все непривычным кажется. кто-то страховать должен.
газом рулить не очень точно получается. поэтому у меня и настроено на два раздельных.
После пары-тройки минут управления уже привыкаешь и можно свободно погонять.
настройка двойных расходов не требуется, т.к. у джойстика ход большой и это легко контролировать самому.
тримировать можно средствами микшера на пульте.
Если у кого-то из собравших, возникнет проблема с тримами, могу добавить в схему кнопку, которая будет запоминать нулевое положение для всех четырех каналов.
Еще добавлю, что провод до тренерского разъема надо брать мягкий. жесткий отходит.
Кстати, любителей ардуино может заинтересовать скетч для других проектов.
он генерит послдовательны ppm на прерываниях. это почти не тратит процессорного времени.
можно сделать, например, мультиплексор каналов. через 8ми канальную аппу передать 16 и более.
но на стороне приемника потребуется демультиплексор)
и, напоследок, видео работы этой штуки.
Мой джойстик внутри выглядит так:
Необходимо найти потенциометры, отвечающие здесь за нужные каналы, выглядят так:
В Вашем джойстике они могут выглядеть иначе, например как ползунковые резисторы
но это не имеет значения. нужно подключиться к ним по такой схеме:
Суть в том, чтобы объединить их крайние контакты и подключить их к +5в и gnd ардуино, а выходы к а0..а3 соответственно.
Скорее всего, на алате джойстика они будут объединены и так.
отрывать их от платы не надо, это не помешает. нужно просто найти точки соединений и подпаять их к ардуине.
Важно! не перепутайте полярность контактов на джойстике. чтобы это проверить - включите его в комп и проверьте мультиметром.
Если перепутаете, то микросхема джойстика может сгореть.
В моем случае соединение выглядит так:
Еще понадобится миниджек или гнездо, для соединения аккустическим проводом:
На схеме выше видно, какие контакты необходимо задействовать.
Дальше в ардуину надо залить скетч:
(cppm_out.ino)
Для компиляции скетча нужна эта библиотека: http://playground.arduino.cc/Code/Timer1
и соединить пульт с ардуиной по получившемуся миниджеку.
дальше настроить каналы тренер-ученик.
вот фотка для прошивки er9x
Элероны и руль высоты я настроил на тумблер шасси, а газ и РН на трехпозиционник.
можно все на одну ручку настроить, но так удобнее страховать друг друга. когда первый раз взлетаешь по джойстику, все непривычным кажется. кто-то страховать должен.
газом рулить не очень точно получается. поэтому у меня и настроено на два раздельных.
После пары-тройки минут управления уже привыкаешь и можно свободно погонять.
настройка двойных расходов не требуется, т.к. у джойстика ход большой и это легко контролировать самому.
тримировать можно средствами микшера на пульте.
Если у кого-то из собравших, возникнет проблема с тримами, могу добавить в схему кнопку, которая будет запоминать нулевое положение для всех четырех каналов.
Еще добавлю, что провод до тренерского разъема надо брать мягкий. жесткий отходит.
Кстати, любителей ардуино может заинтересовать скетч для других проектов.
он генерит послдовательны ppm на прерываниях. это почти не тратит процессорного времени.
можно сделать, например, мультиплексор каналов. через 8ми канальную аппу передать 16 и более.
но на стороне приемника потребуется демультиплексор)
и, напоследок, видео работы этой штуки.
С уважением, Свин.
P.S. Кстати, на схеме у Вас выходной пин 13, digitalWriteтоже пишет в 13, зачем 12 объявлен выходным?
12 был объявлен выходом для отладки, потом код отлатки я стер, а объявление удалить забыл)
вообще, целесообразно его использовать вместо 13. на 13 висит лампочка и она жрет энергию. но, одновременно, по ней видно работает ли устройство.
меги 2560 для этого действительно много.
микра, с ее кучей аналоговых входов, должна подойти. но у меня нет ее для экспериментов. Если есть желание это проверить на Вашей, то пишите в вк: vk.com/lexa217
По теме вот ссылка -
http://www.ianjohnston.com/index.php?option=com_content&view=article&id=79:project-rc-joystick-tx-usb&catid=3:hobbies&Itemid=8
Я это повторил. Лично мой вывод - движения джойстика уступают в точности, и так как движения делаются всей рукой - то и в быстроте. Там есть и пример джойстика без usb шилда.
http://playground.arduino.cc/Code/Timer1
В статье поправил
Подключаете кнопку от gnd до 8
Выставляете все рычаги на джойстике в центральное положение.
жмете кнопку.
все настройки сохранятся в EEPROM. т.е. после перезагрузки все останется.
Я такой же джойстик скоро потрошить буду, но пожалуй замурую туда не ардуину а потроха от 9XR.
Стоят копейки, а в итоге получится полный функционал, с переключками, триммерами и индивидуальными настройками для каждой модели. Плюс вход PPM на который можно хэдтрекер подключить.
Все ж таки 4 канала на джойстике, а остальные на пульте - не очень удобно, имхо.
но с потрохами проще, но не так удобно: корпус городить.
На триммеры индивидуальные на каждый канал + трехпозиционник + PPM вход + пара крутилок\джойстик + хотя бы 4 переключка у простой ардуины ног не хватит =) А мегу ставить - смысла нет, те же деньги получатся, а софт свой городить надо.
просто развязку для ВЧ и крепление еще сгородить придется)
Например взлетать с рук с дойстиком мягко говоря не удобно. Посему, взлетаем с пультом, набираем высоту, включаем стабилизацию, садимся за стол, подключаем джойстик, щелкаем тумблер на пульте и все управление идет с джойстика. Все переключатели, крутилки и хэдтрекер тоже в джойстике. При посадке - в обратном порядке.
Просто если на пульте не будет своего триммирования, то будут не совпадать нулевые значения стиков и джойстика, а крутить триммер каждый раз - не вариант.
взять разъем с 20 контактами и закомутировать резюки джоя на пульт турниги (использовать так сказать механику ждоя. А лучше все засунуть а один корпус. Для наземной станции джой самое оно!
да и мою штуку можно присоединить к любой аппе на поле) тренерский разъем есть у всех.
Как ваш метод будет работать с другими апами, Турниджи 9Х со стоковой прошивкой или Таранисом?
Идея хорошая.
Хотелось бы услышать более подробные отзывы о управлении джойстиком, удобней не удобней чем обычным RC пульт.
Насколько мне известно, сигнал тренер-ученик универсальный во всех аппах. точно не знаю про футабу, но, думаю, что такой же.
от прошивки зависит только настройка микшеров. ведь, по сути, ардуина в данном случае является пультом. ее можно подключить даже напрямую к вч модулю, без использования пульта.
а отзывы..
я три года летаю на обыкновенном пульте и очень к нему привык. мне показалось удобне на нем.
а мой друг, не имеющий опыта управления пультом сказал, чтобы я ему сделал полноценный пульт из этого джоя. хочет управлять коптером только с него.
но есть один минус у этого. требуется стол или крыша машины. в руках его не подержишь.
всего на джое полетало 4 человека. 2 привыкли пользоваться пультом и им было удобнее им. остальным двоим понравился джойстик.
но, на мой взгляд, точность у него ниже
Джойстик скорее подойдет для FPV, для пилотажки уж точно не пойдет!
Так что и затачивать эту конструкцию надо под FPV.
на паркфлаере: http://www.parkflyer.ru/product/426594/
но, откровенно говоря, это очень дорого.
На ебее они от 400 руб.
на алиэкспресс от 170.
как залить скетч - можно найти в инете. это очень просто.
если Вы немного понимаете в программировании, то все получится.
я приведу пример, как из двух каналов получить 8. можно больше, можно меньше. просто я приведу 8.
берем каналы 7 и 8 (пример).
7 канал будет передавать информацию о том, какой канал сейчас на 8м.
делаем таблицу соответсвтвия.
канал 1 = 1000мс
2 = 1100мс
3 =1200мс
4 =1300мс
ну в общем и целом это достаточно просто.
если Вы немного понимаете в программировании, то все получится.
я приведу пример, как из двух каналов получить 8. можно больше, можно меньше. просто я приведу 8.
берем каналы 7 и 8 (пример).
7 канал будет передавать информацию о том, какой канал сейчас на 8м.
делаем таблицу соответсвтвия.
канал 1 = 1000мс
2 = 1100мс
3 =1200мс
4 =1300мс
4 =1300мс
...
8 = 1700мс
берем плату ардуины. подключаем ее к тренерскому разъему.
ей на входы подаем нужные сигналы. прикручиваем переключатели, потенциометры, хоть джойстик прикручиваем. может кто им камерой на подвесе рулить захочет.
но прошивку модифицируем. добавляем массив, который написали выше.
вывод первого...шестого каналов можно оставить как было.
в седьмой канал мы выводим по очереди массив. после каждой синхропаузы увеличиваем указатель на канал.
а в 8 канал выводим значения из массива данных. аналогично, по очереди.
7 канал с указателями нужен на случай кратковременной потери связи. чтобы очередность каналов не была нарушена.
на стороне приемника присоединяем ардуино нано к 7 и 8 каналам. и разбираем полученный сигнал. как разобрать ппм от приемника читайте в скетче для моей прошлой статьи. ретранслятор на любом приемнике.