Ich versuche, einige Daten von einem Arduino zu bekommen, und ich kann die Daten nicht entschlüsseln, die von ihm kommen. Ich habe einige Informationen gesucht, und ich fand diese Antworten zum Beispiel:Das Erhalten von Daten und Decodieren gibt seltene Zeichen
Unicode string to String in python
Das Arduino sendet Zahlen (Daten) in einer 8-Bit-Codierung (UTF-8). ich viele verschiedenen Codes versucht, und die besten dekodieren, die ich bekommen habe, ist dies:
Ich bin mit Sublime Text 2 meinen Code zu schreiben, und das ist, was die Konsole zeigt mir, wenn ich print
verwenden . Ich muss die Daten entschlüsseln, damit ich später eine Matplotlib-Figur zeichnen kann.
Dieser letzte Code, den ich mir schrieb die Ausgabe oben gezeigt:
class readData(QWidget):
def __init__(self):
super(readData, self).__init__()
self.resize(300, 100)
self.btn = QPushButton("Close", self)
self.btn.setGeometry(150, 50, 100, 30)
self.btn_2 = QPushButton("Search Data", self)
self.btn_2.setGeometry(50, 50, 100, 30)
self.btn.clicked.connect(self.close)
self.btn_2.clicked.connect(self.searchData)
def searchData(self):
arduinoData = serial.Serial('com7', 9600) #We open port com7
while True:
print "Searching for data"
while(arduinoData.inWaiting() == 0): #We wait for the data
print "There is no data"
print "Reading and converting data"
arduinoString = str(arduinoData.readline())
ardString = unicode(arduinoString, errors = "ignore")
print "This is the data: "
print type(arduinoString)
print ""
print arduinoString
print type(ardString)
def close(self):
#WE CLOSE THE WINDOW AND THE PORT
Ich öffne eine einfache QWidget
zwei Tasten zeigen: eine für Daten die Suche zu starten und zeigen es, und ein anderes, das Fenster zu schließen und der Hafen. Dies ist die einfachen Fenster:
Wie muß ich entschlüsseln (oder kodieren, ich weiß nicht, jetzt wirklich), die Zahlen zu zeigen, die ich brauche? Was mache ich falsch? Ich hoffe ihr könnt mir helfen.
Ich habe gerade darüber lesen. Danke nochmal. Ich habe jetzt ein anderes Problem. Idk, warum es jetzt nichts liest. Es sieht so aus, als ob es nicht mehr funktioniert und nach 'print' ausfällt. Lesen und Konvertieren von Daten '' –
Es scheint, als ob' arduinoData.readline() 'hängen bleibt. Aber es ist schwer zu sagen, warum. Vielleicht hört der Arduino auf, irgendwelche Daten zu senden? –
Es tut mir leid, Pablo, ich wünschte, ich könnte dir dabei helfen. Aber ich habe mich noch nicht mit Arduino serielle Verbindung zu Python gearbeitet. Ich habe Erfahrung mit TCP/UDP-Kommunikation mit PIC-Mikrocontrollern (und Lesen der Daten auf dem PC mit einem Python-Programm) –