Здравствуйте, уважаемые коллеги!
Как-то на днях проводил модернизацию своего квадрика 250-го размера. Захотел дооснастить его сонаром и GPS-приёмником. Но столкнулся с нехваткой свободных ног у полётного контроллера Naze32 при подключении приёмника в режиме parallel-PWM... Проблема невелика и решается элементарно установкой PPM-сумматора. В Сети (на AliExpress, Banggood и пр.) полно предложений уже готовых PPM-сумматоров, но ждать порядка месяца не хотелось и всеведающий Google подсказал, что его можно сделать из Arduino (коих есть у меня) путём минимальных магических жестов паяльником...
Как-то на днях проводил модернизацию своего квадрика 250-го размера. Захотел дооснастить его сонаром и GPS-приёмником. Но столкнулся с нехваткой свободных ног у полётного контроллера Naze32 при подключении приёмника в режиме parallel-PWM... Проблема невелика и решается элементарно установкой PPM-сумматора. В Сети (на AliExpress, Banggood и пр.) полно предложений уже готовых PPM-сумматоров, но ждать порядка месяца не хотелось и всеведающий Google подсказал, что его можно сделать из Arduino (коих есть у меня) путём минимальных магических жестов паяльником...
Я нашел следующую статью на заданную тему (зачем изобретать велосипед, когда его уже много раз изобрели до меня): http://www.multiwii.com/forum/viewtopic.php?f=13&t=2710.
Скетч для Arduino IDE поразил меня лаконичностью (воистину, краткость - сестра таланта). Но вот внешнее исполнение модуля PPM-сумматора мне показалось "не айс"...
В итоге, было принято решение сделать универсальный ParallelPPM/PPMSum приёмник, размещённый полностью в корпусе от Turnigy 9X8Cv2...
Для поставленной задачи был взят модуль Arduino Pro Mini и прошит скетчем, что прикреплён в конце статьи. При прошивке контакты к модулю я не припаивал (они в дальнейшем будут мешать), а вставил гребёнку из комплекта со стороны выводов BLK-GND-VCC-RX1-TX0, подключил их к соответствующим разъёмам USB-COM преобразователя, и залил скетч в плату...
Далее припаял 8 проводов от канальных выходов приёмника к плате Arduino (см. таблицу ниже).
Провода рекомендую взять потоньше, чтобы не было проблем с укладкой всего этого в корпус приёмника. Я взял провода от распотрошённого как-то ненужного компьютерного кабеля VGA - там провода разного сечения, есть и тоненькие многожильные.
Питание на плату Arduino завел с выводов +5V и GND каналов управления приёмника (тонкие чёрный и красный провода на фотографии ниже). ВНИМАНИЕ!!! Уважаемые коллеги!!! Будьте внимательны припаивая провода питания. Неверно припаянные провода приведут к убийству Arduono и, возможно, вашего источника питания.
Для изготовления разъёма PPMSum я взял разъём от сервы и снял с него пластмассовый корпус. Далее взял два проводка, купленных для макетной платы Breadboard и тоже разобрал..
В итоге получил следующее..
Полученный разъём приклеил цианакрилатным клеем к плате приёмника со стороны без деталей.
Плату Arduino заизолировал с одной стороны куском изоленты, чтобы исключить короткое замыкание между приёмником и Arduino. Изоленты отрезал чуть больше, чем длина Arduino и загнул концы на другую сторону (тоже для изоляции).
В корпусе надфилями проточил прямоугольное углубление для ответной части разъёма PPMSum. А на крышке корпуса пришлось срезать два выступающих упора, которые прижимают плату приемника, чтобы она не болталась. Какие срезать - смотрите сами - зависит от того, где вы разместите плату Arduino.
Для того, чтобы не забыть, какой вывод где на разъёме PPMSum, на крышку приклеил бумажку с маркировкой выводов. Т.к. крышка сделана из полупрозрачного пластика, то маркировку нанёс на внутреннюю сторону крышки простым скотчем.
Всё аккуратно убираем вовнутрь, закрываем крышку и завинчиваем.
В итоге мы получаем 8-ми канальный приёмник Turnigy9X8C V2, который может работать как в режиме ParallelPWM, так и в режиме PPMSum.
Данный вариант был успешно опробован на моём квадрике на полётном контроллере Naze32 с прошивкой CleanFlight 1.12.0. Но, следует заметить одну особенность. Полётный контроллер видит все каналы со сдвигом на единицу, т. е. CH1 воспринимается контроллером как второй, CH2 - как третий и т.д. первый канал всегда в нуле... Эта проблема решается сдвигом всех каналов на единицу в микшере (на моем передатчике стоит прошивка Er9X, как это сделать на стоковой прошивке я не знаю - не пользовался)
Ссылки:
1. Arduino Pro Mini можно приобрести например тут. Хотя с этим проблем нет - в AliExpress забиваете "Arduino Pro Mini" и выбираете из огромного количества вариантов.
2. Провода для изготовления PPMSum-разъёма. Поиск аналогичен предыдущему пункту.
3. Скетч для Arduino Pro Mini ppmsum.ino
Не знаю, будет ли данная статья кому-нибудь полезна.. Но если поможет хотя бы одному человеку, то я не зря потратил ваше время.
Всем творческих успехов!
"Только солнце, только ветер, только счастье впереди!"
Скетч для Arduino IDE поразил меня лаконичностью (воистину, краткость - сестра таланта). Но вот внешнее исполнение модуля PPM-сумматора мне показалось "не айс"...
В итоге, было принято решение сделать универсальный ParallelPPM/PPMSum приёмник, размещённый полностью в корпусе от Turnigy 9X8Cv2...
Для поставленной задачи был взят модуль Arduino Pro Mini и прошит скетчем, что прикреплён в конце статьи. При прошивке контакты к модулю я не припаивал (они в дальнейшем будут мешать), а вставил гребёнку из комплекта со стороны выводов BLK-GND-VCC-RX1-TX0, подключил их к соответствующим разъёмам USB-COM преобразователя, и залил скетч в плату...
Далее припаял 8 проводов от канальных выходов приёмника к плате Arduino (см. таблицу ниже).
Провода рекомендую взять потоньше, чтобы не было проблем с укладкой всего этого в корпус приёмника. Я взял провода от распотрошённого как-то ненужного компьютерного кабеля VGA - там провода разного сечения, есть и тоненькие многожильные.
Питание на плату Arduino завел с выводов +5V и GND каналов управления приёмника (тонкие чёрный и красный провода на фотографии ниже). ВНИМАНИЕ!!! Уважаемые коллеги!!! Будьте внимательны припаивая провода питания. Неверно припаянные провода приведут к убийству Arduono и, возможно, вашего источника питания.
Для изготовления разъёма PPMSum я взял разъём от сервы и снял с него пластмассовый корпус. Далее взял два проводка, купленных для макетной платы Breadboard и тоже разобрал..
В итоге получил следующее..
Полученный разъём приклеил цианакрилатным клеем к плате приёмника со стороны без деталей.
Плату Arduino заизолировал с одной стороны куском изоленты, чтобы исключить короткое замыкание между приёмником и Arduino. Изоленты отрезал чуть больше, чем длина Arduino и загнул концы на другую сторону (тоже для изоляции).
В корпусе надфилями проточил прямоугольное углубление для ответной части разъёма PPMSum. А на крышке корпуса пришлось срезать два выступающих упора, которые прижимают плату приемника, чтобы она не болталась. Какие срезать - смотрите сами - зависит от того, где вы разместите плату Arduino.
Для того, чтобы не забыть, какой вывод где на разъёме PPMSum, на крышку приклеил бумажку с маркировкой выводов. Т.к. крышка сделана из полупрозрачного пластика, то маркировку нанёс на внутреннюю сторону крышки простым скотчем.
Всё аккуратно убираем вовнутрь, закрываем крышку и завинчиваем.
В итоге мы получаем 8-ми канальный приёмник Turnigy9X8C V2, который может работать как в режиме ParallelPWM, так и в режиме PPMSum.
Данный вариант был успешно опробован на моём квадрике на полётном контроллере Naze32 с прошивкой CleanFlight 1.12.0. Но, следует заметить одну особенность. Полётный контроллер видит все каналы со сдвигом на единицу, т. е. CH1 воспринимается контроллером как второй, CH2 - как третий и т.д. первый канал всегда в нуле... Эта проблема решается сдвигом всех каналов на единицу в микшере (на моем передатчике стоит прошивка Er9X, как это сделать на стоковой прошивке я не знаю - не пользовался)
Ссылки:
1. Arduino Pro Mini можно приобрести например тут. Хотя с этим проблем нет - в AliExpress забиваете "Arduino Pro Mini" и выбираете из огромного количества вариантов.
2. Провода для изготовления PPMSum-разъёма. Поиск аналогичен предыдущему пункту.
3. Скетч для Arduino Pro Mini ppmsum.ino
Не знаю, будет ли данная статья кому-нибудь полезна.. Но если поможет хотя бы одному человеку, то я не зря потратил ваше время.
Всем творческих успехов!
"Только солнце, только ветер, только счастье впереди!"
Смастерил такое устройство на Про Мини мега 328, не фурычит чего-то...
После Вашего вопроса специально достал тот самый приёмник и разобрал его. В нём стоит плата Arduino ProMini с микроконтроллером ATMega328. Так что - делайте выводы.. :)
Но смотрите, купив модуль A7105 (вот ссылка на пару http://ru.aliexpress.com/item/Free-Shipping-2-pcs-A7105-2-4G-Wireless-Module-CC2500-NRF24L01-MD7105-SY-Transceiver-AA/2043394840.html ) и пряпаяв его несколькими проводками (меньше чем в PPMSum кстати проводков) к той же самой ардуине, получим приемник совместимый с турнигой, имеющий PPM Выход сразу, и самое главное FS. FS правда программируется правкой прошивки, а не как обычно, но уж для квардрика этого точно достаточно (да и вообще для любого АП).
Да, и если делать только PPM выход, то он получается однозначно компактнее и легче стокового.
Вот описание как делать и приемник и передатчик
Приемник справа снизу, в красной термоусадке. Антенну потом переделал на более компактную. Полет нормальный.
http://www.rcgroups.com/forums/showthread.php?t=1921870
А по поводу моей статьи - это желание показать как добавить PPM к уже имеющемуся приёмнику без особых изменений конструктива корпуса. (Не о том как сделать PPM-сумматор - это сделал человек с форума multiwii.com, а о том, что на основе этого можно получить в том же конструктиве приёмник PWM/PPM) Просто этот приёмник снят с другой модели, где используется PWM (с аэросаней - там каналы PWM непосредственно заведены на ESC, серву и фару) и установлен временно на летающую модель (с последующим возвратом зимой в сани). Вот и пришлось втискиваться в коробочку. А в таком виде приёмник поставлю на квадрик 450-го размера. На 250-ке я корпус от приёмника убрал и платы просто внутри квадрика разместил.
В итоге один приемник сделал на 16 MHz mini pro, просто заменив стабилизатор с 5 вольт на 3.3, второй приемник сделал на ардуине mini pro 8 MHz которая сразу была 3.3.
Я сделал штук 5-6 приемников на 7105, первый из ардуинки, остальные развел плату и заказал на производстве. Со штатной печатной антенно 300-400 метров стабильно, но у меня и передатчик самодельный на модуле 7105 с усилителем, штатный модуль в турниге 9х послабее, по крайней мере у друга стоковая аппатура дает меньшую дальность. С нормальной антенной дальность больше, точно не мерил. Ну и код приемника с рцгрупс я немного подправил, помехи теперь не так страшны, на стоковой прошивке связь восстанавливалась сильно дольше после длительных сбоев.