NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m

Описание nrf24le1

Существует 3 варианта корпуса чипа: QFN24 (4×4 mm), QFN32 (5×5 mm), QFN48 (7×7 mm). И периферия I2C, UART, SPI у каждого варианта находятся на разных выводах (см с 131 страницы даташита). Здесь я рассмотрю вариант QFN32 и технические характеристики будут относится к нему.

Радиопередающая часть полностью аналогична «безмозглому» варианту nRF24L01 :2.4 Ггц,125 каналов. Поддерживаемые скорости 250kbps, 1Mbps и 2Mbps и т.д.

Встроенный же 8051-совместимый микроконтроллер имеет следующие параметры:

Nrf24l01 модуль на алиэкспресс — купить онлайн по выгодной цене

Перед покупкой сравните цены на nrf24l01 модуль, прочитайте реальные отзывы покупателей, ознакомьтесь с техническими характеристиками.

Закажите nrf24l01 модуль онлайн с доставкой по России: товары с пометкой Plus доступны с ускоренной доставкой и улучшенными условиями возврата.

На Алиэкспресс nrf24l01 модуль всегда в наличии в большом ассортименте: на площадке представлены как надежные мировые бренды, так и перспективные молодые.

Nrf24l01, радиомодуль 2.4ггц, скорость передачи до 2 мегабит, китай | купить в розницу и оптом

Беспроводной трансивер (приемопередатчик) для Arduino проектов работающий на частоте 2.4ГГц.

Технические характеристики:
– Частота передачи/приема: 2.4ГГц;
– Расстояние передачи/приема: до 100м, в помещении – до 30 м;
– Скорость передачи: 250kbps, 1Mbps и 2Mbps;
– Модуляция: GFSK;
– Чувствительность приемника: -82 dBm;
– Максимальная выходная мощность: 0 dBm;
– Коэффициент усиления антенны: 2dBm;
– Количество каналов: 126;
– Интерфейс: SPI;
– Напряжение питания: 3.3В.

Смотрите про коптеры:  Пилот дронов (ОБЛА) - зарплаты, обучение, вакансии | Equity

Nrf24l01 pa lna sma antenna wireless transceiver communication module 2.4g 1000m

Делаем умный дом гараж.

После покупки гаража возникла проблема подсветки ворот. Немного поясню: гараж находится в многоэтажном гаражном кооперативе, внутри которого длинные коридоры; освещение в коридорах есть, но оно чисто формальное. Плюс ко всему, днём для экономии электроэнергии часть ламп в коридорах выключают (обычно через одну). То есть вроде коридор освещён, а в потёмках найти с первого разу замочную скважину на темных воротах не всегда удаётся.
Кому интересно, как я ликвидировал данную проблему, прошу под кат (много текста).
Кстати, это мой сотый обзор на данном сайте.

Сначала очень долго пытался выработать идею.
Выбирал варианты из следующего списка (некоторые варианты частично опробовал):
1) Использовать фонарик
2) Использовать розетку с радиоканалом
3) Использовать RFID карточки
4) Попытаться построить что-нибудь с радиоканалом на Arduino
5) Комбинация вышеперечисленных вариантов

Немного пробегусь по вариантам
От использования фонарика я отказался. Большой таскать не хотелось, а маленький много не освещал. Если маленький вешать на ключи, то со временем он становиться потрёпанным. Плюс ко всему, если таскать на ключах, то его во время открытия гаража приходиться отстёгивать, иначе затея с фонариком теряет смысл. Короче, фонарик у меня не прижился. Хотя это универсальный и достаточно дешёвый способ.
Второй идеей было использовать розетку с радиоканалом. В принципе мысль нормальная, только таскать с собой пульт не хотелось. Я почему-то не стал рассматривать этот вариант шире, хотя думаю, что зря. У меня дома есть подобный пульт и мне он показался большим. Хотя думаю, что если бы поискал на Китайских сайтах, то возможно нашёл бы пульт с размером, как от автомобильной сигнализации. Ещё меня останавливало то, что во время подъезда машины к гаражу мне пришлось бы доставать пульт, включать свет и, что самое главное, не забыть его выключить. То есть я хотел полной автоматизации – моя машина подъехала, свет включился, машину загнал в гараж, свет выключился. Сразу предвижу вопрос, почему не освещать фарами ворота? Дело в том, что я обычно проезжаю дальше своего гаража по коридору, не глуша двигатель иду открывать ворота и потом задним ходом заезжаю в гараж.
По поводу использования RFID технологии отказался сразу. Не хотел, чтобы мне изуродовали какое-либо устройство, которое висит снаружи. Плюс ко всему, мне пришлось бы в темноте искать устройство, прикладывать к нему чип (карточку или метку), а потом открывать гараж. В этом плане радиоуправляемый пульт лучше подходит, так как нет внешних электронных компонентов у гаража.
С идеей автоматизации я ходил долго, все обдумывал. Осталось выбрать компоненты и начать воплощать в жизнь.
Начал смотреть в интернете, на чем можно реализовать радиоканал. Сначала мне попались радиомодули с частотой 433.9 МГц. У них приёмник и передатчик выполнены раздельно. Модули небольшие, относительно дешёвые (около 2,5$), но отказался я от них по следующим причинам:
— для организации более-менее нормального протокола мне на каждую сторону нужен и передатчик и приёмник.
— нормальной библиотеки под Arduino я не нашёл. Есть VirtualWire, но там, чтобы организовать полностью структуру сетевого протокола, нужно очень много кодить.
Потом мне попались радиомодули на чипе nRF24L01 (есть ещё версия без плюса в конце, но они хуже по параметрам). Все, что на прошлых модулях было минусом, в этих модулях было плюсом. Приёмник и передатчик был в одном корпусе, есть много разных библиотек с нормально реализованным сетевым протоколом, цена меньше доллара за штуку. В итоге, дальше искать не стал и заказал лот из 4 штук.
Модули приехали и провалялись несколько месяцев в столе на работе (работы было много и до реализации своего проекта все никак руки не доходили).
Настал момент, когда я собрал на двух макетках (Arduino Uno и Arduino mini) клиентскую и серверную часть.
Клиентская часть
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
Серверную часть отдельно сфотографировать не успел (дальше будут фотографии).
Залил в макетки программы сервера и клиента из библиотеки Mirf и стал смотреть, что приходит в терминал. Это был первый облом :-). В терминале было пусто. Что я только ни делал. Перепроверил все подключения, менял местами сервер и клиент. Потом плюнул на все и упростил клиентскую и серверную часть до минимальной программы (заодно изучил работу библиотеки Mirf). Как ни странно, но все равно не заработало. Точнее работало, только если в Arduino mini была залита клиентская часть, и она после Reset-a отправляла только один пакет. Стал шерстить интернет и на одном из форумов увидел совет — повесить по питанию 3,3 В, которые идут на питание модуля nRF24L01 , конденсатор ёмкостью несколько десятков микрофарад. Немного поясню: так как nRF24L01 питается от 3,3 В, а на Arduino mini такого напряжения нет, то пришлось использовать линейный стабилизатор LM1117-3,3. В связи с тем, что я напряжение по 5В считал нормальным, то и конденсаторы на выходе LM1117-3,3 вешать не стал.
После того как поставил конденсатор по питанию 3,3В, сразу все заработало.
Быстренько написал код для двух модулей и пошёл в гараж на испытания.
Первые испытания прошли не очень удачно. Я вывел информацию приёма пакета на один светодиод. В итоге, больше половины пакетов терялось (или я просто не видел, как приходит пакет). Пришлось модернизировать программу, делать задержки, добавил ещё один светодиод, который отвечает за выходной канал. Новые испытания в гараже показали, что хоть пакеты и теряются, выходной канал все равно срабатывает через раз.
Шеф, всё пропало, все пропало! Гипс снимают, клиент уезжает… Если серьёзно, то на тот момент я попал в тупик. Купил модули, собрал макет, осталось только все разместить в приглядном виде, а тут такой облом. На работе начали советовать вместо штатной антенны на модуле припаять медный кусок провода длиной 31 мм (четверть длины волны), но до этого не дошло. Поначалу я забросил проект из-за большого количества дел на работе перед отпуском, а потом, просматривая электронные компоненты у проверенного продавца на eBay, я наткнулся на модуль nRF24L01 с усилителем и нормальной антенной. Радиус действия, в описании у данного модуля, был в 10 раз больше, чем у обычного (1000 м). Самое главное, цоколевка разъёма была такая же, так что переделывать ничего не пришлось. Заказал.
Пришло все в индивидуальных антистатических пакетах. В заказе было много чего другого :-).
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
Модуль поближе
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
Здесь видно, что некоторые элементы криво припаяны, но на работу это не влияет. Как ни странно, я заказывал два модуля, и на обоих подобный брак.
Модуль вместе с антенной
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
Быстро прицепив модуль к старой макетке, пошёл в гараж. Приём пакетов уверенный, даже слишком. Пробивает бетонную и кирпичную стены и железные ворота.
Пока ждал модуль, решил разработать полностью схему и вытравить плату. Не знаю почему, но я был уверен, что модуль с усилением будет работать, как надо.
Схема довольно простая:
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
Разработал плату
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
Если честно, то схема у меня была в голове, а плату я разрабатывал с учётом всех особенностей выводов Arduino. Так в данном случае лучше оптимизировать соединения. А уж потом когда плата разведена, я рисовал схему.
Собранная плата:
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
Изначально блок питания на 12 В должен был прикручен по другому, но у меня просто под рукой не было нужного куска текстолита. Использовал то, что было, а блок питания развернул.
На фотографии видно, что я для тестов использовал модуль без усиления.

Собирать гаражную часть решил в пластиковом щитке. Заодно я там решил поместить реле напряжения и автоматы (они мне нужны были для других нужд).
Вот так это выглядит в сборе
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m

В качестве лампы я решил использовать светодиод на 10Вт. Разместить светодиод решил в корпусе от светильника (у нас такие корпуса используются в коридоре в гаражном кооперативе)
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
Внутренности (патрон и крепление) у светильника я демонтировал, а на освободившееся место прикрутил радиатор от старого процессора Pentium II Slot1. На данный радиатор поместил светодиод, предварительно намазав его термопастой.
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
Потом собрал светильник и повесил перед гаражом
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m

Серверную часть, которая должна находится в машине, я на тот момент переделывать не стал. Она у меня была собрана из макетки, на которую припаивались разъем для питания, линейный стабилизатор LM1117-3,3, конденсатор и колодки. В колодки вставлялись Arduino и модуль nRF24L01 .
На столе все подключил (светодиоды, кнопку, провода питания и светильник) и проверил. Дома все работало замечательно.
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
В гараже прикрепил щиток
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
Провёл к нему провода в кабелеканалах и включил в сеть.
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m

Попробовал подавать питание на серверную часть (та, что должна стоять в машине), светильник перед гаражом загорался. На тот момент я уже обдумывал, как мне переделать серверную часть, чтобы она была поменьше, и установить её в машине. Как-то, занимаясь делами в гараже, случайно услышал, что щёлкнуло реле. Вышел за ворота — свет горит, на щитке зелёный светодиод, который дублирует включение реле. При этом у меня серверная часть была отключена. Пока обдумывал ситуацию, свет погас. Через некоторое время я увидел, как вспыхнул красный светодиод (показывает присутствие сигнала), а потом зажегся зелёный светодиод вместе с щелчком реле, которое включило свет в коридоре. Явно происходило что-то странное в работе моего устройства (ещё один облом). Я сначала подумал, что помеха по питанию включает релюшку. Дело было под вечер, поэтому я отключил свой щиток от сети и пошёл домой обдумывать сложившеюся ситуацию. Дома открыв схему устройства и код программы, ещё раз обдумал все и пришёл к выводу, что аппаратно все сделано правильно и никакая помеха не может включить сразу два канала одновременно на Arduino (у меня сработало реле на выходе D3 и светодиод на выходе D10).
Чтобы представлять логику программы попытаюсь описать её как можно проще.

Клиентская часть в гараже постоянно излучает в эфир некое число (пусть будет Х) и ждёт определённое время ответ. Серверная часть в машине находится в спящем режиме (работает по прерыванию). Как только она получает сигнал, она проверяет, совпадает ли присланное число с Х. Если совпадает, то серверная часть отсылает некое число (пусть будет Y) и засыпает.
Клиентская часть, получив ответ, проверяет правильность числа Y и, если верификация пройдена, то включается свет и зажигается дублирующий зелёный светодиод на 10 секунд. Красный светодиод (признак присутствия правильного сигнала) загорается на секунду.
Если в эти 10 секунд происходит ещё один обмен пакетами, то эти 10 секунд начинают отсчитываться от последнего обмена пакетами.
Кнопка нужна, чтобы принудительно включить свет перед гаражом на 30 секунд. Этого времени достаточно, чтобы закрыть ворота на ключ.

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

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

Вот в принципе и все…
Чуть не забыл написать, как я внедрил серверную часть в машину.
Тут все просто. Моим вторым обзором на MySku в далёком 2023 году был обзор преобразователя на 5В.
Этот преобразователь я использовал в прошлой машине для запитывания регистратора и сейчас он у меня стоит в новой машине и также питает регистратор.
Подключал я его по такой схеме:
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
Здесь блок DRL подключает фары через 5 секунд после пуска двигателя.
Так вот параллельно регистратору я подключил серверную часть. Токи потребления там небольшие (20-30 мА). При токе потребления регистратора 600-700мА, токи в 30 мА выглядят мизерными. При глушении двигателя питание с блока DRL снимается и, естественно, преобразователь обесточивается.

Чтобы уменьшить размеры серверной части, пришлось и здесь сделать плату, в которую жёстко впаял Arduino. Это позволило уменьшить все устройство по высоте примерно на 1 см (величина колодки).
Мне как раз перед переделкой пришла специальная бумага для ЛУТ, вот её как раз решил и испытать.

как я делал плату серверной части

Специально этот кусок обзора спрятал, так как технология ЛУТ описывалась неоднократно (даже на этом ресурсе).

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

Короче говоря уговорил свою жабу и купил за 1,75$ 10 листов формата А4

специальной бумаги

.

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

Вот результаты перевода с бумаги на плату

NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m

Немного увеличения

NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m

Здесь видны контуры платы, да и на самой бумаге тонера не осталось. Раньше, когда я использовал бумагу из журналов, тонер как бы «расслаивался» пополам. То есть когда снимал бумагу, то на ней можно было заметить рисунок платы (на плате он тоже оставался).

Вот результат травления в хлорном железе

NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m

Когда мыл готовую плату от остатков хлорного железа, то тонер с контура платы слез в некоторых местах, но контур платы остался (на фотографии его не видно). Раньше у меня хлорное железо практически в 100% подобные линии съедало.

Лужёная плата

NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m

Впервые попробовал паять SMD элементы с помощью паяльной пасты. ХМ, лучше бы обычным паяльником запаял.

NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m

Здесь я плату ещё не мыл, так как тестировал её с новыми конденсаторами.

Готовая плата серверной части

NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m

Кварц на Arduino всю малину испортил. Пришлось паять колодку для nRF24L01 . Если бы кварц по высоте был меньше, то nRF24L01 впаял бы в плату, тем самым уменьшив высоту ещё на 3-4мм.

Для сравнения с прошлой платой (мой первый макет серверной части)

NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m
NRF24L01 PA LNA SMA Antenna Wireless Transceiver communication module 2.4G 1000m

Размер уменьшился.

Дальше я поместил серверную часть в термоусадку и инсталлировал в машину.

Пора заканчивать обзор.

Теперь небольшие размышления/выводы.
Частично я реализовал то, что хотел. Почему частично? Да потому что остаётся открытым вопрос, как включать свет, когда приходишь в гараж рано утром. Я думал сделать пульт на основе чипа Atmega и модуля nRF24L01 , но все упирается в питание устройства и корпус. Сейчас пока обдумываю разные варианты.

Какие подручные железки можно ещё переделать под программирование nrf24le1 ?


Подойдет любой аналогичный мини компьютеру Raspberry PI, например Cubieboard.

Можно реализовать программатор на Arduino. Возможно займусь таким вариантом.

Любой микроконтроллер с аппаратной поддержкой USB, например STM-ки.

Исходные коды и пример:Программатор на Raspberry PIПрограмматор на USBasp (обновлено 5.02.14)SDKled_delayДаташит

Может что-то упустил и остались вопросы — пишите в комментариях.

Передача данных между arduino rf и raspberry pi

Далее пусть в качестве передатчика снова выступает микроконтроллер Arduino Nano RF, а в качестве приемника – Raspberry Pi 4 с модулем NRF24L01, подключённым по следующей схеме:

Для настройки Raspberry в качестве приемника, я выполнила следующие шаги:

Для удаленного подключения к Raspberry, определяю IP адрес Raspberry с помощью программы Aadvanced Ip scanner (альтернативный способ – через список подключенных устройств на странице роутера).

Передача данных между платами arduino rf

Обе платы Arduino RF подключаются к портам одного ноутбука. Для работы с платами я использую среду Arduino Studio, в которой выполняю следующие настройки:

Tools -> Boards-> Arduino AVR Boards->Arduino Nano

Tools -> Processor-> ATmega328P (Old Bootloader)

Tools -> Managie Libraries-> “RF24” -> установка последней версии библиотеки RF24 by TMRh20 ( у меня версия 1.4.1). Также понадобятся библиотеки SPI.h и printf.h

работа с разными портами в Arduino Studio

Если у вас есть проблема одновременного открытия двух окон SerialMonitor, в которые выводится информация от двух Arduino, подключенных к разным портам, нужно сначала запустить ArduinoStuio в обычном режиме и отобразить информацию с одного порта, а потом запустить среду ArduinoStuio в режиме “от администратора”  и отобразить информацию с другого порта.

Для проверки плат использовался пример, поставляемый с библиотекой RF24, который нужно загрузить на обе платы Arduino.

Files-> Examples-> GettingStarted

Пишем первые программы на nrf24le1

Для написания программы я воспользовался бесплатным кросс платформенным компилятором SDCC

nRF24LE1 имеет

, где расписаны основные функции для работы с микроконтроллером.Этот

проверен и поправлен мною. Он собран из нескольких источников.

В данный момент доделываю пример для работы с nRF24L01-USB. Уже реализовано чтение датчика DHT22 и управление нагрузками по радиоканалу. В будущем планирую сделать примерный аналог библиотеки Arduino RF24 -осталось доделать пару функций.В целом, после программирования на микроконтроллерах AVR программирование nRF24LE1 мне показался не чуть не сложным.

UPD: Забыл упомянуть, что компилятор создает hex файл, а программаторам нужен бинарный. Для преобразования файла можно воспользоваться утилитой hex2bin. Можно прописать команду hex2bin -p 00 main.ihx в make файл.

Подключение nrf24l01 к arduino

Необходимые детали:► Arduino UNO R3 x 2 шт.► Провод DuPont, 2,54 мм, 20 см x 2 шт.► Кабель USB 2.0 A-B x 2 шт.► Радиомодуль nRF24L01 x 2 шт.► Тактовая кнопка x 1 шт.► Светодиод 5 мм x 1 шт.► Резистор 0.125 Вт, 10 кОм — x 1 шт. (для кнопки)► Резистор 0.125 Вт, 270 Ом — x 1 шт.  (для светодиода)

Подключение:Для подключения nRF24L01 к Arduino используется интерфейс SPI и так как вывода этого интерфейса на различных платах отличается, приведу краткую таблицу подключения для различных плат.

На модуле nRF24L01 предусмотрен один разъем 4 х 2 с шагом контактов 2.54 мм, назначение каждого можно посмотреть на фотографии ниже.

Модуль работает от напряжения питания 3.3В и потребляет ток около 20мА. На некоторых плат Arduino нет встроенного стабилизатора напряжения, необходимо использовать внешний, например LM1117.

Внимание! Необходимо помнить, что модуль работает от 3.3 В и в нем защиты от переполюсовки, если не соблюдать два этих правила, можно сжечь модуль!

Теперь приступим к сборке, подключаем вывода напрямую (MISO-12, MOSI-11, SCK-13), выводы CE (ChipEnable) и CSN (ChipSelectNot) подключаем к D10 и D9, можно использовать и другие цифровые вывода, главное подправить программу. Далее необходимо подключить кнопку, одну ножку через резистор 10Ком, подключаем к GND (Arduino) и этот же контакт к выводу 7.

Внимание! Для стабильной работы модуля NRF24L01 необходимо припаять конденсатор на 10 мкФ (изначально тестировал без конденсаторов, модули лежали друг от друга на расстоянии 10 см и связи не было). Так-же, обязательно заземлите вывод 7, с помощью резистор на 10 кОм, а то будет ложное срабатывание кнопки. 

Программирование nrf24le1 через raspberry pi

Прошить nRF24LE1 возможно через «родной» программатор, который относительно дорог — около $30 на Ebay. Цена мне конечно не понравилась и на просторах интернета был найден вариант программатора на основе Raspberry PI

Программирование nrf24le1 через usbasp

После изучения варианта прошивки через Raspberry PI, был разработан свой вариант более простой, который может реализовать любой пользователь, программирующий микроконтроллеры AVR и имеющий на вооружении программатор USBasp. Про данный программатор ранее я

, реализовав на нём несколько разнообразных устройств в том числе nRF24L01-USB.

Для данной идеи был использован тот же исходный код программатора под Raspberry PI. А USBasp перепрограммирован в USB-SPI переходник используя библиотеку V-USB.

Программатор на базе USBasp относительно медленный -вся прошивка в 16кб. «заливается» за 12 секунд, но это компенсируется ценой — все же цена этого программатора $3, а не $30.


Подключение nRF24LE1 к USBasp в следущем порядке, по нумерации десяти контактного разъема:

image

Кстати, неясно толерантны ли выводы nRF24LE1 к 5 Вольтам и нужны ли делители на резисторах для согласования уровней между nRF24LE1 и USBasp. В итоге я не использовал делители и никаких негативных последствий не получил — Вы можете так же не устанавливать делители, но на свой страх и риск. Например у nRF24L01 выводы толеранты и допускают подключение 5 Вольтовым микроконтроллерам.

Все действия по программированию аналогичны программированию через Raspberry PI.

Сравнение со связкой arduino leonardo модуль nrf24l01

Данный краткий обзор был бы совсем кратким, не выполни я пример gettingstarted на стандартной связке Arduino NRFL01 и Raspberry NRFL01

Схема подключения NRFL01 к Arduino Nano изображена в посте выше. У меня не было под рукой Arduino Nano, но была Arduino Leonardo, у которой SPI пины вынесены сбоку платы.

Результат:

В конце поста, также покажу результат передачи информации о расстоянии до объекта, полученной с помощью имеющегося в наличии ультразвукового датчика, подключенного по схеме ( как подключается NRF24L01 модуль показано выше):

код Arduino US.ino

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

Технические параметры

На модуле расположена основная микросхема nRF24L01 , рядом установлен кварцевый резонатор, антенна и электрическая обвязка, программное обеспечение микросхемы nRF зашивают на производстве. Связь осуществляется в двунаправленном режиме по интерфейсе SPI (Serial Peripheral Interface), для этого предусмотрен 8 контактный разъем (шаг 2.54 мм).

Заключение

К сожалению мне сходу не удалось найти в интернете подробных гайдов по работе с Arduino RF, поэтому пришлось пару недель повозиться. Знакомство с библиотекой Mirf как-то сразу не задалось. После многих попыток разобраться в теме, получился вот такой вот гайд.

Оказалось, что работать с Arduino RF интересно и не так уж и трудно. Надеюсь что мой опыт пригодится новичкам и желающим построить какой-либо проект на базе Arduino RF. Также хочу выразить благодарность авторам постов про NRF24L01, которых набралось уже не мало 🙂

Оцените статью
Радиокоптер.ру
Добавить комментарий