ppm-sum из нетелеметрийного приемника frsky
А в теории из любого
(просто оставлю себе заметку, если буду переделывать остальные приемники)
ppm-sum encoder берет сигналы из 8-и каналов приемника и “суммирует” их в один; очевидный бенефит этого - от приемника в контроллер достаточно протянуть 3 провода - этот самый сигнал, ну и “+”/“общий”
Источник - wiki.paparazziuav.org/…/ATmega_PPM_Encoder_Board; там есть схема для меги 168/328, плата, исходники
У меня заказано у китайцев куча ардуин (при их цене в $3 нет никакого смысла брать “голые” контроллеры, городить обзявку и прочее), по невнимательности есть пара на 8 МГц (которые не годятся для мультивии), так что одну из них я использовал
Как “ардуина” плата не используется, нужен программатор
Чтобы не накосячить с фьюзами и прочим с исходниками (которые брать здесь github.com/paparazzi/ppm-encoder) есть makefile, в котором все расписано; почти все, так как у меня 8 МГц ардуина, то надо в makefile найти строку
#put the MCU clock Frequency in Hertz here (This setting is passed to all files)
F_CPU = 16000000UL
и поменять 16 на 8; кроме этого я поменял в makefile (может это можно делать и параметрами, я не в курсе и разбираться не было никакого желания) тип своего программатора
# Programming with avrdude settings, be carefull !!!
# Uncomment the lines you need.
AVRDUDE_PROGRAMMER = stk500v2usbasp
и удалил в 3-х местах строчки “-P $(AVRDUDE_PORT)” - я так понимаю это было актуально, когда надо было указать виртуальный или реальный сом-порт, куда подключен программатор… А у меня usb и ничего указывать не нужно
Ну и потом надо из командной строчки написать make и make program - первая команда скомпилирует прошивку и покажет результат, вторая - зальет прошивку, проверит заливку и выставит фьюзы
Естественно надо, чтобы в компьютере стоял winavr
Корпус приемника у меня небольшой (а остальные еще меньше), так что встроить внутрь никак, выкрутился так:
раздетая плата приемника; подпаял по жилке к каждому каналу + питание
в корпусе сделал 2 дырки - поменьше с одной стороны, побольше с другой, вывел провода наружу, корпус можно закрывать
укоротил проводки, подпаял; провода от каналов 1-8 припаял соответственно к пинам (как они обозначены на ардуине)
Rx/Tx/2/3/4/5/6/7
провода от +/- припаял к RAW/GND контактам на ардуине
кусочек гребенки для подключения приклеил горячим пистолетом, верхний контакт припаял к контакту 10 на адруине, средний - RAW, нижний GND
По схеме вообще-то немножко сложнее должно быть:
(1) - это светодиод для моргания “все работает”,
(2) - это делитель напряжения, чтобы на “выходе” сигнал был 5 * 3.3 / 4.3 = 3.8 вольт; скорее всего просто для универсальности, вдруг подключаться все будет к контроллеру, который работает от 3.3В? Но в моем конкретном случае ардуина не только работает на частоте 8 МГц, но и питается от 3.3В - так что питание подаем любое (ну в пределах разумного, приемник работает с питанием до 16 В), на выходе всегда лог.“1” будет не больше 3.3 В. И питание к ардуине я подавал к RAW, а не к VCC контактам
Все, можно прятать все в термоусадку и юзать
Для мультивии контроллера надо выход pmm-sum подключить к пину 2:
Для мультивии в коде, в config.h надо найти и раскоментить одну из строк
//#define SERIAL_SUM_PPM PITCH,YAW,...
или найти подходящий вариант, или указать свой - в каком порядке в суммированном сигнале идут каналы - смотреть в передатчике, куда что настроено