Схемы радиоуправления моделями на 6 каналов. Радиоуправление своими руками. Характеристики авто на радиоуправлении


Что хочется сказать от себя — отличное решение в любой ситуации дистанционного контроля. В первую очередь это касается ситуации когда есть необходимость управлять большим количеством устройств на расстоянии. Даже если и не нужно управлять большим количеством нагрузок на расстоянии — разработку сделать стоит, так как конструкция не сложная! Пара не редких компонентов — это микроконтроллер PIC16F628A и микросхема MRF49XA — трансивер.

В Интернете уже давно томиться и обрастает положительными отзывами замечательная разработка. Она получила название в честь своего создателя (10 командное радиоуправление на mrf49xa от blaze) и находится по адресу —

Ниже приведем статью:

Схема передатчика:

Состоит из управляющего контроллера и трансивера MRF49XA.

Схема приемника:

Схема приемника состоит из тех же элементов, что и передатчик. Практически, отличие приемника от передатчика (не беря во внимание светодиоды и кнопки) состоит только в программной части.

Немного о микросхемах:

MRF49XA — малогабаритный трансивер, имеющий возможность работать в трех частотных диапазонах.
1. Низкочастотный диапазон: 430,24 — 439,75 Mгц (шаг 2,5 кГц).
2. Высокочастотный диапазон А: 860,48 — 879,51 МГц (шаг 5 кГц).
3. Высокочастотный диапазон Б: 900,72 — 929,27 МГц (шаг 7,5 кГц).

Границы диапазонов указаны при условии применения опорного кварца частотой 10 МГц, предусмотренного производителем. С опорными кварцами 11МГц устройства нормально работали на частоте 481 МГц. Детальные исследования на тему максимальной «затяжки» частоты относительно заявленной производителем не проводились. Предположительно она может быть не так широка, как в микросхеме ТХС101, поскольку в даташите MRF49XA упоминается об уменьшенном фазовом шуме, одним из способов достижения которого является сужение диапазона перестройки ГУН.

Устройства имеют следующие технические характеристики:
Передатчик.
Мощность — 10 мВт.

Ток, потребляемый в режиме передачи — 25 мА.
Ток покоя — 25 мкА.
Скорость данных — 1кбит / сек.
Всегда передается целое количество пакетов данных.
Модуляция FSK.
Помехоустойчивое кодирование, передача контрольной суммы.

Приемник.
Чувствительность — 0,7 мкВ.
Напряжение питания — 2,2 — 3,8 В (согласно даташиту на мс, на практике нормально работает до 5 вольт).
Постоянный потребляемый ток — 12 мА.
Скорость данных до 2 кбит/сек. Ограничена программно.
Модуляция FSK.
Помехоустойчивое кодирование, подсчет контрольной суммы при приеме.
Алгоритм работы.
Возможность нажатия в любой комбинации любого количества кнопок передатчика одновременно. Приемник при этом отобразит светодиодами нажатые кнопки в реальном режиме. Говоря проще, пока нажата кнопка (или комбинация кнопок) на передающей части, на приемной части горит, соответствующий светодиод (или комбинация светодиодов).
Кнопка (или комбинация кнопок) отпускается — соответствующие светодиоды сразу же гаснут.
Тест режим.
И приемник и передатчик по факту подачи на них питания входят на 3 сек в тест режим. И приемник и передатчик включаются в режим передачи несущей частоты, запрограммированной в EEPROM, на 1 сек 2 раза с паузой 1 сек (во время паузы передача выключается). Это удобно при программировании устройств. Далее оба устройства готовы к работе.

Программирование контроллеров.
EEPROM контроллера передатчика.


Верхняя строка EEPROM после прошивки и подачи питания на контроллер передатчика будет выглядеть так…

80 1F — (подиапазон 4хх МГц) — Config RG
AC 80 — (точное значение частоты 438 MГц) — Freg Setting RG
98 F0 — (максимальная мощность передатчика, девиация 240 кГц) — Tx Config RG

82 39 — (передатчик включен) — Pow Management RG .

Первая ячейка памяти второй строки (адрес 10 h ) — идентификатор. По умолчанию здесь FF . Идентификатор может быть любой в пределах байта (0 … FF). Это индивидуальный номер (код) пульта. По этому же адресу в памяти контроллера приемника находится его идентификатор. Они обязательно должны совпадать. Это дает возможность создавать разные пары приемник/передатчик.

EEPROM контроллера приемника.
Все настройки EEPROM, упомянутые ниже, запишутся автоматически на свои места по факту подачи на контроллер питания после его прошивки.
В каждой из ячеек данные можно менять на свое усмотрение. Если в любую используемую для данных ячейку (кроме идентификатора) вписать FF, за следующим включением питания эта ячейка немедленно будет переписана данными по умолчанию.

Верхняя строка EEPROM после прошивки и подачи питания на контроллер приемника будет выглядеть так…

80 1F — (подиапазон 4хх МГц) — Config RG

AC 80 — (точное значение частоты 438 MГц) — Freg Setting RG
91 20 — (полоса приемника 400 кГц, чувствительность максимальная) — Rx Config RG
C6 94 — (скорость данных — не быстрее 2 кбит/сек) — Data Rate RG
C4 00 — (АПЧ выключено) — AFG RG
82 D9 — (приемник включен) — Pow Management RG .

Первая ячейка памяти второй строки (адрес 10 h ) — идентификатор приемника.
Для корректного изменения содержимого регистров как приемника так и передатчика воспользуйтесь программой RFICDA , выбрав микросхему TRC102 (это клон MRF49XA).
Примечания.
Обратная сторона плат — сплошная масса (залуженная фольга).
Дальность уверенной работы в условиях прямой видимости — 200 м.
Количество витков катушек приемника и передатчика — 6 . Если воспользоваться опорным кварцем 11 МГц вместо 10 МГц, частота «уйдет» выше около 40 МГц. Максимальная мощность и чувствительность в этом случае будут при 5 витках контуров приемника и передатчика.

Моя реализация

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

Первым дело нужно изготовить печатную плату. Для этого я постарался как можно подробней остановиться на процессе ее изготовления

Вырезаем нужный размер платы Видим что есть окислы — нужно от них избавиться Толщина попалась 1.5 мм

Следующий этап — очистка поверхности, для этого стоит подобрать необходимый инвентарь, а именно:

1. Ацетон;

2. Наждачная бумага (нулёвка);

3. Ластик (стерка)

4. Средства для очистки канифоли, флюса, окислов.

Ацетон и средства для смывки и очистки контактов от окислов и подопытная плата

Процесс очистки происходит как показано на фото:

Наждачной бумагой зачищаем поверхность стеклотекстолита. Так как он двухсторонний, проделываем все с обеих сторон.

Берем ацетон и обезжириваем поверхность+смываем остатки крошки наждачной бумаги.

И вуалая — чистая плата, можно наносить лазерно-утюжным методом печатку. Но для этого нужна печатка 🙂

Вырезаем из общего колличества Обрезаем лишнее

Берем вырезанные печатки приемника и передатчика и прикладываем их к стеклотекстолиту следующим образом:

Вид печатки на стеклотекстолите

Переворачиваем

Берем утюг и все это дело прогреваем равномерно, до появления отпечатка дорожек на обратной стороне. ВАЖНО НЕ ПЕРЕГРЕТЬ! Иначе поплывет тонер! Держим 30-40 сек. Равномерно поглаживаем сложные и плохо прогретые места печатки. Результатом хорошего перевода тонера на стеклотекстолит служит появление отпечатка дорожек.

Гладкое и увесистое основание улюга Прикладываем к печатке разогретый утюг
Прижимаем печатку и переводим.

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



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



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

Под слегка теплой водой Пальцами скатываем бумагу Результат очистки

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



Поэтому мы берем тонкий пинцет или цыганскую иглу и удаляем лишнее. На фото замечательно видно!



Помимо остатков бумаги, на фото видно, как в результате перегрева в некоторых местах слиплись контактные площадки для микросхемы. Их нужно аккуратно, той же иглой, как можно внимательней разъединить (соскрести часть тонера) между контактными площадками.

Когда все готово переходим к следующему этапу — травление.

Так как у нас стеклотекстолит двухсторонний и обратная сторона сплошная масса нам нужно сохранить там медную фольгу. Для этой цели заклеим ее скотчем.

Скотч и защищенная плата Вторая сторона защищена от травления слоем скотча Изолента как «ручка» для удобвства травления платы

Теперь травим плату. Я делаю это старым дедовским методом. Развожу 1 часть хлорного железа к 3 частям воды. Весь раствор в банке. Хранить и использовать удобно. Разогреваю в микроволновой печи.


Каждая плата травилась отдельно. Теперь берем в руки уже знакомую нам «нулевку» и зачищаем тонер на плате

Радиоуправление своими руками на 12 команд

Схема позволяет управлять моделями или другими устройствами и нагрузками на расстоянии .Допускается нажатие одновременно до 8 кнопок. Схема проста в изготовлении,и требует после сборки только прошивки контроллеров.Индикаторы исполнения команд – светодиоды. Разумеется, к соответствующим выводам процессора можно подключить например затворы мощных полевых или базы биполярных транзисторов через токоограничивающие резисторы.

Схема передатчика:



Приемник


Сверхрегенератор: При номиналах указанных на схеме и исправных деталях обладает 100% повторяемостью.


Его настройка заключается лишь в раздвигании витков контурной катушки и подборе емкости связи с антенной.3 й вывод контроллера дешифратора служит для контроля прохождения сигнала при настройке (программно подключенный выход внутреннего компаратора).Контролировать можно с помощью обычного УНЧ.
Дешифратор приемника – PIC16F628A , он осуществляет декодирование и исполнение принятых команд.

Система кодер - декодер может работать как по проводам так и с другими приемником и передатчиком. Каждая посылка 0 и 1 со стороны кодера «закрашена» колебаниями 5,5 кГц для лучшей помехозащищенности + передача контрольной суммы.
Питание приемника обязательно от стабилизированного источника 5 вольт (на схеме не показан, в плате предусмотрен КРЕН 5 А +диод). Питание передатчика от 3,6 вольта но не больше 5,5 вольта (на плате предусмотрен КРЕН 5А+диод).
Картина нажатых кнопок в PORTB (выводы 6 - 13) на передающей части полностью отражается на приемной части в PORTB (выводы 6 - 13) соответственно. Картина нажатых кнопок в PORTA (3>2, 4> 15,15> 16, 16> 17).

Устройство предназначено для управления 12 различными нагрузками. Причем одновременно и в любой комбинации допускается нажатия до 8 кнопок (PORTB) или 4 кнопок (PORTA). Оно может входить в состав, например, радиоуправляемого комплекса для авто и авиамоделей, управления гаражными воротами и т.п.

  • Скачать файл принципиальной схемы в формате lay

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

Передатчик

Передающая часть состоит из задающего генератора и усилителя мощности.
ЗГ - классическая схема на ПАВ- резонаторе со 100 % амплитудной модуляцией.
УМ- стандартный с общим эммитером, нагруженный на четвертьволновый отрезок провода длиной 16 см через согласующую емкость.
Шифратор - PIC 16F628A , он осуществляет обработку информации о нажатых кнопках кодирование и посылку пачек управляющих импульсов а также включение светодиодного индикатора и усилителя мощности во время передачи кода.

Приемник

Сверхрегенератор. При номиналах указанных на схеме и исправных деталях обладает 100% повторяемостью.
Его настройка заключается лишь в раздвигании витков контурной катушки и подборе емкости связи с антенной.3 й вывод контроллера дешифратора служит для контроля прохождения сигнала при настройке (программно подключенный выход внутреннего компаратора).Контролировать можно с помощью обычного УНЧ. Дешифратор приемника - PIC 16F628A, он осуществляет декодирование и исполнение принятых команд. Система кодер - декодер может работать как по проводам так и с другими приемником
и передатчиком. Каждая посылка 0 и 1 со стороны кодера «закрашена» колебаниями 5,5 кГц для лучшей помехозащищенности + передача контрольной суммы.

Питание приемника обязательно от стабилизированного источника 5 вольт (на схеме не показан, в плате предусмотрен КРЕН 5 А +диод). Питание передатчика от 3,6 вольта но не больше 5,5 вольта (на плате предусмотрен КРЕН 5А+диод).
Картина нажатых кнопок в PORTB (выводы 6 - 13) на передающей части полностью отражается на приемной части в PORTB (выводы 6 - 13) соответственно. Картина нажатых кнопок в PORTA (3>2, 4> 15,15> 16, 16> 17).

Прочитав этот пост загорелся и я идеей склепать свой самолетик. Взял готовые чертежи , заказал у китайцев моторчики, аккумуляторы и пропеллеры. А вот радиоуправление решил сделать самостоятельно, во-первых - так интереснее, во-вторых - надо себя чем-то занять пока посылка с остальными запчастями будет ехать, ну и в третьих - появилась возможность соригинальничать и добавить всяких плюшек.
Осторожно, картинки!

Как и чем управлять

Нормальные люди берут приемник, втыкают в него сервомашинки, регулятор скорости, двигают рычажки на пульте и радуются жизни не задаваясь принципами работы и не углубляясь в подробности. В нашем случае такое не пройдет. Первой задачей стало узнать каким макаром управляются сервомашинки. Все оказывается достаточно просто, у привода есть три провода: + питания, - питания и сигнальный. На сигнальном проводе прямоугольные импульсы изменяемой скважности. Чтобы понять что это такое смотрим картинку:


Итак, если мы хотим установить привод в крайнее левое положение нужно слать импульсы длительностью 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< Остается реализовать прерывания:
ISR(TIMER1_COMPA_vect) //прерывание по достижению верхнего значения счетчика, непосредственно перед началом следующего импульса { //c_num- переменная, обозначающая номер текущего канала, channels - массив значений каналов if (c_num <= 7) { OCR1B = channels; } 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м, дальше тоже ловит, но через раз.
Ну вот и все, благодарю за внимание. Надеюсь, приведенная информация окажется для кого-то полезной. Буду рад ответить на все вопросы.
В архиве схема и разводка платы для Протеуса.

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

Схема самодельного пульта радиоуправления

Схема сделана на основе микроконтроллера Atmega8. Его ножек хватило буквально «впритык». Чтобы увидеть большую схему — кликните по картинке (схема так же находиться в архиве, который в конце статьи.

Подсчитаем: 10 кнопок/переключателей + 2 светодиода + 2 ножки на кварц (нам нужен точный во времени ШИМ сигнал) + 5 каналов АЦП + 2 ножки на UART + 1 канал на вывод сигнала РРМ на ВЧ модуль = 22 ножек МК. Как раз столько, сколько есть у Atmega8, которая настроена на внутрисхемное программирование (имею в виду пин RESET, он же PC6).

Светодиоды подключил на PB3 и PB5 (MOSI и SCK разъема программирования) Теперь во время заливки прошивки буду наблюдать красивое перемигивание (бесполезное в некотором смысле — но тут я гнался за визуальным красивым эффектом ).

Напомню с чего все началось — у меня в наличии появился ВЧ модуль из хобикинговской аппаратуры (он был заменен на ВЧ модуль FrSky), и была вертолетная аппаратура. Так как в аппаратуре не было никаких крутилок (да и зачем они?) то получается из шести каналов я буду нормально (штатно) использовать только 4 (по два на каждый стик). Один канал я решил потратить на 8 независимых кнопок/переключателей, еще один — программно имитировать вращение крутилки (например — красивый выпуск шасси — щелкнул переключателем, и шасси на протяжении 10 секунд выпускаются). Еще один переключатель до сих пор не определился, что с ним делать.
Светодиоды, показывающие состояние переключателей — работают независимо от микроконтроллера. Один из программно управляемых светодиодов отвечает за индикацию разряженной батареи, второй — показывает текущее состояние программной крутилки.

В корпус кроме кнопок и светодиодов еще захотелось добавить стандартный (для меня) разъем UART (для связи с ПК, потом буду писать свою программу настройки), и разъем с выводом РРМ сигнала — для подключения пульта к симулятору. Помучившись с разъемом для программатора — понял, что это мне не подходит — и тоже вывел его наружу. Единственное, что плохо в этом — что появилась опасность замкнуть штырьки разъема, хотя они и «утоплены» в корпусе. Но это лечиться последовательными резисторами 220 Ом (что дает 99% гарантию, что микроконтроллер останется цел)

Когда уже вплотную подошел к использованию аппаратуры, понял, что забыл о кнопке Bind (при нажатии на которую передатчик переходит в режим поиска приемника). Пришлось допиливать и это

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

Весьма простенькая — большая часть ножек просто выведена наружу. На плате присутствует стабилизатор на 5 вольт, и схема измерения входного напряжения. Почему использовал DIP корпус? Та просто был он у меня… кроме того — почему бы и не DIP…

Когда паял все это — то пробирала мысль — разве эта туча проводов будет работать?!
Но все же оно работает. Обычно у меня платы чистые от канифоли… но тут уж постоянно возился с делителем, пока не оказалось, что это у меня программная проблема а не «железная». Питание от двухбаночной липольки (то, что когда-то осталось от нормальной трехбаночной, после того, как ее забыли отключить от нагрузки. В результате одна из банок ушла в полный разряд). Несмотря на это — предусмотрел возможность работы и от пальчиковых батарей. Мало ли

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

А сейчас можно скачать текущую версию прошивки. Пока что не настраивается вообще (т.е. настроек реверса, расходов, смещения и прочих «вкусностей» еще нету). Просто считывается состояние крутилок и генерируется РРМ сигнал. Кнопки и выключатель MOD пока не работает. Зато работает виртуальная серва (на 5 канале) и измерение уровня входного напряжения. Если оно слишком низкое — светодиод IND начнет мигать (прошивка автоматически определяет сколько банок у литий-полимерного аккумулятора). И еще — расходы по 4 каналу (тому, где я добавлял свой потенциометр) — завышены, чтобы компенсировать неполный диапазон вращения потенциометра.

Выбор редакции
Традиционно в конце года решаются вопросы, связанные индексацией государственных пособий и выплат. Будет ли индексироваться материнский...

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

Способ изготовления теста для бисквитов с добавлением лимонада относительно новый и довольно удобный. Не смотря на лёгкость...

Крольчатина – очень вкусное и полезное . Она отличается низким содержанием жиров, высокими диетическими качествами, сочетающимися с...
Оладьи – сытный завтрак для всей семьи, который можно приготовить необычно. Рецептов множество, как и начинок, которые добавляются в...
Тандури масала одна из самых распространенных индийских специй. В переводе с индийского масала означает «смесь специй». Тандури масала –...
Манты являются одним из самых популярных блюд у народов Центральной Азии, Пакистана и Турции, и не зря, ведь манты – это не только очень...
Решив взяться за собственную фигуру, мы нередко останавливаем свой выбор на низкокалорийных диетах... При этом нам приходится...
Чакры человека и их раскрытие - вопрос, который волнует магов и эзотериков уже не первое столетие. Узнайте, как можно открыть и почистить...