Бюджетний радіозв’язок для мікроконтролерів AVR

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

У базовій версії без підсилювача і з антеною виконаної на друкованій платі. На момент написання статті пару таких модулів на ebay можна було купити по $ 3.23

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

Але це чудо дорожче і одна шт. вже коштує $ 13.89
Я зупинився на першому варіанті. І так що ж у нього всередині пройдемося швидко по характеристикам.

Тарансівер виконаний у вигляді єдиного чіпа.
Режим передачі ShockBurst ™ (ефективна швидкий режим передачі даних).
АВТОМАТИЧНЕ 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

Архів з кодом для моєї плати додається.
 [member]
Code 4mhz NRF24L01
[/member]
Архів з платою в Eagle
 [member]
Board NRF24L01
[/member]

4 коментарі Бюджетний радіозв’язок для мікроконтролерів AVR

  1. Leon11t сказав:

    Теж валяється вдома дві такі штуки. Почав читати як то запустити і в мене опустились руки. Наскільки складно було дописувати код, чи ви його не дописували?

  2. dexter сказав:

    Ні я дописував у автора не було частини коду яка обробляє спрацювання ноги INT ну і переписав під свою периферію світлодіоди, кнопки.

  3. Artem Kotseruba сказав:

    Доброго дня!
    чи є у Вас можливість дещо змінити передавач та приймач, збільшивши кількість команд до 4 (або і більше..)?
    і, можливо підкажете, чи є щось подібне на stm?

Залишити відповідь