Главная » Радиоуправление
Призовой фонд
на ноябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Тестер компонентов LCR-T4
Паяльник
4. 200 руб.
От пользователей

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


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

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

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

Теги:

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

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

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

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

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

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Квадрокоптер Syma X11
Квадрокоптер Syma X11
DC-DC регулируемый преобразователь 1.5-37В 2А с индикатором UNI-T UT-61A
вверх