/ / ser.write () funciona en pyserial - python-2.7, arduino, pyserial

Función ser.write () en pyserial - python-2.7, arduino, pyserial

Estoy tratando de enviar la matriz de bytes de una imagenArchivo al Arduino con la biblioteca pyserial. Y estoy recibiendo el byte de datos byte en el Arduino. Pero parece que no puedo recuperar los bytes en el Arduino. Por ejemplo, envía una cadena de "255" Arduino recibe el byte como "2".

Código Python:

import serial
ser = serial.Serial("/dev/ttyUSB0", 115200, bytesize=8, timeout=0, parity=serial.PARITY_EVEN, rtscts=1)
f = open("image.jpg","rb")
l = f.read()
b = bytearray(l)
for i in range(1,len(b)):
ser.write(str(b[i-1]))
ser.flush()
ser.close()

Código Arduino:

char buffer ; // for incoming serial data
int length = 1;
void setup() {
Serial.begin(115200); // opens serial port, sets data rate to 9600 bps
}

void loop() {
Serial.readBytes(&buffer, length) ;
Serial.println(buffer);
}

Respuestas

0 para la respuesta № 1

Su código Python envía números como cadenas ASCII, en lugar de bytes (que es lo que espera su código Arduino ...). En su lugar, hacer:

for i in range(1,len(b)):
ser.write(b[i-1])

-2 para la respuesta № 2

Puedes probar este método:

char c;
String coming;
if(Serial.available()>0){
c=Serial.read();
coming +=c;
Serial.println(coming);}