Пристака-джойстик для управления подвесом камеры.

Подвес камеры, устройство хорошее и нужное, но им нужно управлять.
Неважно, такой:

Или такой:

Для летательных аппаратов, у которых есть подвес камеры, всегда приходится придумывать, каким образом этим подвесом управлять. Хотя кажется, что все придумано до нас, но придумывать приходится всёравно. Казалось бы есть три основных варианта.
Во-первых, подвес настроить на использование крутилок или слайдеров пульта. Но крутилки не удобны, а слайдеры есть не у всех пультов. У моего тараниса их нет например.
Во-вторых, хеадтрекер. Штука удобная, но приходится выбирать или хеадтрекер, или использовать голову в качестве антенного трекера, наводя антенну на самолет с помощью поворота головы.
В-третьих, подключить еще один пульт и управление повороткой возложить на помощника.
Ну и еще иногда народ пытается колхозить четвертый вариант. Отключить штатные крутилки и подключить вместо них джойстик. Этот вариант не особо получил распространение из-за того, что приходится переделывать пульт. Да и не спортивно как-то.
Собственно, вот еще одна вариация на тему джойстика. Несложный контроллер джойстика с выходом в CPPM подключенным к тренерскому разъему.
Вообще можно было не заморачиваться и выломать контроллер из какого-нибудь древнего пульта. Но с другой стороны наваять несложную программку для AVR не долго. Я как всегда сначала делаю, а потом понимаю, что можно было и проще.
Под рукой оказался ATmega328. Изначально я планировал ATmega8, но что-то в закромах не нашел. Ресурсов бы и Меги8 хватило бы. При рисовании платы под 328ю Мегу пришла идея, а не написать ли код на Ардуино? Тем более, до этого я как-то обходился CodeVisionAVR и Arduino не пробовал. Подогнать разводку платы под схемотехнику Ардуино не сложно. Только добавил UART. Пришлось правда и загрузчик в Мегу зашить, чтобы уж совсем по феншую.
В последствии оказалось что незачем было так извращаться. Особой разницы в написании кода нет. Разве что наличие готовой функции «map» избавило от написания своей несложной функции приведения диапазонов переменных. Выигрыш сомнительный в моем случае. А еще в конце написания кода я поддался лени окончательно и взял из интернета готовый обработчик прерывания для формирования PPM (quadmeup.com/generate-ppm-signal-with-arduino/). Стыжусь 😃
Сама прошивка делалась из расчета, чтобы путем несложной доработки из нее можно было сделать полноценный энкодер для RC-пульта, просто копипастом добавляя куски в код и правя переменные. Поэтому в прошивке придусмотрена инверсия каналов, включение экспоненты и изменение расходов. В данном исполнении экспонента 35% и расходы 75%. Они включаются замыканием соответствующих перемычек. Но ничего не мешает, сделав минимальные изменения кода, повесить эти параметры на отдельные крутилки. Реверсы каналов X и Y так-же сделаны ждемперами. В данной реализации нет никакой необходимости в таких настройках. Всерано устройство подключается к пульту, где можно и расходы, и реверсы, и кривые настроить, подвинуть среднюю точку.
Вот что получилось в тоге:



Несколько слов о деталях и схеме. Схема сделана в EAGLE CAD под лазерный утюг. Резисторы и конденсаторы планарные размера 0805. Две перемычки на плате размера 1206. Светодиоды, нижний индикатор питания, а верхний индикация режимов. В режиме калибровки верхний непрерывно горит, в режиме обычной работы быстро мигает (раз 10 в секунду). Плата рисовалась так, чтобы она была односторонней и у нее не было перемычек на верхней стороне. Корпус не делал. У меня одна модель с таким подвесом и пользуюсь я ей не часто. По этому необходимости в гламурном корпусе я не вижу.



Плата контроллера джойстика крепится к скобе пульта зажимами. Снизу к механизму джойстика приклеен кусок пористой резины. Вся его механика умещается в углублении пульта между радиомодулем и резиновой “подошвой”, за которую мы обычно этот пульт держим. Сидит все это довольно плотно и не ерзает. Питается все это от той-же батарейки, что и пульт. В моем случае это 3s батарейка для старшего тараниса. В отсек такая батарея не помещается, по этому у меня она пристегнута к крышке батарейного отсека снаружи. У меня просто была дополнительная крышка и я ее слегка модифицировал. Это к слову так сказать.
На данный момент используются 4 канала. Два пропорциональных и два переключателя. Один переключатель это кнопка джойстика, второй это тумблер чуть ниже. Тумблером я отключаю ОСД, кнопкой переключаю камеры. У меня их две. Одна короткофокусная, другая длиннофокусная (относительно конечно, 16мм).

Если делать на ардуино, то скоммутировать все можно по такой схеме:

Несколько слов о калибровке. Если при включении замкнуть джемпер CALIB, то приставка включится в режиме калибровки. Загорится верхний светодиод. Положения джойстика в момент включения будут использоваться как центральные. После этого нужно пошевелить джойстиком чтобы контроллер запомнил максимальные положения. После размыкания джемпера значения запишутся в EEPROM. Светодиод начнет быстро мигать. Я сначала хотел сделать джемпер съемный, потом всетаки припаял вместо джемпера кнопку. Для калибровки я ее зажимаю и включаю питание. Потом отпуская - калибровка завершена.

Прошивки схемы и тп.:
shem.zip
joy2axle.zip

  • 716
Comments
alex_msc5

Добрый день, а видео в работе можно как то посмотреть?