Приемо-передача данных nrf24l01 <--> usb

Goerg
Offline
Зарегистрирован: 18.07.2013

Добрый день!

Планирую подключить Arduino Uno по USB к PC с Ubuntu. На PC использовать PHP скрипты для получения данных с датчиков и управления реле, подключенных к Nano. PC (Ubuntu) <---USB---> ArduinoUno <---nrf24l01---> ArduinoNano.

Подскажите, возможно ли реализовать это на Uno? Хватит ли памяти т.к. получится достаточно большой объем кода.

В голове складывается следующая структура кода для Uno: 1. Слушаем Serial. 2. Если что-то есть в Serial, проверяем. 3. Если совпадает с запросом "nano1" или "nano2"- отправляем пакет по nrf24l01 соответствуещему "NanoХ". 4. Ждем ответ по nrf24l01. 5. Получив ответ по nrf24l01, пересылаем его в Serial.

 

Goerg
Offline
Зарегистрирован: 18.07.2013

Единственный минус такой системы, в том, что все в цепочке ждут команды от PC. Или возможно на Uno одновременно слушать и USB serial, и nrf24l01+?

MaksMS
Offline
Зарегистрирован: 11.03.2013

Как раз так чаще всего и реализуют подключение радиомодуля к компьютеру .

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

Я делал такую штуку для работы с данными радиомодулями,но там конечно не на ардуино..

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

Я сделал подобное только не serial (делал, чтоб была возможность не зависеть от расстояния), а через эзернет-шилд w5100.
Код влез в уно (и места немного осталось, чтоб еще на нее и DHT прикрутить).

Идея такая:

В основном цикле переключаем SPI-устройство и читаем буфер.

Если что-то пришло - парсим (если нужно) в структуру и делаем что нуджно (например, выполняем команду), отправляем ответ.

Переключаем на другое SPI, читаем буфер (слушаем эфир)... И т.д.

axill
Offline
Зарегистрирован: 05.09.2011

То что вы хотите по сути совпадает с проектом http://code.mios.com/trac/mios_arduino-sensor/wiki который у меня дома работает

только в случае с упоминаемым проектом вместо компьютера с ubuntu стоит специализированный контроллер со специальной версией Linux

посмотрите скетч Nano подключенной к Linux https://github.com/mysensors/Arduino/blob/master/SerialGateway/SerialGat...

Он проще простого. Он по сути транслирует команды между Serial (поверх USB) и NRF24

Goerg
Offline
Зарегистрирован: 18.07.2013

Спасибо за ответы!