Diy радиоуправляемая двух-канальная машинка
Здравствуйте, в этой статье соберем набор радиоуправляемой машинки
Машинка работает на двух батарейках типа АА 1.5V управляется двух канальным пультом.
Набор получаем в запаянном пакете.
Комплектация:
— пластиковая крепежная площадка 75 х 120 мм.
— колеса (4шт.) в диаметре 40 мм.
— пластиковые шайбы (устанавливаются на ось между колесами и основной пластиной)
— болтики, гайки, крепежные уголки.
— коллекторный электро моторчик
— бокс под две батарейки типа АА 1.5V.
— бокс из ползунковым выкл/вкл. под две батарейки типа АА 1.5V.
— радиоприемник передатчик
— антенны (2 шт.)
— инструкция по сборке набора
С комплектации берем вот эти уголочки и крепим их болтиками к основной пластине.
Колеса уже на своем месте)))
Замучу что пластиковые шайбы размещаем на оси между колесом и основой машины.
Как видим в комплекте идут по две одинаковые шестерни, нам пригодится только пара, маленькая шестерня на мотор и большая на вал колес.
В итоге в запас получаем пару запасных шестерен.
Ставим следующую пару колес.
Большую шестерню продеваем на ось колес.
Смотрим место под установку мотора.
Как понятно шестерня на валу мотора будет передавать усилие на большую шестерню одетую на оси колес.
Я думаю ребенок правильно собрал этот узел, чему я рад, все таки это не первый собранный такого плана набор.
Установили ползунковый выключатель.
Закрепили одним болтиком ползунковый выключатель.
Расположили и зафиксировали кассету под установку батареек.
Пора рассматривать модуль радиопередатчика и приемника.
Маркировка на плате:
— В (подключение питания платы, плюсовой контакт)
— В- (подключение питания платы, минусовой контакт, подключим его через выключатель)
— F (вывод подключения мотора)
— F (вывод подключения мотора)
— ANT (провод идущий на антенну)
Почему ребенок держит паяльник в левой руке? Ему так удобнее он и пишет левой.
По идее плата радиоприема должна быть на месте батарейного отсека, я об этом говорил ребенку, но он решил разместить большой вес по центру машины,
Тык, вроде все на месте.
Собственно детали пульта управления:
— бокс под две батарейки типа АА 1.5АА
— антенна
— модуль радиопередатчика
Батарейки в комплект не идут.
Крышка отсека фиксируется саморезом, заменив его на чуть больше размером прижимаем крышу и модуль.
Рассматриваем подключения радиопередатчика.
Здесь проще простого, соединяем провода по цветам.
Решили не соединять провода, а припаять идущие провода от бокса к плате.
На аккумуляторной коробке находится ползунковый выключатель, то есть, им будем выключать пульт управления.
Размер машинки 12 x 11.7 x 4 cм.
С управлением все понятно, на пульте находятся две кнопки вперед/назад.
Итог, здесь особо и ничего написать, мне главное что ребенок доволен и при этом получил опыт работы с паяльником (он долго ждал когда уже начнутся паяльные работы)
Радиус действия РУ по прямой видимости около 8 м.
На данное время рассматриваем элементную базу, конечно нам это сложно все таки первый класс, но что-то в памяти отложится.
Предлагаю к просмотру видео о сборке и первому запуску машинки (видео в ускоренном режиме).
Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.
Машинка на ду управлении своими руками — подготовка машинки
…Микеланджело брал кусок мрамора и отсекал все ненужное, я работаю также беру мясо и забираю все нужное!
В этом уроке мы с Вами подготовим для переделки приобретённую мною модель Mercedes-Benz SLS AMG, масштаб 1:14.
Выясним, как устроена модель и её пульт управления. Определим тип радиоуправления: дискретное или пропорциональное. Рассмотрим, как работает пульт управления и как реагирует модель на его команды. Подготовим нашу модель к переделке.
Давайте попробуем разобраться, как функционирует система дистанционного управления нашей машинки.
Передатчик
Приемник
Разобрав нашу модель, её пульт управления мы выяснили, что передатчик построен на микросхеме TX-2B, а приёмник, установленный в машинке на микросхеме RX-2B.
Типовая схема передатчика представлена на схеме ниже:
При нажатии на кнопки управления микросхема TX-2B формирует командную импульсную последовательность. С выхода SO данные поступают на ВЧ передатчик с амплитудной модуляцией.
Передатчик устроен следующим образом: на транзисторе Q1 собран генератор несущей частоты 27МГц. На транзисторе Q2 собран усилитель высокой частоты с функцией модулятора.
Типовая схема приёмника представлена на схеме ниже:
- В отсутствии команд поступающих с пульта управления передатчик непрерывно принимает шумы и помехи радиоэфира, левая эпюра.
- При нажатии одной из кнопок управления приёмник, собранный по классической схеме сверхрегенератора, принимает сигнал пульта управления, демодулирует и результат поступает на 3-ю ногу микросхемы RX-2B, правая эпюра.
- В результате декодирования RX-2B переводит соответствующий управляющий вывод в высокое состояние.
- Тема поддержки на форуме
- Кто хочет идти «в ногу» с автором курса — создавайте свои дневники на форуме и выкладывайте что у вас получается и какие вопросы возникают при этом.
Схема передатчика. | |||||
Микросхема | ТХ-2В | 1 | Поиск в Utsource | В блокнот | |
Биполярный транзистор | C945 | 2 | Поиск в Utsource | В блокнот | |
Стабилитрон | 3 В | 1 | Поиск в Utsource | В блокнот | |
Светодиод | 1 | Поиск в Utsource | В блокнот | ||
Конденсатор | 47 пФ | 1 | Поиск в Utsource | В блокнот | |
Конденсатор | 68 пФ | 2 | Поиск в Utsource | В блокнот | |
Конденсатор | 150 пФ | 2 | Поиск в Utsource | В блокнот | |
Конденсатор | 0.01 мкФ | 1 | Поиск в Utsource | В блокнот | |
Конденсатор | 0.02 мкФ | 3 | Поиск в Utsource | В блокнот | |
Электролитический конденсатор | 47 мкФ | 1 | Поиск в Utsource | В блокнот | |
Резистор | 100 Ом | 2 | Поиск в Utsource | В блокнот | |
Резистор | 390 Ом | 1 | Поиск в Utsource | В блокнот | |
Резистор | 1.5 кОм | 1 | Поиск в Utsource | В блокнот | |
Резистор | 33 кОм | 1 | Поиск в Utsource | В блокнот | |
Резистор | 160 кОм | 1 | Поиск в Utsource | В блокнот | |
Резистор | 220 кОм | 1 | Поиск в Utsource | В блокнот | |
Кварцевый резонатор | 27 МГц | 1 | Поиск в Utsource | В блокнот | |
Катушка индуктивности | 2.2 мкГн | 2 | Поиск в Utsource | В блокнот | |
Катушка индуктивности | 1 | Поиск в Utsource | В блокнот | ||
Катушка индуктивности | 6.8 мкГн | 1 | Поиск в Utsource | В блокнот | |
Тактовая кнопка | 5 | Поиск в Utsource | В блокнот | ||
Антенна | 1 | Поиск в Utsource | В блокнот | ||
Выключатель | 1 | Поиск в Utsource | В блокнот | ||
Батарея питания | 9 В | 1 | Поиск в Utsource | В блокнот | |
Схема приемника. | |||||
Микросхема | RX-2B | 1 | Поиск в Utsource | В блокнот | |
Биполярный транзистор | KTC9018 | 1 | C1815, C380, C382 | Поиск в Utsource | В блокнот |
Биполярный транзистор | 2SB772 | 3 | 5610, C8550 | Поиск в Utsource | В блокнот |
Биполярный транзистор | 2SD882 | 2 | C8050, 5609 | Поиск в Utsource | В блокнот |
Биполярный транзистор | KTC8550 | 2 | B564, B772 | Поиск в Utsource | В блокнот |
Биполярный транзистор | KSD471A | 2 | C8050, D882 | Поиск в Utsource | В блокнот |
Биполярный транзистор | 2SC945 | 5 | Поиск в Utsource | В блокнот | |
Стабилитрон | 3 В | 1 | Поиск в Utsource | В блокнот | |
Выпрямительный диод | 1N4148 | 1 | Поиск в Utsource | В блокнот | |
Конденсатор | 1000 пФ | 1 | Поиск в Utsource | В блокнот | |
Конденсатор | 47 пФ | 1 | Поиск в Utsource | В блокнот | |
Конденсатор | 18 пФ | 1 | Поиск в Utsource | В блокнот | |
Конденсатор | 0.02 мкФ | 2 | Поиск в Utsource | В блокнот | |
Конденсатор | 4 пФ | 1 | Поиск в Utsource | В блокнот | |
Конденсатор | 500 пФ | 1 | Поиск в Utsource | В блокнот | |
Конденсатор | 2200 пФ | 1 | Поиск в Utsource | В блокнот | |
Конденсатор | 0.01 мкФ | 1 | Поиск в Utsource | В блокнот | |
Конденсатор | 0.047 мкФ | 2 | Поиск в Utsource | В блокнот | |
Конденсатор | 0.1 мкФ | 2 | Поиск в Utsource | В блокнот | |
Электролитический конденсатор | 4.7 мкФ | 1 | Поиск в Utsource | В блокнот | |
Электролитический конденсатор | 100 мкФ 16 В | 1 | Поиск в Utsource | В блокнот | |
Электролитический конденсатор | 220 мкФ 16 В | 1 | Поиск в Utsource | В блокнот | |
Электролитический конденсатор | 470 мкФ 16 В | 1 | Поиск в Utsource | В блокнот | |
Резистор | 80-150 Ом | 4 | Поиск в Utsource | В блокнот | |
Резистор | 1 | Паралельно к конденсатору на 4.7 мкФ | Поиск в Utsource | В блокнот | |
Резистор | 220-330 Ом | 1 | Возле стабилитрона | Поиск в Utsource | В блокнот |
Резистор | 330 Ом | 1 | Поиск в Utsource | В блокнот | |
Резистор | 390 Ом | 1 | Поиск в Utsource | В блокнот | |
Резистор | 820 Ом | 1 | Поиск в Utsource | В блокнот | |
Резистор | 1 кОм | 5 | Поиск в Utsource | В блокнот | |
Резистор | 3.3 кОм | 3 | Поиск в Utsource | В блокнот | |
Резистор | 180 кОм | 1 | Поиск в Utsource | В блокнот | |
Резистор | 250 кОм | 1 | Поиск в Utsource | В блокнот | |
Резистор | 3.9 МОм | 2 | Поиск в Utsource | В блокнот | |
Антенна | 1 | Поиск в Utsource | В блокнот | ||
Электродвигатель | 2 | Поиск в Utsource | В блокнот | ||
Добавить все |
Набор для самостоятельной сборки р/у троффи модели газ-66 (wpl b-24 kit)
Решился собрать р/у кит машинки.
И не пожалел!
WPL-KIT наборы можно подарить мальчику и/или его папе — будет интересно вдвоем собирать игрушку, как сборную модель. В процессе можно познакомиться с работой трансмиссии и подвески, а заодно подтянуть знания по р/у моделям.
Для сборки потребуется пульт, ресивер и аккумулятор, отвертка, некоторое время и терпение.
Собирается без особых проблем.
Всем хороших выходных, сильно отвлекать обзором не буду, освещу основные моменты, в которых сомневался при подготовке к сборке «Шишиги».
Это сборка мостов, подвески, трансмиссии и подключение и настройка электроники/аппаратуры.
Машинка интересна своей дешевизной и приличной подвеской с 4WD трансмиссией
WPL kit — это разобранная полностью машинка, есть варианты WPL B-14K, B-16K (6WD) и B-24K (ГАЗ-66). Каждая модель идет в двух цветах на выбор.
Комплект от WPL привезли быстро, в небольшой коробке, которая содержала несколько пакетов с комплектующими сборной модели.
Скажу сразу — в комплекте есть простая инструкция в картинках, гораздо проще подобных для сборных моделей, например, той же «Звезды» или «Тамийи».
Сборка разбита на несколько этапов, это мосты, рама, трансмиссия, подвеска, кабина, финальная сборка.
Вам потребуется только отвертка, винты для сборки (3х типов), пластичная смазка — все есть в комплекте. Даже провода для пайки двигателя.
Все расфасовано в фирменные пакеты WPL
Часть узлов, например, карданные передачи — уже предварительно собраны.
Итак, по инструкции сначала нужно собрать передний и задний мосты.
Сначала собираем ось моста, не забываем про пластичную смазку.
Передний мост идет с поворотными шкворнями (кулаками). Забиваем смазку.
С одной стороны будет выходить вал для карданной передачи.
Скрепляется мост четырьмя длинными винтами из комплекта.
Сам чулок будет закреплен тоже, но на этапе подвески.
Я не стал дополнительно ничего применять, как говорится «крепок задним умом». На стадии сборки мостов нужно промазать герметиком или клеем пластиковые части. Тогда вода и грязь не будут попадать во внутрь. Не поленитесь, сделайте это.
Задний мост несколько проще собирается.
Также закладываю смазку.
Собрал задний мост.
Колеса собираются просто. Покрышки мягкие, эластичные, имеют хорошее сцепление, но диски не очень хорошие — покрышки часто слетают. Где то видел доработку, есть смысл закрепить покрышки или набить что-то вовнутрь для жесткости.
Дальше собирал раму. Один из самых трудоемких этапов — много крепежа, сборка в несколько заходов.
Стальные профиля для рамы — действительно стальные, около 1 мм, может чуть толще. Это не жестянка, они жесткие, прочные. Скрепляются деталями из пластика, но часто. Крепления примерно через 3 см.
Устанавливаются детали заднего бампера, деталь крепления редуктора, передний поддон для установки кабины и т.п.
Деталей много, крепежа еще больше. Лучше сначала примериться, затем только затягивать винты.
Устанавливаю редуктор с моторчиком, держатели рессор.
Собираю подвеску. Подвеска сложная — пара пластин из пластика, пара металлических рессор разного размера, все это бутербродом крепится на мосты.
Собранные мосты устанавливаются на раму, крепятся.
Заодно собирается трансмиссия — карданная передача составная, части вставляются друг в друга.
Если не вставляются — чуть-чуть крутануть нужно колеса.
Установил колеса с покрышками. Машина уже «на ногах».
А вот рулевое забыл.
Устанавливаю сервомашинку и рулевую тягу.
Тяга имеет резиновую втулку, латунную втулку, которые крепятся к рычагу сервы.
Вот как получилось. Отверстие для крепления на рычаге я подбирал, крайнее не очень удобно, хватает и промежуточных отверстий.
Сама сервомашинка никак не крепится, устанавливается в поддон в пазы.
На мелочовке не буду заострять внимание, кабина собирается просто.
Кабину как раз буду кастомизировать, устанавливать свет, остекление, поэтому на данном этапе не останавливался.
А вот подключить электронику, приемник — нужно.
Припаивается провод из комплекта к двигателю. Провода и контакты лучше заизолировать (термоусадка, герметик).
Из комплекта аппаратуры управления берется приемник, подключается ESC в качестве питания приемника, и драйвера двигателя.
Для наглядности — показываю эту же схему, собранную вне машинки. Контроллер двигателя приемник 2S аккумулятор сервомашинка.
Гифка с работой схемы. Показаны два канала — рулевой и газ (на ESC загорается индикация сигнала).
Подключается первым каналом сервомашинка, вторым ESC. Из запаса извлек 2S аккумулятор (7.4В, липо).
ESC контроллер специальный для двигателя со щетками (brushed), имеет собственный выключатель питания. Этот выключатель устанавливается в отведенное место в поддоне машинки.
Включать и выключать машинку можно штатно, как и в других моделях, этим самым выключателем.
Финальный этап сборки: кузов, запаска, бензобаки, кабина.
Машинка в сборе.
Включаю выключатель, проверяю.
Если подключить серву на первый канал, то будет работать как надо.
Если на второй — то газ и повороты будут перепутаны.
В пульте настроил тормоза, реверс поворотов, для удобства.
У меня был перевернут мост — колеса крутились встречно друг другу. Разбирал передний мост и переворачивал кверху ногами.
Гифка с проверкой поворотов.
Гифка проверки уже под нагрузкой — серва спокойно поворачивает резиновые колеса.
Гифка проверки работы трансмиссии.
К концу сборки я несколько сдался — применил шуруповерт для сборки и установки подвески.
Про саму машинку WPL B-24 было уже много обзоров, зацикливаться не буду, тем более, еще не приступал к кастомизации. Про покраску, доработку и детализацию лучше почитать на профильных форумах, тут протоптанной дорожки нет, каждый выбирает для себя то, что ближе. Из апгрейдов есть тенты/кунги, металлические трансмиссии (мосты, карданные передачи), можно ограничиться металлическими шестернями в редукторы. Можно заменить двигатель (450-серии) на б/к мотор, соответственно с другим контроллером ESC. Не забывайте сделать нормальный свет (фары, стопы, повороты).
Что я могу сказать — игрушки WPL своих денег стоят.
Легко собрать, легко играть, не сложно ремонтировать.
Рама — металлическая. Хоть и ругают эти игрушки — но с нормальным пультом, с 3-4 канальный приемником (свет, лебедка), на прочной раме, на мостах, эти игрушки доставят прилично удовольствия.
Чуть аккуратнее сделайте сборку — промажьте герметиком мосты и редуктор с двигателем. Не поленитесь добавить защиту там, где требуется. И машинка будет служить дольше.
Если обзор заинтересовал — обратите внимание на два комплекта для сборки:
ГАЗ-66 из обзора WPL B-24 1/16 2.4GHz Military Truck Off-road, обойдется всего в $ 31.99 с купоном: L9231RC. Это очень дешево.
И похожий военный грузовик (6х6) WPL B-16K 1/16 6WD Military Truck. Грузовик чуть побольше, три моста (один мост сделан «проходным»), цена $ 35.99 с купоном: L10347RC.
Все киты идут с серво-машинкой, но без ESC для двигателя, без пульта и без приемника, без аккумулятора.
Для сборки использовал контроллер ESC коллекторного двигателя . Цена $ 4.99 с купоном L7027RC.
А также рекомендую дополнительно две нормальных 3-канальные аппы для управления р/у машинкой:
Flysky FS-GT3C Transmitter. Цена $42.99. В комплекте есть приемник FS-GR3E.
RadioLink RC4GS Remote Control. Цена $42.99, в комплекте есть приемник R6FG. Купон: L9699RC.
Обзор RadioLink RC4GS.
Обзор Flysky FS-GT3C.
Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.
Самодельная многоканальная аппаратура радиоуправления
На фотографиях в этой статье будет немного (много) «колхоза».
Мне понадобилось:
- Три микроконтроллера Arduino Nano
- Два радиомодуля NRF24l01 с усилителем и внешней антенной
- Три односторонние печатные платы 50х70мм
- Четыре потенциометра на 10кОм
- Четыре ручки для них
- Около 22 тактовых кнопок
- Четыре тумблера ON-OFF-ON
- Два двухосевых джойстика (лучше использовать не для геймпадов)
- И пины-соединители
- Стабилизаторы питания LM1117-3.3, или аналоги, и другие радиодетали
- Всякая мелочёвка: провода, паяльные принадлежности, клеи, скотчи и др.
->>> Arduino Nano на Паркфлаере
Процесс изготовления.
Начну с изготовления
приёмника
. Отрезал два куска по 15 пинов «мама», подключил на них Ардуино. На пины А0-А7 и D2-D8 включительно припаял тройной разъём «папа», где один ряд – сигнальный с Ардуино (отдельный с каждого пина на Дуине), средний – 5В в параллель, крайний, который ближе к названию пина на Ардуино – земля (GND) в параллель.
На пины D9-D13 включительно припаял радиомодуль по схеме, но питание впаял в стабилизатор напряжения, на выходе которого электролитический конденсатор 16В 100мкФ и керамический на 100нФ. На вход стабилизатора повесил керамический конденсатор 100нФ (пусть будет). Вход стабилизатора припаял к пину 5В (питаться приёмник будет от регуля напряжением 5В; его надо будет подключить на пин мотора).
Приклеил радиомодуль к пинам и Ардуино на суперклей с пищевой содой, использованной в качестве отвердителя. Потом я всё залил горячими соплями (термоклеем) для надёжности.
Обратите внимание: пины D0 и D1 (RX и TX) свободны, на них я не паял пины для подключения электроники авиамодели (хотя туда можно подключать электронику). Сделал я это для того, чтобы можно было в далбнейшем подключить вторую Ардуину по Serial для увеличения количества пинов и расширения функционала.
Теперь принимаюсь за
передающую часть
. Сначала надо было модифицировать джойстик газа, чтоб он был с фиксацией. Для этого я сначала его разобрал и надфилем подточил с двух противоположных краёв стик (он лежит по центру), который скользит по подпружиненной плошадке. Далее собрал его обратно.
Потом изготовил пульт (корпус передатчика) из нескольких линеек по 20см. Начал с лицевой части. Супеклеем склеил 6 линеек торцами воедино, чтобы получилась досочка (можно было использовать фанеру, но у меня её не было). Просверлил по кругу несколько отверстий, выковырял центральную часть кусачками-бокорезами и канцелярским ножом, выровнял отверстия полукруглым надфилем. Укрепил швы суперклеем с содой в нескольких местах каждый.
Просверлил отверстия для потенциометров и тумблеров, вкрутил всё это на свои места и изнутри залил термоклеем. Заранее припаял к тумблерам и потенциометрам провода с термоусадкой и пинами «мама». Установил стойки для джойстиков (припаял к ним провода тоже заранее) и выпилил прямоугольник для кнопочной площадки (она с общей землёй), устанавливал её с помощью горячих соплей.
Прикрепил боковые стенки и днище на термоклей:
Далее спаял на макетной плате конструкцию, напоминающую приёмник, но с шлейфом проводов « 5В–TX–RX–GND» и выходом с пинами для подключения радиомодуля всё по той же схеме. Думал, что буду питать МК через повышающий до 7-8В модуль (бустер) от одного Li-Ion аккумулятора (3-4,2В), но потом увидите, чем я его заменил.
Спаял на третьей макетной плате конструкцию с 20 выходами (радиомодуль на эту Дуину не надо будет вешать, поэтому пины D9-D13 включительно освобождаются), шлейфом « 5В–RX–TX–GND» (!!!соединять Ардуины друг с другом надо так: TX одной идёт в RX другой, и наоборот; 5В и GND просто для питания) и штекером для питания, в параллель которому припаян керамический конденсатор на 100нФ (чтобы сглаживать скачки напряжения от бустера).
Припаял к кнопочной площадке множество проводков, на каждую кнопку по одному, которые пойдут на сигнальные пины Ардуино; общий минус можно втыкать на любой крайний контакт. К светодиодам тоже припаял проводок на «плюс» со штекером «мама», «минус» соединён с общей шиной «минус».
Сделал из 2см пеноплекса боковые стенки и верхушку, обрезав углы ножом и обточив наждачкой. Присоединил боковые куски на двусторонний скотч, в верхушке сделал отверстие для антенны и радиомодуля. Приклеил верхушку на термоклей к остальному корпусу.
Чтоб было более красиво, наклеил на эту дырень кусок белого тонкого пластика на двусторонний скотч с отверстием для антенны.
Нанёс визит к моему другану, рассказал ему о том, что я делаю, и он отдал мне старый пульт от сломанного вертолётика на радио со словами: «На, пригодится». И вправду, мне пригодились антенна (вертолётик был 2,4ГГц) и джойстики, причём газ уже был с фиксацией. Установил джойстики вместо тех с Алиэкспресса, на приёмник припаял отданную антенну (просто она была более длинной, т.к. там был 5см кусок коаксиального провода, который очень хорошо гнулся). На пульт нанёс надписи рядом с джойстиками, тумблерами, потенциометрами и кнопками.
Для питания использую холдер последовательного соединения для аккумуляторов формата 18650 с Li-Ion аккумуляторами. На холдер приклеил сложенный вдвое липкой стороной внутрь скотч для лёгкого вынимания аккумов, сам холдер держится за липучку, приклеенную на самого него и на корпус передатчика.
Далее приступил к
написанию прошивки для аппаратуры
в Arduino IDE. Писал три файла .ino: «Transmitter_1» для дуины с кнопками и светодиодами, «Transmitter_2» для дуины с радиомодулем, джойстиками, тумблерами и потенциометрами, «Receiver» для приёмника. В скетчах очень много комментариев для того, чтобы можно было разобраться что где происходит.
Разберём сначала код в файле «Transmitter_1». Для упрощения обработки нажатий на кнопки (или переключения тумблеров) я написал функцию, в параметр которой вписывается пин, с которого надо считывать сигнал, и которая возвращает 0 или 1 (можно было использовать тип данных boolean (8 бит), но потом могут возникнуть проблемы с передачей по Serial, поэтому выбрал byte (8 бит)):
byte bt(int pin){ //тип данных возвращаемого значения byte
pinMode(pin, INPUT_PULLUP);
boolean bt_state = !digitalRead(pin);
if(bt_state == 1){
return 1;
}else{
return 0;
}
}
Для простого зажигания зелёного светодиода написал эту функцию:
void ledon(){
pinMode(3, OUTPUT); //устанавливаем пин 3 как выход
digitalWrite(3, HIGH); //зажигаем
delay(150); //ждём
digitalWrite(3, LOW); //гасим
delay(200); //ждём
}
Эта функция ничего не возвращает, поэтому прописываем «void». Остальной код элементарный и ничего примечательного в нём нет.
Переходим к разбору кода файла «Transmitter_2». В нём используется библиотека «EEPROM» для запоминания значений триммеров. В функции bt() из кода «Transmitter_1» я изменил только тип возвращаемого значения с byte на boolean. Для перевода значений с потенциометров и джойстиков написана функция toservo(), которая принимает пин потенциометра, нижнее значение с потенциометра, верхнее значение с него же и диапазон возвращаемых значений. Функция возвращает значения типа byte.
byte toservo(int potpin, int low, int high, int range){
int lowr = (180 – range) / 2;
int highr = 180 – ((180 – range) / 2);
returnmap(analogRead(potpin), low, high, lowr, highr);
}
Для регулировки яркости всяческой подсветки и иллюминации написана функция toaw(), которая принимает в параметрах пин потенциометра, с которого надо считывать сигнал. Возвращает значения типа byte в диапазоне 0-255. Далее на приёмнике активируется функция analogWrite(), которая создаёт ШИМ на заданном пине.
byte toaw(int potpin2){
returnmap(analogRead(potpin2), 0, 1023, 0, 255);
}
Настройки радиомодуля с помощью библиотек «nRF24l01» и «RF24» спёрты у AlexGyver’а.
Настал черёд приёмника. В его коде ничего примечательного нет, кроме функции биндинга. Если тумблер 4 находится наверху (причём передатчик включен заранее) и включается приёмник, приходит сигнал состояния тумблера 4 и запускается функция биндинга:
boolean motor_flag = 0; //флаг биндинга регуля, по умолчанию опущен
if(recieved_data[8] == 1 && motor_flag == 0){ //если тумблер 4 поднят и флаг мотора опущен
bind(); //начать биндинг
}
void bind(){
//функция ничего не принимает и ничего не возвращает
servo_0.writeMicroseconds(2300);
delay(3000);
servo_0.writeMicroseconds(800);
delay(5000);
motor_flag = 1; //поднимаем флаг
}
Небольшой туториал:
- Если первый тумблер находится в верху, двигатель отключен. Если он находится в центральном положении, двигатель управляется потенциометром № 3. Если же он находится внизу, двигатель управляется левым (№ 1) джойстиком по вертикальной (Y) оси.
- Если третий тумблер находится вверху, выпускаются шасси и зажигаются посадочные огни. Если он внизу, то только выпускаются шасси.
- Для биндинга после включения передатчика надо перевести тумблер № 4 в верхнее положение, включить приёмник, подождать 8 секунд.
- Для регулировки яркости посадочных огней надо включить их третьим тумблером, поворачивать второй потенциометр.
- Для регулировки яркости иллюминации включить её четвёртым тумблером, поворачивать четвёртый потенциометр.
- Для регулировки угла выпуска закрылков, включить их с помощью второго тумблера, поворачивать первый потенциометр.
- Для триммировки использовать соответствующие кнопки на кнопочной площадке.
- Для сброса триммера определённой оси надо зажать кнопку «сброс триммеров», нажать любую из двух кнопок оси, триммер которой надо сбросить.
- Для выбора чувствительности зажать кнопку «чувствительность», нажать кнопку (0/1/2/3) желаемой чувствительности, где: 0 – самый лучший отклик, 3 – самый слабый отклик.
Результат:
Получилась многоканальная (до 32 аналоговых (или цифровых, как сами пожелаете)) аппаратура радиоуправления с несколькими «плюшками» на борту: есть триммеры осей управления (которые не сбрасываются при отключении и можно сбросить отдельно каждый), четыре (0/1/2/3) степени чувствительности (отклика), функция автоматического биндинга регулятора оборотов. В моём варианте аппы реализовано только 8 каналов, а это всего лишь ¼ всех возможных!!!
Послесловие.
В дальнейших моих планах разработка прошивки с меню (придётся припаять проводки с термоусадкой на оставшиеся кнопки и подключить их на «Transmitter_1»), в котором можно будет настроить диапазон поворота сервопривода определенного канала, фейлсейф (приведение всех каналов в заданное заранее положение при потере сигнала), оповещение о разрядке аккумулятора на модели и др.
Прошивки лежат в архиве на Гугл Диске.
Распиновка (чё куда подключать) для версии прошивки 1.1 в виде таблицы лежит здесь.
О дальности сигнала есть видео у AlexGyver’a (включайте видео на 13 минут 29 секунд, именно в этом месте начинается “тест”):
Испытание самодельной аппаратуры радиоуправления*. #1:
*качалки было лень ставить
Испытание самодельной аппаратуры радиоуправления. #2:
Выражаю благодарность в содействии созданию этого устройства:
Родным за терпение,
Александру Майорову (AlexGyver’у) за предоставленные в описаниях к видео скетчи,
Ивану Хмелевскому за то, что выслушивал, когда я ему поведывал о каждом новом этапе создания аппы.
Всем, кто прочитал данную статью, огромное СПАСИБО!
P.S. Будут вопросы, пишите в комментариях к статье))
§
На фотографиях в этой статье будет немного (много) «колхоза».
Мне понадобилось:
- Три микроконтроллера Arduino Nano
- Два радиомодуля NRF24l01 с усилителем и внешней антенной
- Три односторонние печатные платы 50х70мм
- Четыре потенциометра на 10кОм
- Четыре ручки для них
- Около 22 тактовых кнопок
- Четыре тумблера ON-OFF-ON
- Два двухосевых джойстика (лучше использовать не для геймпадов)
- И пины-соединители
- Стабилизаторы питания LM1117-3.3, или аналоги, и другие радиодетали
- Всякая мелочёвка: провода, паяльные принадлежности, клеи, скотчи и др.
->>> Arduino Nano на Паркфлаере
Процесс изготовления.
Начну с изготовления
приёмника
. Отрезал два куска по 15 пинов «мама», подключил на них Ардуино. На пины А0-А7 и D2-D8 включительно припаял тройной разъём «папа», где один ряд – сигнальный с Ардуино (отдельный с каждого пина на Дуине), средний – 5В в параллель, крайний, который ближе к названию пина на Ардуино – земля (GND) в параллель.
На пины D9-D13 включительно припаял радиомодуль по схеме, но питание впаял в стабилизатор напряжения, на выходе которого электролитический конденсатор 16В 100мкФ и керамический на 100нФ. На вход стабилизатора повесил керамический конденсатор 100нФ (пусть будет). Вход стабилизатора припаял к пину 5В (питаться приёмник будет от регуля напряжением 5В; его надо будет подключить на пин мотора).
Приклеил радиомодуль к пинам и Ардуино на суперклей с пищевой содой, использованной в качестве отвердителя. Потом я всё залил горячими соплями (термоклеем) для надёжности.
Обратите внимание: пины D0 и D1 (RX и TX) свободны, на них я не паял пины для подключения электроники авиамодели (хотя туда можно подключать электронику). Сделал я это для того, чтобы можно было в далбнейшем подключить вторую Ардуину по Serial для увеличения количества пинов и расширения функционала.
Теперь принимаюсь за
передающую часть
. Сначала надо было модифицировать джойстик газа, чтоб он был с фиксацией. Для этого я сначала его разобрал и надфилем подточил с двух противоположных краёв стик (он лежит по центру), который скользит по подпружиненной плошадке. Далее собрал его обратно.
Потом изготовил пульт (корпус передатчика) из нескольких линеек по 20см. Начал с лицевой части. Супеклеем склеил 6 линеек торцами воедино, чтобы получилась досочка (можно было использовать фанеру, но у меня её не было). Просверлил по кругу несколько отверстий, выковырял центральную часть кусачками-бокорезами и канцелярским ножом, выровнял отверстия полукруглым надфилем. Укрепил швы суперклеем с содой в нескольких местах каждый.
Просверлил отверстия для потенциометров и тумблеров, вкрутил всё это на свои места и изнутри залил термоклеем. Заранее припаял к тумблерам и потенциометрам провода с термоусадкой и пинами «мама». Установил стойки для джойстиков (припаял к ним провода тоже заранее) и выпилил прямоугольник для кнопочной площадки (она с общей землёй), устанавливал её с помощью горячих соплей.
Прикрепил боковые стенки и днище на термоклей:
Далее спаял на макетной плате конструкцию, напоминающую приёмник, но с шлейфом проводов « 5В–TX–RX–GND» и выходом с пинами для подключения радиомодуля всё по той же схеме. Думал, что буду питать МК через повышающий до 7-8В модуль (бустер) от одного Li-Ion аккумулятора (3-4,2В), но потом увидите, чем я его заменил.
Спаял на третьей макетной плате конструкцию с 20 выходами (радиомодуль на эту Дуину не надо будет вешать, поэтому пины D9-D13 включительно освобождаются), шлейфом « 5В–RX–TX–GND» (!!!соединять Ардуины друг с другом надо так: TX одной идёт в RX другой, и наоборот; 5В и GND просто для питания) и штекером для питания, в параллель которому припаян керамический конденсатор на 100нФ (чтобы сглаживать скачки напряжения от бустера).
Припаял к кнопочной площадке множество проводков, на каждую кнопку по одному, которые пойдут на сигнальные пины Ардуино; общий минус можно втыкать на любой крайний контакт. К светодиодам тоже припаял проводок на «плюс» со штекером «мама», «минус» соединён с общей шиной «минус».
Сделал из 2см пеноплекса боковые стенки и верхушку, обрезав углы ножом и обточив наждачкой. Присоединил боковые куски на двусторонний скотч, в верхушке сделал отверстие для антенны и радиомодуля. Приклеил верхушку на термоклей к остальному корпусу.
Чтоб было более красиво, наклеил на эту дырень кусок белого тонкого пластика на двусторонний скотч с отверстием для антенны.
Нанёс визит к моему другану, рассказал ему о том, что я делаю, и он отдал мне старый пульт от сломанного вертолётика на радио со словами: «На, пригодится». И вправду, мне пригодились антенна (вертолётик был 2,4ГГц) и джойстики, причём газ уже был с фиксацией. Установил джойстики вместо тех с Алиэкспресса, на приёмник припаял отданную антенну (просто она была более длинной, т.к. там был 5см кусок коаксиального провода, который очень хорошо гнулся). На пульт нанёс надписи рядом с джойстиками, тумблерами, потенциометрами и кнопками.
Для питания использую холдер последовательного соединения для аккумуляторов формата 18650 с Li-Ion аккумуляторами. На холдер приклеил сложенный вдвое липкой стороной внутрь скотч для лёгкого вынимания аккумов, сам холдер держится за липучку, приклеенную на самого него и на корпус передатчика.
Далее приступил к
написанию прошивки для аппаратуры
в Arduino IDE. Писал три файла .ino: «Transmitter_1» для дуины с кнопками и светодиодами, «Transmitter_2» для дуины с радиомодулем, джойстиками, тумблерами и потенциометрами, «Receiver» для приёмника. В скетчах очень много комментариев для того, чтобы можно было разобраться что где происходит.
Разберём сначала код в файле «Transmitter_1». Для упрощения обработки нажатий на кнопки (или переключения тумблеров) я написал функцию, в параметр которой вписывается пин, с которого надо считывать сигнал, и которая возвращает 0 или 1 (можно было использовать тип данных boolean (8 бит), но потом могут возникнуть проблемы с передачей по Serial, поэтому выбрал byte (8 бит)):
byte bt(int pin){ //тип данных возвращаемого значения byte
pinMode(pin, INPUT_PULLUP);
boolean bt_state = !digitalRead(pin);
if(bt_state == 1){
return 1;
}else{
return 0;
}
}
Для простого зажигания зелёного светодиода написал эту функцию:
void ledon(){
pinMode(3, OUTPUT); //устанавливаем пин 3 как выход
digitalWrite(3, HIGH); //зажигаем
delay(150); //ждём
digitalWrite(3, LOW); //гасим
delay(200); //ждём
}
Эта функция ничего не возвращает, поэтому прописываем «void». Остальной код элементарный и ничего примечательного в нём нет.
Переходим к разбору кода файла «Transmitter_2». В нём используется библиотека «EEPROM» для запоминания значений триммеров. В функции bt() из кода «Transmitter_1» я изменил только тип возвращаемого значения с byte на boolean. Для перевода значений с потенциометров и джойстиков написана функция toservo(), которая принимает пин потенциометра, нижнее значение с потенциометра, верхнее значение с него же и диапазон возвращаемых значений. Функция возвращает значения типа byte.
byte toservo(int potpin, int low, int high, int range){
int lowr = (180 – range) / 2;
int highr = 180 – ((180 – range) / 2);
returnmap(analogRead(potpin), low, high, lowr, highr);
}
Для регулировки яркости всяческой подсветки и иллюминации написана функция toaw(), которая принимает в параметрах пин потенциометра, с которого надо считывать сигнал. Возвращает значения типа byte в диапазоне 0-255. Далее на приёмнике активируется функция analogWrite(), которая создаёт ШИМ на заданном пине.
byte toaw(int potpin2){
returnmap(analogRead(potpin2), 0, 1023, 0, 255);
}
Настройки радиомодуля с помощью библиотек «nRF24l01» и «RF24» спёрты у AlexGyver’а.
Настал черёд приёмника. В его коде ничего примечательного нет, кроме функции биндинга. Если тумблер 4 находится наверху (причём передатчик включен заранее) и включается приёмник, приходит сигнал состояния тумблера 4 и запускается функция биндинга:
boolean motor_flag = 0; //флаг биндинга регуля, по умолчанию опущен
if(recieved_data[8] == 1 && motor_flag == 0){ //если тумблер 4 поднят и флаг мотора опущен
bind(); //начать биндинг
}
void bind(){
//функция ничего не принимает и ничего не возвращает
servo_0.writeMicroseconds(2300);
delay(3000);
servo_0.writeMicroseconds(800);
delay(5000);
motor_flag = 1; //поднимаем флаг
}
Небольшой туториал:
- Если первый тумблер находится в верху, двигатель отключен. Если он находится в центральном положении, двигатель управляется потенциометром № 3. Если же он находится внизу, двигатель управляется левым (№ 1) джойстиком по вертикальной (Y) оси.
- Если третий тумблер находится вверху, выпускаются шасси и зажигаются посадочные огни. Если он внизу, то только выпускаются шасси.
- Для биндинга после включения передатчика надо перевести тумблер № 4 в верхнее положение, включить приёмник, подождать 8 секунд.
- Для регулировки яркости посадочных огней надо включить их третьим тумблером, поворачивать второй потенциометр.
- Для регулировки яркости иллюминации включить её четвёртым тумблером, поворачивать четвёртый потенциометр.
- Для регулировки угла выпуска закрылков, включить их с помощью второго тумблера, поворачивать первый потенциометр.
- Для триммировки использовать соответствующие кнопки на кнопочной площадке.
- Для сброса триммера определённой оси надо зажать кнопку «сброс триммеров», нажать любую из двух кнопок оси, триммер которой надо сбросить.
- Для выбора чувствительности зажать кнопку «чувствительность», нажать кнопку (0/1/2/3) желаемой чувствительности, где: 0 – самый лучший отклик, 3 – самый слабый отклик.
Результат:
Получилась многоканальная (до 32 аналоговых (или цифровых, как сами пожелаете)) аппаратура радиоуправления с несколькими «плюшками» на борту: есть триммеры осей управления (которые не сбрасываются при отключении и можно сбросить отдельно каждый), четыре (0/1/2/3) степени чувствительности (отклика), функция автоматического биндинга регулятора оборотов. В моём варианте аппы реализовано только 8 каналов, а это всего лишь ¼ всех возможных!!!
Послесловие.
В дальнейших моих планах разработка прошивки с меню (придётся припаять проводки с термоусадкой на оставшиеся кнопки и подключить их на «Transmitter_1»), в котором можно будет настроить диапазон поворота сервопривода определенного канала, фейлсейф (приведение всех каналов в заданное заранее положение при потере сигнала), оповещение о разрядке аккумулятора на модели и др.
Прошивки лежат в архиве на Гугл Диске.
Распиновка (чё куда подключать) для версии прошивки 1.1 в виде таблицы лежит здесь.
О дальности сигнала есть видео у AlexGyver’a (включайте видео на 13 минут 29 секунд, именно в этом месте начинается “тест”):
Испытание самодельной аппаратуры радиоуправления*. #1:
*качалки было лень ставить
Испытание самодельной аппаратуры радиоуправления. #2:
Выражаю благодарность в содействии созданию этого устройства:
Родным за терпение,
Александру Майорову (AlexGyver’у) за предоставленные в описаниях к видео скетчи,
Ивану Хмелевскому за то, что выслушивал, когда я ему поведывал о каждом новом этапе создания аппы.
Всем, кто прочитал данную статью, огромное СПАСИБО!
P.S. Будут вопросы, пишите в комментариях к статье))
§
На фотографиях в этой статье будет немного (много) «колхоза».
Мне понадобилось:
- Три микроконтроллера Arduino Nano
- Два радиомодуля NRF24l01 с усилителем и внешней антенной
- Три односторонние печатные платы 50х70мм
- Четыре потенциометра на 10кОм
- Четыре ручки для них
- Около 22 тактовых кнопок
- Четыре тумблера ON-OFF-ON
- Два двухосевых джойстика (лучше использовать не для геймпадов)
- И пины-соединители
- Стабилизаторы питания LM1117-3.3, или аналоги, и другие радиодетали
- Всякая мелочёвка: провода, паяльные принадлежности, клеи, скотчи и др.
->>> Arduino Nano на Паркфлаере
Процесс изготовления.
Начну с изготовления
приёмника
. Отрезал два куска по 15 пинов «мама», подключил на них Ардуино. На пины А0-А7 и D2-D8 включительно припаял тройной разъём «папа», где один ряд – сигнальный с Ардуино (отдельный с каждого пина на Дуине), средний – 5В в параллель, крайний, который ближе к названию пина на Ардуино – земля (GND) в параллель.
На пины D9-D13 включительно припаял радиомодуль по схеме, но питание впаял в стабилизатор напряжения, на выходе которого электролитический конденсатор 16В 100мкФ и керамический на 100нФ. На вход стабилизатора повесил керамический конденсатор 100нФ (пусть будет). Вход стабилизатора припаял к пину 5В (питаться приёмник будет от регуля напряжением 5В; его надо будет подключить на пин мотора).
Приклеил радиомодуль к пинам и Ардуино на суперклей с пищевой содой, использованной в качестве отвердителя. Потом я всё залил горячими соплями (термоклеем) для надёжности.
Обратите внимание: пины D0 и D1 (RX и TX) свободны, на них я не паял пины для подключения электроники авиамодели (хотя туда можно подключать электронику). Сделал я это для того, чтобы можно было в далбнейшем подключить вторую Ардуину по Serial для увеличения количества пинов и расширения функционала.
Теперь принимаюсь за
передающую часть
. Сначала надо было модифицировать джойстик газа, чтоб он был с фиксацией. Для этого я сначала его разобрал и надфилем подточил с двух противоположных краёв стик (он лежит по центру), который скользит по подпружиненной плошадке. Далее собрал его обратно.
Потом изготовил пульт (корпус передатчика) из нескольких линеек по 20см. Начал с лицевой части. Супеклеем склеил 6 линеек торцами воедино, чтобы получилась досочка (можно было использовать фанеру, но у меня её не было). Просверлил по кругу несколько отверстий, выковырял центральную часть кусачками-бокорезами и канцелярским ножом, выровнял отверстия полукруглым надфилем. Укрепил швы суперклеем с содой в нескольких местах каждый.
Просверлил отверстия для потенциометров и тумблеров, вкрутил всё это на свои места и изнутри залил термоклеем. Заранее припаял к тумблерам и потенциометрам провода с термоусадкой и пинами «мама». Установил стойки для джойстиков (припаял к ним провода тоже заранее) и выпилил прямоугольник для кнопочной площадки (она с общей землёй), устанавливал её с помощью горячих соплей.
Прикрепил боковые стенки и днище на термоклей:
Далее спаял на макетной плате конструкцию, напоминающую приёмник, но с шлейфом проводов « 5В–TX–RX–GND» и выходом с пинами для подключения радиомодуля всё по той же схеме. Думал, что буду питать МК через повышающий до 7-8В модуль (бустер) от одного Li-Ion аккумулятора (3-4,2В), но потом увидите, чем я его заменил.
Спаял на третьей макетной плате конструкцию с 20 выходами (радиомодуль на эту Дуину не надо будет вешать, поэтому пины D9-D13 включительно освобождаются), шлейфом « 5В–RX–TX–GND» (!!!соединять Ардуины друг с другом надо так: TX одной идёт в RX другой, и наоборот; 5В и GND просто для питания) и штекером для питания, в параллель которому припаян керамический конденсатор на 100нФ (чтобы сглаживать скачки напряжения от бустера).
Припаял к кнопочной площадке множество проводков, на каждую кнопку по одному, которые пойдут на сигнальные пины Ардуино; общий минус можно втыкать на любой крайний контакт. К светодиодам тоже припаял проводок на «плюс» со штекером «мама», «минус» соединён с общей шиной «минус».
Сделал из 2см пеноплекса боковые стенки и верхушку, обрезав углы ножом и обточив наждачкой. Присоединил боковые куски на двусторонний скотч, в верхушке сделал отверстие для антенны и радиомодуля. Приклеил верхушку на термоклей к остальному корпусу.
Чтоб было более красиво, наклеил на эту дырень кусок белого тонкого пластика на двусторонний скотч с отверстием для антенны.
Нанёс визит к моему другану, рассказал ему о том, что я делаю, и он отдал мне старый пульт от сломанного вертолётика на радио со словами: «На, пригодится». И вправду, мне пригодились антенна (вертолётик был 2,4ГГц) и джойстики, причём газ уже был с фиксацией. Установил джойстики вместо тех с Алиэкспресса, на приёмник припаял отданную антенну (просто она была более длинной, т.к. там был 5см кусок коаксиального провода, который очень хорошо гнулся). На пульт нанёс надписи рядом с джойстиками, тумблерами, потенциометрами и кнопками.
Для питания использую холдер последовательного соединения для аккумуляторов формата 18650 с Li-Ion аккумуляторами. На холдер приклеил сложенный вдвое липкой стороной внутрь скотч для лёгкого вынимания аккумов, сам холдер держится за липучку, приклеенную на самого него и на корпус передатчика.
Далее приступил к
написанию прошивки для аппаратуры
в Arduino IDE. Писал три файла .ino: «Transmitter_1» для дуины с кнопками и светодиодами, «Transmitter_2» для дуины с радиомодулем, джойстиками, тумблерами и потенциометрами, «Receiver» для приёмника. В скетчах очень много комментариев для того, чтобы можно было разобраться что где происходит.
Разберём сначала код в файле «Transmitter_1». Для упрощения обработки нажатий на кнопки (или переключения тумблеров) я написал функцию, в параметр которой вписывается пин, с которого надо считывать сигнал, и которая возвращает 0 или 1 (можно было использовать тип данных boolean (8 бит), но потом могут возникнуть проблемы с передачей по Serial, поэтому выбрал byte (8 бит)):
byte bt(int pin){ //тип данных возвращаемого значения byte
pinMode(pin, INPUT_PULLUP);
boolean bt_state = !digitalRead(pin);
if(bt_state == 1){
return 1;
}else{
return 0;
}
}
Для простого зажигания зелёного светодиода написал эту функцию:
void ledon(){
pinMode(3, OUTPUT); //устанавливаем пин 3 как выход
digitalWrite(3, HIGH); //зажигаем
delay(150); //ждём
digitalWrite(3, LOW); //гасим
delay(200); //ждём
}
Эта функция ничего не возвращает, поэтому прописываем «void». Остальной код элементарный и ничего примечательного в нём нет.
Переходим к разбору кода файла «Transmitter_2». В нём используется библиотека «EEPROM» для запоминания значений триммеров. В функции bt() из кода «Transmitter_1» я изменил только тип возвращаемого значения с byte на boolean. Для перевода значений с потенциометров и джойстиков написана функция toservo(), которая принимает пин потенциометра, нижнее значение с потенциометра, верхнее значение с него же и диапазон возвращаемых значений. Функция возвращает значения типа byte.
byte toservo(int potpin, int low, int high, int range){
int lowr = (180 – range) / 2;
int highr = 180 – ((180 – range) / 2);
returnmap(analogRead(potpin), low, high, lowr, highr);
}
Для регулировки яркости всяческой подсветки и иллюминации написана функция toaw(), которая принимает в параметрах пин потенциометра, с которого надо считывать сигнал. Возвращает значения типа byte в диапазоне 0-255. Далее на приёмнике активируется функция analogWrite(), которая создаёт ШИМ на заданном пине.
byte toaw(int potpin2){
returnmap(analogRead(potpin2), 0, 1023, 0, 255);
}
Настройки радиомодуля с помощью библиотек «nRF24l01» и «RF24» спёрты у AlexGyver’а.
Настал черёд приёмника. В его коде ничего примечательного нет, кроме функции биндинга. Если тумблер 4 находится наверху (причём передатчик включен заранее) и включается приёмник, приходит сигнал состояния тумблера 4 и запускается функция биндинга:
boolean motor_flag = 0; //флаг биндинга регуля, по умолчанию опущен
if(recieved_data[8] == 1 && motor_flag == 0){ //если тумблер 4 поднят и флаг мотора опущен
bind(); //начать биндинг
}
void bind(){
//функция ничего не принимает и ничего не возвращает
servo_0.writeMicroseconds(2300);
delay(3000);
servo_0.writeMicroseconds(800);
delay(5000);
motor_flag = 1; //поднимаем флаг
}
Небольшой туториал:
- Если первый тумблер находится в верху, двигатель отключен. Если он находится в центральном положении, двигатель управляется потенциометром № 3. Если же он находится внизу, двигатель управляется левым (№ 1) джойстиком по вертикальной (Y) оси.
- Если третий тумблер находится вверху, выпускаются шасси и зажигаются посадочные огни. Если он внизу, то только выпускаются шасси.
- Для биндинга после включения передатчика надо перевести тумблер № 4 в верхнее положение, включить приёмник, подождать 8 секунд.
- Для регулировки яркости посадочных огней надо включить их третьим тумблером, поворачивать второй потенциометр.
- Для регулировки яркости иллюминации включить её четвёртым тумблером, поворачивать четвёртый потенциометр.
- Для регулировки угла выпуска закрылков, включить их с помощью второго тумблера, поворачивать первый потенциометр.
- Для триммировки использовать соответствующие кнопки на кнопочной площадке.
- Для сброса триммера определённой оси надо зажать кнопку «сброс триммеров», нажать любую из двух кнопок оси, триммер которой надо сбросить.
- Для выбора чувствительности зажать кнопку «чувствительность», нажать кнопку (0/1/2/3) желаемой чувствительности, где: 0 – самый лучший отклик, 3 – самый слабый отклик.
Результат:
Получилась многоканальная (до 32 аналоговых (или цифровых, как сами пожелаете)) аппаратура радиоуправления с несколькими «плюшками» на борту: есть триммеры осей управления (которые не сбрасываются при отключении и можно сбросить отдельно каждый), четыре (0/1/2/3) степени чувствительности (отклика), функция автоматического биндинга регулятора оборотов. В моём варианте аппы реализовано только 8 каналов, а это всего лишь ¼ всех возможных!!!
Послесловие.
В дальнейших моих планах разработка прошивки с меню (придётся припаять проводки с термоусадкой на оставшиеся кнопки и подключить их на «Transmitter_1»), в котором можно будет настроить диапазон поворота сервопривода определенного канала, фейлсейф (приведение всех каналов в заданное заранее положение при потере сигнала), оповещение о разрядке аккумулятора на модели и др.
Прошивки лежат в архиве на Гугл Диске.
Распиновка (чё куда подключать) для версии прошивки 1.1 в виде таблицы лежит здесь.
О дальности сигнала есть видео у AlexGyver’a (включайте видео на 13 минут 29 секунд, именно в этом месте начинается “тест”):
Испытание самодельной аппаратуры радиоуправления*. #1:
*качалки было лень ставить
Испытание самодельной аппаратуры радиоуправления. #2:
Выражаю благодарность в содействии созданию этого устройства:
Родным за терпение,
Александру Майорову (AlexGyver’у) за предоставленные в описаниях к видео скетчи,
Ивану Хмелевскому за то, что выслушивал, когда я ему поведывал о каждом новом этапе создания аппы.
Всем, кто прочитал данную статью, огромное СПАСИБО!
P.S. Будут вопросы, пишите в комментариях к статье))