Приемо-передача данных nrf24l01 <--> usb
- Войдите на сайт для отправки комментариев
Пнд, 03/03/2014 - 15:16
Добрый день!
Планирую подключить 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.
Единственный минус такой системы, в том, что все в цепочке ждут команды от PC. Или возможно на Uno одновременно слушать и USB serial, и nrf24l01+?
Как раз так чаще всего и реализуют подключение радиомодуля к компьютеру .
На счет "одновременно" микроконтроллер как бы не может работать в несколько потоков и все тут делается через прерывания и временные разделения.
Я делал такую штуку для работы с данными радиомодулями,но там конечно не на ардуино..
Я сделал подобное только не serial (делал, чтоб была возможность не зависеть от расстояния), а через эзернет-шилд w5100.
Код влез в уно (и места немного осталось, чтоб еще на нее и DHT прикрутить).
Идея такая:
В основном цикле переключаем SPI-устройство и читаем буфер.
Если что-то пришло - парсим (если нужно) в структуру и делаем что нуджно (например, выполняем команду), отправляем ответ.
Переключаем на другое SPI, читаем буфер (слушаем эфир)... И т.д.
То что вы хотите по сути совпадает с проектом 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
Спасибо за ответы!