Как сделать машинку на радиоуправлении для грязи

Добавил пользователь Владимир З.
Обновлено: 05.10.2024

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

Умелые руки, фантазия и подручные материалы позволят самостоятельно сделать такую машину из картона, которая не уступит по мощности и проходимости покупным машинкам из пластмассы.

Для её изготовления нам понадобится:

Начальный этап

Для начала возьмём лист картона 9/ 28 см. и вырежем в нём несколько деталей.

С левой стороны вверху, отступите примерно 1,5 см. от бокового края и вырежьте прямоугольник 3/ 4,5 см, то же самое сделайте снизу, а с правой стороны сверху отступите примерно 4,5 см. и вырежьте прямоугольник 2/ 4,5 см., идентичный вырежьте снизу.Между этими прямоугольниками посередине вырежьте полоску 1/ 4,5 см. Эта деталь послужит нижней частью нашего автомобиля.

Вырежем боковую сторону.

Для этого на картоне 9/ 28 см. необходимо нарисовать вид машины. В левой стороне отступите примерно 0,5 см. от бокового края и 1 см. от нижнего, проведите линию длиной 4 см., а от неё линию наклоняя в середину длиной 5 см. прямо до конца картона. С правой стороны проведите от края чуть ниже середины горизонтальную линию от края в середину, приподымая немного вверх, длиной 7,5 см, а от неё линию 5,5 см., ведя вверх и наклоняя в середину. Внутри этой части картона можно нарисовать окна, дверцы и колёса. Причём колёса и окна также надо вырезать, а дверцы просто надрезать, чтобы они открывались и закрывались. Таких деталей необходимо сделать две, ведь они будут боковыми сторонами нашего автомобиля.

Чтобы сделать колёса возьмите 4 крышки от пластиковых бутылок и сделайте в середине по отверстию. На бамбуковую палочку для барбекю приклейте посередине маленький пластиковый кружок, сделав сначала в нём подходящее для этого отверстие. Теперь возьмите пластиковую трубочку как от ватной палочки, отмерьте размер на картоне, который будет дном машины. С правой стороны от нижнего вырезанного прямоугольника до средней полоски отрежьте два таких отрезка. Затем наденьте их на бамбуковую палочку вплотную к приклеенному кругу с двух сторон. После наденьте крышки от бутылки и, отступив от полосок примерно 0,5 см., приклейте их, а остаток бамбуковой палки отрежьте, чтобы она не выглядывала из-под крышек.

На середину, где приклеен пластиковый круг, наденьте резинку. Теперь приклейте колёса в предназначенное для них место с правой стороны картона, резинка должна находиться в среднем отверстии. К следующим двум крышкам нужно вставить в отверстие пластиковые трубочки, приклеить их, а затем отрезать пластиковую трубочку по высоте самой крышки. От корпуса шариковой ручки отрезаем два кусочка по 2,5 см. Надеваем их на металлическую палочку и с помощью плоскогубцев выгибаем эту палку. В результате должно получиться: горизонтально металлический штырь длиной примерно 3 см., под углом 90 градусов.

устройство rc машины

Как это работает?

Современные модели на радиоуправлении можно разделить на две больших группы:

  • RTR. Полностью готовые к использованию машинки, Ready to Run. То есть, достал модель из коробки, поставил аккумулятор – и вперёд, на гонки;
  • Kit. Вариант поставки для продвинутых пользователей: вместо собранной машинки приходит набор запчастей, к которым Вы добавляете свои – кастомные – запчасти, собирая в итоге модель своей мечты самостоятельно.

Примечание: вариант, в котором Вы все запчасти покупаете отдельно, мало чем отличается от Kit-версии. Просто Вы не пользуетесь готовыми наборами, но, тем не менее, используете фабричные запчасти.

Конструкция rc машины

Какие запчасти понадобятся?

Как правило, если Вы выбрали какой-то Kit, то в его комплектацию входит только шасси и корпус. Дополнительно понадобятся (рассматриваем вариант с электрической машинкой):

  • Двигатель;
  • Радиоаппаратура: пульт управления, приёмник, телеметрия;
  • Колёса;
  • Аккумулятор;
  • Диски, вставки и т. д.

В конечном итоге, всё зависит от конкретного набора для сборки радиоуправляемой модели машины своими руками: в некоторых, например, нет кузова, и он приобретается отдельно.

Сложно ли собрать Kit?

Именно на стадии сборки Kit’a сложностей обычно не возникает: детали пронумерованы, к ним в комплекте идёт подробная инструкция – делайте всё аккуратно, и проблем не будет. Трудности чаще всего возникают на объединении шасси с остальными комплектующими, поэтому ещё раз советуем: перед покупкой двигателя и прочих запчастей внимательно изучите выбранный Kit и его характеристики. Отличным выбором будет почитать тематические форумы: наверняка с этим Kit уже кто-то работал – и, скорее всего, этот кто-то охотно поделится опытом.

Пластик или алюминий?

  • Пластик: легче, лучше гасит удар, восстанавливает форму после столкновений. Но, при этом, при слишком сильном ударе пластик трескается и рвётся, починить его будет практически нереально – деталь под замену. Кроме того, на пластиковых деталях со временем разбалтываются посадочные места валов и подшипников, из-за чего возникают люфты – снова приходится менять деталь;
  • Алюминий. Поддаётся ремонту и практически не деформируется со временем, но хороший алюминий стоит дороже, чем хороший пластик. Плохой алюминий обычно довольно хрупкий и буквально рассыпается при том уровне нагрузок, который качественный пластик даже не заметит. А стоит примерно столько же.

Алюминиевая ходовая часть rc машины

Производители запчастей

Можно выделить три наиболее интересных бренда:

Кузов Pro-Line

​​​​​​​

Общие выводы по машинкам на управлении своими руками

Если аккуратно следовать инструкции и не торопиться, в самостоятельной сборке RC-модели нет ничего запредельно сложного. Главное – это использовать качественные комплектующие от известного бренда, они встают на свои места беспроблемно. Ну и рекомендуем начинать с Kit’a попроще, а потом уже, получив первый опыт, задирать планку кастома.


Давно ничего не писал, — зачесались руки)) Уверен, кому-то это пригодится=)
Решил выложить пост, о небольшой прокачки детской машинки на пульте управления.


Суть поста вкратце: заряжаемые аккумуляторы вместо батареек.

Дальше много букв и фоток))

Часто, мой мелкий просит, чтобы я поиграл с ним (машинками). Так довелось, что с самого раннего возраста, а именно с 6-7 месяцев он полюбил машинки. Сейчас уже ему перевалило за 3 годика, но интерес к машинам стал еще больше. В 2 годика начал учить его говорить марку автомобиля по эмблеме. Выучил довольно не плохо, теперь ходит по улице мимо машин и называет марку)) Когда ему исполнился годик, я купил ему 2 машинки на пульте управления (сначала лексус is250, затем гелик. обе одной серии). Машинки до безобразия простые, 4 кнопки управления — вперед-назад, повороты влево-вправо.

Трех батареек АА нам обычно хватает на 2-3 дня. Спустя 1-2 часа прилично падает мощность и весь драйв машинки пропадает. Поэтому решил переделать питание от аккумуляторов. Плюсов от этого не мало. Постоянная мощность, может долго ездить на одной зарядке, не нужно платить больше))

Опишу в деталях, что было сделано.
Сначала я разобрал гелик, чтобы посмотреть что у него внутри. В машинке оказалось достаточно просторно. Внутри легко можно было разместить 3-4 аккума 18650, но я решил что двух 18650 емкостью 3200 мАч будет достаточно. Суммарно от двух аккумов выходит 6400 мАч (не во всех ноутах есть такая емкость).

Наша машинка работает от трех АА пальчиковых батареек, соединенных последовательно, что дает в сумме 4,5В. Следовательно, понадобится аккум на 3,7В, это достаточно, чтобы машинка бодро ездила.

Немного погуглив, нашел цены и нужную емкость. Остановился на Panasonic NCR18650BE.


Заказал на алиэкспрессе, т.к. цена одной батарейки у нас почти в два раза дороже.
Чуть позже выяснилось, что они без защиты от разряда. Это нам не подходит, т.к. "голова" машинки не знает что такое зарядка. Поискав немного, нашел точно такой же аккум с защитой, стоили чуть дороже, но было уже поздно, батарейки были уже в пути.
Начал искать на алиэкспрессе контроллер защиты от разряда. Нашел, заказал. Позже выяснилось, что нужно еще защита от перезаряда)) Снова лезу на али, ищу двойную защиту и нахожу!))


Слева защита от полного разряда и перезаряда (порт microUSB). Справа защита от перезаряда(порт miniUSB) Оба контроллера с индикатором (по завершению зарядки, горит другим цветом)

Суть в том, что литий-ионные аккумы нельзя разряжать меньше 2,5-2,7В и заряжать больше чем 4,2В. Их структура быстро разрушается и они быстро выходят из строя. Мобильные аккумы работают по такому же принципу. Обычно защита встроена в аккум.

Чтобы в будущем не иметь проблем с отсоединением проводов, я припаял к контроллеру питания двухпиновые JST коннекторы.


Это нужно, чтобы легко можно было отсоединить аккумы от корпуса. Проверил работу контроллера, заряжает!)) Сделал отверстие для миниUSB и посадил контроллер питания на термоклей. Оба аккума спаял последовательно проводами, предварительно обработав места пайки активной кислотой(флюс). В итоге получаем двойную емкость на 6400 мАч.


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


Аккумы приклеил термоклеем к кузову, но они быстро отвалились. Пришлось секундным клеем с содой проклеть еще и края. Проверенно, держится железно! Падал со стула и дивана))


Минус такого решения в том, что наезд на любое мелкое препятствие любым колесом — машинку опрокидывает на бок. Аккумы на крыше все же делают свое дело. Думаю позже контроллер машинки переместить на место батареек в самый низ, а аккумы на место контроллера, тогда машинка будет устойчивее.


Немного фоток рабочего процесса:




Разобрал корпус моторчика, смыл весь белый солидол и смазал синтетическим солидолом. Не знаю насколько это правильно, другого у меня не было)) Мне не понравилось, что весь моторный отсек был заполнен заводским солидолом. Я смазал только те участки, где было необходимо.




И наконец, подвеска для плохих дорог была заменена=)) Родные амортизаторы были слишком ватные, решил нарезать из жесткой пружины, получилось не плохо)) Пружину достал из пульта убитой ламборджини и нарезал кусачками)) Теперь у нас спортивные пружины, встали как родные)))))



P.S.
Есть еще один вариант подключения аккумов. Я тогда в них еще не разбирался, поэтому заказал 18650, на фото они выглядели такими же, как и пальчиковые АА.
Понадобятся 3 аккума NCR 18500, но нужно брать без защиты. С защитой они будут чуть длинее и не залезут в штатное место без напильника. Затем остается перепаять лоток батареек для параллельного соединения. Иначе на выходе получите 11.1В и сгоревший контроллер машинки))

Кому нужно больше мощности на заднем приводе, можно купить специальный бустер DC DC, который из 3,7 вольт на выходе отдаст 5В. Машинка станет более резвой. Но есть в этом и минусы. Думаю, будет быстро греться, могут часто выходить из строя моторчики, возможно и контроллер быстрее "приедет", аккум будет немного быстрее разряжаться. Можно конечно настроить и под 4,2-4,5В, но понадобится специальный DC DC, который можно настроить на вольтаж от 3,7В до 12В (спец. крутилка, а мультиметром замер напряжения на выходе).

UPD. 20.05.2016
Спустя 9 месяцев машинка перестала ехать вперед. Задний ход работал. Думал моторчик "приехал", но нет. Замена моторчика не помогла. Благо у меня был лексус из той же серии. Выпаял все провода, и подсоединил к гелику. Машинка заработала. Теперь у гелика третья жизнь!)))

Заодно переместил контролер в отсек батареек, отрезал родные места крепления и припаял их к днищу, на них уже прикрутил сам контролер.
Сделал это из-за того что аккумы были приклеены к крыше, изза этого центр тяжести был нарушен. Машинка переворачивалась набок при повороте наехав на небольшой камушек.

За последние несколько лет мне довелось сделать немало дистанционно управляемых устройств. Некоторые управлялись локально, с обычного ПК или со смартфона. Некоторые — через Интернет. Все устройства объединяет общий принцип — управляет ими человек, ориентируясь по картинке с видеокамеры на борту устройства. А само управление, в итоге, сводится к выдаче управляющих сигналов на сервомоторы или регуляторы (драйверы) моторов.

В общем, в продолжении топика попробую написать рецепт про то как с помощью Виртурилки и РЦборды из обычной радиоуправляемой машинки сделать машинку, управляемую через Интернет (ну и локально она тоже будет управляться). Каналом связи будет обычный Wi-Fi (выход в инет через домашний роутер) или 4G связь через свисток Yota.


Краулер BSD Racing 4WD RTR 2.4Ghz 1:10

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

Что понадобится для сборки

  • Машинка c регулятором двигателя, двигателем и сервой
  • Аккумулятор (любой с подходящим для регулятора напряжением)
  • Контролер Virt2real (Виртурилка) с камерой, переходник USB-OTG, флешка micro-SD
  • Свисток Wi-Fi или Yota (можно и любой другой 4G модем)
  • Руки умеренной линейности

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

Как я уже писал, рцборду мы уже много где использовали, но из задокументированных случаев нашёл только вот эти:

Испытания рцборды на багги в Шеньчжене, управление из Москвы

Испытания рцборды на краулере в Питере, управление из Москвы

Испытания рцборды на самолёте над Питером, управление из Москвы

Клёвый снегоуборщик под управлением рцборды

Самый тяжёлый девайс под управлением рцборды

Итак, подопытный кролик

Краулер для дистанционного управления хорош тем что он обладает очень высокой проходимостью.


Настройка Виртурилки

Перед тем как собирать машинку, надо настроить Виртурилку. Сначала рассмотрим вариант с подключением по Wi-Fi.

Проверка подключения Виртурилки к сети




Общий принцип подключения моторов машинки

Обычно у RC машинки два мотора. Один обычный, коллекторный — крутит колёса. Второй — сервомотор, поворачивает передние колёса в нужную сторону. Т.е. получается что требуется всего два канала управления — газ и руль. Изначально (если машинка куплена в собранном виде) все каналы подключены к штатному радиоприёмнику трёхпиновыми разъёмами типа JR (стандартный серворазъём). Чёрный (или коричневый) провод — земля, красный — питание (5-6В), жёлтый (или белый, или оранжевый) — сигнальный провод.

Именно по сигнальному проводу мы и будем управлять моторами, но сначала надо подать питание на серву, которая рулит колёсами. Тут общий принцип такой — с бортового аккумулятора силовое питание с напряжением, равным напряжению аккумулятора, идёт по толстым проводам на мощный регулятор коллекторного (или бесколлекторного) мотора. Внутри этого регулятора есть так называемый BEC — преобразователь напряжения, делающий из различного аккумуляторного напряжения стабильные 5 Вольт (иногда 6В, можно выбирать перемычкой на регуляторе), требуемые для питания бортовых сервомашинок, приёмника и различной другой электроники. Это стабилизированное питание обычно рассчитано на нагрузку не более чем 2-3А, хотя это тоже зависит от модели регулятора.

Выходное напряжение BEC по чёрному и красному проводам тонкого трёхжильного шлейфа от регулятора подаётся на приёмник. Здесь таится главный нюанс, который не все сразу осмысливают. Повторюсь — от регулятора идёт кабель с тремя жилами. Из них две жилы это питание, которое выдаётся с регулятора, т.е. это выход. А третий провод (белый, жёлтый или оранжевый) — это провод управления, т.е. вход. Вроде мелочь, а почему-то многие путаются.

В приёмнике есть несколько групп трёхпиновых контактов. Их количество зависит от количества каналов, на которое приёмник рассчитан. У машинок обычно 2 или 3 канала, так что групп, соответственно, 3 или 4 (одна группа для установки перемычки Pair (сигнал на спаривание приёмника и передатчика). У этих групп контактов все пины питания замкнуты между собой, т.е. земля и питание приходят с регулятора и подаётся сразу на все группы контактов. А вот сигнальные пины все независимые, на них выдаётся сигнал, принятый приёмником с радиоаппаратуры управления.



Так как управлять мы будем с помощью независимого контроллера, родной приёмник машинки нам не нужен, убираем его вообще. А трёхжильные шлейфы от регулятора и от сервомашинки нам необходимо соединить хитрым образом — чёрный провод соединить с чёрным, красный — с красным. А оставшиеся белые (жёлтые или оранжевые) два проводка надо подключить к Виртурилке, а именно к пинам CON44 и CON43, см. схему . Какой именно провод к какому пину особо значения не имеет, так как каналы можно настроить потом в конфиге рцборды.

Должно получиться примерно такое подключение


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

И да, самое главное — питание на Виртурилку подаём прямо с контактов аккумулятора. Ей нестрашно напряжение вплоть до 20В, так что чем выше напряжение — тем лучше, ток меньший будет потреблять. КПД преобразователя питания (SEPIC, установлен на самой Виртурилке) падает только после 15В, так что идеальное питание — от 12 до 15 В, при этом в полной нагрузке (с вифи) Виртурилка будет потреблять около 150-300 мА. Хотя это тоже зависит от свистка (свисток Yota шибко прожорливый, с ним будет поболее).

Сборка машинки

Я попробовал заснять видео процесса сборки моего краулера. Не знаю, насколько там всё понятно, но лишним, думаю, не будет. Вот видеоролик про сборку:

Настройка сервера рцборды

Все настройки рцборды можно редактировать в специальной панели управления рцбордой (не путать с админкой Виртурилки). Вот так сейчас выглядит панель управления рцборды (первая версия)


Конфигурация может быть локальная (т.е. файл конфигурации постоянно находится в каталоге рцборды и доступен для редактирования в панели управления), а может быть удалённая, когда файл конфигурации скачивается при каждом запуске рцборды с веб-сервера.

В топике я расскажу лишь про локальную конфигурацию, удалённую сами можете попробовать, если кому интересно. К слову, когда я катался на машинке по Шеньчженю (видео в конце топика), то как раз удалённый конфиг использовал, чтобы можно было менять настройки. Изменение настроек из приложения есть пока в виде набросков, толком ещё не работает, но даже когда и доделаю — удалённый конфиг всё равно пригодится.

По умолчанию за всё управление отвечает библиотека universal.so, параметры для которой находятся в конце конфига, в разделе "[universal]".

Соответствие каналов управления и каналов PWM/PPM задаётся параметром axis.

По дефолту настроено 4 канала PPM, которые находятся на пинах CON43, CON44, CON19, CON42. За это отвечают вот эти строчки конфига

ch0=43,ppm,500,1500,2500,127,0
ch1=44,ppm,500,1500,2500,127,0
ch2=19,ppm,500,1500,2500,127,1
ch3=42,ppm,500,1500,2500,127,1

Формат настройки канала такой:
chX=CON,TYPE,MIN,CENTER,MAX,NEUTRAL,NOAUTOCENTER

Где
X — номер канала PWM/PPM, от 0 до 3
CON — номер пина (не GPIO, а именно пина, см. схему)
TYPE — тип сигнала, ppm или pwm. Для машинки нужно ppm, для типа pwm другой формат строки конфига.
MIN — минимальное положение PPM сигнала, в миллисекундах.
MAX — максимальное положение PPM сигнала, в миллисекундах.
CENTER — центральное положение PPM сигнала, в миллисекундах.
NEUTRAL — относительное значение нейтрали, т.е. нейтральное значение команд управления. Обычно = 127
NOAUTOCENTER — если = 0 — автоматически возвращать сигнал в центральное положение, = 1 — не возвращать. Для каналов газа и руля машинки нужно указать 0, для каналов сервоприводов, которые используются для вращения камеры обзора — нужно указать 1 (если такие есть, конечно)

Формат такой:
pins=CHANNEL,CON,DEFVALUE,SAVESTATE|.
где
CHANNEL — канал кнопки (от 1 до 32)
CON — номер пина, который требуется установить в 0 или 1 по приходу команды управления с кнопок
DEFVALUE — значение, в которое данный пин будет установлен при запуске рцборды
SAVESTATE — если = 0 — при нажатии кнопки пин установить в 1, при отпускании — установить в 0. Если = 1 — при нажатии кнопки пин установить в 1, при отпускании кнопки ничего не делать. При следующем нажатии кнопки пин установить в 0, при отпускании — снова ничего не делать. И так в цикле.

Каналы кнопок можно указывать подряд, через разделитель "|".

Краткий вывод из этой смутной информации — если у вас перепутаны каналы газа и руля — можно их поменять местами, изменив параметр axis на axis=1,0,2,3 :-)

Если нужно ограничить крайнее положение сервы руля — меняем значения MIN и MAX для нужного канала. Если машинка при нейтральном положении едет вперёд или назад — изменить значение CENTER для нужного канала.


Модуль — это отдельное приложение (исполняемый бинарник), которое обычно выступает в качестве источника телеметрии. Активные модули — это те, которые запускаются автоматически при старте рцборды и завершаются при завершении её работы. В панели управления можно перемещать модули из одного столбца в другой, нажатием на оранжевую стрелочку. При перемещении в колонку активных — модуль сразу запускается, неважно, запущена рцборда или нет. При перемещении в неактивные — модуль автоматически прекращает работу.

Модули работают просто — читают требуемые параметры и по UDP отправляют на локальный порт (ext_telemetry), указанный в конфиге. А там уже рцборда принимает инфу и передаёт по каналу телеметрии в приложение Virt2real Player. Одновременно с этим та же информация передаётся в пользовательскую библиотеку девайса (в нашем случае это universal.so), чтоб приложение могло анализировать информацию и использовать по своему назначению. Например, у меня была библиотека девайса под названием autobot.so — управляемая тележка, которая помимо управления пользователем могла ещё и автономно ездить, ориентируясь по сигналу с ультразвукового дальномера.

Из основных модулей — statuswifi поставляет в рцборду информацию о статусе вайфай линка. Airosstatus.php (да, модуль можно и на похапе писать) — читает статус линка с оборудования Ubiquity, gps — читает GPS приёмник. Модуль imu обрабатывает инфу с инерциальных датчиков (углы Эйлера формирует, азимут и компас), правда он пока работает только с одним типом датчиков, так что для универсального использования ещё не годится. Nfc — читает NFC метки, но тоже работает только с одним типом ридеров. rc.in — читает PPM сигналы с RC приёмника, т.е. машинкой можно ещё и с обычной аппы управлять, у неё приоритет перед командами управления через вайфай. rfid — читает метки RFID. statusyota — читает статус линка 4G модема Yota. usrange — читает показания ультразвуковых дальномеров. voltage — определяет напряжение питания борта, требуется простенький делитель напряжения (2 резистора) подключить к ADC0. В общем, интересных модулей куча, по каждому предстоит подробное описание делать, так что пока считаем что я упомянул их для затравки :-)

Для нашего рецепта управляемой машинки актуален модуль statuswifi — если настраиваем подключение через Wi-Fi или statusyota — если подключаем Виртурилку через свисток Yota.

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

Кстати, в самой ранней версии для передачи телеметрии я использовал протокол MAVLINK, но по мере обрастания фичами его стало не хватать, так что перешёл на свой протокол. А MAVLINK подумываю добавить в качестве параллельного канала телеметрии, но это уже в следующей версии приложения.

Скажу лишь одно — лучше всего машинкой управлять с USB руля и педалей, подключённых к компу. Ну или хотя бы с RC аппы, подключённой тренерским разъёмом к компу. А пальцами по экрану смартфона может быть и круто, но нифига не удобно без тактильных ощущений.

А теперь самое главное — управление через Интернет

Вводная информация про P2P режим

Так как для канала управления и для канала видео используется UDP — так и хотелось сделать полноценный P2P (Peer-to-peer) линк, чтоб не гонять видео от борта до сервера и обратно до клиента. Ну, раз хотелось — взял и сделал :-) Фактически, получился простой и лёгкий аналог адобовского RTMFP (не путать с RTMP). Только вот передачу звука добавить никак руки не дойдут, так что рцборда пока немая и глухая.

С UDP какая основная проблема — преодоление NAT. Так как на одном из концов линка (на передающей стороне или на приёмной) обязательно есть NAT — просто указать адрес и порт сервера (или клиента) не получится — NAT помешает. В виндовом Virt2real Player есть возможность с помощью UPnP сделать проброс порта, но это не совсем то чего я хотел. А то что хотел — получилось только после вдумчивого курения технологии UDP Hole Punching. В итоге всё получилось как надо — неважно, какой роутер, неважно где клиент или сервер. Главное чтоб был выход в Интернет. Хотя вру, есть один единственный тип NAT, который пробить пока не удалось. Всё время забываю как он правильно называется, вроде бы симметричный NAT.

И да, обычные TURN и STUN серверы в рцборде не используются, только своя реализация. Как я обычно говорю: хочешь изучить технологию — сделай по своему, а потом сравни с общепринятыми решениями. Любители велосипедов меня поймут. Однако часто оказывается что велосипед не так уж плох и свои задачи выполняет лучше чем общепринятые решения.

Это так, лёгкий оффтоп был. Продолжаем про NAT. Поддержка P2P есть пока только в виндовом приложении Virt2real Player, в андроидное и айфонно-айпадное ещё не добавлял. Проверял работу с коннектом через свисток Yota, через свисток Beeline 4G, через точку доступа на смартфоне, который в инет выходил тоже через Beeline 4G. Во всех этих случаях всё работает, но заметил что идеально только через Yota. Через билайн (в любом из опробованных видах) тоже работает, но коннект дольше времени занимает. Почему так происходит — пока не разбирался. Из печального — пока не удалось заставить работать линк (и команд, и видео) когда и клиент и сервер подключены через 4G свистки. Возможно, тут как раз симметричный NAT и подкрался.

Настройка P2P режима, на борту стоит Wi-Fi

К Виртурилке на борту машинки подключён свисток Wi-Fi (т.е. как делали до сих пор по инструкции из этого топика). Только сначала мы управляли машинкой локально, а теперь сможем дать кому-нибудь порулить из Инета.

Всё, на этом настройка p2p режима рцборды закончена. Необходимо убедиться что Виртурилка имеет выход в инет и можно запускать Virt2real Player виндовый. Если его запустить в локальной сети, там же где и рцборда — плеер обнаружит локальную рцборду (неважно что она в p2p режиме) и можно будет подключиться напрямую. А вот если плеер запускается в другой сети, надо настроить его на p2p режим.

Настройка P2P режима, на борту стоит Yota

К micro-USB порту Виртурилки на борту машинки подключаем свисток Yota (через переходник USB-OTG, само собой). Те свистки, которые сейчас в продаже у Yota

К сожалению, дома у меня Yota еле-еле фурычит, так что полноценно не покатаешься. А вот Билайновский 4G отлично работает, поток 3 мегабита (и входящий, и исходящий) пролазит без проблем.

Во всех нижеприведённых экспериментах все настройки одинаковые, меняется лишь вид связи.

Читайте также: