Радио управление 10 команд своими руками
В этой статье, вы увидите как сделать радиоуправление на 10 команд своими руками. Дальность действия данного устройства 200 метров на земле и более 400м в воздухе. Нажатие кнопок может производиться в любой последовательности, хоть все сразу все работает стабильно. С помощью его можно управлять разными нагрузками: воротами гаража, светом, моделями самолетов, автомобилей и так далее… В общем чем угодно, все зависит от вашей фантазии.
Для работы нам потребуются список деталей:
1) PIC16F628A-2 шт (микроконтроллер)
2) MRF49XA-2 шт (радио трансмиттер)
3) Катушка индуктивности 47nH (или намотать самому)-6шт
Конденсаторы:
4) 33 мкФ (электролитический)-2 шт
5) 0,1 мкФ-6 шт
6) 4,7 пФ-4 шт
7) 18 пФ-2 шт
Резисторы
8) 100 Ом-1 шт
9) 560 Ом-10 шт
10) 1 Ком-3 шт
11) светодиод-1 шт
12) кнопки-10 шт
14) Текстолит
15) Паяльник
Вот схема этого устройства
Передатчик
И приемник
Как видите устройство состоит из минимум деталей и под силу каждому. Стоит только захотеть. Устройство очень стабильное, после сборки работает сразу. Схему можно делать как на печатной плате. Так и навесным монтажом (особенно для первого раза, так будет легче программировать). Для начала делаем плату. Распечатываем
И травим плату
Припаиваем все компоненты, PIC16F628A лучше припаивать самым последним, так как его нужно будет еще запрограммировать. Первым делом припаиваем MRF49XA
Главное очень аккуратно, у нее очень тонкие выводы. Конденсаторы для наглядности. Самое главное не перепутать полюса на конденсаторе 33 мкФ так как у него выводы разные, один +, другой -. Все остальные конденсаторы припаиваете как хотите у них нет полярности на выводах
Катушки можно использовать покупные 47nH но лучше намотать самому, все они одинаковые (6 витков провода 0,4 на оправке 2 мм)
Когда все припаяно, хорошо все проверяем. Далее берем PIC16F628A, его нужно запрограммировать. Я использовал PIC KIT 2 lite и самодельную панельку
Вот схема подключения
Это все просто, так что не пугайтесь. Для тех кто далек от электроники, советую не начинать с SMD компонентов, а купить все в DIP размере. Я сам так делал в первый раз
И все это реально заработало с первого раза
Открываем программу, выбираем наш микроконтроллер
Нажимаем вставить файл с прошивкой и нажимаем WRITE
Аналогично делам и с другим микроконтроллером.
Файл TX-это для передатчика, а RX – для приемника. Главное потом не перепутать микроконтроллеры. И припаиваем микроконтроллеры на плату. После того как соберете, ни в коем случае не подключайте нагрузку сразу к плате, а то спалите все. Нагрузку к плате следует подключать через мощный транзистор как на фото
На схеме светодиоды стоят чисто для проверки работоспособности. Если у кого нету программатора тоже обращайтесь, помогу с уже прошитыми микросхемами.
С вопросами и предложениями обращаться на почту [email protected] или в комментариях.
Вот файлы с прошивкой Rx1.zip [1.46 Kb] (скачиваний: 3084)
Автор схемы: Blaze с форума vrtp.ru link
Доставка новых самоделок на почтуПолучайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!
*Заполняя форму вы соглашаетесь на обработку персональных данных
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.Аппаратура радиоуправления на Arduino
В этой статье рассмотрено изготовление пропорциональной аппаратуры радиоуправления на основе платы Arduino. Интересной особенностью проекта является то, что аппаратура задумывалась как альтернатива “взрослой” аппаратуры, но которую можно изготовить самому. На передатчике присутствуют клавиши триммирования, что важно для управления например моделями самолетов, так же передатчик оснащен небольшим дисплеем на органических светодиодах, отображающий основную информацию по работе передатчика. Аппаратура рассчитана на 6 каналов, 4 пропорциональных и 2 дискретных. Также автор заложил на будущее добавление еще двух пропорциональных каналов, на корпусе добавлены 2 потенциометра, однако на данный момент они не задействованы. Тем не менее этого достаточно для управления моделью самолета, судна или автомобиля, а дискретные каналы позволят управлять дополнительной нагрузкой, например включением фар, подсветки палубы, ходовых авиационных огней или даже запуска небольших ракет. Аппаратура имеет два режима управления — линейный и экспоненциальный.Для передатчика понадобятся:
1 x Arduino NANO/UNO/ProMini
1 x Плата защиты BMS для трех Li-ion банок
1 x разъем 5,5 x 2,1 мм
1 x повышающий DC/DC преобразователь XL6009
1 x небольшой понижающий преобразователь LM2596 (о нем скажу отдельно)
3 x 18650 :
2 x джойстики JH-D202X (продаются на али)
1 x i2c OLED-экран 0,96 дюйма 128X64
1 x радио модуль NRF24l01 с усилителем и антенной
9 x тактовая кнопка 6 * 6 * 5 мм
Резисторы выводные (смотри схему)
Для приемника понадобятся:
1 х Arduino NANO/UNO/Pro Mini
1 х радио модуль NRF24l01
1 х AMS1117 3,3 В стабилизатор напряжения
30 х PLS гребенки
1 х макетная плата
1 х 10 мкФ конденсатор
Ниже Вы можете видеть графическое изображение всех компонентов и схему их соединения. Перед сборкой понижающие преобразователи обязательно нужно настроить, XL6009 на 12,6 В (этот модуль ответственен за зарядку), LM2596 на 3,3 В (питание радиомодуля). Вместо LM2596 теоретически можно использовать и ASM117, согласно даташиту максимальное входное напряжение этого стабилизатора 15 В, однако советуется не подавать выше 12 В. Видимо исходя из этих соображений автор и использовал еще один DC/DC преобразователь. Вместо него так же можно использовать регулируемый стабилизатор, например LM317.
Корпус
Корпус состоит из двух основных частей: верхней и нижней. Помимо этого печатаются 9 кнопок (8 на триммирование и одна кнопка режима), 5 подпорок для кнопок, окантовка дисплея и ползунок включения. Автор печатал PLA ластиком с 20% заполнением, соплом 0,4 мм и высотой слоя 0,3 мм. К слову, никто не запрещает использовать другой корпус, можно взять просто подходящую коробку, склеить его самому или взять достаточно крупный корпус от китайской игрушки, на сайтах объявлений их чуть ли не мешками продают.
Монтаж передатчика
Аккумуляторы соединяются последовательно. Автор сделал это при помощи пайки, хочу отметить, что пайка банок 18650 требует некой сноровки, по этому если у Вас такого опыта нет — покупайте аккумуляторы с уже приваренными лепестками и подпаивайтесь к ним. Так же аккумуляторы согласно вышеизложенной схеме припаиваются к модулю BMS, на вход которого подается напряжение с преобразователя XL6009 (вместо него можно использовать MT3608). BMS отвечает за равномерную зарядку/разрядку всех банок и отключает питание, когда аккумуляторы разрядятся. Напряжение так же можно мониторить при помощи дисплейчика. Зарядка аккумуляторов осуществляется блоком питания 9 В с током не выше 3 А (максимум для XL6009 ). Фактически же ток заряда нужно подсчитать в зависимости от емкости аккумуляторов и взять блок питания с немного меньшим током или ограничить его. Монтировать модули в корпус удобно при помощи “автомобильного” двухстороннего скотча.
Тактовые кнопки устанавливаются на специальные площадки, после чего небольшими шурупами крепятся к соответствующим опорам внутри корпуса. Тут, собственно, все на уровне конструктора и хорошо понятно по фото.
Кнопки соединяются между собой резисторами, таким образом по сути выходит небольшая резистивная клавиатура, что позволяет использовать всего один вывод платы ардуино. К потенциометрам джойстиков припаиваются провода, крайние выводы идут на землю и 5 В, средний на соответствующий вывод Arduino. У меня в планах повторить эту схему, уже немного поэкспериментировал и могу сказать, что в коде заложена функция автоматического инвертирования каналов по необходимости, однако я пока не понял, как схема определяет эту самую необходимость. Это я к тому, что так-то инвертирование канала по сути производиться перепаиванием крайних выводов местами. Такие джойстики, на момент написания статьи, продаются на али по цене примерно 7 долларов за штуку, много это или мало решать Вам. Вместо них можно использовать модули джойстиков для ардуино или джойстики от игровых манипуляторов. По сути джойстик работает как делитель, отклоняя ручку мы меняем напряжение на среднем выводе потенциометра, и в зависимости от этого напряжения ардуино определяет отклонение.Так же подключаются и тумблеры. Тумблеры нужны двухпозиционные, так как канал дискретный и имеет только два значения – 0 или 1, в зависимости от того, к чему притягивается вывод ардуино – к земле или питанию 5 В. При чем обязательно двухпозиционный, если оставить вывод “висеть в воздухе”, что было бы при использовании трех позиционного, контроллер не понимает что происходит и значение рандомно скачет то 0, то 1 (по моим опытам). Дополнительные потенциометры можете не ставить, на данный момент они не задействованы. А можете поставить и мониторить страницу источника, возможно автор со временем выложит обновленную прошивку.
Далее устанавливается ардуино, радио модуль и плата питания радио модуля. Как и писалось выше, на нем нужно выставить напряжение 3,3 вольта. Сделать это при помощи штатного переменного резистора практически невозможно, по этому автор отпаял его и вместо него припаял многооборотный триммер. Далее монтируется дисплей, и все компоненты подсоединяются к выводам ардуино согласно схеме.
Прошивка
О прошивке ардуино говорилось уже 1000 раз, на данном момент времени умение это делать взявшись за проект на ардуино является таким же важным по умолчанию, как умение держать в руках паяльник, взявшись что-то паять. Код для передатчика, приемника, необходимые библиотеки и файл для 3D печати корпуса можно скачать одним архивом в конце статьи.
Приёмник
Для приёмника потребуется ещё одна плата ардуино, радио модуль (без антенны, телеметрия все равно тут не реализована) и стабилизатор на 3,3 вольта. Приемник распаивается на макетной плате. Питание приемника осуществляется так же, как и питание любого другого заводского приемника, со специального выхода регулятора скорости.
От себя хочу добавить, что вместо стандартной антенны этого модуля желательно припаять такую же антенну, какая установлена в модуле с усилителем (только без корпуса). Это не особо повлияет на дальность приема, но значительно повлияет на качество приема в зависимости от положения управляемой модели в различных плоскостях. На современных приемниках и передатчиках ради этой цели даже устанавливается по две антенны, которые располагаются перпендикулярно друг другу.
Помимо этого автор реализовал очень важную функцию — вывод с приемника PPM сигнала. Схематически при этом ничего не меняется, нужно лишь залить другую прошивку, PPM сигнал при этом выводиться так же, как и в большинстве заводских приемников – с первого канала (газа).
На этом всё. Лично мне проект очень понравился, и как я уже говорил, в планах его повторение в корпусе от пульта детской игрушки. В меню Вы можете выбрать режим от линейного до экспоненциального и точно настроить значение каждого стика. Имейте в виду, что среднее значение каждого канала должно быть 127.
Скачать все необходимое можно тут.
Всем успехов в творчестве!
Источник Доставка новых самоделок на почту
Получайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!
*Заполняя форму вы соглашаетесь на обработку персональных данных
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.usamodelkina.ru
Делаем радиоуправление для самолета / Habr
Прочитав этот пост загорелся и я идеей склепать свой самолетик. Взял готовые чертежи, заказал у китайцев моторчики, аккумуляторы и пропеллеры. А вот радиоуправление решил сделать самостоятельно, во-первых — так интереснее, во-вторых — надо себя чем-то занять пока посылка с остальными запчастями будет ехать, ну и в третьих — появилась возможность соригинальничать и добавить всяких плюшек.
Осторожно, картинки!
Как и чем управлять
Нормальные люди берут приемник, втыкают в него сервомашинки, регулятор скорости, двигают рычажки на пульте и радуются жизни не задаваясь принципами работы и не углубляясь в подробности. В нашем случае такое не пройдет. Первой задачей стало узнать каким макаром управляются сервомашинки. Все оказывается достаточно просто, у привода есть три провода: + питания, — питания и сигнальный. На сигнальном проводе прямоугольные импульсы изменяемой скважности. Чтобы понять что это такое смотрим картинку:
Итак, если мы хотим установить привод в крайнее левое положение нужно слать импульсы длительностью 0,9мс с интервалом 20мс, если в крайнее правое — длительность 2,1мс, интервал тот же, ну со средними положениями аналогично. Как оказалось, регуляторы скорости управляются аналогично. Те, кто в теме скажут что это обычный ШИМ, который реализовать на любом микроконтроллере — плевое дело. Вот и я так решил, купил в местном магазине сервомашинку и склепал на макетке для нее так называемый сервотестер на ATtiny13. И тут оказалось, что ШИМ не совсем простой, а с подводными камнями. Как видно из вышеприведенной диаграммы, скважность (отношение длительности импульса к длительности периода) от 5% до 10% (в дальнейшем я за крайние положения принимаю импульсы длительностью 1,0мс и 2,0мс) для 256-значного ШИМ счетчика ATtiny13 это соответствует значениям от 25 до 50. Но это при условии, что на заполнение счетчика уйдет 20мс, а на деле так не получится и для частоты 9,6МГц и предделителя 1024 нужно ограничить счетчик значением 187(ТОР), в таком случае у нас получится частота 50,134Гц. В большинстве (если не во всех) сервомашинок нету точного генератора опорной частоты и поэтому частота управляющего сигнала может немного плавать. Если оставить ТОР счетчика 255, то частота управляющего сигнала будет 36,76Гц — на некоторых приводах оно будет работать (возможно с глюками), но далеко не на всех. Итак, теперь у нас 187-значный счетчик, для него 5-10% соответствуют значениям от 10 до 20 — всего 10 значений, немного дискретно получится. Если думаете поиграть с тактовой частотой и предделителем ниже привожу сравнительную табличку для 8-битного ШИМа:
Но ведь у большинства микроконтроллеров есть 16-битный (и больше) таймер для генерации ШИМ. Здесь проблема с дискретностью сразу пропадет еще и частоту можно точно выставить. Долго расписывать не буду, сразу даю табличку:
Я не думаю, что для китайской сервомашинки есть существенная разница в 600 и 1200 значений, поэтому вопрос с точностью позиционирования можно считать закрытым.
Многоканальное управление
С одной сервомашинкой разобрались, но для самолета их нужно минимум три и еще регулятор скорости. Решение «в лоб» — взять микроконтроллер с четырьмя каналами 16-битного ШИМ, но такой контроллер будет стоять дорого и, скорее всего, займет много места на плате. Второй вариант — запилить программный ШИМ, но занимать процессорное время — это тоже не вариант. Если снова посмотреть на диаграммы сигнала, то 80% времени он не несет никакой информации, поэтому рациональнее было бы ШИМом задавать только сам импульс 1-2мс. Почему скважность изменяется в таких узких пределах, ведь проще было бы и формировать и считывать импульсы со скважностью хотя бы 10-90%? Зачем нужен тот неинформативный кусок сигнала занимающий 80% времени? Я заподозрил, что, возможно, эти 80% могут занимать импульсы для других исполнительных механизмов, а потом этот сигнал разделяется на несколько разных. То есть, в периоде длительностью 20мс могут уместится 10 импульсов длительностью 1-2мс, затем этот сигнал каким-то демультиплексором разделяется на 10 различных с длительностью периода как раз 20мс. Сказано — сделано, нарисовал в PROTEUS такую схемку:
В роли демультиплексора — 74HC238, на его вход E подаются импульсы с выхода микроконтроллера. Эти импульсы — ШИМ с периодом 2мс (500Гц) и скважностью 50-100%. У каждого импульса своя скважность, обозначающая состояние каждого канала. Вот так выглядит сигнал на входе Е:
Для того, чтобы 74HC238 знал на какой выход подать текущий сигнал используем PORTC микроконтроллера и входы A, B, C демультиплексора. В результате на выходах получаем такие сигналы:
Сигналы на выходе получаются правильной частоты (50Гц) и скважности (5-10%). Итак, нужно генерировать ШИМ частотой 500Гц и заполнением 50-100%, вот табличка для настройки предделителя и ТОР 16-битного счетчика:
Интересно, что возможное количество значений ШИМа ровно в 1000 раз меньше частоты таймера.
Программная реализация
Для ATmega8 с тактовой частотой 16МГц в AtmelStudio6 все реализуется следующим образом: вначале задефайним значения счетчика для крайних положений сервомашинок:
#define LOW 16000U
#define HIGH 32000U
затем инициализируем генератор ШИМа на таймере/счетчике1:
OCR1A = HIGH; //Устанавливаем ТОР
TCCR1A = 0<<COM1A1 | 0<<COM1A0 | 1<<COM1B1 | 0<<COM1B0 | 0<<FOC1A | 0<<FOC1B | 1<<WGM11 | 1<<WGM10; //Запускаем неинвертированный Fast PWM на выходе OC1B с верхним значением счетчика, которое записанно в OCR1A
TCCR1B = 0<<ICNC1 | 0<<ICES1 | 1<<WGM13 | 1<<WGM12 | 0<<CS12 | 0<<CS11 | 1<<CS10; //предделитель 1
TIMSK = 1<<OCIE1A | 1<<OCIE1B | 0<<TOIE1; //Разрешаем прерывания по совпадению
Остается реализовать прерывания:
ISR(TIMER1_COMPA_vect) //прерывание по достижению верхнего значения счетчика, непосредственно перед началом следующего импульса
{
//c_num- переменная, обозначающая номер текущего канала, channels - массив значений каналов
if (c_num <= 7)
{
OCR1B = channels[c_num];
}
else
{
OCR1B = 0; //отключаем ШИМогенератор для несуществующих в демультиплексоре 8 и 9 канала
}
}
ISR(TIMER1_COMPB_vect, ISR_NOBLOCK)// прерывание возникающее в конце импульса
{
if (c_num <= 7)
{
PORTC = c_num; //для каналов 0-7 выводим номер канала на PORTC
}
//и изменяем значение счетчика от 0 до 9
if (c_num >= 9)
{
c_num = 0;
}
else
{
c_num++;
}
}
Глобально разрешаем прерывания и готово, забивая в channels значения от LOW до HIGH изменяем значения на каналах.
Реализация в железе
Ну с теорией разобрались, пришло время все это реализовать. Мозгом системы выбран микроконтроллер ATmega8A, тактируется от кварца на 16МГц (не потому, что я захотел 16000 позиций сервомашинки, а потому, что у меня такие валялись). Управляющий сигнал для МК будет поступать через UART. В результате получилась вот такая схемка:
Спустя некоторое время появилась вот такая платка:
Два трехштыревых разъема я не припаял потому, что они мне не нужны, а не подряд они впаяны поскольку у меня нету металлизации отверстий, а в нижнем разъеме дорожки с двух сторон, можно было бы заменить проволочкой, но программно нету проблемы выводить сигнал на любой разъем. Также отсутствует 78L05 ибо в моем регуляторе двигателя есть встроенный стабилизатор (ВЕС).
Для получения данных к плате подключается радиомодуль HM-R868:
Изначально думал втыкать его прямо в плату, но эта конструкция не помещалась в самолетик, пришлось сделать через шлейф. Если изменить прошивку, то контакты разъема для программирования можно использовать для включения/отключения каких-нибудь системам (бортовые огни и т.п.)
Плата обошлась примерно в 20грн = $2.50, приемник — 30грн = $3,75.
Передающая часть
Самолетная часть есть, осталось разобраться с наземной аппаратурой. Как уже писалось ранее, данные передаются по UART, на каждый канал по одному байту. Вначале подключал свою систему проводом через переходник к компьютеру и команды слал через терминал. Чтобы дешифратор определял начало посылки, а в будущем выделял посылки адресуемые именно ему, вначале шлется байт-идентификатор, затем 8 байт определяющих состояние каналов. Позже стал использовать радиомодули, при отключении передатчика все моторчики начинали дико дергаться. Дабы отфильтровать сигнал от шумов, десятым байтом шлю XOR всех 9 предыдущих байт. Помогло, но слабо, добавил еще проверку на таймаут между байтами, если он превышается — вся посылка игнорится и прием начинается заново, с ожидания байта-идентификатора. С добавлением контрольной суммы в виде XOR слать команды с терминала стало напряжным, поэтому я побыстрому наклепал вот такую программку с ползунками:
Число в нижнем левом углу — контрольная сумма. Передвигая ползунки на компе двигались рули на самолете! Вообщем отладил я все это и стал думать о пульте ДУ, купил для него вот такие джойстики:
Но потом меня посетила одна мысль. В свое время я тащился от всяких авиасимуляторов: «Ил-2 Штурмовик», «Lock On», «MSFSX», «Ка-50 Черная Акула» и др. Соответственно был у меня джойстик Genius F-23 и решил я прикрутить его к вышеописанной проге с ползунками. Погуглил как это реализовать, нашел этот пост и получилось! Управлять самолетиком с помощью полноценного джойстика, мне кажется, гораздо круче, чем маленькой палочкой на пульте. Вообщем все вместе изображено на первой фотке — это нетбук, джойстик, преобразователь на FT232, и подключенный к нему передатчик HM-T868. Преобразователь подключается 2м кабелем от принтера, что позволяет закрепить его на каком нибудь дереве или чем-то подобном.
Пуск!
Итак, есть самолетик, есть радиоуправление — Поехали!(с) Первый полет производился над асфальтом, результат — сломанный пополам фюзеляж и полувырванный двигатель. Второй полет производился над более мягкой поверхностью:
Последующие полетов 10 были тоже не особо удачными. Основной причиной я считаю сильную дискретность джойстика — по крену он выдавал только 16 значений (вместо возможных 256), с осью тангажа — не лучше. Но так как в результате испытаний самолет был значительно поврежден и не подлежит ремонту:
— проверить правдивость этой версии пока не представляется возможным. В пользу этой версии говорит и зафиксированная на видео попытка выровнять самолет — он летит накрененным, а потом резко заваливается в противоположную сторону (а должен плавно). Вот более наглядное видео:
Дальность действия аппаратуры — примерно 80м, дальше тоже ловит, но через раз.
Ну вот и все, благодарю за внимание. Надеюсь, приведенная информация окажется для кого-то полезной. Буду рад ответить на все вопросы.
В архиве схема и разводка платы для Протеуса.
habr.com
Простейшее радиоуправление. Специально для начинающих.
Простейшее радиоуправление. Специально для начинающих.
Решил сделать схемы которые делал в детстве и они у меня не получились и описать свои ошибки. Тогда я никак не мог понять почему я передатчиком посылаю одни команды, а приемником если и принимаю, со совсем что то непохожее. Сейчас я конечно знаю почему у меня так получалось, но в виду излишка свободного времени решил все это сделать в железе как тогда в детстве. Ностальгия наверное. Для начала взял самые простейшие схемы, Тем более форум просто забит вопросами «Как сделать радиоуправление на одну команду».
Когда начинал писать, то думал, что постепенно дойду и до сложных постепенно усложняя приемную и передающую часть., т.к. в каждом конкретном случае возникают проблемы совершенно разные. К примеру вместо сверхрегенератора применить для радиоуправления простую и дешевую микросхему TDA7000 или TDA7021.
Подход в этом случае будет немного другой, т.к. там будут действовать другие дестабилизирующие факторы. Конечно для профессионалов эта идея покажется смешной, но для начинающих в качестве первой конструкции по моему самое то и поняв общие принципы можно уже с понятием делать на специализированных микросхемах.
На TDA7000(70221) по моему и схема и настройка будет еще проще. В ней, при её простоте заложено довольно много возможностей для целей радиоуправления.
К сожалению статья моя раздулась до безобразия, а я успел только про примитивные сверхрегенераторы на 27 мгц написать, поэтому я ими и закончил
Понятно подходы выделения полезного сигнала при радиоуправлении различны для разных приемных и передающих систем. У каждой системы есть свои особенности.
Даже если взять тот же сверхрегенератор, но частоту взять раз в десять больше, то одно проблемы отпадут, но появятся новые.
К сожалению в этой статье до этого не дошел, хотя сам передатчик и приемник сверхрегенератор на частоту 225 мгц сделал.
На этих частотах обработка сигнала и его выделение проще, но труднее сама аппаратура, но при этом открываются большие возможности в конструировании малогабаритной аппаратуры радиоуправления на большие расстояния..
Вот даже моя примитивная система на 225 мгц работает в пределах квартиры без всяких антенн. Частоту взял именно эту просто из за того, что вытащил кварц на 25 мгц из старой сетевой карточки и сделал на его основе передатчик. Справа там просто мультивибратор на логике, что бы сигнал передатчика промодулировать.
А это приемник сверхрегенератор на частоту 225 мгц.
Монтаж на пятачках. Считаю, что для макетов идеальный способ. Расположение пятачком делается в процессе монтажа и заранее неизвестно. Прочитать об этом способе можно в книге С.Г. Жутяев «Любительская УКВ радиостанция»
https://www.cqham.ru/ftp/1-29.djvu
С этим все. Начинаю со сверхрегенераторами на 27 мгц, а там как получится.
Понятно, что сначала нужно было сделать простейший маломощный передатчик – маячек для моих экспериментов. Схему сделал для данных целей самую примитивную. Сделал на трех транзисторах. Генератор на 27 мгц и мультивибратор на микросхеме. В дальнейшем этот мультивибратор для однокомандной апппаратуры будет лишний. Его приделал только для настройки. Питание 4,5 вольта.
Как говорил, схема сверхрегенератора классическая. Катушка такая же, как и в передатчике. Транзистор КТ315Б
Подключил к УНЧ и антенну длиной 15 см. Покрутил R2 и добился шумов суперизации.
Взял книжку книжку Г. Миль «Электронное дистанционное управление моделями» Подцепил осциллограф к точке «1» на схеме и как подозревал картинка моя было и близко на эту не похожа.
Что я только не крутил, но они форму менять не хотели или их уровень поднимался выше от нулевой линии, что тоже уменьшало чувствительность.
Дроссель в эмиттере у меня был самодельный. Намотано 50 витков провода на резисторе 100 ком. От отчаяния взял и поставил фабричный дроссель ДПМ-01 и произошло чудо. Осциллограмма сразу приняла приличный вид и чувствительность улучшилась.
Стал экспериментировать с самодельными дросселями. Во всяком случае на 27 мгц наиболее близким к этому оказался намотанный на ферритовом кольце дроссель диаметром 10 мм. Витков 35. Тип феррита не знаю. Взял случайный. Дальше эксперименты прекратил, но понял, что дроссель в сверхрегенераторе очень важная часть и никогда его не нужно как иногда рекомендуют мотать просто на резисторе.
Настала пока делать однокомандную управление. В теории все просто выглядит. Когда несущей нет, то сверхрегенератор сильно шумит. Этот шум нудно выпрямить и использовать как команду. Если подать просто несущую, т.е. включить передатчик без модуляции, то эти шумы пропадают. После детектора получается ноль, а это равносильно подаче команды. Эта система привлекает тем, что когда передатчик отключен, то на выходе приемника нет ложных команд. Шумит он и шумит.
Вот и у Г. Миля об этом написано.
Такая привлекательная простая схема. Жалко, что на практике она очень нестабильно работает. Так и у меня в те годы получилось и решил я её добить. Может кому пригодится. Дело в том, что на выходе сверхрегенератора присутствует переменное напряжение суперизации, как видели оно порядка единиц вольт, хотя и частота у него намного больше напряжения шумов, но величина шумов всего лишь несколько милливольт и эффективно отделить их очень затруднительно. Конечно идеальный случай поставить НЧ трансформатор или ФНЧ на LС элементах, но лень мотать тысячи витков. Хотя в давние времена люди были не такие ленивые и мотали такое.
Здесь нужно заметить, что если сверхрегенератор использовать для приема голоса, то сильное подавление частоты суперизации можно не делать. Просто не нужно будет подавать на УНЧ сильный сигнал, что бы не загонять его в режим отсечки этим напряжением суперизации. В нашем случае это напряжение нужно убрать как можно сильнее. На выходе сверхрегенератора стоит примитивный фильтр НЧ на R5, С7 но все, на что он способен, так получить на его выходе вот такое с амплитудой порядка 0,2 вольта, а шумов при таком на экране осциллографа еще и не видим, хотя они там точно есть. Амплитуда этих шумов совсем мала. Это картинка в точке «2»
Если присмотреться, то наши шумы чуть видны в верхней части этих импульсов.
При таком безобразии приемник будет реагировать не на шумы, а на эти импульсы.
Т.к. ни LC фильтр мне не хочется, ни трансформатор ставить, то остается единственны путь, это поставить активный RС фильтр с частотой среза в несколько килогерц.
Взял опять на транзисторе. После фильтра поставил усилитель с маленьким выходным сопротивлением и получил основной блок для дальнейших экспериментов.
Если теперь посмотреть сигнал в точке «3» при отсутствии несущей, то видим только шум сверхрегенератора приличной амплитуды. Он то и является в нашем случае сигналом команды.
Кстати макет базового блока так выглядит. Виден монтаж на пятачках. Конструкция довольно жесткая. Можно спокойно её бросать и ничего с ней не будет. Все сделано на выводах деталей обрезанных до размера 1 – 2 мм
Единственно желательно сердечник катушки закрепить.
Теперь имея базовый блок делаем для начала простейшее однокомандное управление.
Принцип простой. Шумы уже выделили. Теперь их усилим, продетектируем, подадим на триггер Шмита и дальше на силовой ключ. Если передатчик не включен, то светодиод горит. При включении передатчика шумы пропадают и светодиод гаснет. Если нужно другая логика, то нужно добавить еще один ключ или вместо светодиода поставить реле, но это уже нюансы.
Это макет однокомандного управления так выглядит.
Передатчик для него до безобразия просто выглядит. Просто генератор на кварце 9 мгц работающий на третьей механической гармонике. Его просто включают или выключают.
В принципе можно сделать и без кварца. Для увеличения мощности в генераторе поставил два транзистора КТ315 в параллель, что тоже необязательно. Можно один или что то мощнее, например КТ603 или КТ3117
А это полная схема. Вверху базовый блок, снизу дешифратор команды.
Деталей получилось довольно много, но это компенсируется простотой и наглядностью настройки, где каждый каскад выполняет одну определенную функцию.
Теперь, как и задумал элементарные принципы передачи нескольких команд. Я взял две команды, хотя по этому принципу можно сделать порядка четырех.
Принцип частотного разделения каналов. Принцип широко известен. Правда для разделения каналов в аналоговых системах обычно применяют избирательные LС фильтры, но это не для ленивых, а коты как известно здорово ленивые.
Вот здесь схема с катушками из книги Г. Миля.
Поэтому фильтры решил взять активные на RС. Схем много перепробовал, но не понравились. Больше понравился фильтр Мюллера Фогта. О нем тоже в книге Г. Миля написано.
Базовый блок прежний, только после него вместо усилителя и триггера Шмита пришлось поставить усилитель-ограничитель, т.к. случались ложные срабатывания когда передатчик расположен близко от приемника. Было одновременное срабатывание двух соседних каналов. Когда поставил ограничитель и ограничил величину сигнала поступающих на фильтры, этот дефект пропал.
И наконец полная схема вместе с фильтрами и выходными ключами. Частоты я брал случайные. Первая получилась 1200 гц, вторая 750 гц. Желательно, что бы они не делились на целое число и не создавали в тракте гармоники, т.е. выбор 1200 гц и 600 гц был бы совсем не удачен в данном случае.
Само собой схемы фильтров можно взять и другие, но мне эти понравились.
А это внешний вид макета.
Теперь к передатчику можно переходить. Схема стандартная. Задающий генератор на кварце 9 мгц. Кварц работает на третьей механической гармонике. Дальше идет апериодический буферный каскад в котором происходит также модуляция. Подобная схема модуляции позволяет сделать большую скорость передачи, хотя требует дополнительного каскада. Выходной каскад самый примитивный. Если в нем предусмотреть цепи согласования с антенной, то параметры его конечно улучшаться. Так же можно в оконечном каскаде поставить и более мощный транзистор, хотя бы КТ603, но у меня не было этих целей. Я начал антенну согласовывать, но бросил, т.к. дальности для моих экспериментов и так хватало, а так при желании мощность его можно существенно увеличить особо не раздувая габаритов.
Модулятор по сути два мультивибратора работающих на разных частотах.
На схеме все понятно. Включаем или один мультивибратор или другой.
Там резистор R17 можно подобрать для увеличения мощности, но я не стал. Мне большая мощность не нужна была для экспериментов.
А это макет передатчика с которым я экспериментировал. Система само собой полностью работоспособная. Там видна спиральная антенна и удлиняющая катушка. Окончательно я её не настроил, т.к. большой дальности не преследовал на данном этапе своих экспериментов.
Все!
Силы мои иссякли, да и по опыту знаю, что чем длиннее статья, тем меньше охотников дочитать её до конца. Хотел сделать еще дистанционный аналоговый термометр, но выдохся. Просто на входе модуляции передатчика поставить генератор управляемый напряжением, а в качестве дешифратора приемника поставить преобразователь частота-напряжение. Такие ставили в аналоговых частотомерах.
В заключение хочу сказать, что конечно вместо примитивных шифраторов и дешифраторов на транзисторах здесь можно поставить более совершенные шифраторы и дешифраторы на логике или на МК в которых предусмотреть дополнительно свою систему зашиты достоверности информации дополнительно к этой, хотя не вижу смысла делать такое к таким примитивным передатчикам и приемникам.
Файлы:
11.png
Все вопросы в Форум.
www.radiokot.ru
Пульт радиоуправления моделями своими руками / Habr
Всем привет. Представляю на общее обозрение самодельный пульт радиоуправления для управления различными объектами на расстоянии. Это может быть машинка, танк, катер и т.д. изготовленное мной для “детского” радио кружка. С применением радио модуля NRF24L01 и микроконтроллера ATMEGA16.
Давно у меня лежала коробка одинаковых поломанных игровых джойстиков от приставок. Досталась от игрового заведения. Особого применения в неисправных игровых джойстиках я не видел, да и выкидывать или разбирать жалко. Вот и стояла коробка мертвым грузом пылилась. Идея применения игровых джойстиков, пришла, как только пообщался со своим приятелем. Приятель вел кружок для юных радиолюбителей в интернате, причем бесплатно по выходным, приобщал любознательных детишек к миру радиоэлектроники. Дети они ведь как губка, впитывают информацию. Так как я сам очень приветствую подобные кружки для детей, а тут еще и в таком месте. То и предложил идею, как задействовать нерабочие джойстики. Идея заключалась в следующем: создать самодельный радио дистанционный пульт управления моделями, собранными своими руками, который хотелось бы предложить детям для изучения проекта. Идея ему очень понравилась, учитывая, что финансирование детских учреждений мягко сказать не очень, да и мне был интересен данный проект. Пускай я тоже внесу свою лепту в развитие радио кружка.
Цель проекта создать законченное устройство не только как радио дистанционный пульт, но и ответную часть на радиоуправляемый объект. Учитывая, что пульт для детей то и подключение приёмной части на модель, также должно быть по возможности простым.
Сборка и комплектующие:
Разобрав игровой джойстик на составляющие, сразу стало ясно, нужно изготовить новую печатную плату, причем, весьма необычной формы. Сначала, хотел развести печатную плату на микроконтроллер ATMEGA48, но как оказалось портов микроконтроллера просто не хватает под все кнопки. Конечно, такое количество кнопок в принципе не нужно и можно было ограничиться только четырьмя портами микроконтроллера АЦП для двух джойстиков и два порта для тактовых кнопок, размещенных на джойстиках. Но мне захотелось по возможности максимально большое количество кнопок задействовать, кто знает, чего там детишки ещё захотят добавить. Так была рождена печатная плата под микроконтроллер ATMEGA16. Сами микроконтроллеры у меня были в наличии, остались от какого-то проекта.
Резинки на кнопках очень сильно были изношены, и восстановлению не подлежали. Но это не удивительно учитывая, где джойстики использовались. По этой причине применил тактовые кнопки. Пожалуй, к минусам тактовых кнопок можно отнести сильное щелканье, возникавшие в результате нажатия на кнопку. Но для данного проекта это весьма терпимо.
Плату с джойстиками не пришлось переделывать, оставил какая есть, что значительно сэкономило времени. Торцевые кнопки также сохранил в первоначальном виде.
В качестве приемопередатчика выбрал радиомодуль NRF24L01, так как цена весьма мала в Китае по цене 0.60$ за шт. купил. Несмотря на свою малую стоимость, радиомодуль обладает не малыми возможностями и конечно мне подходил. Следующей проблемой, с которой столкнулся, а собственно где радиомодуль разместить. Пространство в корпусе свободного маловато, по этой причине радио модуль разместил в одной из ручек корпуса джойстика. Даже фиксировать не пришлось, модуль плотно прижимался, когда собирался полностью корпус.
Пожалуй, самой большой проблемой стал вопрос с питанием для радио пульта. Покупка каких-то специализированных аккумуляторов, скажем литиевых, влетало в немалую копеечку, так как собирать решено было семь комплектов. Да и оставшееся свободное пространство в корпусе не очень позволяло использовать стандартные аккумуляторы серии AA. Хотя потребление и не значительное можно использовать разные подходящие источники питания. Как всегда, на помощь пришла дружба, коллега на работе подогнал аккумуляторы литиевые плоские от мобильных телефонов и бонусом зарядки к ним. Все же немного пришлось переделать их, но это незначительно и гораздо лучше, чем делать с нуля зарядку для аккумуляторов. Вот на плоских литиевых аккумуляторах я и остановился.
В процессе испытания радио модуль, свою заявленную дальность оправдал и уверенно работал по прямой видимости на расстоянии 50 метров, через стены дальность значительно уменьшилась. Также было в планах установить вибромотор, который реагировал, скажем на какие-то столкновения или другие действия в радиоуправляемой модели. В связи с этим предусмотрел на печатной плате транзисторный ключ для управления. Но дополнительные усложнения я оставил на потом сначала нужно обкатать программу, так как она ещё сыровата. Да и конструкция, учитывая, что это прототип требует мелких доработок. Вот так как говорится “с миру по нитке”, практически с минимальными вложениями был создан пульт радиоуправление.
Печатная плата — atmel-programme.clan.su/pultdzhostik.rar
Радиомодули брал тут — alipromo.com/redirect/cpa/o/rhc8f0n1hlzfodwgihmb8nwr9wx53k5g
habr.com
Схема радиоуправляемой машинки и установка платы
Здравствуйте, в этой статье соберем набор радиоуправляемой машинкиМашинка работает на двух батарейках типа АА 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 Правил сайта.
mysku.ru
РадиоКот :: Радиоуправление Самолетом на MRF49XA
РадиоКот >Схемы >Цифровые устройства >Игрушки >Радиоуправление Самолетом на MRF49XA
Всем привет!Хочу поделиться с вами своим опытом в создании самодельного цифрового радиоуправления самодельным самолетом. Данная статья ориентирована прежде всего на тех, кто недавно начал изучать микроконтроллеры и жаждет самостоятельно создать летающую игрушку с индивидуальными возможностями.
Как начинающему радиолюбителю мне еще со школы хотелось научиться создавать радиоуправление. Данная область привлекала возможностью своими руками создавать интересные игрушки с редкими функциями, вроде запуска ракеты с лодки на озере, электромеханической руки у машинки для перетаскивания грузов, или еще чего.
Нашлось время для хобби в нынешние дни – вот и решил исполнить детскую мечту. Вспомнил навыки паяния, почитал про схемотехнические основы в П.Хоровиц У.Хилл “Искусство схемотехники”, попрактиковался с микроконтроллерами, и взялся за дело.
Итак, что же должно представлять из себя радиоуправление.
Во-первых, это управляющий радиосигнал. Полистав многие статьи из советских радиолюбительских журналов, мне стало ясно что там люди изрядно заморачивались темой передачи, приема радиоволн, настройки антенн, чувствительности приемников, и т.д. Конечно, без радиоволн тут никуда. Но если по серьезному, то данную тему нельзя изучить по-быстрому. Она требует отдельного и очень глубокого изучения, вплоть до физического и математического фундамента. Было бы легче, если б выучился я на радиофаке или физфаке… Но ситуация другая. Заморачиваться физикой радиоволн я не захотел. Да и нет большой нужды, ведь КПД самодельной аппаратуры достаточно невысок зачастую. Без грамотности в этих вопросах, да и дома на коленке сложно хорошо отладить приемник и передатчик. Вдобавок мне захотелось, чтобы самолет слал какую-то телеметрию, хотя бы самую простую, а значит передача должна идти в оба конца, и при этом команды от обоих передатчиков не должны смешиваться в эфире, а четко различаться обоими. Это еще больше усложняет ситуацию.
Выход был найден через использование компактных чипов-радиотрансиверов. Их особенность в высокой экономичности (по потерям энергии), по чувствительности према(т.е. дальности действия), не нужно сильно заморачиваться с радиопередачей, и вдобавок не нарушите законы об разрешенных для любителей радиочастотах и предельных мощностях передатчиков.
В моем случае я решил попытать счастья с MRF49XA. Кто-то скажет, что с ним работать несколько неудобно. В общем-то, есть свои недостатки, но не так уж все мрачно. В принципе подойдет. Да и как показывает практика команды уверенно принимаются с расстояния 200-220 метров (специально замерял). Вполне подойдет для самолета летающего в зоне визуальной видимости пилота.
Во-вторых, пульт управления должен уметь преобразовывать движения рук пилота в радиокоманды, (т.е. кодировать управление пилота) а бортовой приемник понимать эти команды и на их основе управлять моторами (т.е. декодировать), лампочками, или еще чем.
Т.е. пульт и приемник превращаются по-сути в два миникомпьютера. Для этих целей я использовал микроконтроллеры PIC18F4431 для приемника и PIC18F2550 для пульта. Первый взял потому, что начитался про его Power PWM модуль, т.е. улучшенный модуль ШИМ-генераторов. И хотя у него аж целых 8 ножек для PPWM, как выяснилось из datasheet, все ж генераторов только 4 (по две ноги на каждый). ШИМ сигналы нужны для управления оборотами несущего двигателя, а так же сервомашинками, двигающими рули и элероны. На большинство самолетов нужен набор: один несущий мотор, два сервомотора для двух элеронов на крыльях, и по одному сервомотору на рули высоты и направления на хвосте. И того требуется 5 ШИМ сигналов (по одному на каждый мотор). Сначала была идея отдельно управлять элеронами по-отдельности (так и сталось в прошивках), хотя как стало ясно позже на практике для элеронов вполне достаточно иметь единый сигнал для двух моторов. Но изначально я захотел иметь 5 ШИМ сигналов и еще 3 запасных для возможных расширений функциональности. Т.е. всего требовалось 8 разных ШИМ сигналов. Но для этого их генерацию пришлось реализовывать самому в прошивке, и замечательный Power PWM остался не у дел. Это все выяснилось уже после того, как мне привезли PIC18F4431. Но девать было некуда, вот и решил пустить его в ход, тем более, что ножек там с запасом – можно пофантазировать.
А что касается PIC18F2550, то тут привлекла возможность приделать к пульту USB разъем, и чтобы управлять самолетом можно было с компьютера нажатием на клавиши. Весьма оригинально, на мой взгляд. Хотя и не очень практично, как выяснилось. Однако, если развивать эту тему и создать не просто самолет, а беспилотник, который будет сам летать по GPS или ГЛОНАСС, то такой USB разьем пригодится для передачи с компа на самолет координат точек в пространстве, через которые он должен пролететь. Согласитесь, интересно…
<b>В-третьих</b>, понимать движения рук рук пилота пульт должен через джойстики и регуляторы (вроде переменных простых резисторов). Джойстики нужны непосредственно для управления положением рулей самолета, а регуляторы для подстройки средних положений этих рулей, т.е. положений, в которые они встают, когда пилот отпускает джойстики. Иногда ведь бывает, что руль при изготовлении настроен не идеально, и немноrо приподнят или опущен, либо в полете выясняется, что самолет немного кренит в какую-нибудь сторону, и чтобы компенсировать, надо чуть-чуть подстроить рули.
Я использовал джойстики такого вида. Они аналоговые. Подводишь напряжение, и на двух ножках джойстики выдают напряжения от земли до уровня питания, соответствующие осям X и Y.
В качестве регуляторов я использовал обычные переменные резисторы. Замечали, что у нах три ножки? Вот если к двум крайним подвести питание, то на средней напряжение будет меняться в зависимости от положения ручки. Т.е. резистор будет выступать в роли регулируемого делителя напряжения. Круто? Не то слово. Замечательная вещь… Здесь только надо не переборщить с сопротивлением резистора. Как видно ниже на схеме, я его напрямую подключал к аналоговой ножке микроконтроллера. А у нее входное сопротивление не бесконечное. И если взять слишком высокоомный переменный резистор, это небесконечное сопротивление будет сказываться в виде нелинейности зависимости выходного напряжения регулятора от положения его ручки. Я сначала пробовал использовать 100 КОм, и напряжение менялось от нуля до максимума лишь на 30 градусах поворота ручки. Неудобно. Если взять слишком мало, то будет пустая нагрузка на батарею питания, т.к. через регуляторы постоянно будет течь большой никому не нужный ток. В схеме ниже я использовал резисторы на 5 КОм. Работает отлично. Но народ часто использует 10 КОм в заводской аппаратуре, как я понял из одного разобранного покупного пульта. К тому же, в джойстиках что я использовал так же применяются 10 КОм-ные переменные резисторы. Не пробовал с ними. Надо попробовать. Думаю, линейность не испортится, а вот нагрузка на батарею немного спадет.
В качестве уникальной функции, которых не найдешь в магазинных самолетах, я решил реализовать функцию пуска ракеты с самолета. Для этого достаточно на секунду открыть мощный транзистор, и пустить большой ток с бортового аккумулятора на воспламенитель. В качестве воспламенителя можно использовать кусочек тонкой нихромовой нити (0.1-0.2 мм квадр) длиной пару сантиметров, и закрученной в пружинку на швейной иголке (в форме пружинки намного лучше нагревается). Когда нажимаю кнопку, раскаляется докрасна и выгорает. Фитиль от китайской пиротехнической ракеты поджигает легко. В качестве ракеты можно использовать как раз китайскую пиротехническую. Тут я, правда, еще не испытывал функциональность, и ничего из опыта сказать не могу. Одно скажу точно: надо быть крайне осторожным, т.к. ракета со стабилизатором полетит только вверх (но стабилизатор – тяжелый и неудобный груз для самолета), а без него полетит по непредсказуемой траектории (эти ракеты делают на коленке в Китае, и никто не гарантирует, что струя газа будет толкать ракету строго прямо) и может привести к самым негативным последствиям. Поэтому не советую с этим связываться. Однако, данную функциональность можно запросто переделать под метание макета бомбы или еще чего, где в качестве нагрузки будет какой-нибудь механизм вроде, например, электромагнита, держащего/отпускающего макет бомбы. Правда, и тут надо быть осторожным, т.к. при отпирании транзистора произойдет короткое замыкание бортового аккумулятора. На мгновение ток будет ограничен за счет сопротивления магнитного поля электромагнита, а затем ток резко вырастет, и закончится все плохо. Либо транзистор сгорит напрочь, либо аккумулятор испортится, а то и чего хуже воспламенится или взорвется (иногда случается с литиево-полимерными). Так что тут надо быть крайне осторожным…
СХЕМЫ АППАРАТУРЫ:
Вот схемы получившихся устройств.
Приемник:
Пульт-передатчик:
Про обозначения на схеме:
MD – Main Drive, т.е. несущий двигатель самолета.
EL – Элероны, т.е. управляющие ими сервомоторы.
TH – Tail Height, т.е. сервомотор хвостового руля высоты.
TT – Tail Turn, т.е. сервомотор хвостового руля направления.
Джойстик J1 управляет элеронами по оси X и рулем высоты по оси Y. Джойстик J2 управляет рулем направления по оси X, а ось Y осталась неиспользованной.
Регулятор MD-P2 управляет скоростью вращения несущего мотора. Регуляторы EL-P1, TT-P3, TH-P4 регулируют среднее положение рулей самолета. Да, для обоих элеронов я все-таки использовал общее значение. Практика показывает, что этого вполне достаточно. А для раздельной подстройки мне не хватило еще одной подходящей аналоговой ножки у PIC18F2550.
Кнопка S7-OnOff включает и выключает несущий мотор самолета. Если выключен, то не работает, если включен, то вращается со скоростью, выставленной в MD-P2. Если включен, то загорается зеленый светодиод.
Кнопка S5-Adj включает и выключает режим подстройки среднего положения рулей. При включении загорается желтый светодиод, и считываются значения с регуляторов. При выключении считывание прекращается, и последние считанные данные записываются в энергонезависимую EEPROM память микроконтроллера. При включении пульта эти значения считываются из памяти и используются при управлении. Так сделано с той задумкой, чтобы лишний раз не настраивать среднее положение рулей при каждом включении, ведь при транспортировки пульта ручки могут сдвинуться. Правда, это и не удобно для подстройки рулей во время полета самолета. Вопрос вкуса…
Кнопка S6-Rock запускает условную ракету (т.е. открывает мощный МОП транзистор IRF630N на борту самолета).
Кнопка S8-Max запускает несущий двигатель на максимальные обороты на время нажатия. При отпускании кнопки обороты возвращаются на значение выставленное в MD-P2. Мне показалось, это будет полезным при взлете. Правда, как выяснилось, не всегда контроллеры бесколлекторных моторов справляются со столь резким перепадом оборотов. Иногда вообще не реагируют. Таким образом, данную величину лучше менять плавно.
Кстати, изначально я пытался экономить на радиопередаче. И слал пакеты только когда величины меняли свое значение на какое-то дельта от прежнего. Но поскольку иногда пакеты теряются, то смена положения джойстика или ручки может не дойти до приемника, особенно на большой дистанции от пульта. Поэтому я решил сделать по-простому, но более надежно. И на микроконтроллере циклично измеряются напряжения на регуляторах и джойстиках и сразу же шлются на приемник, не зависимо от того, поменялись они или нет. Это повышает точность поворота моторов, скорость их реакции, и надежность доставки информации до приемника.
Питание схемы от 9V Duracell батарейки типа “Крона”. На входе у пульта стоит стабилизатор LM78M05 для питания схемы напряжением в 5 вольт. И также LM1117-3.3 для питания MRF49XA напряжением в 3.3 вольта. Кстати, MRF49XA действительно вполне нормально работает от 5 вольт. В первой версии моего приемника он питался так. И до сих пор работает, сколько я его не гонял последние полгода.
По-умолчанию у MRF49XA двухпроводная линия питания. Я же прочитал статью товарища Blaze и еще вот эту , и решил в качестве антенны использовать штырь. В datasheet описан переходник, так называемый Balun (От слов Balanced-Unbalanced), от двухпроводной линии питания антенны к однопроводной. При этом наилучшие характеристики приема-передачи будут, если антенны будут с волновым сопротивлением в 50 Ом. Наиболее подходящее и простое тут, на мой взгляд, это четвертьволновой штырь. Говорят, у него сопротивление где-то около 40 Ом, вроде. Достаточно близко.а несущую частоту выбрал максимально возможную для данного радиотрансивера, т.е. 915 МГц, чтобы по прямой видимости било дальше. Ведь, как известно, чем выше частота, тем дальше ловится сигнал на прямой видимости, но хуже преодолевает препятствия. Указанные на схеме значения для Balun взяты из datasheet. В качестве антенны использовал кусок провода длиной четверть длины волны. Для 915 МГц это около 82 мм.
Далее… Главный недостаток MRF49XA, на мой взгляд, это его маленький буфер приема – всего 2 байта. Думаю, авторы чипа считали, что при приеме микроконтроллер должен считывать приходящий пакет по байту-двум за цикл. Но в моем случае ситуация сложнее. ШИМ я реализовал логически простым способом: ставим единицу на одну ШИМ-ножку, ждем нужное время длительности сигнала, и переводим в ноль, а затем следующую ножку аналогично, и так по циклу. Управляющий ШИМ для моторов в классическом понимании представляет из себя цифровой импульс длительностью от 1 до 2 миллисекунд, повторяющийся с периодом в 20 миллисекунд. Период может быть другим. Если взять меньший, то моторы чуть быстрее реагировать будут, если побольше, то медленнее. А вот длительность импульса – та самая управляющая величина. Так вот длительность одного главного цикла меняется в пределах от 5 миллисекунд до 10 миллисекунд (5 ШИМ-ножек, по 1-2 мсек на каждую). Т.е. если пульт будет посылать байты чаще, чем по 2 в 10 мсек, то скорее всего они будут теряться. Таким образом, за один цикл мы можем посылать не более 2-х байт. Сначала я хотел посылать пакеты по 4 байта: байт номера устройства – упрощенный аналог IP адреса, байт номера функциональности (которой выставляем значение), байт самого значения, и байт чексуммы – число битов в первых трех байтах. Но безуспешно повозившись с этой затеей, забил и сделал просто по 2 байта: байт номера функциональности, и байт значения.
Значение каждой функциональности меняется в интервале от 0 до 100 (т.е. измеряемое с джойстиков значение напряжения в логике микроконтроллера меняется по шкале от 0 до 100), причем принятое значение 0x00 считается за непринятый пустой байт и всегда отбрасывается. Передаваемое значение 0 кодируется и декодируется как 101. Это позволило избавиться от ситуации, когда второй байт теряется и не доходит, а принятое значение 0 заставляет мотор резко “прыгать” в нуль.
Номера функциональностей меняются от 110 до 200. Остальные значения байта считаются зарезервированными.
Касательно телеметрии, в случае моей аппаратуры оказалась какая-то проблема, которую я так и не смог разрешить. Пакеты с приемника на пульт приходят кривые. Причем, я сделал два приемника по ходу разработки. Оба между собой успешно передают пакеты в обе стороны. Но ни один пульту пакет передать не может, хотя функции и библиотеки использую в прошивках одинаковые. Порты на ввод-вывод выставлены правильно. А вместо первого байта приходит всегда какое-то число больше 100, но меньше 250. Не знаю, с чем это связано. Но модуль передатчика (он у меня отсоединяемый) для пульта я менял однажды (старый глючить стал) и проблема осталась. В общем, загадка…
Передача по USB так же осуществляется командами по 2 байта аналогично. Значения также меняются от 0 до 100, а номера функциональностей от 0x60 до 0x71. Правда, кодирование нуля тут отсутствует – USB и так передает надежно. Протокол передачи я использовал CDC. Мне понравилась идея общаться с устройством через COM порт на компе. Это удобнее, чем с HID, на мой взгляд. Особенно из-за несложной привязки методов к event-ам прихода на комп пакета. Прогу для компа писал на .NET с Windows Forms. Главный недостаток CDC устройства это найти для него драйвер. Себе на комп я когда-то поставил, но где взял и как делал, не помню. Сейчас найти не могу…
Желающим повозиться в HID в коде имеются заготовки. По крайней мере, устройство полностью определяется компом.
Код для USB и HID протоколов брал из семплов официальной библиотеки MLA компании Microchip.
Вот фото получившихся устройств.
Приемник:
Пульт управления:
Правда, приемник на фото первой версии – на нем отсутствует LM1117-3.3. Второй версии уже стоит на самолете.:)
На микроконтроллер PIC18F4431 пришлось поставить самодельный минирадиатор, выпиленный из радиатора от старой видеокарты. Уж больно греется он. Для этих же целей частоту тактовую использовал не максимальную в 40МГц (10МГц * PLL), а частоту самого кварца в 10МГц. Падение производительности неощутимо, а вот греться стал существенно меньше.
Программировал микроконтроллеры я через свой Pickit3.
Штырь на джойстике сделан для более точного и плавного поворота.
САМОЛЕТ:
Несколько слов о самолете. Делал модель Cessna 150 из потолочной плитки толщиной 3мм по известным урокам Сергея Шевырина “Изготовление Цессны из Потолочки”. Вот чертежи к нему. Кстати, отдельное спасибо Сергею! Замечательные уроки! Вот только не полностью раскрытым остался вопрос выкоса двигателя. Любознательным рекомендую почитать про это тут.
Составная электронная часть самолета:
– Несущий двигатель EMAX CF2822. Для такого самолета вполне подходит, но, я бы сказал, предельный вариант по мощности для данной модели. Менее мощный мотор точно брать тут не стоит.
– Воздушный винт использую композитный APC 9×4.7 (на пределе возможностей используемого двигателя).
– Сервомоторы TowerPro Microservo SG90.
– Регулятор не знаю какой на 30 ампер. Недорогой, но пашет хорошо.
– Аккумулятор 3-х баночный в 12V на 1000 мА/ч. Не очень емкий, но зато относительно легкий.
Самолет получился тяжеловат – 533 грамма. Но мотор на максимальных оборотах вполне тянет его вертикально вверх.
Вот фото:
Окошко перед пропеллером сделано специально для обдува радиатора приемника (где PIC18F4431 греется).
ЗАМЕЧАНИЯ ОТ АВТОРА:
1) Если переделать самодельный ШИМ на приемнике, чтобы одновременно все ножки в единицу ставил, а потом выключал каждую в нужный момент, то можно будет уменьшить интервал посыла пакетов, и тогда и доработать под 4 и более байтовые пакеты, если надо. Но вообще рекомендую nRF24L01+ с антенной. Они имеют буфер приема в 32 байта (можно разгуляться) и за счет усилителя мощности передают на расстояние до километра по прямой. Тогда заодно и телеметрия заработать должна (в моем случае). В перспективе можно поиграться и с LoRa (Long Range) радиотрансиверами вроде Semtech SX1272. Но там тоже придется учиться с ним работать.
2) Настоятельно рекомендую не возиться с теми джойстиками для Arduino, которые я использовал. Они достаточно грубы для управления самолетом. Сложно с ними управлять. Лучше купите самый дешевый пульт радиоаппаратуры, вытащите оттуда начинку, и используйте его замечательные джойстики. Там тот же самый принцип – на переменных резисторах. Но из-за своей конструкции эти джойстики намного точнее и удобнее. К тому же, коробка пульта будет неплохим корпусом для устройства.
3) Управлять самолетом сложно. В наше время часто ставят гироскопические стабилизирующие устройства. Не пробовал такое, но думаю, поможет в стабилизировании самолета в воздухе. Советую попробовать.
4) У магазинных самолетов на пультах управления, как правило, есть специальный разъем для подключения к компу. Через программу-симулятор можно потренироваться на виртуальном самолете прежде, чем запускать реальный. Очень удобно для новичков. Однако, в самодельной аппаратуре я такой разъем не предусмотрел. В этом большой минус своей аппаратуры – тренироваться придется на реальном самолете изначально. Поэтому советую сделать самолет попроще, чем предлагает Сергей Шевырин и поменьше размером. Я сделал самолет с размахом крыла 110 сантиметров, и теперь мучаюсь его чинить после каждого неопытного полета.
5) 28 ножек микроконтроллера PIC18F2550 маловато для толкового пульта. Рекомендую использовать его расширенный аналог PIC18F4550 с 44 ножками. Тогда вместо светодиодов можно будет прикрутить ЖК дисплей, со всеми его возможностями. Отдельно хочу заметить про недостаток PIC18F2550. У них отсутствуют ANSEL-регистры. А конфигурация аналоговый/цифровой для портов выставляется специфическим способом, который сильно ограничивает возможности по разметке на плате. Из-за этого, как видно выше на фото, пульт превращается в “воронье гнездо” с неудобным переплетением проводов.
6) Регуляторы лучше делать из линейных переменных резисторов. Не советую брать китайские, у которых есть встроенный замедлитель поворота ручки. Быстро изменить положение во время полета не получится. А бывает нужно иногда…
7) Из задач на будущее:
– можно поставить приемопередающую аппаратуру с большей дальностью действия, вроде nRF24L01+ с антенной,
– если приделать к схеме MEMS чип-гироскоп и GPS/ГЛОНАСС/Galileo чип-навигатор, вроде отечественного ML8088s, то можно научить самолет летать самостоятельно по координатам в пространстве. Правда, тут придется повозиться с алгоритмом полета, чтобы самолет умел не только поворачивать, но и делать это плавно, и выравниваться при порывах бокового ветра. Зато интересно, на мой взгляд.
– можно приделать к самолету FPV, и тогда уж точно не оторвешься от этой игрушки. Правда, дополнительный вес потребует более мощного мотора, контроллера к нему, и более емкого аккумулятора, соответственно.
Надеюсь, моя статья оказалась кому-нибудь полезной.
В приложении добавляю коды прошивок приемника и пульта, код программы компьютера для взаимодействия к пультом посредством USB, а так же разметку платы приемника. Плата пульта получилась не очень удачной, поэтому разметку выкладывать не буду.
Файлы:
PlaneControlCode
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? |
Эти статьи вам тоже могут пригодиться:
www.radiokot.ru