Реклама ⓘ
Главная » Радиоуправление
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Простое радиоуправление на NRF24L01+PA+LNA. Передатчик

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

В отличии от предыдущей версии, передатчик не имеет дисплея, что позволило значительно увеличить скорость передачи. Кроме этого, количество пропорциональных каналов было уменьшено до двух (джойстик: Aliexpress - 40 р./шт.), а дискретных - увеличено до 5. Из схемы были исключены детали, отвечающие за измерение температуры, а так же датчик влаги.

Вышеперечисленное не только позволило упростить схему и прошивку, но и заменить микроконтроллер приемника на ATmega48. В передатчике используется уже приевшийся ATmega8, в исполнении PDIP28.

Начнем с передатчика. Для управления моделью используется джойстик и 4 кнопки. Индикация осуществляется 4 светодиодами, первые два RGB. Они отвечают за индикацию заряда батарей передатчика и приемника. Третий (желтый или красный) светодиод отображает состояние связи с приемником. Последний - на данный момент просто индикатор питания. Но, впрочем, его можно использовать и для другого - например для индикации передачи данных.

По-хорошему, в передатчике можно было бы применить и более дешевый ATmega48 вместо ATmega8, но на момент проектирования и сборки я еще не определился с функциями и объемом программного кода, а когда устройство было собрано, уже не хотелось ничего менять. Да и лишний запас свободного места в микроконтроллере не бывает лишним.

Питание передатчика осуществляется через китайский модуль DC-DC step-up преобразователя MT3608 (Aliexpress - примерно 35 р./шт. ), от одного li-ion или li-po элемента. Это позволило сократить размеры и массу передатчика до более-менее приемлемых. Для зарядки аккумулятора так-же применяется китайский модуль 03962A (Aliexpress- примерно 40 р./шт. ).

Для передачи данных, как и указано в заголовке статьи, выступают радио модули NRF24L01+PA+LNA (Aliexpress - примерно 100 р./шт. ). При максимальной мощности передачи они способны держать связь на расстоянии до 1.1 км (во всяком случае, так указано в даташите). Для аппаратуры радиоуправления этого хватит с головой. Но Важно не только то, что они достаточно дальнобойные. Еще один немаловажный фактор - в этих модулях возможно двухсторонняя связь.

Схема передатчика представлена ниже:

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

Для питания ВЧ модуля применен линейный стабилизатор LM1117-3.3 в корпусе SOT-223. Изначально предполагалось использовать его и для задания опорного напряжения АЦП - Vref, но в дальнейшем от этого пришлось отказаться. Так, в данном случае, для Vref используется напряжение питания. Но, на всякий случай, для переключения между внутренним опорным напряжением микроконтроллера и Vref на выводе 21 установлена перемычка JP1. Но только одного переключения перемычки мало, необходимо ввести поправки в программе а так же применить резистивный делитель для аналоговых выходов джойстика. В противном случае микроконтроллер не будет реагировать на изменения положения ручки джойстика. Резистор R1 выполняет подтяжку вывода RESET микроконтроллера к питанию, его можно не монтировать. Это несколько увеличит шанс непроизвольного сброса микроконтроллера.

Печатная плата устройства выполнена на одностороннем фольгированном материале. Все отверстия рассчитаны на сверло 1мм. Для перенесения рисунка печатных проводников на фольгированный материал мной был использован метод ЛУТ. Так же, можно изготовить фотошаблон для метода с фоторезистом. Ручная же разводка платы будет не самой легкой.

Топология печатной платы представлена ниже:

Топология печатной платы

Красные проводники - перемычки с лицевой стороны платы. Также, если вы используете для просмотра и печати Proteus, в редакторе они очерчены на слое Top Silk.

Теперь несколько слов о программе. Учитывая прошлый опыт, в данном варианте передатчика можно сконфигурировать кнопки на триггерное срабатывание - один раз нажали, и нагрузка включилась; второй раз нажали - выключилась. Для этого в исходнике необходимо изменить "0" на "1" в следующих строках (естественно, только для той нагрузки, которая вам необходима):

#define SWTRIG 1
#define SW0TRIG 0
#define SW1TRIG 0
#define SW2TRIG 0
#define SW3TRIG 0

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

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

#define CHANNEL 24

*По-умолчанию используется 1 канал.

Следующее. У передатчика, как уже упоминалось, есть светодиод для отображения связи с приемником. Он загорается в том случае, если несколько раз пакет не удалось отправить на принимающий модуль. К слову говоря, именно по-этому мне так приглянулись эти модули - они сами делают практически всю работу, а микроконтроллеру остается только лениво нагружать их данными. По-умолчанию (которое можно изменить в исходнике библиотеки nrf24.cpp), каждый пакет модуль пытается передать до 15 раз, или до того момента, пока не получено подтверждение от другого модуля. Для оценки качества связи и использована эта возможность. Количество неудачных попыток сравнивается с константой, и если попыток больше, то светодиод загорается. Количество неудачных попыток передачи, при котором включится светодиод можно задать в исходнике:

#define N_SIGNAL 10

Кроме этого, в массивах const_bat_tx и const_bat_rx находятся значения пороговых напряжений батарей передатчика и приемника соответственно. По-умолчанию, они рассчитаны исходя из того, что передатчик питается от одного li-ion или li-po элемента, а приемник - от двух. Но, если вы применили другие батареи, или к примеры liFePO4 (литий-феррум-фосфатный), то необходимо записать другие значения. Первые три элемента массива - это значения напряжения, четвертый - коэффициент резистивного делителя, а пятый - опорное напряжение АЦП.

Для прошивки микроконтроллера был использован программатор USBasp, с программой Khazama AVR Programmer. При прошивке все фузы можно оставить в заводском варианте, только выставить внутренний RC-генератор на частоту 8МГц.

Сриншот фуз-битов:

В устройстве использованы smd резисторы типоразмера 0805, другие сопротивления можно взять МЛТ-0.25 или МЛТ-0.125. Номинал резисторов можно менять в небольших пределах. Исключение составляют резисторы R10 и R11. Так как это делитель напряжения, то можно взять любые резисторы 10к - 100к (соответственно одинакового сопротивления). Конденсаторы так-же, как и резисторы: 0805. Электролитический конденсатор, расположенный возле радио модуля, имеет емкость 4,7 - 47 мкФ х 6.3В. Стабилизатор LM1117-3.3 можно заменить на аналогичный (к примеру, AMS1117-3.3), имеющий выходное напряжение 3.3В и корпус SOT-223. Вместо джойстика можно применить обыкновенные переменные резисторы.

Подключение:

Во избежание выгорания важных деталей, передатчика и микроконтроллера в частности, сначала настройте переменным резистором повышающий DC-DC преобразователь, а потом подключайте его к плате. На выходе DC-DC преобразователя должно быть 5 вольт.

Фото устройства и видео его работы:

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
R1, R10, R11 Резистор
10 кОм
3 R1 - 0805, R10 -11 - МЛТ-0.25Поиск в магазине ОтронВ блокнот
R4 - R9 Резистор
330 Ом
6 МЛТ-0.25Поиск в магазине ОтронВ блокнот
R2, R3 Резистор
220 Ом
2 МЛТ-0.25Поиск в магазине ОтронВ блокнот
RV1, RV2, SW Джойстик1 Поиск в магазине ОтронВ блокнот
C1, C2, C4, C5 Конденсатор100 нФ4 0805Поиск в магазине ОтронВ блокнот
C3 Конденсатор4.7 мкФ х 16 В1 Поиск в магазине ОтронВ блокнот
U1 МК AVR 8-бит
ATmega8
1 PDIP28Поиск в магазине ОтронВ блокнот
U2 Линейный регулятор
AMS1117-3.3
1 SOT-223Поиск в магазине ОтронВ блокнот
D3 СветодиодЗеленый1 Поиск в магазине ОтронВ блокнот
D4 СветодиодЖелтый1 Поиск в магазине ОтронВ блокнот
D1, D2 СветодиодRGB2 Поиск в магазине ОтронВ блокнот
L1 Катушка индуктивности10 мкГн1 Поиск в магазине ОтронВ блокнот
Радио модульNRF24L01+PA+LNA1 Поиск в магазине ОтронВ блокнот
SW0 - SW3 Кнопка1 Поиск в магазине ОтронВ блокнот
J2 - J7 РазъемPBS-401 Поиск в магазине ОтронВ блокнот
J1 РазъемPLS-401 Поиск в магазине ОтронВ блокнот
JP1 Перемычка1 2 позицииПоиск в магазине ОтронВ блокнот
DC-DC преобразовательMT36081 На схеме не указанПоиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 1
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (3) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
+1
ggarry #
Как раз тот случай, когда благими намерениями устлана дорога в ад. Ну ЗАЧЕМ менять 8 мегу, которых мешками на каждом углу на экзотику вроде Меги48? Не понимаю, но это единственная проблемма, проект- бомба!
Ответить
0

[Автор]
zeconir #
Так как я заказываю комплектующие из Китая, то для меня принципиальной разницы как-бы и нет. Что одна, что другая ползут почти через весь мир. Но вот стоимость ATmega8 и 48 отличается, собственно почему я и выбрал последнюю.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Квадрокоптер Syma X11
Квадрокоптер Syma X11
Набор для сборки - LED лампа Мультиметр Mastech MS8268
вверх