- PVSM.RU - https://www.pvsm.ru -
На хабре недавно была опубликована статья про радио модули [1], на мой взгляд, в ней незаслужено обделены вниманием 2.4 GHz устройства с SPI интерфейсом. Привлекают они ценой в два-три бакса за штуку, и готовым протоколом общения, включающим адресацию, CRC, отсылку подтверждения и прочие удобства.
Модули RF-2400Р [2] от Inhaos [3] построены на чипе BK2421 [4], который похоже слизан с Nordic NRF24L01 [5]. Поэтому, для работы с ними можно использовать библиотеку Mirf [6], написанную под Nordic.
Задача, которую я решал, состояла в организации обмена данными между несколькими модулями, поэтому логика работы, использованная в Mirf и построенная на взимодействии между парой модулей оказалась не совсем удобна. Вместо этого был организован некий виртуальный кусок памяти, синхронизируемый по радио интерфейсу, который использовали несколько устройств одновременно. Получилась вот такая [7] библиотечка для ардуино.
Кроме RF-2400Р модулей Inhaos предлагает очень симпатичный USB «свисток» RF-2410U [8] построенный на том же BK2421 но уже в связке с микроконтроллером C8051F321 [9], который идет с прошитым бутлоадером и может быть запрограммирован [10] по USB, с помощью поставляемого загрузчика.
На мой взгляд получается очень доступное и интересное решение для системы типа «умный дом» — куча дешевых радио модулей, которые благодаря цене можно встраивать даже в лампочки и компактный управляющий интерфейс в виде «свистка», который можно воткнуть в любой комп не заморачиваясь с дополнительными проводами и наличием последовательного порта.
Чтобы упросить процесс знакомства с этими устройствами и проиллюстрировать их совместную работу, вашему вниманию представляется следующее демо.
В принципе, без (1) или (3) можно обойтись.
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. Наблюдаем обмен данными через последовательный интерфейс.
4. Загружаем прошивку [14] в RF-2410U.
5. При подключении RF-2410U попросит драйвера, дайте их ему [16].
6. Осталось загрузить клиентское приложение [17] нажать кнопку старт и наблюдать в реальном времени процесс синхронизации.
Автор: 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
Нажмите здесь для печати.