arduino
Hur Python integreras med Arduino Uno
Sök…
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
parametrar
Parameter | detaljer |
---|---|
serie- | Python-paketet innehåller klasser och metoder för att komma åt seriell port |
tid | Python-paketet innehåller tidsrelaterade funktioner |
Anmärkningar
Jag använder en Arduino Uno med Arduino IDE 1.6.9 och Python 2.7.12 som körs i Windows 10.
Första seriekommunikation mellan Arduino och Python
I detta allra första exempel startas en grundläggande seriell skrivoperation från en Arduino-enhet.
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);
}
I setup()
Serial.begin(9600)
funktionen Serial.begin(9600)
in baudhastigheten för seriell datakommunikation. I detta exempel används en baudhastighet av 9600. Andra värden kan läsas här: Arduino Serial.begin () -funktion
I loop()
är det första meddelandet vi vill skicka "Hello World!". Det här meddelandet överförs med Serial.println("Hello World!")
det kommer att skicka den här strängen till serieport i ASCII-format. I slutet av meddelandet finns det Carriage Return (CR, \r)
och Newline-tecken (\n)
. Dessutom används en fördröjning på 100 millisekunder varje gång programmet skriver ut till serieporten.
Ladda sedan upp denna Arduino-skiss via COM-porten (kom ihåg detta COM-portnummer eftersom det kommer att användas i Python-programmet).
Nedan visas Python-programmet som läser seriedata som skickats från Arduino-enheten:
import serial
import time
ser = serial.Serial('COM8', 9600)
while (1):
print ser.readline()
time.sleep(0.1)
Först ska pyserialpaket importeras. För mer information om installation av pyserial i Windows-miljö, se denna instruktion: Installera Python och pyserial . Sedan initierar vi den seriella porten med COM-portnummer och baud rate. Baudfrekvensen måste vara densamma som används i Arduino skiss.
Mottaget meddelande kommer att skrivas ut medan slingan används med readline()
. En fördröjning på 100 millisekunder används också här samma som i Arduino skiss. Observera att funktionen pyserial readline()
kräver en timeout när man öppnar en seriell port (pyserial dokumentation: PySerial ReadLine ).