Radiolink AT9. Делаем модуль nrf24_multipro своими руками.

Рождение идеи 😃

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

Меня смутил ценник, и я про данную тему забыл… Но пару месяцев назад я наткнулся на интересный проект:
github.com/goebish/nrf24_multipro

Goebish, автор кода для ардуино, ну и непосредственно разработчик модуля собственного дизайна, продает его желающим. Я с ним списался, ценник на модуль оказался пониже банговского, но все равно 32€, многовато.
Я покурил профильную темку на групсах: www.rcgroups.com/forums/showthread.php?t=2367400
И мне показалось, что надо бы попробовать сделать такой модуль самому, поскольку выход PPM на тренерском разъеме у Radiolink AT9 есть, а данному модулю только оно и нужно…
В родном городе были куплены (на Али ессно дешевле):

  1. Arduino Pro Mini (5V, 16MHz) – 168 руб. (кстати, удобнее будет найти arduino на 3.3v, т.к. модулю nrf24 нужно именно 3.3в, а значит система питания будет проще)
  2. NRF24L01 – 106 руб. (в этом модуле встроенная антенна, по разным отзывам метров 100 она дает, мне для квартирных полетушек более чем, однако кто-то захочет прицепить Симу или Тарантула - тем есть смысл взять модуль с вынесенной антенной под SMA коннектор).
    Было найдено в загашнике:
  3. Два регулируемых BEC - 60 руб.
  4. Провод с S-VIDEO (S-VHS) разъемом – цена в любом ларьке 50 р. (только они разные бывают, у меня оказалось не пропаяна земля, пришлось колхозить, если найти правильный кабель, то должно получиться вообще карсиво 😃 )

Сборка модуля

Поскольку я не электронщик и не программист, то первая трудность, с которой я столкнулся – это отсутствие на просторах гугля нормальной принципиальной схемы данного модуля. Понятно, что Ардуина и сам модуль nrf24 стандартные, но у того же Goebish между ними стоит связующая плата собственного дизайна… я был озадачен…
Но листая в очередной раз тему на групсах, я натыкаюсь на еще одного энтузиаста с ником mozgy, который задизайнил свой вариант связующей платы, выложил все в открытый доступ:
github.com/mozgy/nRF24-MultiPro
Вот у него-то я и взял основу для схемы, за что ему отдельное спасибо ))

Схему я мальца переработал и вот что получилось:

Схема, кмк, предельно проста.

Ее можно упростить еще, если ардуина будет на 3.3в, понадобится всего один BEC, а где-то на просторах гугля мне даже попадалась тема изготовления аналогичного модуля (только не на nrf24, а на другом передатчике) с подпаиванием питания 3.3в прямо к каким-то пятакам внутри аппы, но я ковырять прекрасно работающую аппу не хочу 😃

Но ближе к теме, единственная сложность всей схемы – это подача сигнала PPM на D2 ардуины.
Goebish советует делать это через мосфет, чтобы исключить варианты со слишком высоким напряжением на вход ардуины, ну и наоборот, чтобы исключить повреждение PPM-OUT в нашей аппаратуре, если в ардуине что-то пойдет не так…

В принципе, наш форумчанин drdupery померял осциллографом уровень выходного сигнала с нашей аппы, и в теории PPM-OUT аппаратуры можно напрямую подключить к D2 ардуины, тогда схема становится еще проще… но я решил перестраховаться…

Вот как это выглядит в моем случае:

  1. Сборка сделана

  2. Все добро заколхозено в завалявшийся корпус от mini apm pro

Прошивка и настройка

Аппаратура.

  1. Создаем новый квадрокоптерный профиль под это дело.
  2. В профиле реверсим газ и элеватор.
  3. Выставляем end-point так, чтобы полный ход стиков давал изменение сигнала от 1000 (я сделал даже чуть меньше 996-998), до 2000 (а здесь чуть больше 2002-2004). См. ниже UPDATE от 19.11.2016.
  4. Все.

Прошивка ардуины.

  1. Для прошивки, подключаем ардуину к компу через FTDI адаптер, не подключая всю сборку к аппаратуре.
  2. Качаем здесь архив с последней прошивкой.
  3. Запускаем файл nRF24_multipro.ino
  4. Проверяем настройки ардуино.

  1. Чистим EEPROM.

  1. Правим код прошивки под Radiolink AT9:

  1. Заливаем прошивку.

Бинд квадриков.

Поддерживаемые квадры в основном перечислены здесь, автор постоянно дополняет списки.

  1. Подключаем к аппаратуре модуль, не включая аппаратуру.
  2. Включаем квадрик.
  3. Переводим стики в крайние положения по нужной схеме.
  4. Включаем аппаратуру.

Вуаля, летим! Кайфуем, сравнивая свои ощущения со стоковыми аппаратурами ))

Цена вопроса 300 р. в моем городе и еще дешевле, если затариваться на Али.
Ну и экономим, покупая BNF версии квадриков )))

UPDATE - 19.11.2016:

Предыдущая сборка претерпела изменения.

  1. Вместо NRF24L01, который меня пару раз подводил (в дальней комнате за 3 бетонными стенками бывало связь терялась с eachine E010), я поставил модуль с вынесенной антенной под SMA коннектор.
    Теперь проблем с дальностью нет совсем. Ну и выглядит это теперь солиднее как то 😃:

  1. В комментах была подмечена проблема (Александр Керре (coldsteel) - 26.10.2016 15:37), что моторы на мин газе стартуют сами и крутятся. На макс газе по ощущениям нет 100% отдачи.
    Для эксперимента я подключил свой полетник pixhawk px4 к PPM выходу аппаратуры. И был весьма удивлен, Radiolink AT9 выдает на тренерский разъем весьма “узкий” сигнал:
  • при END-POINTS 100/100 (дефолтные настройки аппы) первые четыре канала имеют выход всего лишь 1155-1845
  • при END-POINTS 120/120 (как я выше советовал выставлять) первые четыре канала имеют выход 1085-1915 - отсюда и проблема крутящихся моторов и недостаток газа…
  • но даже при END-POINTS 140/140 (это максимум в аппе) первые четыре канала имеют выход только 1015-1985, т.е. даже так мы не получаем 2000 для макс газа, правда моторы при этом уже на мин газе не стартуют ))
    Короче, я поставил 140/140, стало гораздо лучше, но по ощущениям все равно на макс газе до стоковой аппы слегка не дотягивает ни на Н8, ни на Е010…
  • 10018
Comments
Jack13only

Класс!

Одно но, е010 меня вообще не впечатлил, в раздумьях, брать тинивупа с его DSMX или заказывать платку с F3 с Frsky для ичивупа.
Я так понял, этот модуль только китайские протоколы поддерживает?
А мультимодуль из начала статьи поддерживает и DSM, и FrSky?

И если да, то объясните дураку, как его подключать то, и возможно ли это на нашем радиолинке?

MFer
Jack13only;bt151202

Класс!

Одно но, е010 меня вообще не впечатлил, в раздумьях, брать тинивупа с его DSMX или заказывать платку с F3 с Frsky для ичивупа.
Я так понял, этот модуль только китайские протоколы поддерживает?
А мультимодуль из начала статьи поддерживает и DSM, и FrSky?

И если да, то объясните дураку, как его подключать то, и возможно ли это на нашем радиолинке?

ну конечно банговский модуль более функционален, там вроде как 4 RF модуля, набор протоколов шире гораздо.
по поводу подключения к Радиолинку лишь предположу, что можно также подать напряжение и сигнал PPM, но по схеме там все сложнее гораздо, мне не разобраться )))

Jack13only
MFer;bt151203

ну конечно банговский модуль более функционален, там вроде как 4 RF модуля, набор протоколов шире гораздо.
по поводу подключения к Радиолинку лишь предположу, что можно также подать напряжение и сигнал PPM, но по схеме там все сложнее гораздо, мне не разобраться )))

Жаль, будем ждать, пока кто нибудь сможет все объяснить)

LahtaNoID

Зачёт. Хорошая работа!

Также была тема с прошивкой радиолинка в дево. И вот тогда можно ставить 4-в 1 и все плюшки дево-аппы. Но, там есть какие-то нюансы.Нормального толкового мануала как и что толком нет. Разбираться очень много времени надо и желания. Результат не вполне понятен.
В итоге взвесив все за и против остановился на 7Е с мультимодулем. Компактная с возможностями на несколько модулей. Самое то. в сумку небольшую аккуратно влезает. А с радиолинком задолбался с размерами. Мелколёт на 90 и аккумы к нему в разы меньше этой аппы. Таскаешь не квадрик а аппу. 😃

coldsteel

Пара комментариев:

  1. “Выставляем end-point так, чтобы полный ход стиков давал изменение сигнала от 1000” - что такое 1000, где это увидеть? Попробовал вывести значение троттла (ppm[THROTTLE]) с ардуины в сериал, меньше 1000 ну никак на выходит, даже с коррекцией end-point в максимальное значение 140. Видимо, лучше в коде значения с аппы отмеппить в диапазон 1000:2000, как там для спектрума сделано.
  2. Е010 включает моторы в минимальном газе и они не выключаются. Наверное, это следствие 1).
  3. Е010 управляется с заметной задержкой и мигает диодом, летать очень трудно, с родной аппой заметно комфортнее и диод горит постоянно после бинда.
MFer
coldsteel;bt151398

Пара комментариев:

  1. “Выставляем end-point так, чтобы полный ход стиков давал изменение сигнала от 1000” - что такое 1000, где это увидеть? Попробовал вывести значение троттла (ppm[THROTTLE]) с ардуины в сериал, меньше 1000 ну никак на выходит, даже с коррекцией end-point в максимальное значение 140. Видимо, лучше в коде значения с аппы отмеппить в диапазон 1000:2000, как там для спектрума сделано.
  2. Е010 включает моторы в минимальном газе и они не выключаются. Наверное, это следствие 1).

вот тут кроется странность. я проверял через приемник R6D подключенный к Pixhawk (смотрел в Mission Planner). у меня при end-poin 120 все как раз укладывалось в 1000-2000. однако квадрики (Eachine E010 и H8 mini, а также Floureon H101. на tarantula x6 руки не дошли попробовать) также при минимальном газе крутят движками, а H8 и на максимальном газе есть косяк - имеется явный недостаток газа, что означает, имхо, что там не 2000 на входе в приемник, а много меньше. сдается мне, что с сигналом что-то явно не так… победить это пока не смог, времени нет… Кстати, ты PPM тоже через мосфет подключал или напрямую? может схема с мосфетом что-то меняет в сигнале?
моторы в мин газе у меня не крутятся, если end-point выставить где-то в 130-135…

код редактировать не берусь, т.к. мне goebish прямо ответил - 1000-2000 не трогать, корректировать энд-пойнтами…

coldsteel;bt151398
  1. Е010 управляется с заметной задержкой и мигает диодом, летать очень трудно, с родной аппой заметно комфортнее и диод горит постоянно после бинда.

у меня Е010 летает нормально, диодом не мигает, на газ откликается также как со стоковой аппой.
а вот H8 mini, как я уже написал, имеет явный недостаток газа. на максимуме мееедленно так высоту набирает, с родной же аппой даже некое подобие подрыва есть на макс газе…

кароче есть еще где поковыряться с этим модулем ))

coldsteel
MFer;bt151399

Кстати, ты PPM тоже через мосфет подключал или напрямую? может схема с мосфетом что-то меняет в сигнале?
у меня Е010 летает нормально, диодом не мигает, на газ откликается также как со стоковой аппой.

Я подключал напрямую, без транзистора. На сколько я понимаю, это инвертор, так что вполне могут быть проблемы из-за этого. Возможно, надо в коде детект сигнала по фронту/срезу на обратный заменить. Есть чем заняться)

MFer

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

vova4ka

Спасибо. Вот только зачем второй стабилизатор используется для ардуины непонятно. Там же свой на пять вольт стоит.
Питая ардуинку через стаб на пять вольт вы снижаете напряжение питания чипа до 4.5в (падение на линейном стабе), ардуино про мини и 12в переварит.

MFer

Я питаю аппаратуру от 3s батареи, а значит с тренерского может выходить и 12,6 - решил не рисковать )))

vova4ka
MFer;bt152162

Я питаю аппаратуру от 3s батареи, а значит с тренерского может выходить и 12,6 - решил не рисковать )))

На моей pro mini стоит mic5207 (маркировка le50) входное до 20в.
Подскажите как и где посмотреть эти цифры 1000-2000 что это?
Как узнать в каком порядке идут первые 4 канала в передатчике скоро приедет flysky-i6s хочу к нему приколхозить.

MFer
vova4ka;bt152169

Подскажите как и где посмотреть эти цифры 1000-2000 что это?
Как узнать в каком порядке идут первые 4 канала в передатчике скоро приедет flysky-i6s хочу к нему приколхозить.

ну как вариант, если есть полетный контроллер (pixhawk, cc3d, naze32, хз еще какие-то), который понимает PPM, то подключить сигнал (только вот надо бы узнать сколько вольт там на PPM выходе на вашей аппе, чтоб не спалить полетник) и землю к нему и посмотреть в соответствующей программулине (mission planner, cleanflight configurator и т.п.) на компе на вкладке ресивера какой диапазон выдает аппа, потом endpoint добавить/убавить, чтоб диапазон был 1000-2000… ну и порядок каналов там же станет понятен…

выше кстати Александр Керре (coldsteel) - 26.10.2016 15:37 писал:
1) “Выставляем end-point так, чтобы полный ход стиков давал изменение сигнала от 1000” - что такое 1000, где это увидеть? Попробовал вывести значение троттла (ppm[THROTTLE]) с ардуины в сериал, меньше 1000 ну никак на выходит, даже с коррекцией end-point в максимальное значение 140.
попробуй к нему обратиться, может подскажет как, я в этом не силен )))

UPD: курнул в теме на групсах:

  1. www.rcgroups.com/forums/showpost.php?p=36216405&po…
  2. carrerasfpv.com/forums/topic/2986/…/19103
    там есть ответы на ряд твоих вопросов ))
Icemanoff

А на симовском пульте можно найти ppm?
А то, чтоб пульт не покупать, добавить передатчик, чтоб цеплять к микролету с приемником flysky

vova4ka
Icemanoff;bt153705

А на симовском пульте можно найти ppm?
А то, чтоб пульт не покупать, добавить передатчик, чтоб цеплять к микролету с приемником flysky

вч модуль из данной статьи вам не подойдет, flysky использует a7105.
И какой ваще смысл к говнопульту модули лепить. fs-i6 стоит копейки.

Aler

Спасибо.
Сделал модуль для iRangeX irx6-i6x, клоне Flysky fs-i6x. Использовал схему из поста, убрав транзистор, т.к. осциллограф показал уровень PPM сигнала 3.3В. На всякий случай на линию PPM повесил токоограничивающий резистор 1кОм. Вместо Pro Mini использовал Nano. Т.к. аппа у меня уже была переделана на питание от li-ion аккума через повышающий преобразователь на 5В, то Nano была этим напряжением и запитана на ногу 5V. Питание для nrf24 было взято уже с ноги Nano 3.3В. Собрал все на макетке.
Соответствующим образом был поправлен скетч.
Syma X5 завелась сразу и без каких-либо проблем!

Ozyris

Переписывал кто скетч без PPM чтоб сразу со стиков значения в NRF слать?

RoboGuru

Технология превосходно работает спасибо! Правда скетч нужно допиливать и передатчик правильный собрать. Управляем E010 в разных вариациях с камерами.
END POINT поставили 140/140 и этого не хватает, моторы крутятся на min и недостаток мощности на max.
Работает если PPM MIN = 1150 и MAX = 1850 в коде поставить.

Вот наши замеры PPM с выхода AT9S: www.robodrones.ru/?p=700

Так что разобраться бы почему, но и так все отлично работает 😃 5-7 кирпичных стен пробивает или 1100 метров по воздуху с NRF24L01 + PA + LNA. Всем удачи!

quadronoob

Народ, на FlySky i6 пульте должно всё работать? Всё спаял, собрал, прошил - диод на ардуине светится, но нифига не коннектится ни с одним из квадриков (Tarantula, H36 mini, Floureon H101). Я правда нифига не шарю ещё в этих делах, может чего в пульте надо было ещё включить кроме описанного выше…

Ckorpion_61

А к таранису QX7 как приспособить???

MFer
Ckorpion_61;bt156760

А к таранису QX7 как приспособить???

все тоже самое, только:

  1. взять PPM VBAT и GND с порта внешнего модуля
  2. не менять ничего в конфигурации прошивки
  3. в настройках тараниса включить external RF -> PPM

как-то примерно так

soliada

Здравствуйте.А попадался ли кому проект приемника на NRF24L01 который бы работал с этим передатчиком?

soliada

DEL