Enviando comunicación serial desde la raspberry pi

Estoy enviando datos en serie desde una Raspberry Pi a un Arduino usando un progtwig Python. Estoy ejecutando Python 2.7.3. El progtwig es:

import serial ser = serial.Serial('/dev/ttyACM0', 115200) ser.write(b'\x4c\xff\x46') 

El problema es que estas tres líneas no parecen enviar nada si se ejecutan en un progtwig. Pero si los ejecuto línea por línea en un shell de Python, funcionan bien.

Además, si tengo abierto el Monitor Serial de Arduino, el progtwig también funciona bien, sin ejecutar las líneas una a una en el shell.

EDITADO PARA AÑADIR:

Parece que hay algún retraso en el envío al Arduino. Entonces, cuando ejecuto el código en modo interpretativo, funciona, pero si como progtwig, no lo hace. Creo que porque probé el mismo progtwig en una máquina con Windows.

     import serial ser = serial.Serial('COM8', 115200) ser.write(b'\x4c\x20\x46') 

    Si ejecuto el progtwig en modo interpretativo, o incluso en modo de depuración con un punto de interrupción en el comando ser.write, funciona. Pero no si se ejecuta como un progtwig.

    EDITADO PARA AÑADIR MÁS:

    Resulta que el Arduino tiene un reinicio automático en las comunicaciones serie que tiene que ser desactivado:

    http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection#.UwP_wfldV8E

    http://forum.arduino.cc/index.php/topic,28723.0.html

    Usé un condensador de 220 uF entre el pin RESET y la conexión a tierra. Eso funciona.

    ¡Difícil ser mordido por un bicho así! Todavía es inteligente.

    Prueba esto. Si no puede ejecutarlo en modo inactivo o etc., intente con la terminal escribiendo python name.py. También le sugiero que verifique los datos que vienen o que están escritos desde / hacia Rpi con masilla para estar seguros.

     import serial import time def readlineCR(port): rv = "" while True: ch = port.read() rv += ch if ch == '\r' or ch == '': return rv port = serial.Serial("/dev/ttyAMA0", baudrate = 7200, timeout = 2) while True: rcv = readlineCR(port) port.write("I typed: " + repr(rcv)) print(rcv)