L'envoi de la communication en série à partir de la Raspberry pi
Je suis l'envoi de données en série à partir d'un Raspberry Pi à un Arduino à l'aide d'un programme Python. Je suis en cours d'exécution Python 2.7.3. Le programme est:
import serial
ser = serial.Serial('/dev/ttyACM0', 115200)
ser.write(b'\x4c\xff\x46')
Le problème est que rien ne semble être envoyé par ces trois lignes, si elles sont exécutées dans un programme. Mais si je les exécuter ligne par ligne dans une interface Python, qu'ils fonctionnent très bien.
Aussi, si j'ai l'Arduino en Série d'ouverture de l'écran, le programme fonctionne très bien ainsi, sans courir les lignes une par une dans le shell.
MODIFIÉES AFIN D'AJOUTER:
Il semble qu'il y a un peu de retard dans l'envoi de l'Arduino. Donc, quand je lance le code dans l'interprétation de la mode, il fonctionne, mais si, comme programme, ça ne marche pas. Je pense que parce que j'ai essayé le même programme sur une machine Windows.
import serial
ser = serial.Serial('COM8', 115200)
ser.write(b'\x4c\x20\x46')
Si je lance le programme d'interprétation de la mode, ou même en mode de débogage avec un point d'arrêt sur la ser.commande d'écriture, il fonctionne. Mais pas s'exécuter comme un programme.
ÉDITÉ POUR AJOUTER PLUS DE:
Il s'avère que l'Arduino a une auto-reset sur les communications en série qui doit être désactivé:
http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection#.UwP_wfldV8E
http://forum.arduino.cc/index.php/topic,28723.0.html
J'ai utilisé un 220 uF condensateur entre la broche RESET et le sol. Qui fonctionne.
Dur d'être mordu par un bug comme ça! - Il encore smarts.
Oui, je suis en cours d'exécution en tant qu'utilisateur même, même dans la même coquille. Si j'utilise l'interpréteur de ligne, il fonctionne. Dans le même shell, si je l'exécuter comme un programme, il ne fonctionne pas, sauf si j'ai l'Arduino en Série d'ouverture de l'écran.
Si vous deviez ajouter un condensateur pour envoyer des données à partir d'un pi à un arduino?
OriginalL'auteur Daanii | 2014-02-18
Vous devez vous connecter pour publier un commentaire.
De l'essayer. Si vous ne pouvez pas l'exécuter en vertu de la veille, ou etc, essayez de terminal en tapant python name.py. Je vous conseille aussi de vérifier les données d'entrée ou écrite à partir de/vers Rpi avec du mastic pour être sûr.
OriginalL'auteur Caglar Sekmen