Python + Arduino mit Mac OS X
Ich habe Probleme mit der Kommunikation zwischen meinem Arduino und Python. Ich habe ein paar Fragen, die ich hoffe beantwortet werden kann, sondern zuerst und vor allem, ich muss einfach eine Verbindung herzustellen.
Für Windows, offenbar die Lösung ist sehr praktisch, aber auf Mac OS X, die ich anscheinend brauche, um Zugriff auf einige system-Dateien (die ich bin nicht vertraut mit). Die Python-Dokumentation Punkte die mich zu dem bestimmten post Re: Kann Python-do-serielle Schnittstelle-Zeug?, aber ich glaube nicht, dass es ganz dient meine Zwecke.
An dieser Stelle versuchen, bloß um Sie zu sehen Beweise für die Kommunikation, die ich ausprobiert habe.
Arduino:
void setup(){
Serial.begin(9600);
}
void loop()
{
int d = Serial.read();
Serial.println(d,BYTE);
}
Python: (ziemlich viel von den genannten link...)
#!usr/bin/python
import os, fcntl, termios, sys
serialPath = '/dev/tty.usbmodemfa141'
ser= os.open(serialPath, 0)
[iflag, oflag, cflag, lflag, ispeed, ospeed, cc] = range(7)
settings = termios.tcgetattr(ser)
settings[ospeed] = termios.B9600
settings[ispeed] = termios.B0
print 2
Belegt hier, ich verstehe wirklich nicht, was die Module, die ich bin, importieren tut genau das. Beim Lesen der Dokumentation sehe ich keine offensichtliche Möglichkeit zum senden von Daten über die serielle. So bin ich Recht erraten, dass, was immer der output dieses Programms ist es, gesendet wird über automatisch?
InformationsquelleAutor danem | 2011-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die einfachste Art der Kommunikation in Python mit dem Arduino (oder jeder mikrocontroller mit serieller) ist mit pySerial.
Hier ein Beispiel:
PS: Wenn Sie mit Python 3, sollten Sie senden bytes statt strings (
b'text'
).Ich hatte den Eindruck, dass pyserial funktioniert nicht auf osx... Bin ich Irre?
Es funktioniert auf OSX. Ich hatte nur Probleme mit pyserial unter Windows 64-bit
Oh, okay. Heh. Ich habe es gerade installiert und scheint zu funktionieren gut... Was ist das dann? Nur aus Neugier... docs.python.org/faq/... war ich zunächst verwenden, pyserial, aber ich dachte, dass dieser sagte, es würde nicht funktionieren, für osx.... D:
Ich weiß es nicht, aber OSX ist ein BSD-basiertes system, so dass Sie nicht haben, um sorgen über die zweite url.
InformationsquelleAutor JBernardo
Habe ich dies getan, mit Hilfe von Perl unter Linux, aber habe keine Erfahrung mit Python oder Mac. Ich kann Ihnen ein paar Hinweise zu suchen.
Erste, in Ihrem Python-Programm, das Sie benötigen, um das richtige Gerät-Adresse für Ihr USB-Anschluss in
serialPath
da sonst Ihre Daten nicht mehr an den Arduino. In Linux habe ich ein lsusb nachdem ich mit dem board und fand den Namen des Geräts aus.In Ihrem Arduino-code ändern zu sein
als sonst werden Sie dumping einen Haufen -1s, wenn keine Daten vorhanden sind.
InformationsquelleAutor Rasika