Доброго времени суток, уважаемые форумчане! Делаю АПК, состоящую из двух основных частей - Arduino Uno и Raspberry Pi 3 Model B. К Arduino подключено: GPS Bee через Arduino Wireless SD Shield; акселерометр GY-521; в планах подключить датчик угарного газа MQ-7. Raspberry выступает в роли принимающей системы, т.е. с ардуино необходимо передать данные в малину и сохранять их в один файл (чтобы в дальнейшем эти данные можно было отсылать на сервер). Пробовал для теста реализовать протокол SPI по найденному примеру - все работает, при запуске скрипта на малине в мониторе порта ардуино выводился Hello world. (схема подключения в приложении). По какому интерфейсу лучше всего передавать данные на малину? Есть ли смысл продолжать на SPI? Как можно реализовать отправку данных с ардуины на малину? В интернете искал примеры, но там восновном реализация как в примере выше.
НЕТ Нет, даже так: НЕТ присоединяюсь по любому, какой сможешь реализовать. Но сперва определись с интерфейсом По радио. Малина не приспособлена для подключения внешних проводов. Сгорает от любого чиха. Сгородить можно - но судя по вопросам - об этом говорить рано.
С протоколом оговорился. Хотел сказать интерфейс. Почему по вашему мнению не стоит использовать SPI? Радиоканал нет возможности использовать. Пробовал по USB получать - на 4-5 запросов один невалидный. Например: Код (Text): b'lat lot 0.30 AcX = 16668 | AcY = 2592 | AcZ = 3008\r\n' b'lat lot 0.30 AcX = 16592 | AcY = 2648 | AcZ = 2928\r\n' b'lat lot 0.30 AcX = 16608 | AcY = 2556 | AcZ = 3036\r\n' b'lat lot 0.24 AcX = -1 | AcY = -1 | AcZ = -1\r\n' b'lat lot 0.24 AcX = 16700 | AcY = 2644 | AcZ = 3064\r\n' b'lat lot 0.24 AcX = 16624 | AcY = 2588 | AcZ = 3132\r\n' b'lat lot 0.13 AcX = 16640 | AcY = 2576 | AcZ = 3012\r\n' b'lat lot 0.13 AcX = 16696 | AcY = 2608 | AcZ = 3096\r\n' b'lat lot 0.13 AcX = -1 | AcY = -1 | AcZ = -1\r\n' b'lat lot 0.04 AcX = 16608 | AcY = 2560 | AcZ = 3000\r\n' Я предполагаю это из-за того, что как и с GPS, за USB стоит USB-COM преобразователь, который подключен к тем же самым RX/TX.
а еще можно не тратить время бездарно, а взять шнур но если вам так хочется, то зачем вообще было спрашивать
Пробовал по USB получать - на 4-5 запросов один невалидный. Например: Код (Text): b'lat lot 0.30 AcX = 16668 | AcY = 2592 | AcZ = 3008\r\n' b'lat lot 0.30 AcX = 16592 | AcY = 2648 | AcZ = 2928\r\n' b'lat lot 0.30 AcX = 16608 | AcY = 2556 | AcZ = 3036\r\n' b'lat lot 0.24 AcX = -1 | AcY = -1 | AcZ = -1\r\n' b'lat lot 0.24 AcX = 16700 | AcY = 2644 | AcZ = 3064\r\n' b'lat lot 0.24 AcX = 16624 | AcY = 2588 | AcZ = 3132\r\n' b'lat lot 0.13 AcX = 16640 | AcY = 2576 | AcZ = 3012\r\n' b'lat lot 0.13 AcX = 16696 | AcY = 2608 | AcZ = 3096\r\n' b'lat lot 0.13 AcX = -1 | AcY = -1 | AcZ = -1\r\n' b'lat lot 0.04 AcX = 16608 | AcY = 2560 | AcZ = 3000\r\n' Я предполагаю это из-за того, что как и с GPS, за USB стоит USB-COM преобразователь, который подключен к тем же самым RX/TX.
Про интерфейс. У ардуинки занят uart? (не знаю на что вешаются используемые модули). Про протокол. Советую использовать modbus ascii - легко формировать, легко парсить и очень гибкий.
На счёт протокола я очепятку сделал. Имел ввиду интерфейс. По существу - uart как раз таки занят GPS модулем
Вобщем, я думаю проблема была в длинном кабеле usb (5м) и usb 2.0 самой малины. Сократил расстояние кабеля - сейчас более-менее приемлемо приходят данные. Пока буду использовать данный способ. В дальнейшем подумаю над этим вопросом. Спасибо за ответы!
Будьте аккуратны с китайскими кабелями, некоторые и данные не передают (вообще). Для юсби 5 м уже много. Чем длинее, тем дороже.