Arduino Python kommunikation via USB- (4 / 4 steg)
Steg 4: Python till Arduino kommunikation
Detta steg är en smula svårare, eftersom det kräver att vi kan analysera data på den Arduino sidan av saken. För att påskynda saker upp, har jag gått framåt och skrivit en enkel slinga som tar tag i aktuella data från den seriella buffert, och skapar en null-avslutad sträng (C string), som det sedan går tillbaka till seriell anslutning. Du kan använda denna teknik för att skriva en faktisk parser genom att ange din egen packet prefix och suffix, och scanning seriell bufferten för dem, att skapa strängar därmed.
void setup() {
Serial.BEGIN();
}
void loop() {
IF(Serial.available() > 0) {
röding data = Serial.read();
char str [2].
Str [0] = data;
Str [1] = '\0';
Serial.Print(Str);
}
}
Nu kan vi skriva ett enkelt skript som skickar data från Python till Arduino, och sedan skriver ut vad det blir tillbaka.
import serienummer, tid
Arduino = följetong. Serial ("COM1", 115200, timeout =. 1)
Time.Sleep(1) #give anslutningen en sekund att bosätta sig
Arduino.write ("Hej från Python!")
samtidigt sant:
data = arduino.readline()
om data:
skriva ut data.rstrip('\n') #strip ut de nya raderna för nu
# (bättre att göra .read() på lång sikt därför
Det är lätt att se hur denna metod kan utökas ytterligare för att möjliggöra komplexa kommunikation mellan de två enheterna. Jag kommer att täcka ett exempel på detta meddelande i en framtid "kompatibel, där jag kommer att göra en spelkontroll enhet kan arbeta på alla typer av PC spel!