arduino
Wie Python in Arduino Uno integriert wird
Suche…
Syntax
-
Serial.begin(baudrate) // Set baud rate (bits per second) for serial data transmission
-
Serial.println(value) // Print data to serial port followed by Carriage Return \r and Newline character \n
-
serial.Serial((port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=False, rtscts=False, write_timeout=None, dsrdtr=False, inter_byte_timeout=None) // Initialize serial port with all parameters
-
serial.readline() // Read serial data which contains Carriage Return \r and Newline character \n
Parameter
Parameter | Einzelheiten |
---|---|
seriell | Das Python-Paket enthält Klassen und Methoden für den Zugriff auf die serielle Schnittstelle |
Zeit | Das Python-Paket enthält zeitbezogene Funktionen |
Bemerkungen
Ich verwende einen Arduino Uno mit Arduino IDE 1.6.9 und Python 2.7.12, die unter Windows 10 ausgeführt werden.
Erste serielle Kommunikation zwischen Arduino und Python
In diesem ersten Beispiel wird eine grundlegende serielle Schreiboperation von einem Arduino-Gerät aus gestartet.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Hello World!");
delay(100);
}
In setup()
stellt die Funktion Serial.begin(9600)
die Baudrate für die serielle Datenkommunikation ein. In diesem Beispiel wird eine Baudrate von 9600 verwendet. Andere Werte können hier gelesen werden: Arduino Serial.begin () - Funktion
In loop()
ist die erste Nachricht, die wir senden möchten, "Hello World!". Diese Nachricht wird mit Serial.println("Hello World!")
Übertragen, da diese Zeichenfolge im ASCII-Format an die serielle Schnittstelle gesendet wird. Am Ende der Nachricht stehen Carriage Return (CR, \r)
und Newline-Zeichen (\n)
. Jedes Mal, wenn das Programm an den seriellen Anschluss druckt, wird eine Verzögerung von 100 Millisekunden verwendet.
Laden Sie dann diese Arduino-Skizze über den COM-Port hoch (denken Sie an diese COM-Port-Nummer, da sie im Python-Programm verwendet wird).
Das Python-Programm, das serielle Daten liest, die von einem Arduino-Gerät gesendet werden, ist unten dargestellt
import serial
import time
ser = serial.Serial('COM8', 9600)
while (1):
print ser.readline()
time.sleep(0.1)
Zunächst sollte das pyserial-Paket importiert werden. Weitere Informationen zum Installieren von pyserial in einer Windows-Umgebung finden Sie in dieser Anleitung: Installieren von Python und pyserial . Anschließend initialisieren wir die serielle Schnittstelle mit der COM-Anschlussnummer und der Baudrate. Die Baudrate muss dieselbe sein wie in Arduino Sketch.
Die empfangene Nachricht wird mit der Funktion readline()
in while-Schleife gedruckt. Eine Verzögerung von 100 Millisekunden wird auch hier wie in Arduino Sketch verwendet. Bitte beachten Sie, dass die Funktion pyserial readline()
ein Zeitlimit beim Öffnen einer seriellen Schnittstelle erfordert (Dokumentation zum System : PySerial ReadLine ).