Для радиоуправляемых танков существует достаточно много модулей управления. Большинство из них достаточно дорогие. Но далеко не каждый танковод готов выложить 200 евро за ElMod. Самым бюджетным модулем является RX-18. Выпускается он в двух вариантах: с приемником 27МГц и 2.4ГГц. В частности версией 27МГц оснащаются все танки Хенг Лонг в стоке.


Вот только обрычный пульт р/у он не признает. Я задался целью, исправить эту ситуацию.
Главный плюс, понятно, - это цена. Стоит он копейки.
Подробнее о минусах:
  1. В него нельзя загнать свои звуки
  2. Достаточно слабые выходные каскады на двигатели. Если сгорит – не ремонтопригоден.
  3. Этот модуль работает только со своим приемником и, как следствие, только со своим пультом.
  4. В нем уже встроена система боя. Нужно только подключить ик-датчики. Вот только она какая-то «своя» и особого распространения не имеет.
  5. Танк не умеет понижать скорость в зависимости от числа попаданий.
  6. Встроенная система боя вообще никак не настраивается
Есть еще ряд особенностей, которые снаружи особо не видны:
  1. Система дискретная. Т.е., например башня крутится либо вправо, либо влево. Но всегда с одной скоростью.
  2. Пропорциональных каналов всего два. Это управление движением. Но пропорциональными их можно назвать с натяжкой. 5 бит на канал – это очень убогая пропорциональность.
  3. RX-18 не понимает стандартные PPM/PWM сигналы управления.
Некоторые из этих минусов я решил устранить. И начал я с создания энкодера для подключения универсального пульта с приемником, имеющим на выходе стандартные сигналы PWM. Для примера была взята видавшая виды Турнига 9х.

Несколько слов о пульте
Турнига перешита на ER9x. Каналы настроены следующим образом:
  1. RUD
  2. ELE
  3. THR
  4. AIL
  5. TRN SW
  6. THR SW
  7. GEA SW
Для всех тумблеров сделана настройка: на себя -100% (около 1000мкс); от себя 0%(около 1500мкс).

В роли вч-модуля выступает FrSky DHT, встроенный во внутрь. Приемник FrSky V8R7-II (7 каналов).

Пульт когда-то был mode 2. Но для танков и прочих своих робототехнических проектов на левый джойстик я поставил пружинку. Теперь он центрируется так же как и правый.

Для экспериментов мой друг Дима Механик собрал мне стенд. На нем аккуратно расположены все типовые узлы танка Хенг Лонг.

Первым делом я взял осциллограф, и потыкал им в канал связи RX-18 и приемника 27МГц.

Тут меня ждала неожиданность. Я наверное с неделю или две пытался понять принцип кодировки. Но в конечном счете таки разгадал.
Передача цифровая. Для передачи использована достаточно редкая кодировка – Manchester coding. После преобразования получаем битовый пакет, состоящий из заголовка, данных по каналам и контрольной суммы. Просидев еще с неделю, я таки разложил этот пакет на составляющие.
Уж не знаю, где китайцы сперли схему этого модуля, но до такой кодировки они сами точно додуматься не могли. Уж слишком наворочено для столь дешевой приблуды. Гораздо проще было бы использовать обычный PPM.

Ну да к Лешему их. Где сперли, там сперли…
Далее встал вопрос собственно изготовления энкодера. Входные требования я выставил следующие:
  1. Максимально использовать скудные возможности RX-18
  2. Управление должно осуществляться по 6-ти или 7-ми каналам с обычного приемника (см выше описание моего пульта)
  3. Чтоб танк ожил, его надо завести. Завод/глушение двигателей должен осуществляться с тумблера (завод – на себя, глушить – обратно) для 7-ми канального режима или джойстиком управления башней – для 6-ти канального.
  4. Настройка должна осуществляться со специального приложения с компьютера. При этом энкодер подключается к компьютеру через UART-to-USB модуль. Например, FTDI.
  5. На будущее оставить возможность подключения других блоков. Например, блока с системой ИК-боя на протоколе Тамии.
Для реализации я решил использовать микроконтроллер AVR. Учитывая, что с RX-18 на его родной приемник подается прямое напряжение с аккумулятора танка, схема энкодера получилась примитивно простой:
  1. Микроконтроллер с минимальной обвязкой.
  2. Стабилизатор напряжения
  3. Провода
  4. 7 разъемов
Больше ничего и не надо. Поскольку проект изначально задумывался как коммерческий, существенным вопросом была минимизация трудозатрат на производство. Именно поэтому я не стал изготавливать собственную плату, а взял готовую – Arduino Pro Mini. Это как раз и есть микроконтроллер с минимальной обвязкой + стабилизатор питания 6-15В. При достаточно небольших размерах и очень низкой цене, это оказался идеальный вариант.

После напайки проводов и обжимки разъемов получилось вот что:



Настройка:
  1. Подключаем энкодер к приемнику.
  2. Подключаем к нему UART-to-USB.
  3. Втыкаем в комп и ставим драйвера. Драйвер моста можно взять из Arduino IDE или скачать подходящий к Вашему мосту из инета. Гугл в помощь. Это не проблема.
  4. В системе появится COM-порт, соответствующий мосту
  5. Качаем с моего сайта программу WinTank. Специальной установки она не требует. Распаковываем архив и запускаем.
  6. В выпадающем списке выбираем порт и жмем кнопку соединение.
  7. Потом жмем кнопку «Прочитать настройки»


Далее по блокам:
  1. Кол-во используемых каналов. Назначение каналов.
  2. Текущие сигналы с приемника для каналов управления движением и башней.
  3. Минимальные значения каналов.
  4. Центральные значения каналов.
  5. Максимальные значения каналов.
  6. Задержка на перезарядку орудия и задержка на старт/остановку двигателя.
Первым делом устанавливаем назначение каналов в соответствии с подключением к приемнику и жмем кнопку «Сохранить». Далее калибруем энкодер.
Калибровка:

Калибровка нужна для того, чтоб правильно пересчитать сигналы с приемника на сигналя для RX-18. Операция предельно простая. При правильно подключенном приемнике и включенном пульте в блоке 2 будут отображаться текущие показания. Оставляем джойстики в центральном положении. Нажимаем кнопку «Reset». Потом запоминаем центральное положение. Для этого жмем кнопку «Mem Center». Теперь двигаем джойстиками по всем крайним положениям. В итоге получим соответствующие значения для вашего пульта в блоках 3, 4 и 5. Жмем кнопку «Сохранить».

После этого энкодер можно отключить от компьютера и поставить в танк.

При использовании 6-ти каналов запуск двигателя осуществляется джойстиком управления башней и орудием. Его надо быстро передвинуть в крайнее верхнее левое положение и потом сразу в крайнее верхнее правое положение.

Для сброса энкодера в начальные установки при включенном питании замыкаем контакты 12 и 13(см маркировку на плате) пинцетом и жмем кнопку сброса на плате Arduino. Контакты специально не впаиваю, чтоб не мешались.

Проект коммерческий, так что немного о ценах.
На сегодня цена энкодера с небольшим моим интересом 600р. Если кому надо, за 300р положу в комплект FTDI адаптер для подключения к компу. Это что-то типа клиентоориентированного сервиса :). Заявку можно отправить с моего сайта через форму обратной связи. Для москвичей за энкодером можно приехать на метро Войковскую и получить зверя «из рук в руки». Для остальных отправлю почтой. Указываете адрес, я иду на почту и выясняю, сколько это будет стоить. Отписываюсь Вам.

К сравнению: подобный энкодер(RC5HL) можно приобрести у австралийцев за 40 ихних долларов.

Мой сайт