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

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


Реклама ⓘ

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

Если в прошлой статье был рассмотрен передатчик системы радиоуправления, то удел этой - приемник. В отличии от предыдущей конструкции (ссылка), он базируется на более дешевом микроконтроллере ATmega48 (aliexpress ~ 40р.).К приемнику можно подключить два стандартных сервопривода (выходы для управления серво имеют стандартный сигнал - импульсы выдаются с периодом 20мс, а их длительность составляет 1-2мс), либо сервопривод + регулятор хода и т.д. В моем случае, действует связка регулятор хода + сервопривод SG90 - дешевый но в тоже время вполне надежный механизм. Так же, в данной конструкции приемника, дискретные каналы имеют нагрузочную способность до 100мА. Это достигается путем использования транзисторных ключей (в прошлом варианте транзисторные ключи предполагалось монтировать вне основной платы), что повело за собой увеличение размеров печатной платы.

Принципиальная схема:

Принципиальная схема приёмника

Для питания микроконтроллера, рулевых машинок и нагрузки дискретных каналов применяется линейный стабилизатор 7805. Включенный последовательно с ним LM1117-3.3 питает радио модуль, ток потребления которого может достигать 100 мА в режиме передачи. Для управления нагрузкой дискретных каналов применяются биполярные n-p-n транзисторы Q1 - Q5. Нагрузочная способность этих ключей позволяет подключать нагрузку до 100 мА (заявлено в даташите на транзисторы), Так же на принципиальной схеме присутствует кварцевый резонатор с обвесом, но реально он в данный момент не используется. Место под него на плате оставлено как задел на будущее, и его можно не распаивать.

Печатная плата приемника выполнена на одностороннем фольгированном материале (текстолит, гетинакс). Но в силу сложности разводки, пришлось использовать некоторое количество перемычек. В процессе изготовления печатной платы был использован метод ЛУТ (в качестве носителя - глянцевая журнальная бумага), с последующим докрашиванием маркером и корректировкой иглой. Отверстия на плате рассчитаны на сверло диаметром <= 1мм . Большим сверлом будут срезаться контактные площадки.

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

Топология печатной платы приёмника

Внешний вид.

Модель:

Готовое изделие:

Модуль NRF24L01 подключается к точкам на плате. Они подписаны, и остается только соединить их с соответствующими выводами на модуле. Так же, в данном случае модуль находится за пределами печатной платы, а значит необходимо на его ножки, куда подводится питание, припаять конденсатор емкостью 47мкФ и 0.1мкФ. Второй - неполярный. Это делается для предотвращения самопроизвольного сброса и зависания модуля из-за просадок напряжения и помех по питанию во время активной работы.

Программа для микроконтроллера сложностью не отличается. Фактически, все вычисления производит микроконтроллер в передатчике. Приемник же просто отправляет "голые" данные (в данном случае - информацию с АЦП). Но, несмотря на это, в приемнике есть что настроить.

Первое - это канал, на котором данный экземпляр приемника будет работать. По-умолчанию, установлен первый канал. Но, если вам требуется запускать несколько моделей одновременно в одном месте, то требуется задать различные каналы как приемнику, так и передатчику.

#define CHANNEL 1

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

#define START_POS0 1500
#define START_POS1 1500

Управление сервоприводами выполнено на таймере T1, так как он имеет для этого все необходимые регистры. Используя режим PWM, phase and frequency correct, получаем ШИМ, период и длительность импульсов можно корректировать с помощью регистров ICR1 и OCR1A, OCR1B.

Рассмотрим на примере одного из каналов:

ICR1 = 312;

...

unsigned long int a;
	
a = ICR1;
a = a * (980 + rx_data[0] * 4);
a = a / 20000;
OCR1A = a;

312 - это период следования импульсов. Зависит от предделителя таймера и желаемого периода: 8000000/256/312 = 0.01 сек (0.02 сек делим 2) , так как у нас режим phase correct. Далее, присваиваем переменной a это значение, с последующим умножением на желаемую длительность, с миллисекундах (rx_data[x] - байтовый массив, максимальное значение элемента массива - 255; для получения значений в пределах 1000 - 2000 нужно умножить rx_data[x] на 4 (получим 1020), и потом добавить еще 980 (получим 2000). Потом все это дело делим на 20000 (период, в миллисекундах), и получаем необходимое значение OCR1x.

Как уже упоминалось выше, на передатчик отсылается только значение АЦП. Двухбайтная переменная, содержащая результат измерения 10-битного АЦП разбивается байты и отсылается посредством массива data_tx[x]. Более ни для чего этот массив не используется.

Кроме этого, в приемнике имеется возможность включить инверсию отдельных или всех дискретных каналов. Для этого необходимо изменить элементы данного массива:

const unsigned char type_out[5] = {NINV, NINV, NINV, NINV, NINV};

Если вам не требуется инверсия на канале, элемент должен быть "NINV", в противном случае пропишите "INV".

Программа писалась в среде AtmelStudio 7.

Для прошивки микроконтроллера использовался программатор USBasp и программа Khazama AVR Programmer. Биты настройки микроконтроллера можно оставить заводские, но необходимо выбрать тактовый генератор - Int. RC 8MHz и отключить деление тактовой частоты на 8.

Возможная замена деталей. В устройстве можно применить транзисторы BC239, BC547, КТ203, КТ3102 и другие, структуры n-p-n и током не менее 100мА. Резисторы R1 и R2 желательно брать высокоточные, но если таковых нет, подойдут и 5%. Остальные резисторы можно брать с сопротивлением +/- 10-20%. Только резистор R9 не стоит брать меньшего номинала, так как это чревато выходом из строя светодиода. Стабилизатор LM1117-3.3 можно заменить на любой аналогичный, с напряжением стабилизации 3.3В и корпусом SOT-223. LM7805 так же можно заменить на аналогичный, с напряжением стабилизации 5 вольт и током не менее 1А. К слову, при использовании мощных нагрузок (100 мА) на дискретных каналах, установите стабилизатор 7805 на теплоотвод. В противном случае это может закончиться плачевно для всего устройства в целом.

Микроконтроллер, к сожалению, заменить нельзя.

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

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

Звездочка перед надписью LOAD обозначает сигнальный провод. Соответственно, подключать сервомашинку или регулятор хода нужно тка: (*) -> SIGNAL - VCC - GND (оранжевый - красный - коричневый).

Спасибо за внимание!

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

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U1 МК AVR 8-бит
ATmega48
1 TQFP-32Поиск в магазине ОтронВ блокнот
U2 Линейный регулятор
AMS1117-3.3
1 SOT-223Поиск в магазине ОтронВ блокнот
U3 Линейный регулятор
LM7805
1 TO-220Поиск в магазине ОтронВ блокнот
Радио модульNRF24L01+PA+LNA1 Поиск в магазине ОтронВ блокнот
Q1 - Q5 Биполярный транзистор
BC547
5 TO-92Поиск в магазине ОтронВ блокнот
D1 СветодиодЗеленый, 5мм1 Поиск в магазине ОтронВ блокнот
X1 Кварцевый резонатор16MHz1 Не обязательноПоиск в магазине ОтронВ блокнот
R1 - R3 Резистор
10 кОм
3 МЛТ-0,25Поиск в магазине ОтронВ блокнот
R4 - R8 Резистор4,7 кОм5 0805Поиск в магазине ОтронВ блокнот
R9 Резистор
220 Ом
1 Зависит от типа диодаПоиск в магазине ОтронВ блокнот
Конденсатор47 мкФ х 6.3В1 Монтируется на радио модульПоиск в магазине ОтронВ блокнот
Конденсатор0.1 мкФ1 Монтируется на радио модульПоиск в магазине ОтронВ блокнот
C1 - C5 Конденсатор0.1 мкФ5 0805Поиск в магазине ОтронВ блокнот
C6, C7 Конденсатор22 пФ2 Не обязательноПоиск в магазине ОтронВ блокнот
L1 Катушка индуктивности10 мкГн1 Поиск в магазине ОтронВ блокнот
JP1 Перемычка1 Поиск в магазине ОтронВ блокнот
РазъемPLS-401 Все разъемы на платеПоиск в магазине ОтронВ блокнот
Добавить все

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

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

Теги:

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

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

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

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

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

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
GeKo #
Как ведут себя сервоприводы при потере связи?
Ответить
0

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

Квадрокоптер Syma X11
Квадрокоптер Syma X11
Программатор Pickit3 Тестер ESR, полупроводников, резисторов, индуктивностей
вверх