как передать "hello" по i2c

Тема в разделе "Raspberry Pi", создана пользователем mazzick, 3 сен 2018.

  1. Igor68

    Igor68 Гуру

    Сам так давно и делаю...
     
  2. mazzick

    mazzick Нуб

    UART Тоже попробую, надо все попробовать )
     
  3. ИгорьК

    ИгорьК Гуру

    А я через wifi - Малина на шкафу лежит. Правда не помню на каком.
     
  4. Igor68

    Igor68 Гуру

    Ну и в чём бардак? Устройство на малине будет /dev/ttyUSB0. Этот самый последовательный порт. Ну а I2C применить по назначению... допустим для датчиков.
     
  5. ИгорьК

    ИгорьК Гуру

    Вот я и заподозрил какую-то странность в названии темы... :)
     
  6. mazzick

    mazzick Нуб

    меня смутило что он иногда передает не полностью строчку, половину может потерять по пути ) еще вычитал что в процессе может поменять адрес /dev/ttyUSB0 на /dev/ttyUSB1. Но это не проблема, данные обновляются а /dev/ttyUSB0 или /dev/ttyUSB1 я так понял можно функцию проверки сделать
     
  7. Igor68

    Igor68 Гуру

    Добавит и ttyUSB2... если их будет три. А если только один, то будет ttyUSB0 это испытано. И Linux привык к типу и классу устройства, а не PID VID как Windows, в котором даже дрова по VID PID и если отличаются не прикрутит.
     
  8. Igor68

    Igor68 Гуру

    А кто передаёт не полностью? Малина передаёт всё, что дали... и примет то, что есть.
     
  9. mazzick

    mazzick Нуб

    ардуино по usb к малине. Это я просто придираюсь, в терминале проверял, бывали моменты когда передавалась не полностью строка данных а обрывки. Для меня это не критично
     
  10. parovoZZ

    parovoZZ Гуру

    I2C в малине вообще включен?
     
  11. parovoZZ

    parovoZZ Гуру

    ерунду какую-то сказал.
     
  12. parovoZZ

    parovoZZ Гуру

    а это на второй малине будет работать? WiringPI у меня вывалил кучу ошибок и отказался устанавливаться.
     
  13. Mitrandir

    Mitrandir Гуру

    Раз wiringPi не встал то нет. У меня первая малина, полет нормальный. Вечером могу скинуть код без этой библиотеки
     
  14. ИгорьК

    ИгорьК Гуру

    Ну поправь.
     
  15. b707

    b707 Гуру

    mazzick - я б на вашем месте вообще текст не стал передавать. Вам же надо погодными данными обмениваться? - так зачем там текст?
    Проблема, как часто бывает у начинающих - в том, что не с того конца беретесь. Вы там выше пишете, что не получается строки длиннее 255 символов передать. Ну это же бред!! - нафига все данные в кучу валить? передавате каждое число отдельно.

    Делаете простенький протокол -
    первый байт - тип параметра. например 0х01 - температура, 0х3D -влажность, 0х44 - давление и тд...
    второй-третий байты - значение в виде целого (флоат на ардуине забыть раз и навсегда), например температура умноженная на 10 - 24.5 С = 245
    четвертый байт - признак конца пакета, например 0xFF

    получаете на каждое передаваемое число четырехбайтный код, который можно передавать хоть по УАРТ, хоть по I2C. да хоть по вай-фаю или OneWire
     
    mazzick, Igor68 и Mitrandir нравится это.