Arduino Python kommunikation via USB- (3 / 4 steg)
Steg 3: Ardiuno till Python kommunikation
Kommunikationen mellan Ardunio och Python är något lättare än tvärtom. För det första vill vi en bit kod som kommer att inleda den Ardunio seriell anslutning, och passera ett meddelande längs. Vi kan göra detta med Arduino's Serial.write() funktion, som så:
void setup() {
Serial.BEGIN(115200); Använd samma bithastighet som python sida
}
void loop() {
Serial.println ("Hello world från Ardunio!"); Skriv en sträng
Delay(1000);
}
Denna kod kommer att skriva en "Hello world från Ardunio!"-linje till seriell anslutning en gång per sekund. Nu kommer vi att bygga ett Python-skript klarar ta emot dessa meddelanden, och gör med dem som vi önskar. För det första måste vi upprätta anslutningen som vi gjorde på föregående sida, och sedan kommer vi att skapa en loop som tar tag i den aktuella informationen från strömmen, och skriver det till konsolen.
importera följetong
Arduino = följetong. Serial ("COM1", 115200, timeout =. 1)
samtidigt sant:
data = arduino.readline() [: -2] #the senast lite gör sig på ny-line tecken
om data:
skriva ut data
Observera att i detta fall readline() blockerar, så det kommer att vänta tills en ny linje är helt passerat seriell bufferten. Ganska ofta, readline() kommer att ta en tom rad, så jag kastade i en if uttalande att kontrollera att data som faktiskt finns något. Om du ville ha mer exakta icke-blockerande data högintressant, du kan använda read() och använda Serial.write() (för byte) eller Serial.print() (för ASCII-tecken) på Arduino sida, men du skulle behöva tolka tecken för tecken.