Прошивку брал отсюда, сам не пересобирал, все работает, как надо. Throttle FailSafe работает.
Еще на основе этого же проекта можно сделать Diversity для приемников управления, например держать на борту 2.4GHz и LRS и выбирать из них лучший сигнал.
Для платы Arduino Pro Mini подключение по ISP программатора такое: 11 (MOSI), 12 (MISO), 13 (SCK), Reset, VCC, GND.
Для того, чтобы плата мигала своим светодиодом пришлось перерезать его дорожку к контроллеру и соединить D13 c D8. Делать это надо ПОСЛЕ того, как схема заработала.
Сигнал с приемника подается по-канально по возрастанию номеров каналов на выводы: D0 (RX), D1 (TX), D2, D3, D4, D5, D6, D7, D8. PPM снимается с D10.
16.05.2015
Собрал еще такой же энкодер. Прошивка: ArduPPM_v0.9.87_Arducopter-APMv1.x.hex
Channels for encoder:
“Еще на основе этого же проекта можно сделать Diversity для приемников управления, например держать на борту 2.4GHz и LRS и выбирать из них лучший сигнал.”
Вот про это было бы намного интереснее …
Это не точка отказа а наоборот. Если приемник вешается и начинает выдавать noise на PPM выход, мозги будут заняты прерываниями. А так этим занят енкодер, и если енкодер от этого зависнет, мозги войдут в FailSafe.
Про Diversity - на странице проекта про это написано:
This mode is designed for dual PPM receiver setups, effectively enhancing reliability.
It does accept 16 channels.
This mode with two PPM sum inputs can be used for a single input, if a format conversion or missing signal failsafe is needed.
It is possible to use it for teacher / student use. In this case, each receiver needs to be paired with a separate transmitter.
To enable this mode, short the servo input channel 3 & 4 signal pins together using a jumper strap and use the channels 1 and 2 signal pins as PPM inputs.
Channel 1 is for the primary receiver
Channel 2 is for the secondary receiver
When this mode is active, the blue LED will blink like this on the APM 1.4 : Long - Short - short - short
How redundancy does work :
If channel 1 receiver has a valid PPM signal and no failsafe indication, then it will be selected regardless channel 2 status
If channel 1 receiver has a corrupted PPM signal or failsafe indication, and channel 2 receiver has a valid PPM signal, then channel 2 will be selected.
------------------
Best practice
------------------
It is recommended to use the more reliable receiver on channel 1 (the one with reliable error detection on it like most 2.4 Ghz RC radio systems).
-
The primary receiver failsafe needs to be set on channel 9 at 100% PWM value. This will be used for safely switching to channel 2.
If your primary receiver does not have a programmable failsafe, then it should fully cut its PPM sum output during lost signal condition so that the ArduPPM decoder can reliabily switch to the secondary receiver.
It is possible to change the channel used for switching to the secondary receiver by recompilation.
Note :
Each receiver needs to output a standard PPM sum signal :
Technically this translate to this PPM frame design :
positive shift
1520 us central point
+/- 400 us PWM range (1100 us - 1900 us)
around 20 ms frame period
max channel count : 9 channels
The channel count is automatically detected during power one. Then the decoder keep this setting until power off.
It is possible to use non standard receivers using those PPM frames formats :
Futaba PPMv2 mode 16 channels : 760 us +/- 250 us 20 ms period
Jeti PPMv3 mode 16 channels : 1050 us +/- 250 us 25 ms period
In those modes, channel count is extended to 16 channels.
The PPM encoder will translate the input format so that it can be understood by the APM PPM decoder.
Using one of those alternate frame formats ask for a firmware recompilation.
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"41b8a4ac3df9550077792e83":{"_id":"41b8a4ac3df9550077792e83","hid":5271,"name":"Prikupets","nick":"Prikupets","avatar_id":null,"css":""},"49ee64553df955007776ef40":{"_id":"49ee64553df955007776ef40","hid":47203,"name":"AlcoNaft43","nick":"AlcoNaft43","avatar_id":null,"css":""},"503e09863df95500777407a8":{"_id":"503e09863df95500777407a8","hid":124574,"name":"chanov","nick":"chanov","avatar_id":null,"css":""}},"settings":{"blogs_can_create":false,"blogs_mod_can_delete":false,"blogs_mod_can_hard_delete":false,"blogs_mod_can_add_infractions":false,"can_report_abuse":false,"can_vote":false,"can_see_ip":false,"blogs_edit_comments_max_time":30,"blogs_show_ignored":false,"blogs_reply_old_comment_threshold":30,"votes_add_max_time":168},"entry":{"_id":"53ebbdbd9970730077110458","hid":19244,"title":"APM - PPMEncoder","html":"<p>Для APM собрал <a href=\"https://code.google.com/p/ardupilot-mega/wiki/Encoder\" class=\"link link-ext\" data-nd-link-orig=\"https://code.google.com/p/ardupilot-mega/wiki/Encoder\" target=\"_blank\" rel=\"nofollow noopener\">PPM Encoder</a>, поскольку на моем приемнике нет PPM выхода.<br>\nСобрал на <a href=\"http://www.ebay.com/itm/2PCS-New-IMG-Gold-ATMEAG328P-AU-5V-16Mhz-For-Arduino-Pro-Mini-Compatible-Nano-/191117216435\" class=\"link link-ext\" data-nd-link-orig=\"http://www.ebay.com/itm/2PCS-New-IMG-Gold-ATMEAG328P-AU-5V-16Mhz-For-Arduino-Pro-Mini-Compatible-Nano-/191117216435?pt=LH_DefaultDomain_0&hash=item2c7f794ab3\" target=\"_blank\" rel=\"nofollow noopener\">такой</a> плате.<br>\n<!--cut</p>-->\n<span class=\"image\" style=\"width: 80px\" data-nd-image-orig=\"http://thumbs4.ebaystatic.com/d/l225/m/mRt6K8ziDbdzuGqlnLnkwLA.jpg\"><img src=\"http://thumbs4.ebaystatic.com/d/l225/m/mRt6K8ziDbdzuGqlnLnkwLA.jpg\" alt referrerpolicy=\"no-referrer\"><span class=\"image__spacer\" style=\"padding-bottom: 100.0000%\"></span></span></p>\n<p>Прошил AvrDude через программатор AVRISPMK2.</p>\n<p>avrdude -P usb -c avrispmkii -p atmega328p -U flash:w:ArduPPM_v0.9.87_Arducopter-APMv1.x.hex</p>\n<p>Фьюзы не менял, но где-то видел <a href=\"http://diydrones.com/forum/topics/apm-ppm-encoder-problem?xg_source=activity\" class=\"link link-ext\" data-nd-link-orig=\"http://diydrones.com/forum/topics/apm-ppm-encoder-problem?xg_source=activity\" target=\"_blank\" rel=\"nofollow noopener\">рекомендацию</a> прошить их так:</p>\n<p>-e -U lfuse:w:0xff:m -U hfuse:w:0xdf:m -U efuse:w:0xfe:m</p>\n<p>Прошивку брал <a href=\"https://ardupilot-mega.googlecode.com/git-history/ArduPlane-2.40/Tools/ArduPPM/Binaries/ArduPPM_v0.9.87_Arducopter-APMv1.x.hex\" class=\"link link-ext\" data-nd-link-orig=\"https://ardupilot-mega.googlecode.com/git-history/ArduPlane-2.40/Tools/ArduPPM/Binaries/ArduPPM_v0.9.87_Arducopter-APMv1.x.hex\" target=\"_blank\" rel=\"nofollow noopener\">отсюда</a>, сам не пересобирал, все работает, как надо. Throttle FailSafe работает.<br>\nЕще на основе этого же проекта можно сделать <strong data-nd-pair-src=\"**\">Diversity</strong> для приемников управления, например держать на борту 2.4GHz и LRS и выбирать из них лучший сигнал.</p>\n<p>Для платы <a href=\"http://www.arduino.cc/en/Main/ArduinoBoardProMini\" class=\"link link-ext\" data-nd-link-orig=\"http://www.arduino.cc/en/Main/ArduinoBoardProMini\" target=\"_blank\" rel=\"nofollow noopener\">Arduino Pro Mini</a> подключение по ISP программатора такое: 11 (MOSI), 12 (MISO), 13 (SCK), Reset, VCC, GND.</p>\n<p>Для того, чтобы плата мигала своим светодиодом пришлось перерезать его дорожку к контроллеру и соединить D13 c D8. Делать это надо ПОСЛЕ того, как схема заработала.<br>\nСигнал с приемника подается по-канально по возрастанию номеров каналов на выводы: D0 (RX), D1 (TX), D2, D3, D4, D5, D6, D7, D8. PPM снимается с D10.</p>\n<p><a href=\"http://fotki.yandex.ru/users/prikupets/view/1672610\" class=\"link link-ext\" data-nd-link-orig=\"http://fotki.yandex.ru/users/prikupets/view/1672610\" target=\"_blank\" rel=\"nofollow noopener\"><span class=\"image\" style=\"width: 150px\" data-nd-image-orig=\"https://img-fotki.yandex.ru/get/6813/3168243.4/0_1985a2_cdeaf17b_S.jpg\"><img src=\"https://img-fotki.yandex.ru/get/6813/3168243.4/0_1985a2_cdeaf17b_S.jpg\" alt referrerpolicy=\"no-referrer\"><span class=\"image__spacer\" style=\"padding-bottom: 47.3333%\"></span></span></a><a href=\"http://fotki.yandex.ru/users/prikupets/view/1672611\" class=\"link link-ext\" data-nd-link-orig=\"http://fotki.yandex.ru/users/prikupets/view/1672611\" target=\"_blank\" rel=\"nofollow noopener\"><span class=\"image\" style=\"width: 150px\" data-nd-image-orig=\"https://img-fotki.yandex.ru/get/6832/3168243.4/0_1985a3_6b64214b_S.jpg\"><img src=\"https://img-fotki.yandex.ru/get/6832/3168243.4/0_1985a3_6b64214b_S.jpg\" alt referrerpolicy=\"no-referrer\"><span class=\"image__spacer\" style=\"padding-bottom: 72.6667%\"></span></span></a></p>\n<p><strong data-nd-pair-src=\"**\">16.05.2015<br>\n</strong> Собрал еще такой же энкодер. Прошивка: ArduPPM_v0.9.87_Arducopter-APMv1.x.hex<br>\nChannels for encoder:</p>\n<ol>\n<li>D0 (RX) - на сервокабеле вместе с питанием;</li>\n<li>D1 (TX) - red;</li>\n<li>D2 - white;</li>\n<li>D3 - green;</li>\n<li>D4 - black;</li>\n<li>D5 - white + black;</li>\n<li>D6 - red + black;</li>\n</ol>\n","user":"41b8a4ac3df9550077792e83","ts":"2014-08-13T19:34:21.000Z","st":1,"cache":{"comment_count":3,"last_comment":"53ec8aab9970730077133348","last_comment_hid":3,"last_ts":"2014-08-14T10:08:43.000Z","last_user":"41b8a4ac3df9550077792e83"},"views":1803,"bookmarks":0,"votes":0},"subscription":null},"locale":"en-US","user_id":"000000000000000000000000","user_hid":0,"user_name":"","user_nick":"","user_avatar":null,"is_member":false,"settings":{"can_access_acp":false,"can_use_dialogs":false,"hide_heavy_content":false},"unread_dialogs":false,"footer":{"rules":{"to":"common.rules"},"contacts":{"to":"rco-nodeca.contacts"}},"navbar":{"tracker":{"to":"users.tracker","autoselect":false,"priority":10},"forum":{"to":"forum.index"},"blogs":{"to":"blogs.index"},"clubs":{"to":"clubs.index"},"market":{"to":"market.index.buy"}},"recaptcha":{"public_key":"6LcyTs0dAAAAADW_1wxPfl0IHuXxBG7vMSSX26Z4"},"layout":"common.layout"}