Paso 4: Python a la comunicación de Arduino
Este paso es un poco más difícil, ya que nos obliga a analizar los datos en el lado de Arduino de cosas. Para ayudar a acelerar las cosas, he salido adelante y he escrito un simple bucle que coge los datos actuales del buffer Serial y crea una cadena terminada en null (string C), que luego pasa a la conexión en serie. Puede utilizar esta técnica para escribir un analizador real designando su propio paquete prefijo y sufijo, y exploración búfer serial, creando cadenas en consecuencia.
void setup() { Serial.begin(); } void loop() { if(Serial.available() > 0) { char data = Serial.read(); char str[2]; str[0] = data; str[1] = '\0'; Serial.print(str); } }
Ahora podemos escribir un script simple que envía datos desde Python a Arduino y luego imprime lo que vuelve.
import serial, time arduino = serial.Serial('COM1', 115200, timeout=.1)time.sleep(1) #give the connection a second to settlearduino.write("Hello from Python!")while True: data = arduino.readline() if data: print data.rstrip('\n') #strip out the new lines for now # (better to do .read() in the long run for this reason
Es fácil ver cómo este método puede ampliarse aún más para permitir la comunicación compleja entre los dos dispositivos. Va cubriendo un ejemplo de esta comunicación en un futuro ' ible, donde voy a hacer un juego-pad dispositivo capaz de trabajar en cualquier tipo de PC juego!