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,...

или найти подходящий вариант, или указать свой - в каком порядке в суммированном сигнале идут каналы - смотреть в передатчике, куда что настроено

  • 1947
Comments
kostya-tin

ИМХО сама по себе вещь нужная, но для данного мелкого квадрика выиграша никакого, т.к. провода, от которых избавились, ушли в вес ардуинки и проводов, которыми вы ее припаяли к приемышу. да и лишний “костыль” надежности не прибавит

fat_hamster

ну на нем просто проверить проще всего было, в самолет с контроллером (который этот ppm-sum понимает) не хотелось залезать

а так приемник планируется в самолет куда-нибудь, где проводов и так выше крыши

ну и вообще хотелось сделать 😃