Бюджетная радиосвязь для микроконтроллеров AVR

AVR
Здравствуйте. Задался я недавно целью организовать радиосвязь между контроллерами AVR, бюджет был очень ограничен и поэтому в качестве контроллеров для теста были выбраны два Atmega8 давно валявшиеся без дела. Когда же начался поиск подопытного трансивера я был неприятно удивлен ценами на готовые радио модули, короче на те деньги что я рассчитывал в Украине можно было купить только пару «плата приемника — плата передатчика» на 433 мгц (такая китайская там еще катушки проволочные на плате). Но хотелось то полноценный двусторонний линк и поэтому я начал искать в инете подходящий вариант. Им оказался радиомодуль на 2,4 Ггц. NRF24L01 привлек конечно ценой.

В базовой версии без усилителя и с антенной выполненной на печатной плате. На момент написания статьи пару таких модулей на ebay можно было купить по $3.23

Есть еще версия подороже с усилителем и мощностью в 10dBm и заявленной дальностью в 260 метров.

Но сие чудо дороже и одна шт. уже стоит $13.89
Я остановился на первом варианте. И так что же у него внутри пройдемся бегло по характеристикам.

Тарансивер выполнен в виде единого чипа.
Режим передачи ShockBurst™ (ефективный быстрый режим передачи данных).
Aвтоматический ACK (подтверждение получения пакета) и настройки повторной передачи пакета если до кого то в сети не дошло.
Автоматический контроль CRC.
RF передача по 125 возможным каналам.
Интерфейс (SPI) со скоростью 0-8 Mbps.
Быстрое переключение возможен режим frequency hopping
5V tolerant входы.
Режимы Standby Modes и Power Down Mode.
Вывод прерывания по событиям (можно настраивать в спец. регистре)

Ну и табличка из даташита на случай если что пропустил

Еще в процессе копания в инфе на чип была мной была обнаружена интересная фишка
Приемник чипа NRF24L01 одновременно может принимать данные по шести каналам. То есть принимать данные от шести разных передатчиков.

Весь фокус в шести каналах которые несут свой уникальный 40 битный адрес, тоесть находясь в одном частотном канале приемник принимает пакеты автоматически распознает адрес и складывает данные в буфер адресуемого канала. У каждого канал есть свои настройки размера буфера, наличия подтверждения ACK итд… В общем я еще сам не все постиг.

Ладно вернемся к Atmega8. Разработку Устройства начал с обзора существующих решений. И нашел проект заграничного колеги Davide Gironi
вобщем его проект соответствовал моим задумкам. Поэтому я взял за основу его схему и код за что ему спасибо и уважуха. Слегка модифицировав схему вышло следующее.

Схема.

Плата.


Ну и готовый девайс.



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


Проверял на дальность получились следующие результаты. В помещении офиса связь держится через три стены пеноблоков, в жилом доме из красного кирпича пробивается одна несущая кирпичная стена и связь есть на 2 метра от нее. На открытом воздухе когда передатчик размещен вплотную к окну на четвертом этаже, связь есть в прямой видимости на 85 метрах через перекресток с троллейбусными проводами и фонарями уличного освещения.

Вообщем радиомодуль мне понравился, заказал себе еще два буду сеть из датчиков температуры собирать.

Полезные ссылки:
Davide Gironi nRF24L01 atmega library and development board
Everything You Need to Know about the nRF24L01
AVRLib/nRF24L01

Архив с кодом, проект в Eagle можно скачать на официальной странице проекта

Комментарии (58)

RSS свернуть / развернуть
0
Спасибо за эту сумму нордиков аж два получается с доставкой из китая $3.23 = 25,84грн а космодром покупку меньше 100грн не шлет, а там еще 30грн за курьера по городу Харькову и 15грн «Новая Почта» ко мне в город. А так $3.23 и через три недели конверт в почтовом ящике забрать.
0
да не в том дело. просто не все так уже ужасно и безпросветно, как обрисовано в Вашей статье. альтернативы есть.
0
А кто говорит что беспросветно. Просто покупки у Китайцев меня больше радуют Просто выбираешь то что надо и получаешь через месяц, а не копишь список деталей целый месяц чтоб превысить лимит в 100грн, а потом еще кормишь всех кто просто косвенно причастен к доставке. Китайцам не приходится названивать и напоминать чтоб дали номер декларации. У Китайцев никогда не было такого: что сначала у них есть все детали из списка, а потом приходит посылка а в ней пакетик с денюжками за детали которых не оказалось при упаковке заказа. Просто так я берегу свои нервы.
+3
в этом я Вас очень понимаю. буквально на днях забирал посылку от РКС-компоненты: вскрываю и вижу, что вместо 3 метров шлейфа всего 1. после того, как спросил что это, они конечно побожились, что отправят при следующем заказе или могут выслать недостающие 2 метра, но зачем оно мне надо, оплачивать опять доставку из-за копеечной покупки… сказал, что при следующем заказе согласен получить недостающий кусок. но это еще хорошо, что оно мне не одним куском надо было…
0
Простите за оффтоп, а как на ебее узнать что в цену товара включена доставка? А то я как-то на алибабе искал микросхему, нашел, но за доставку с меня запросили отдельно.
0
Просто: Если доставка есть и написано, что она бесплатная (надо выбрать страну в «доставка и оплата»), то она входит в цену. Если доставка есть и она не бесплатна, то её цена указывается. Если доставки нет, то можно постараться отдельно договориться, доставка обычно не бесплатная.
0
Эх, а я свои с ебушки уже второй месяц жду (( Заказал, ещё один комплект.
0
  • avatar
  • ZiB
  • 26 ноября 2012, 14:19
дочитал статью до конца… тоже хочу обставить себя датчиками температуры )))
0
У меня с ebay пока слава богу все приходило. Мне даже пару раз с почты звонили типа «Пришла посылка из Китая заберите пожалуйста» у нас тут в глуши редко посылки из за бугра на почте появляются то они стремаются за них и названивают хотя в стране бывает и такое cit.ua/article/19486/. А про датчики температуры, так там проблем нет примеров много, правда у ATmega8 уже пол флеша занято нордиком, но на lm35 аналоговом можно замутить.
0
Спасибо за полезную статью. Прямо мысли читаете! я только собрался делать подобное устройство. У нас в городе такие модули по 150р с доставкой. Взял себе 3 штуки. Уже попробовал связать 2 штуки между собой, а вот 3 и более — пока не получилось. Надеюсь с Вашей статьей разобраться.
0
Есть ещё nRF24LE01 — тот же трансивер но с C51 ядром на борту. Зачётная штука, всё руки никак не доходят до него :(
0
А какая выходит задержка передачи? На видео это какие то особенности программной реализации моргания или задержка очень сильная?
0
  • avatar
  • STAR
  • 26 ноября 2012, 15:37
Можете глянуть мой код там пока все с очень грубо с delay_ms потому что пока все делалось для светодиодов. Без них все пойдет значительно быстрей
0
А не измеряли задержку сигнала между модулями? Насколько быстро можно дернуть ногой на приемнике?
Мне надо определиться на чем сделать радиоканал с минимальной задержкой, NRF24L01, Zigbee или Bluetooth… По параметрам в общем понятно, что NRF24L до 2 МБит, но интереснее было бы в цифрах на практическом примере.
0
Мне кажется, слово «ефективный» должно начинаться с буквы «э».
0
вобще «эффекттиный», раз на то пошло.
0
И даже не «эффекттиный», а «эффектИВный», чтобы быть совсем уж точным )
0
ну механические ошибки, связанные с загрязнившейся клавиатурой это другое)))
0
А мы тут что диктант пишем?? По существу предложения, вопросы есть??
-1
Комментарий выше адресован JustMoose разжигателю орфографического скандала.
0
Товарищ, примите новопассита.
-1
Не было гвоздя — Подкова
Пропала.

Не было подковы — Лошадь
Захромала.

Лошадь захромала — Командир
Убит.

Конница разбита — Армия
Бежит.

Враг вступает в город,
Пленных не щадя,
Оттого, что в кузнице
Не было гвоздя.
0
молодца!
0
даешь поэзию в массы! оглоушим всех амфибрахием с хореем
0
У этой штуки по ходу скорость до 1-2 Мбит/с (заявленная)… А что-то кроме датчиков/мышей/игрушек ею обслуживать можно? Звук в потоке передавать, например… (USB->uC->nRF >>> nRF->uC->I2S)???
Есть, правда, для этих целей «большой брат» в образе nRF24Z1, правда, с доставабельностью у него проблема, да и ценник уж больно кусучий «для поиграться»… :(
0
Для передачи звука на 2.4ггц можно использовать CC8520… 170 рубликов стоит.
0
В «этойстране» — не купить… Здесь EBAYнуться проще, чем из братской республики привезти, но и там такого тоже нет, а сабжа — хоть обзакупись!!! Как-то так… :(
0
но на заметку возьму!.. ;) пасиба
0
Про аналогичную микру от нордика, но для звука, тут уже писали we.easyelectronics.ru/kalobyte-ya/bezprovodnye-dinamiki-mikrofony-pochti-darom.html
0
Несколькими постами выше и я ее упоминал, но в Беларусь такое либо не везут, либо доставка+растаможка обходится в разы дороже самого товара… А этот на ЕБЭЯх — от 3-х баксов за пару готовых модулей! Т.е. на десятку взять пяток, а там уже городить, чего душа изволит! Вопрос был как раз о «применимости к неприменимому»…: Р
0
извиняюсь, проглядел
0
Большое спасибо автору за статью. Уже давно прикупил себе парочку таких модулей, только вот что то сделать никак руки не доходят.
А хотелось бы на таких модулях сделать радиоуправляемый катер, так китайцы такие шикарные вещи предлагают только цена кусачая, что уже сомневаюсь.

Хочу поделится с сообществом парочкой ссылок.
Вот тут подключение радио модуля nRF24L01 к Atmega8.
А здесь связка NRF24L01 и DS18B20.
Программы написаны на Basic.

И уж простите меня за рекламу, эти модули покупал тут.
А так же:
Программатор USBASP для AVR
LCD индикатор 16x2 с подсветкой
Вольтметр
Я к чему это пишу, китайцы рубят радиолюбительство на корню. Хотел я сделать себе вольтметр в БП на Atmega8 а тут на тебе за 2 бакса готовое устройство и так практически во всем.

Сам я из республики Беларусь. И далеко не каждый продавец с ebay или Aliexpress хочет слать товар в мою страну. А этот магазин свободен от предрассудков. А еще у него постоянные скидки и купоны, да в сети информации море, нужно только поискать.
Прошу сообщество меня сильно не пинать но я хочу подсказать как получить скидку в 5% при первом заказе. При регистрации в поле Recommender: указать мой логин pc_boy.
0
а мы темные про БИК и не знали…
СПАСИБО!
%)
0
Заказал себе десяток. Приедут — поиграюсь ;)
0
Отлично, спасибо за статью. вот только позавчера их заказал тоже, приглянулись ценой и простотой! а тут еще и статья на эту тему! молодца!
0
  • avatar
  • Dmi
  • 27 ноября 2012, 13:21
ждем статью про сеть из 3-6 датчиков
0
Когда же уже появятся модули на их же чипе nRF24L01+… И, особенно, его ANT+ — разновидности. а то этот L01 безнадёжно устарел, не поддерживается, etc.
А мне вот нужны модули с ANT+ (на nRF24AP2-1CH и nRF24AP2-8CH) — и их нет вообще.
0
Меня вот что заинтересовало: наводки и помехи дают-ли эти датчики на сами MCU, или все нормально? Ато у меня когда телефон лежит на столе и звонит, то радиомышка перестает работать на секунду-другую :)
0
Ну мышке оно, надо полагать, интерфейс и глушит. МК пофигу, не та мощность излучения.
0
0
О да! Спасибо! Последний раз искал с пол-года назад (а может и все девять месцев) — было глухо!
Хотя цены на NRF24AP2, конечно, нерадостные совсем — в 20 раз дороже чем просто на трансивер! При том, что по косвенным данным чип стоит раза в два дороже всего.
0
Еще есть — MRF49XA и подобные однокристальные трансиверы.
0
Ну MRF49XA вроде на субгигагерцовый диапазон. Это — 2.4ГГц. Впрочем, в этом диапазоне тоже решений хватает. Меня вот интересует A7105 по ряду причин.
0
есть в продаже rfm70 стоит 3.5уе в украине, 2.4ггц 1-2мбит, SPI интерфейс
0
можно конкретные явки-пароли-отзывы?
0
на ибее по 3уе/5шт
или вот по украине
_http://www.rcscomponents.kiev.ua/product/RFM70-S.html
_http://www.kosmodrom.com.ua/el.php?name=RFM70-D
0
ну на ибее то понятно.
а вот за космос и ркс — спасибо. даже в голову не приходило у них посмотреть.
0
Сам я покупал на космодроме, но еще не занимался (в плане). Купил по отзыву человека который уже дело имел и испытал на дальность. по квартире метров 15 пробивает через одну капитальную стену и 2 перегородки.
0
Блин, Я так и не понял, возможен ли на этих модулях полноценный двусторонний линк? Типа, послал команду с одного модуля и на него же получил инфу(неважно какую, например, замеры датчиков).
0
Да, всё что было упомянуто тут — трансиверы, то есть могут как передавать, так и принимать данные.
0
Автор, есть новости?
0
Пока особых нет пришли с ебея еще 2 модуля, отказываются работать по линии MISO тишина пока отложил потом разберусь
0
Тупой, но вопрос-код для первого модуля и для второго различаются?)))
0
Джампер решает кто мастер
0
Ещё один тупой вопрос-как модули определяют, кто мастер, а кто слейв? Или они однополые. И просто нужно сообщать режим-прием или передача? Пока что разбираюсь с кодом отсюда www.tinkerer.eu/AVRLib/nRF24L01 для моего понимания он проще, т.к. содержит меньше наворотов.
0
Я тоже их прикупил. Играюсь. Результаты хреновые, заинтерфейсить их пока не получается. Ситуации следующие:
1) один или оба модуля не пингуются. (не вычитывается STATUS)
2) Модули пингуются, но не видят друг друга(передатчику не возвращаются ACK'и, приемник не поднимает флаг Data_Ready)
3) Передатчик передаёт в никуда, а приёмник принимает из ниоткуда (Передатчик получает ACK при отключенном приемнике, а приемник поднимает флаг DATA_READY при отключенном передатчике).

Чередование этих ситуаций абсолютно бессистемно, по собственному желанию модулей. Проверялось и рядом с роутером, и при отключенном роутере в другой комнате. ЧЯДНТ?
0
  • avatar
  • enq
  • 01 июля 2013, 23:54
Можно еще вопрос. А почему Вы после установки бита PWR_UP ждете всего 150 мкс перед передачей, если переход из Power Down в Stadby1 длится от 1мс до 4.5мс согласно даташиту? У меня 150мкс задержка не работает, жду 1,5 мс, а потом пишу в буфер и строб на CE.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.