Управление Arduino с помощью 3dr robotics

Roboshop72

Всем доброго времени суток! На днях приобрёл оборудование для радиоуправления 3dr robotics: www.aliexpress.com/item/…/32707506466.html
Имеется задача подружить 3dr с платой Arduino Pro Mini, которая в свою очередь будет управлять четырьмя DC моторами и двумя серво. Подскажите плиз где можно посмотреть примеры кода по управлению Arduino с помощью 3dr robotics? Команды планируется посылать с ПК под управлением Windows из интерфейса собственной программы написанной на С++.
Конечно же не рассчитываю на готовый исходный код, но буду благодарен за любые подсказки и советы.

Основные вопросы:

  1. как правильно подключить TTL UART интерфейс к Arduino Pro Mini;
  2. какую лучше версию Arduino Pro Mini использовать в проекте (3.3v или 5v);
  3. как настроить двухсторонний обмен данными между 3dr со стороны Arduino и со стороны ПК;
Poulton

Приветствую. По Вашей ссылке набор для передачи телеметрии, зачем такие сложности для тривиальной задачи? Почему, например, не использовать доступные стандарты wifi или bluetooth? Под wifi прекрасно работает WinSocket и проблем быть не должно. К ардуино надо только прикрутить wifi-uart мост и вроде дальше все понятно. Спрашивайте, если что

Да, вопросы:

  1. Нужен USB<>RS232 С поддержкой DTR, Если DTR китайцами не выведен на отдельный пин, его можно взять с ножки микросхемы. Дальше все просто, земля-земля, тх-рх, рх-тх, dtr-dtr, питать ардуину я предпочитаю отдельно, в таком случае землю необходимо общую сделать с источником питания.
  2. Pro Mini 5v, кому как, мне 5в удобнее
  3. Как быть с этой 3dr, не знаю по какому протоколу она общается между собой, я бы предпочел стандартные решение (мой 1ый пост) wifi не стоит недооценивать, с направленной антенной вполне можно получить до километра не напрягаясь, видео лучше пускать с передатчиком 5.8ггц (если видео предусмотрено)
Roboshop72
Poulton:

Да, вопросы:

  1. Нужен USB<>RS232 С поддержкой DTR, Если DTR китайцами не выведен на отдельный пин, его можно взять с ножки микросхемы. Дальше все просто, земля-земля, тх-рх, рх-тх, dtr-dtr, питать ардуину я предпочитаю отдельно, в таком случае землю необходимо общую сделать с источником питания.
  2. Pro Mini 5v, кому как, мне 5в удобнее
  3. Как быть с этой 3dr, не знаю по какому протоколу она общается между собой, я бы предпочел стандартные решение (мой 1ый пост) wifi не стоит недооценивать, с направленной антенной вполне можно получить до километра не напрягаясь, видео лучше пускать с передатчиком 5.8ггц (если видео предусмотрено)

Спасибо за развёрнутый ответ! С wifi я уже наигрался, как раз мой первый проект реализовывал на Winsock (TCP), передача видео сделана на базе китайской wifi камеры Foscam, даже прикрутил функцию распознавания лиц к проекту. Если будет интересно, краткий видеообзор получившегося интерфейса можно посмотреть на моем канале:

Надеюсь уважаемые модераторы не сочтут за рекламу.
Мягко говоря проект получился не из дешевых., а качество wifi сигнала оставляет желать лучшего! Уже на 100 метрах, сигнал умирал, правдо я не прикручивал направленные антенны, усилители сигнала и все такое…
В итоге свой следующий проект решил сделать как можно более бюджетным, но с тем же функционалом что и предыдущий, Программу управления буду использовать уже написанную, а вот управление интереса ради хочется реализовать на базе радиоканала. В качестве камеры на этот раз хочу попробовать простенькую не дорогую fpv с вот этим оборудованием:
www.aliexpress.com/item/…/2015457114.html , только пока ума не приложу как можно реализовать приём видеосигнала на windows ПК, оцифровать этот видеосигнал чтобы можно было и дальше использофать функцию распознавания лиц и предметов.( рекомендации категорически приветствуются). По вашим ответам я не совсем понял 1-й пункт, то есть вы имеете ввиду что для того чтобы подключить 3dr к arduino pro mini, необходимо преобрести ещё и USB<->RS232 переходник? Не совсем понимаю для чего, на сколько мне известно один конец этого оборудования уже имеет USB интерфейс, который подключается к ПК, а второй радиомодуль должен подключаться к arduino через TTL UART? Поправьте плиз если это не так.

Poulton

А направленные антенны пробовали? Ubiquity например? Я с ними добивался очень достойных результатов.
Тут вот какая петрушка, фоскам этот наверняка по tcp маслает, в этом проблема. Для передачи тяжелого потока вроде видео гораздо лучше использовать udp, далеко не все камеры, темболее с алиэкспресса это позволяет, поэтому я использовал комплекты видеопередачи для самолетов-вертолетов, их великое множество и задержки значительно ниже. 5.8 ггц я брал, что бы не конфликтовало с 2.4 ггц вайфаем. Путем проб и ошибок готове изделие работает по двум каналам, по вайфай осуществляется управление и передача простенькой телеметрии (заряд батареи, токи на двигателях, углы наклона) а видео идет по отдельному каналу 5.8 ггц, принимается тоже отдельно. Мысль разом валить всю дату через один канал мне тоже нравится больше, но мне не удалось достичь достойных результатов. А видео отдельно, остальное отдельно без проблем. Для наземного транспорта реально не заметна задержка.
Тюмени большой привет!

Смотрите глубже. WiFi это интерфейс, а tcp/udp/rtsp и прочее - протоколы.
Подозреваю, что данный набор от 3dr надо раскачивать через UART

По 1му вопросу. я не совсем правильно его понял, переходник нужен для подключения ардуины к пк, т.к. у про мини нету usb на борту.
Для подключения 3др к ардуины можно подпаяться на уарт, не забыв, рх в тх, тх в рх. Да, и 3др лучше запитать отдельно, согласовав земли, у всех устройств земля должна быть общая! Ардуина может иметь 5в выход, но ток там ничтожно мал и 3др стоит запитать отдельно, дабы не рисковать

Roboshop72
Poulton:

А направленные антенны пробовали? Ubiquity например? Я с ними добивался очень достойных результатов.
Тут вот какая петрушка, фоскам этот наверняка по tcp маслает
Тюмени большой привет!

Смотрите глубже. WiFi это интерфейс, а tcp/udp/rtsp и прочее - протоколы.
Подозреваю, что данный набор от 3dr надо раскачивать через UART
По 1му вопросу. я не совсем правильно его понял, переходник нужен для подключения ардуины к пк, т.к. у про мини нету usb на борту.
Для подключения 3др к ардуины можно подпаяться на уарт, не забыв, рх в тх, тх в рх. Да, и 3др лучше запитать отдельно, согласовав земли, у всех устройств земля должна быть общая! Ардуина может иметь 5в выход, но ток там ничтожно мал и 3др стоит запитать отдельно, дабы не рисковать

Спасибо большое! Тюмени передаю привет)) Краснодару тоже огромный приветище!

1)Направленные антены не пробовал, думаю если и переходить на серьезное дальнобойное управление по wifi, то в качестве wifi модуля к ардуино нужно подключать более серьезный wifi роутер по Ethernet мосту, а не использовать слабенький ардуиновский wifi модуль. ( это я про свой проект)

2)Да, foscam работает по TCP, в качестве потока можно забирать mjpeg или rtsp стрим с отличным разрешением Фул hd 35 fps. Также большим плюсом является то, что можно прикрутить весь имеющийся функционал камеры к проекту: передача голоса, ночной режим, оповещение на электронную почту, аларм в случае присутствия человека по движению или по звуку, вертикальный и горизонтальный круиз контроль и т.д. Все эти вещи я использовал в своём проекте и вывел из на интерфейс управления роботом. Но вот есть одно но, Камера достаточно громоздкая и энергожрущая. Хочется что-нибудь поминиатюрней и подешевле применить.
3) по первому вопросу теперь я вас понял. Вы имели ввиду программатор для Arduino Pro mini, он у меня есть, только вот ещё из пакета даже не доставал, также как и ардуинку. Пока только вникаю, советуюсь и т.д., так как с ардуиной ещё не разу не работал, все свои предыдущие проекты делал на базе GHI Electronics в Visual Studio на .Net Micro Framework.
4) Похоже что 3dr работает по uart, а вот какой протокол передачи я пока не знаю. Внесу небольшую поправку, под словом приобрёл я имел ввиду заказал с алиекспрес и жду поставку) Согласно вашим комментариям примерно понял как теперь ее подключить к arduini pro mini.
5) вопрос по камере пока тоже остаётся открытым. Если кто сталкивался, подскажите плиз как с помощью вот этого зверя: www.aliexpress.com/item/…/2015457114.html , передать видеопоток на ПК Windows таким образом чтобы можно было бы подвязать видеострим в проект для распознавания лиц, по аналогии с wifi камерой Foscam которая используется в текущем проекте.

oleg68
Roboshop72:

Вы имели ввиду программатор для Arduino Pro mini

То, что Вы назвали “программатор” - это просто преобразователь UART-USB. Он нужен для соединения с РС. У Arduino Pro mini есть UART, к нему подключается преобразователь, тот уже в комп. По нему можно гнать любые данные в обе стороны. Но UART у Arduino Pro mini только один, одновременно работать с РС и 3dr не получится.

Poulton

Значит с помощью такой штуки… ннууу во-первых это передатчик (Тх), к нему надобно приемник (Rx), самый простой выход - искать приемник, который полученный сигнал будет выводить на AV, а дальше уже в комп или ноут этот AV заводить через карту захвата, тут выбор широкий, от дешевого EasyCap до аппаратов подороже, вплоть до Pinnacle.
Как с 5.8 Ггц принимать напрямую, увы, простых путей мне не известно.

по УАРТу, на стороне самого двигательно-сервоприводного устройства одного уарта вполне будет достаточно, надо только, чтобы полученную дату 3др гнал в уарт на ардуину,а та уже будет обрабатывать полученное и принимать соотв. решения. Ну как я это понял

ADF
Roboshop72:

Всем доброго времени суток! На днях приобрёл оборудование для радиоуправления 3dr robotics: www.aliexpress.com/item/…/32707506466.html
Имеется задача подружить 3dr с платой Arduino Pro Mini, которая в свою очередь бу…

Добрый день,

Не совсем понятна ваша личная задача. Дело в том, что все подобные вещи (ардуины, наборы для робототехнических поделок) - они как раз для тех, кто хочет сам возиться, вникать, настраивать и писать код. И кстати примеры использования любых функций этих штук - есть готовые в виде видеоинструкций на ютубе. Много. Со ссылками на скетчи и готовые к компиляции проекты.

Правда не совсем понятно, как всё это относится к разделу самолеты?

И ещё. Дальность связи большинства ВЧ-модулей таких штук - небольшая, подходит как правило только для помещений. На улице и особенно для самолётов крайне не рекомендуется это использовать.

Roboshop72
Poulton:

Значит с помощью такой штуки… ннууу во-первых это передатчик (Тх), к нему надобно приемник (Rx)

Можете посоветовать приёмник для этих целей плиз? Желательно в тойже ценовой категории что и передатчик…

ADF:

Добрый день,

Не совсем понятна ваша личная задача. Дело в том, что все подобные вещи (ардуины, наборы для робототехнических поделок) - они как раз для тех, кто хочет сам возиться, вникать, настраивать и писать код. И кстати примеры использования любых функций этих штук - есть готовые в виде видеоинструкций на ютубе. Много. Со ссылками на скетчи и готовые к компиляции проекты.

Правда не совсем понятно, как всё это относится к разделу самолеты?

И ещё. Дальность связи большинства ВЧ-модулей таких штук - небольшая, подходит как правило только для помещений. На улице и особенно для самолётов крайне не рекомендуется это использовать.

Личная задача, заключается в следующем: разработать универсальный интерфейс управления роботом (не летательный аппарат, 4-х колёсное движущееся управляемое с ПК, либо обладающее автономными функциями управления устройство, использование как раз на расстоянии до 1 км, либо в помещении). Интерфейс управления роботом будет распространяться бесплатно вместе с уже написанной программой управления на Arduino. Есть много любителей, которые не хотят особо погружаться в дебри написания кода, а ручками сделать и собрать что-то своё хочется, вот для такой категории людей будет написан простой мануал по сборке готового конструктора из списка запчастей. Как то так, если кратко, а с другой стороны просто интересно разобраться с arduino, fpv, и радиоуправлением через ПК.

Poulton
Roboshop72:

Можете посоветовать приёмник для этих целей плиз? Желательно в тойже ценовой категории что и передатчик…

www.aliexpress.com/item/…/32718423060.html?algo_ex… Например вот. Ну или аналог подыскать, главное, что бы частота приемника совпадала с Вашим передатчиком, если там 5.8 Ггц, то и приемник должен быть 5.8, каналов - чем больше, тем лучше, 32 обычно за глаза. У этого приемника аналаговый видеовыход, а питать его можно от аккумулятора, например если взять батарею от бесперебойника, хватит на долго. Аналоговый сигнал проще и дешевле всего в комп заводить вот этим - www.aliexpress.com/item/…/32791919068.html?algo_ex…

Не торопитесь брать, посмотрите варианты с передатчиком, может хотите, что бы приемник был с монитором + выходом тв - но там ценник до более-менее нормальный от 8000 руб

Roboshop72

Спасибо за Советы! Буду ждать поставки всех необходимых ингридиентов из китая, и потихоньку собирать проект! Полученные результаты и ошибки буду выкладывать в теме…

Poulton

Особенно интересно, если у Вас получится прикрутить 5,8 приемник напрямую к ноутбуку\пк, держите в курсе! Вопросы можете адресовать в п.м. отвечу шире и быстрее 😃

Roboshop72
Poulton:

Особенно интересно, если у Вас получится прикрутить 5,8 приемник напрямую к ноутбуку\пк, держите в курсе! Вопросы можете адресовать в п.м. отвечу шире и быстрее 😃

Спасибо! Договорились!

Shrizt

Arduino имеет один аппаратный uart, но может иметь и программный.

Аналоговый приемник видео прикрутить без преобразователя в цифру нельзя.

По сути заказанный вами 3Dr это радиомодем. Протокол вы сами можете любой написать. То что шлете в uart с пк и будете получать на выходе приёмника. Можно даже не ждать радиоканала а сразу учится управлять ардуиной через USB-uart.

забыл
Есть более компактный и дешевый способ - вместо связки 3dr + arduino использовать радиомодули orangerx 433 (hobbyking.com/…/orangerx-open-lrs-433mhz-9ch-recei…)
По сути - это та же ардуина (atmega) с радиомодулем в одном.
Есть открытые прошивки (напр. baychi) для примера обмена.

Roboshop72
Shrizt:

Arduino имеет один аппаратный uart, но может иметь и программный.

Аналоговый приемник видео прикрутить без преобразователя в цифру нельзя.

По сути заказанный вами 3Dr это радиомодем. Протокол вы сами можете любой написать. То что шлете в uart с пк и будете получать на выходе приёмника. Можно даже не ждать радиоканала а сразу учится управлять ардуиной через USB-uart.

забыл
Есть более компактный и дешевый способ - вместо связки 3dr + arduino использовать радиомодули orangerx 433 (hobbyking.com/…/orangerx-open-lrs-433mhz-9ch-recei…)
По сути - это та же ардуина (atmega) с радиомодулем в одном.
Есть открытые прошивки (напр. baychi) для примера обмена.

Интересный девайс! В качестве передатчика на сколько я понял можно использовать любой USB радиопередатчик с частотой 433 , 3dr в том числе.

Shrizt

В качестве передатчика можно использовать его же, подключив к пк через usb-uart.

Roboshop72
Shrizt:

В качестве передатчика можно использовать его же, подключив к пк через usb-uart.

И цена нормальная и функционал то что надо!В моем случае будет нужно распаивать Arduino Pro mini к 3dr, в случае если использовать это устройство, будет нужно распаивать USB для ПК. В плане дальнобойности на сколько я понимаю они одинаковые 433 MHz. Ещё в качестве плюса можно отметить возможность загрузки кода написанного для Arduino. Если бы наткнулся на этот девайс немного раньше, определенно бы задумался о приобретении., а сейчас буду работать с тем что есть: Arduino Pro Mini + 3dr.

Для передачи и приема видео на ПК заказал следующий комплект:

Посмотрим что из этого всего получится…

1 month later
Roboshop72

Добрый день, наконец-то приехало оборудование для телеметрии из китая: www.aliexpress.com/item/…/32707506466.html
только вот проблема в том что информации в интернете с чем едят эту телеметрию и как ее подружить с ардуино найти не могу. Если конкретней, каким образом послать команду от передатчика “ground module” на приёмник “air module” например из программы на С++? И наоборот организовать передачу данных от “air module” к “ground module”, данные на “air module” будут поступать от дальномера подключённого к Arduino Pro Mini. Может кто поделиться примерами кода, или направит на правильный путь какую библиотеку лучше использовать для этих целей на С++? Спасибо.

ShrekS

Для начала можно модули телеметрии настроить. Например: apmcopter.ru/apm/apm-setup/telemetriya-nastrojjka-modulejj.html

Roboshop72
ShrekS:

Для начала можно модули телеметрии настроить. Например: apmcopter.ru/apm/apm-setup/telemetriya-nastrojjka-modulejj.html

Благодарю за ссылку. А я уже хотел поверить в волшебство, думал все заработает прямо из коробки)) на днях потестим… надеюсь увидеть зеленые лампочки с обеих сторон.

Fisher15

Алексей. Мне кажется, что под ваши задачи есть готовое решение под названием FlySky FS-i6 с приемником fs-ia6b. Можно конечно назвать это аппаратурой дистанционного управления, а можно системой с двусторонним обменом данными с изменяемой прошивкой. Телеметрия уже встроена. У приемника есть фабрично распаянная шина i-BUS, данные с которой вываливаются в пульт, а на пульте есть уарт для подключения к компу. К разъемам переменников стиков гипотетически можно порубить аналоговые выходы вашего ардуино, и вертеть всеми каналами (роботом) как хочешь, если вы не хотите лезть в дебри прошивки пульта. Как то так …

Roboshop72
Fisher15:

Алексей. Мне кажется, что под ваши задачи есть готовое решение под названием FlySky FS-i6 с приемником fs-ia6b. Можно конечно назвать это аппаратурой дистанционного управления, а можно системой с двусторонним обменом данными с изменяемой прошивкой. Телеметрия уже встроена. У приемника есть фабрично распаянная шина i-BUS, данные с которой вываливаются в пульт, а на пульте есть уарт для подключения к компу. К разъемам переменников стиков гипотетически можно порубить аналоговые выходы вашего ардуино, и вертеть всеми каналами (роботом) как хочешь, если вы не хотите лезть в дебри прошивки пульта. Как то так …

Максим, спасибо за совет, но дело в том что я планирую использовать ПК в качестве управления, а не дистанционный пульт управления. Не отрицаю что существуют альтернативные возможно более удобные вариант реализации для моей задачи, но раз уж оборудование куплено, то буду работать с тем что есть 3dr+ Arduino. Открытым остается вопрос как реализовать двухсторонний обмен командами через UART между “ground module” и “air module” + arduino pro mini на С++.

ShrekS:

Для начала можно модули телеметрии настроить. Например: apmcopter.ru/apm/apm-setup/telemetriya-nastrojjka-modulejj.html

Тестовое соединение прошло успешно! Зеленые статичные лампочки на обеих модулях. Драйвер для ground модуля установился автоматически. Также успешно удалось выполнить тест с замыканием Rx и Tx на air модуле и выводом echo в окно терминала Putty.

ShrekS
Roboshop72:

Тестовое соединение прошло успешно!

Мои поздравления! Из собственного опыта отмечу: нужно следить, чтобы поток данных не превышал пропускную способность радиоканала. Иначе возникает потеря данных и прочие странности. В случае сильных помех бодовую скорость “в эфире” можно снизить до 19200. В чистом поле на 57600 дальность до 150 м при высоте полета квадрика 50-100 м.

16 days later
Roboshop72

Доброго времени суток! Пытаюсь поднять FPV видеопоток на следующем оборудовании:

  1. Передатчик: www.aliexpress.com/item/…/2015457114.html
  2. Приёмник: www.aliexpress.com/item/…/32759633399.html
  3. Комплект антен: www.aliexpress.com/item/…/32218978475.html
  4. Камера: www.aliexpress.com/item/…/32750703081.html

Сегодня специально выезжал в чистое поле для тестирования на открытом участке. Приёмник и передатчик настроил на 6-й канал. На вход передатчика подавал 9v, на вход приемника было подано 12v. Дальность приёма видеосигнала составила 50 метров, при удалении более чем на 50 метров видеосигнал пропадает.

Подскажите пожалуйста в чем может быть проблема? По характеристикам передатчика дальность его действия должна составлять 8-10км на открытом участке. Может я использую не тот тип антенн или что-то делаю неправильно? Мне необходимо поднять стабильный видеопоток хотябы 5 км на открытом участке. Спасибо.

MANS

Без антенны передатчик не включали?
А со штатными антеннами как?