Estou tentando ler uma linha de dados seriais de um sensor de sonar MaxBotix com Python.
O sensor cospe R0300
Os inteiros após o "R" são a distância lida em milímetros. Eu estou tentando escrever um script que remove o "R" e converte a seqüência de caracteres em um inteiro. Eu removi com sucesso o "R", mas quando eu tento converter a string em um int eu recebo este erro: ValueError: invalid literal for int() with base 10: '1187\r1187\r1188\r1188\r1188\r1188\r1188\r1188\r1188\r1188\r1188\r1189\r1189\r1189\r1189\r1189\r118'
Sou novo no Python, aqui está o código:
import serial
from time import sleep
mmtoinch = 25.4
#print ser.isOpen() #to check port is open
ser = serial.Serial('/dev/ttyAMA0', 9600)
try:
while True:
rawdata = ser.readline(100)
#Removing the "R" from the Range Finder output
intconversion = rawdata.replace("R","")
#print(rawdata)
intconversion.replace(" ","")
print(intconversion)
intrange = int(intconversion)
sleep(1)
except KeyboardInterrupt:
print ' end'
A indentação pode estar errada. Qualquer ajuda é muito apreciada! Obrigado antecipadamente:)
Tags python serial-port