У меня есть Arduino, подключенный к Raspberry Pi, и я получаю данные из Arduino, используя python и serial. У меня есть 6 датчиков, подключенных к Arduino, но когда я печатаю данные с пи, в первой строке всегда 2 или 3 датчика, после чего распечатываются все 6 датчиков. Как мне пропустить первую строку, читаемую поверх серийного номера?
Мой вывод выглядит так:
0 2 3
2 4 6 7 8 54
2 3 5 65 7 7
2 3 4 5 6 7
В первой строке всегда меньше 6 датчиков, а значения поступают из массива. Так что, если бы я получил доступ к arr[4]
, это было бы за пределами.
Вот код Python. Я пытаюсь сделать это без использования цикла while, я буду создавать другую функцию, которая периодически вызывает sensorVals()
для обновления значений датчика. Я знаю, что могу использовать цикл, проверить длину массива, равную 6, а затем распечатать.
import serial
datetime.datetime.now()
ser=serial.Serial('/dev/ttyACM0',115200)
def sensorVals():
while True:
read_serial=ser.readline()
val= read_serial.decode()
val =val.strip()
row = [x for x in val.split(' ')]
if len(row) == 6:
sensor1 = row[0]
sensor2 = row[1]
sensor3 = row[2]
sensor4 = row[3]
sensor5 = row[4]
sensor6 = row[5]
print (sensor4)
sensorVals()