Pyduino, gränssnitt Arduino med Python via seriell kommunikation (3 / 4 steg)

Steg 3: Arduino skiss för Pyduino



Inorder att styra arduino med python vi måste skicka arduino små bitar av kod en i taget via den seriella anslutningen på vår dator. Hur tolkar arduino då detta budskap? Koden nedan berättar hur.

Kopiera och klistra in koden i din arduino programvara och ladda upp den till din arduino enhet.

När du gör det bör du få en bild som ser ut som ovan. I botten höger i fönstret ser du lite information om där arduino är beläget, utom att information vi behöver det för vår python kod.

/*
* Skiss att styra stiften på Arduino via seriella gränssnittet
*
* Kommandon genomförs med exempel:
*
* - RD13 -> läser Digital ingång på stift 13
* - RA4 - > läser Analog ingång på pin 4
* - WD13:1 -> skriver 1 (hög) till digital utgång stift 13
* - WA6:125 -> skriver 125 till analog utgång pin 6 (PWM)
*/
char drift; Innehar drift (R, W,...)
char läge; Innehar läget (D, A)
int pin_number; Innehar den pin-kod
int digital_value; Håller det digitala värdet
int analog_value; Håller det analoga värdet
int value_to_write; Innehar det värde som vi vill skriva
int wait_for_transmission = 5; Försening i ms för att få den seriella data
void set_pin_mode (int pin_number, char läge) {
/*
* Utför en pinMode() beroende på värdet för parametern
* mode:
* - I: S├ñtter till ingången
* - O: S├ñtter till utgång
* - P: Sätter till INPUT_PULLUP
*/
Växla (läge) {
fallet "I":
pinMode (pin_number, ingång);
bryta;
fallet ' o ':
pinMode (pin_number, produktionen);
bryta;
fallet "P":
pinMode (pin_number, INPUT_PULLUP);
bryta;
}
}
void digital_read (int pin_number) {
/*
* Utför digital läsa på pin_number och returnerar värdet läsa till seriell
* i detta format: D {pin_number}: {värde} \n där värdet kan vara 0 eller 1
*/
digital_value = digitalRead(pin_number);
Serial.Print('D');
Serial.Print(pin_number);
Serial.Print(':');
Serial.println(digital_value); Lägger till en avslutande \n
}
void analog_read (int pin_number) {
/*
* Utför en analog läsa på pin_number och returnerar värdet läsa till seriell
* i detta format: en {pin_number}: {värde} \n där värdet varierar från 0 till 1023
*/
analog_value = analogRead(pin_number);
Serial.Print('A');
Serial.Print(pin_number);
Serial.Print(':');
Serial.println(analog_value); Lägger till en avslutande \n
}
void digital_write (int pin_number, int digital_value) {
/*
* Utför en digital skriva på pin_number med digital_value
* Värdet måste vara 1 eller 0
*/
digitalWrite (pin_number, digital_value);
}
void analog_write (int pin_number, int analog_value) {
/*
* Utför en analog skriva på pin_number med analog_value
* Värdet måste vara intervallet 0 till 255
*/
analogWrite (pin_number, analog_value);
}
void setup() {
Serial.BEGIN(9600); Serial Port på 9600 baud
Serial.setTimeout(100); Istället för standard 1000ms, för
att påskynda Serial.parseInt()
}
void loop() {
Kontrollera om tecken som finns i bufferten
om (Serial.available() > 0) {
operation = Serial.read();
Delay(wait_for_transmission); Om inte försenas, är andra tecknet inte korrekt läsa
läge = Serial.read();
pin_number = Serial.parseInt(); Väntar på en int översändas
om (Serial.read() == ":'){
value_to_write = Serial.parseInt(); Samlar in värdet skrivs
}
Växla (drift) {
"R" i mål: / / läsa drift, e.g. RD12, RA4
om (läge == hade ") {/ / Digital läsa
digital_read(pin_number);
} else om (läge == "A") {/ / Analog Läs
analog_read(pin_number);
} annat {
bryta; Oväntade läge
}
bryta;
fallet "W": / / Skriv drift, e.g. WD3:1, WA8:255
om (läge == hade ") {/ / Digital skriva
digital_write (pin_number, value_to_write);
} else om (läge == "A") {/ / Analog skriva
analog_write (pin_number, value_to_write);
} annat {
bryta; Oväntade läge
}
bryta;
fallet är ": / / Pin-läge, e.g. MI3, MO3, MP3
set_pin_mode (pin_number, läge); Läget innehåller I, O eller P (INPUT, OUTPUT eller PULLUP_INPUT)
bryta;
standard: / / oväntade röding
bryta;
}
}
}

Se Steg
Relaterade Ämnen

Styra Arduino med python based web API (ingen php)

I denna guide kommer jag visa dig hur att kontrollera din arduino enhet från en webbsida! Efteråt, jag ska visa dig hur man styr din arduino från din mobila enhet och även skapa en webb-baserad API för att styra din arduino från din webbsida med andr...

Raspberry pi + Openenergymonitor + PLC Panasonic med Python via Ethernet

Du vill ansluta en Panasonic PLC med Openenergymonitor plattform för övervakning, i detta fall med python inbäddade i en Rasberry Pi som har en webbserver som publicerar Emoncms.PLC Panasonic FPX C14 RSpänning läsa med AFPX modul A21 (2 ingång och 1...

Arduino trådlös seriell kommunikation

det finns många sätt att kommunicera med fjärransluten Arduinos. Jag har funnit att många av dem träffar en något högre prisläge än vad jag skulle vilja. Ethernet-sköldar (och wifi dito?) konsumerar också, många värdefulla hårdvara stift. Jag ska bes...

Plottning realtidsdata från Arduino med Python (matplotlib)

Arduino är fantastisk som en mellanhand mellan din dator och en rå elektronisk krets. Seriella gränssnitt kan du hämta information från sensorer kopplade till din Arduino. (Du kan också skicka information via det seriella gränssnittet ansätta kretsar...

Styra arduino med Blynk via usb

Detta är min andra instructable. I detta instructable jag visar hur man styr LED med Blynk.Blynk är program som ger oss instrumentpanel samt connectivity. som du kan hämta den från google spela store (för Android). & app store (för apple) .using blyn...

Remote Monitor Arduino med iPhone via Wifi / 3G / 4G

Detta instructable beskriver hur du ställer in Arduino att använda MeasViewLite app. I appen kan man nämna de sensorer och enheter som används, så du har fin övervakning utsikt med sensor namn och enheter. Mätningar kan uppdateras bara en gång eller...

Flytta en Motor med hjälp av Arduino och seriell kommunikation

har du någonsin undrat hur robotar flytta? Har du någonsin velat skriva ett program för att kontrollera en robot? I så fall kommer att denna handledning vara en utmärkt start plats att lära sig elektroniska kontroller med Arduino Microcontroller. Du...

Styra Arduino med Blynk [USB] [nybörjare] trådlöst var som helst i världen

här är hur du styr arduino med blynk via USB från var som helst i världen!Steg 1: Här är hur du styr arduino med blynk via USB från var som helst i världen!titta och njut!...

Gränssnitt bult med Arduino: Bult UART

IntroduktionDetta instructable är gjord för bult förbrukaren vem önskan till gränssnitt bult hårdvara enheten med Arduino Uno eller helt enkelt vill experimentera med bult UART.FörutsättningarTillgång till bult IoT workshop och dess framgångsrika slu...

Seriell kommunikation mellan android och arduino via telnet

KRÄVSPython 2.7 programvara med pyserial paketetAndroid mobil telnetprogramArduino programvaraSteg 1: IntroduktionHär, i detta instructable jag beskrev om seriell kommunikation mellan android-telefon och arduino via telnet. För att testa detta, jag a...

Seriell kommunikation mellan android och arduino via laptop bluetooth

Om:Detta instructable handlar om seriell kommunikation mellan android och arduino genom laptop inbyggd Bluetooth. Jag har inte separata Bluetooth-modul. så jag har beslutat att använda min bärbara dator inbyggd Bluetooth för seriell kommunikation.Ste...

Arduino och Matlab: Låt dem prata med seriell kommunikation!

Hej alla!sedan när jag har börjat leka med Arduino, har jag alltid vandrat hur jag kunde göra det tala och interagera med Matlab miljön på ett enkelt och effektivt sätt. Jag stötte på många Instructables och tutorials med Arduino bibliotek och Matlab...

Flight Simulator med Arduino och Python

kontrollera alternativet Flight Simulator i Google Earth med hjälp av en Arduino och Accelerometer.Nästan flyga runt i världen; luta accelerometern framåt, bakåt, vänster och höger att styra planets Pitching och bank.Mål:* Lär dig att skicka seriella...

Arduino Android USB-seriell kommunikation med OTG kabel

Jag har gjort en Arduino baserade natten lampa med hjälp av foto motstånd och problem med det är ljusnivåer var olika från plats till plats, när jag testar jag har använt ett värde som en tröskel för att slå på ljuset och efter att fastställa det i d...

Med hjälp av Arduino och Python till handling/spara data

ett snabbt och enkelt sätt att se (och sedan spara) data tagna med en Arduino till din dator.(Obs: inte den mest robusta metoden, men det fungerar tillräckligt bra)Material:-Arduino (jag använder en Uno)-Dator (jag har en Dell, men det bör verkligen...

Gränssnitt ADC121C med Arduino nano(I2C)

HejBra hälsningar..!!Idag I (Somanshu Choudhary) på uppdrag av Dcube tech ventures kommer för att styra ADC121C enhet genom att använda Arduino, det är en av applikationerna av I2C-protokollet att läsa analog data via Arduino.Steg 1: översikt ADC121C...

Programmera din Arduino med en Android-enhet via Bluetooth

Hej världen, i detta Instructable jag vill visa dig, hur du programmerar din Arduino Uno med din Android-enhet via Bluetooth. Det är mycket enkelt och så billig. Det ger oss också möjlighet att programmera vårt Arduino där allt vi vill över trådlöst...

Styra Arduino med Android-telefon via Bluetooth

Hej gott folk, här kan du lära dig hur man styr Arduino med Android-telefon via Bluetooth. Du kan använda din smartphone som en fjärrkontroll för dig hem belysningssystem eller du kan använda som en drone remote etc.För att göra anslutningen mellan A...

Seriell kommunikation med Arduino

Källa: http://www.theorycircuit.com/serial-communication-with-arduino/Detta projekt visar här hur man kommunicerar med arduino seriell terminal? En ansökan har vi valt fyra lysdioder för att ange riktning.I ett bröd ombord är fyra lysdioder placerade...