- PVSM.RU - https://www.pvsm.ru -

Использование радио модулей RF-2400 от Inhaos

На хабре недавно была опубликована статья про радио модули [1], на мой взгляд, в ней незаслужено обделены вниманием 2.4 GHz устройства с SPI интерфейсом. Привлекают они ценой в два-три бакса за штуку, и готовым протоколом общения, включающим адресацию, CRC, отсылку подтверждения и прочие удобства.

Использование радио модулей RF 2400 от Inhaos
Модули RF-2400Р [2] от Inhaos [3] построены на чипе BK2421 [4], который похоже слизан с Nordic NRF24L01 [5]. Поэтому, для работы с ними можно использовать библиотеку Mirf [6], написанную под Nordic.

Задача, которую я решал, состояла в организации обмена данными между несколькими модулями, поэтому логика работы, использованная в Mirf и построенная на взимодействии между парой модулей оказалась не совсем удобна. Вместо этого был организован некий виртуальный кусок памяти, синхронизируемый по радио интерфейсу, который использовали несколько устройств одновременно. Получилась вот такая [7] библиотечка для ардуино.

Использование радио модулей RF 2400 от Inhaos
Кроме RF-2400Р модулей Inhaos предлагает очень симпатичный USB «свисток» RF-2410U [8] построенный на том же BK2421 но уже в связке с микроконтроллером C8051F321 [9], который идет с прошитым бутлоадером и может быть запрограммирован [10] по USB, с помощью поставляемого загрузчика.

На мой взгляд получается очень доступное и интересное решение для системы типа «умный дом» — куча дешевых радио модулей, которые благодаря цене можно встраивать даже в лампочки и компактный управляющий интерфейс в виде «свистка», который можно воткнуть в любой комп не заморачиваясь с дополнительными проводами и наличием последовательного порта.

RF- 2400 Demo

Чтобы упросить процесс знакомства с этими устройствами и проиллюстрировать их совместную работу, вашему вниманию представляется следующее демо.

Железо

  1. Клиентское устройство — ардуино + RF-2400P
  2. Серверное устройство — ардуино + RF-2400P
  3. Наблюдатель — Windows PC + RF-2410U

В принципе, без (1) или (3) можно обойтись.

Софт

  1. Библиотека RFSync и ардуино скрипты для клиентской и серверной части.
  2. Прошивка для RF-2410U, и драйвера для него.
  3. Клиентское Windows приложение RF-2410U.
Логика работы

Использование радио модулей RF 2400 от Inhaos

  1. На клиентской ардуно плате, текущее время записывется в синхронизируемый массив по адресу 0.
  2. На серверной плате, после синхронизации, данные прочитанные но адресу 0 дублируются по адресу 5.
  3. После выполнения синхронизации на клиентской плате читается значение по адресу 5 и высчитывается, время потраченное на синхронизацию.
  4. Весь этот цирк процесс синхронизации наблюдается на Windows машине с подключенным RF-2410U модулем с помощью клиентского приложения.
Запуск

1. Подключаем RF-2400P модули к платам ардуино по следующей схеме:

Модуль Ардуино
MISO 12
MOSI 11
SCK 13
CE 8
CSN 7
3.3 V 3.3 V
GND GND

2. Копируем код библиотеки [11] в папку ардуино и прошиваем клиентский [12] и серверный [13] скрипты.

3. Наблюдаем обмен данными через последовательный интерфейс.
Использование радио модулей RF 2400 от Inhaos

4. Загружаем прошивку [14] в RF-2410U.

  • убедитесь что модуль не подключен к компьютеру
  • запустите приложение для прошивки [15].
  • выберите прошивку, нажимите «Download»
  • вставьте RF-2410U модуль в USB порт
  • дождитесь сообщения Download Succeed

Использование радио модулей RF 2400 от Inhaos

5. При подключении RF-2410U попросит драйвера, дайте их ему [16].

6. Осталось загрузить клиентское приложение [17] нажать кнопку старт и наблюдать в реальном времени процесс синхронизации.

Использование радио модулей RF 2400 от Inhaos

Автор: dim133


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/arduino/5999

Ссылки в тексте:

[1] статья про радио модули: http://habrahabr.ru/post/139947/

[2] RF-2400Р: http://www.inhaos.com/product_info.php?products_id=35

[3] Inhaos: http://www.inhaos.com/

[4] BK2421: http://www.google.com.ua/search?aq=1&oq=BK2421+&sugexp=chrome,mod=9&ix=nh&sourceid=chrome&ie=UTF-8&q=bk2421+pdf

[5] NRF24L01: http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01

[6] Mirf: http://arduino.cc/playground/InterfacingWithHardware/Nrf24L01

[7] вот такая: http://code.google.com/p/rfsync/

[8] RF-2410U: http://www.inhaos.com/product_info.php?products_id=42

[9] C8051F321: http://www.silabs.com/Support%20Documents/TechnicalDocs/C8051F321_Short.pdf

[10] запрограммирован: http://www.keil.com/c51/

[11] библиотеки: http://rfsync.googlecode.com/files/RFSync_0-01.zip

[12] клиентский: http://rfsync.googlecode.com/svn/trunk/ArduinoLibrary/RFSync/examples/RFSync_client/RFSync_client.ino

[13] серверный: http://rfsync.googlecode.com/svn/trunk/ArduinoLibrary/RFSync/examples/RFSync_server/RFSync_server.ino

[14] прошивку: http://rfsync.googlecode.com/files/RF2410U%20RFSYNC%200_01.hex

[15] приложение для прошивки: http://www.inhaos.com/downcount.php?download_id=31

[16] дайте их ему: http://www.silabs.com/products/mcu/Pages/USBXpress.aspx

[17] клиентское приложение: http://rfsync.googlecode.com/files/RFSyncSetup_0-01.msi