Пытаюсь получить данные с Ардуино уно по COM порту(COM4).
Код Ардуино:
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
for (int i=0;i<9;i++){
Serial.println((i));
delay(500);
}
Serial.println(“close”);
}
В COM-порт идут числа 1-9 и строка “close”
Код Питона:
import serial
import time
SERIAL_PORT = ‘COM4’
SERIAL_SPEED = 9600
sum = 0
ser = serial.Serial(SERIAL_PORT, SERIAL_SPEED, dsrdtr = 1,timeout = 0)
time.sleep(2)
i = 1
while i==1:
a=ser.readline()
time.sleep(0.5)
print(a)
sum+=a
if a==“close”:
ser.close()
ser.close()
Когда нет строки sum+=a в консоле выводится это:
…
b'7\r\n'
b'8\r\n'
b'9\r\n'
b'close\r\n'
Как мне, например, проводить арифметические операции с этими данными? Просто если строку sum+=a расскоментить, то в консоле:
sum+=a
TypeError: unsupported operand type(s) for +=: ‘int’ and ‘bytes’
Как я понимаю приходит байтовый формат и… не знаю. Как вообще правильно считать данные с COM-порта?