Нужен совет по выбору интерфейса передачи данных и его реализации

Тема в разделе "Raspberry Pi", создана пользователем raccoon, 24 апр 2019.

  1. raccoon

    raccoon Guest

    Доброго времени суток, уважаемые форумчане! Делаю АПК, состоящую из двух основных частей - Arduino Uno и Raspberry Pi 3 Model B.
    К Arduino подключено: GPS Bee через Arduino Wireless SD Shield; акселерометр GY-521; в планах подключить датчик угарного газа MQ-7.
    Raspberry выступает в роли принимающей системы, т.е. с ардуино необходимо передать данные в малину и сохранять их в один файл (чтобы в дальнейшем эти данные можно было отсылать на сервер). Пробовал для теста реализовать протокол SPI по найденному примеру - все работает, при запуске скрипта на малине в мониторе порта ардуино выводился Hello world. (схема подключения в приложении).
    По какому интерфейсу лучше всего передавать данные на малину? Есть ли смысл продолжать на SPI? Как можно реализовать отправку данных с ардуины на малину? В интернете искал примеры, но там восновном реализация как в примере выше.
     

    Вложения:

    • SPI.png
      SPI.png
      Размер файла:
      136,6 КБ
      Просмотров:
      564
    Последнее редактирование модератором: 25 апр 2019
  2. По usb шнуру и реализовать.
    Подключать пятивольтовые выводы к малине нельзя.
     
  3. ИгорьК

    ИгорьК Гуру

    А что есть АПК???
     
    parovoZZ нравится это.
  4. parovoZZ

    parovoZZ Гуру

    НЕТ
    Нет, даже так:
    НЕТ

    присоединяюсь

    по любому, какой сможешь реализовать. Но сперва определись с интерфейсом

    По радио. Малина не приспособлена для подключения внешних проводов. Сгорает от любого чиха.
    Сгородить можно - но судя по вопросам - об этом говорить рано.
     
  5. raccoon

    raccoon Guest

    С протоколом оговорился. Хотел сказать интерфейс. Почему по вашему мнению не стоит использовать 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.
     
  6. raccoon

    raccoon Guest

    Можно же логический конвертер поставить, чтобы решить проблему с питанием
     
  7. а еще можно не тратить время бездарно, а взять шнур
    но если вам так хочется, то зачем вообще было спрашивать
     
  8. raccoon

    raccoon Guest

    Пробовал по 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.
     
  9. Ну может надо найти и решить проблему? Нет?
     
    Daniil нравится это.
  10. Daniil

    Daniil Гуру

    Про интерфейс.
    У ардуинки занят uart? (не знаю на что вешаются используемые модули).
    Про протокол. Советую использовать modbus ascii - легко формировать, легко парсить и очень гибкий.
     
  11. raccoon

    raccoon Guest

    На счёт протокола я очепятку сделал. Имел ввиду интерфейс. По существу - uart как раз таки занят GPS модулем
     
  12. parovoZZ

    parovoZZ Гуру

    Это на малине? На малине нативная поддержка USB.
     
  13. raccoon

    raccoon Guest

    Вобщем, я думаю проблема была в длинном кабеле usb (5м) и usb 2.0 самой малины. Сократил расстояние кабеля - сейчас более-менее приемлемо приходят данные. Пока буду использовать данный способ. В дальнейшем подумаю над этим вопросом.
    Спасибо за ответы!
     
  14. Daniil

    Daniil Гуру

    Будьте аккуратны с китайскими кабелями, некоторые и данные не передают (вообще).
    Для юсби 5 м уже много. Чем длинее, тем дороже.
     
  15. потерь в USB не бывает
    либо всё передается, либо полный отвал устройства