Я хочу отправить некоторые данные в Arduino через pyserial на Python. Все, что я хочу от Arduino, - это прочитать данные строки переменной длины из последовательного порта и записать их обратно, чтобы Python мог их прочитать. Поскольку я не смог этого сделать, в приведенном ниже коде Python отправляет только символ. Вот код Python:
import serial
import sys
import pywapi
import time
def main():
ser = serial.Serial(3, 9600, timeout=1)
print "Conn established"
print "Sending: %s" % "z".__repr__()
print ser.write('z'.encode("ascii"))
time.sleep(2)
print "Received: %s" % ser.read(10).__repr__()
ser.close()
Вот код Arduino:
void setup(){
analogReference(DEFAULT);
Serial.begin(9600);
}
void loop(){
if(Serial.available() > 0)
Serial.println("x");
while(Serial.available() > 0){
Serial.print(Serial.read(), BYTE);
}
}
Выход:
Conn established
Sending: 'z'
1
Received: ''
Я знаю, что код для Arduino работает, потому что он работает, когда данные отправляются с терминала Arduino. Однако в тот момент, когда я пытаюсь отправить что-либо из Python, это не получается. Я боролся с этим весь день. Любая помощь будет принята с благодарностью.