Найти - Пользователи
Полная версия: Из com-порта лезет что-то неприличное
Начало » Python для новичков » Из com-порта лезет что-то неприличное
1
dnstuff
Подключаю arduino к raspberry pi по usb.
Скрипты взяты из букваря
Ардуино
 void setup() {
    Serial.begin(115200);  
}
void loop() {
    Serial.println("hello world");
    delay(100);
}

Python3
 import serial
import time
ser = serial.Serial('/dev/ttyUSB0', timeout=0.2)
while 1:
   c=ser.readline()
   print(c)

Резльтат

 b''
b''
b''
b'X\xd0\\\xd0X\xd0\xda\x1a\xe2\\Z\xbeZ\xba\x1aT\x1aTMX\xd0\\\xf2\\\xd0TZM\\\xf2\x1a\xba\x1a\xe2\\\xd0X\x1a\xfa]X\xf2\xfa\xfa\x1a\xfa\x1a\xfa\x1a\xba\x1a\xfa\n'
b'\x1a\xfa\x1a\xe2\xba\x1a\xba\\\xf2X\xfa\x1aZ\xd0ZMM\xf2\n'
b'\xd4\x1aT\x1a\xbaZT\x1a\xd4\x1aZ\\\xe2\xfa\x1a\xe2\\\n'
b'\xd4X\xd4X\xd4]\xd0\n'
b'\x1aM\xd0X\xd0\\M\\\x1a\xfa\n'
b'\xd4\n'
b'\xf2\\\xe2\\\xf2]\x1a\xba\\\xe2\\\xf2\\\xe2\\\\\x1a\xd0\x1a\xf2M\n'
b'\xbeZ\xbe\xe2X\xd4\n'
b'\xd4\n'
b'\x1a\xf2\\\xd0\\\x1a\xe2\xd4\n'
b'T\x1a\xd0\n'
и т.д.

На втором питоне
 Z▒▒Z\TX\\\
Z▒▒▒\
▒▒\TZ\Z\\\\\\Z\▒▒\\Z\▒▒M
▒▒\\\\]▒▒T\T\ZMZMMZ
ZM
Z\\▒▒Z▒▒▒\▒▒TM▒▒

Что это и как привести к читаемому виду?
dnstuff
Попробовал print(c.decode('utf-8'))
Ошибка
UnicodeDecodeError: ‘utf-8’ codec can't decode byte 0xf2 in position 0: invalid continuation byte
py.user.next
Это не utf-8. Не видно, что это вообще текст в какой-либо кодировке. Скорее всего, это данные, которые нужно распаковывать через модуль struct.
vic57
dnstuff
import serial
import time
ser = serial.Serial('/dev/ttyUSB0', timeout=0.2)
while 1:
c=ser.readline()
print©
а где baudrate?
dnstuff
Заработало, когда поставил небольшую задержку после print
И еще рекомендуют не указывать параметры порта в строке с открытием, а добавить ниже отдельными строками. Это, якобы, решает проблемы с некоторыми микросхемами.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB