Модернизация шестиканалки или плюс два дополнительных канала. |
Технологии моделизма - Ремонт и доработка оборудования |
Автор: I-diod |
С появлением квадрокоптера (до этого летал на простых пенолетах) возникла потребность в дополнительных каналах аппаратуры. Моей шестиканалки стало нехватать. Можно, конечно, просто купить 8-9-канальную и не ломать себе голову, но это слишком просто и неинтересно:) Итак. Имеем 6-канальную аппаратуру, в моем случае - FlySkyt6, и огромную необходимость иметь 8 каналов (хотел сделать 9, но у флайская нет 9канальных приёмников, бидапичаль. Если вдруг кто-то в курсе, какие 9-канальные приемники биндятся с этой аппаратурой, большая просьба сообщить об этом. Допишу девятый канал в прошивку). Иметь дело с родной электроникой нет никакого желания - пульт работает на STM, а я от них очень далёк, да и исходников нет, а писать с нуля для незнакомого контроллера смерти подобно. Поэтому поступаем следующим образом: берем выходной ppm-сигнал с платы пульта, оставляем его в исходном виде, добавляем еще два канала и выводим на передатчик. Получается некая "прослойка" между основной платой и передатчиком. Мне тут подсказали, что аналогично работают хэдтрекеры, так что вполне возможно использовать сабж для управления камерой. Ниже представлена схема устройства: Устройство собрано на микроконтроллере atmega8 просто потому, что у меня их есть. Без труда можно перенести и на любой другой МК, имеющий от двух каналов АЦП. Контроллер тактируется от кварца 8МГц, т.к. критична частота - летом на жаре или зимой в мороз частота внутреннего RC-генератора может плавать. Основные каналы при этом останутся без изменений, а вот генерируемые дополнительные поплывут вслед за тактовой. Скажу пару слов по поводу конденсаторов на кварце: кто-то ставит, кто-то нет. Личное дело каждого. В отсутствии конденсаторов кварц может завестись не на основной частоте (на гармонике), соответственно, работать ничего не будет. Я уже несколько раз натыкался на такие фокусы, даже в тепличных условиях бывали случаи, что устройство не заводилось без конденсаторов, а уж про полевые условия и говорить нечего. Если не хочется лишней головной боли - лучше поставить.
Принцип работы: При включении устройства попадаем в подпрограмму синхронизации с входным сигналом - высокий уровень дольше 5мс однозначно определяет синхропаузу, значит можно разрешить прерывания и ждать первого канала. PPM-сигнал с пульта поступает на вход внешнего прерывания int0 (включено прерывание при смене состояний). Т.е. каждый фронт и спад вызывает прерывание, в котором проверяется текущее состояние пина (высокий или низкий) и по результатам выставляется соответствующее состояние выходного. Тупое копирование входного сигнала, ничего лишнего. Но при этом считается количество пришедших низких уровней, для 6 каналов их будет 7: 6 в каналах и седьмой разделительный перед синхропаузой. Как только насчитали 7, переходим в подпрограмму формирования дополнительных каналов. В подпрограмме запрещаем прерывания, опрашиваем АЦП и выставляем длительность импульса в соответствии с тем, что прочитали с АЦП. Со вторым доп.каналом аналогично. Затем сбрасываем счетчик каналов, разрешаем прерывания и ждём следующего пакета импульсов. Ссылка на прошивку (.hex) находится в конце статьи. На схеме изображено подключение переменного резистора для пропорционального управления, подключение трехпозиционного тумблера, например, для выбора режима полёта, и подключение двухпозиционного тумблера, например, для RTH. Так выглядит готовое устройство:
Устройство подходит к любым шестиканальным пультам, необязательно от FlySky. Так же можно использовать девайс и с 4-канальными пультами, нужно только немного подредактировать прошивку. А переделав плату и добавив еще 2 АЦП, к четырехканалкам можно добавить еще 4 канала.
Подключение: В устройстве не предусмотрено каких-либо стабилизаторов питания, т.к. в моем пульте уже есть линейный стаб на 5в, с которого я и запитался. Если в вашем пульте нет пяти вольт, то придётся поставить дополнительно стабилизатор. Стрелками на плате указаны входной и выходной сигналы. Плюс и минус - соответственно, напряжение питания (5 вольт). С другой стороны платы подключаются переменники либо тумблеры. При подключении переменного резистора не нужно запаивать резисторы делителя. Если же ставить тумблер, то нужно ставить делитель либо на самом тумблере, либо паять на плату. В моём случае это будут два тумблера на 3 положения, поэтому сделал посадочные места под делитель. Так удобнее. Резисторы делителя могут быть любые в разумных пределах, лишь бы были одного номинала. От 470 Ом хоть до 10кОм. На разных каналах могут так же стоять разные номиналы резисторов, лишь бы в пределах канала они были одинаковыми.
Плату разместить можно где угодно - места в пульте хоть в футбол играй, а размер платы всего 40х20мм. Я приклеил соплемётом к основной плате. Напоследок осцилограммы: Общая. То, что имеем в пульте. Желтый - исходный сигнал с пульта, синий - сигнал на выходе (добавлено два канала). Отдельный канал уже на выходе с приёмника. Минимальная и максимальная длительность.
В итоге имеем: вместо покупки новой аппаратуры я купил лишний приемник FS-R9B, прилично сэкономив. Ссылка на прошивку: https://vk.com/doc12390867_437046657 Напоследок фото готового пульта: Критика и дополнения приветствуются. Всем удачных полётов:) |