Pyduino, Interfacing Arduino met Python via seriële communicatie (3 / 4 stap)

Stap 3: Schets van de Arduino voor Pyduino


Inorder te controleren van de arduino met python moeten we de arduino kleine stukjes code één per keer verzenden via de seriële poort op onze computer. Hoe interpreteert de arduino die boodschap dan? De onderstaande code vertelt ons hoe.

Kopieer en plak de code in de arduino software en uploaden naar uw apparaat arduino.

Wanneer je dat doet moet je een afbeelding die ziet zoals hierboven eruit. Helemaal onderaan rechts van het venster ziet u wat informatie over waar de arduino gevestigd, behalve is dat informatie we het voor onze python code moeten.

 /* * Sketch to control the pins of Arduino via serial interface * * Commands implemented with examples: * * - RD13 -> Reads the Digital input at pin 13 * - RA4 - > Reads the Analog input at pin 4 * - WD13:1 -> Writes 1 (HIGH) to digital output pin 13 * - WA6:125 -> Writes 125 to analog output pin 6 (PWM) */char operation; // Holds operation (R, W, ...) char mode; // Holds the mode (D, A) int pin_number; // Holds the pin number int digital_value; // Holds the digital value int analog_value; // Holds the analog value int value_to_write; // Holds the value that we want to write int wait_for_transmission = 5; // Delay in ms in order to receive the serial datavoid set_pin_mode(int pin_number, char mode){ /* * Performs a pinMode() operation depending on the value of the parameter * mode : * - I: Sets the mode to INPUT * - O: Sets the mode to OUTPUT * - P: Sets the mode to INPUT_PULLUP */ switch (mode){ case 'I': pinMode(pin_number, INPUT); break; case 'O': pinMode(pin_number, OUTPUT); break; case 'P': pinMode(pin_number, INPUT_PULLUP); break; } }void digital_read(int pin_number){ /* * Performs a digital read on pin_number and returns the value read to serial * in this format: D{pin_number}:{value}\n where value can be 0 or 1 */ digital_value = digitalRead(pin_number); Serial.print('D'); Serial.print(pin_number); Serial.print(':'); Serial.println(digital_value); // Adds a trailing \n }void analog_read(int pin_number){ /* * Performs an analog read on pin_number and returns the value read to serial * in this format: A{pin_number}:{value}\n where value ranges from 0 to 1023 */ analog_value = analogRead(pin_number); Serial.print('A'); Serial.print(pin_number); Serial.print(':'); Serial.println(analog_value); // Adds a trailing \n }void digital_write(int pin_number, int digital_value){ /* * Performs a digital write on pin_number with the digital_value * The value must be 1 or 0 */ digitalWrite(pin_number, digital_value); }void analog_write(int pin_number, int analog_value){ /* * Performs an analog write on pin_number with the analog_value * The value must be range from 0 to 255 */ analogWrite(pin_number, analog_value); }void setup() { Serial.begin(9600); // Serial Port at 9600 baud Serial.setTimeout(100); // Instead of the default 1000ms, in order // to speed up the Serial.parseInt() }void loop() { // Check if characters available in the buffer if (Serial.available() > 0) { operation = Serial.read(); delay(wait_for_transmission); // If not delayed, second character is not correctly read mode = Serial.read(); pin_number = Serial.parseInt(); // Waits for an int to be transmitted if (Serial.read()==':'){ value_to_write = Serial.parseInt(); // Collects the value to be written } switch (operation){ case 'R': // Read operation, e.g. RD12, RA4 if (mode == 'D'){ // Digital read digital_read(pin_number); } else if (mode == 'A'){ // Analog read analog_read(pin_number); } else { break; // Unexpected mode } break; case 'W': // Write operation, e.g. WD3:1, WA8:255 if (mode == 'D'){ // Digital write digital_write(pin_number, value_to_write); } else if (mode == 'A'){ // Analog write analog_write(pin_number, value_to_write); } else { break; // Unexpected mode } break; case 'M': // Pin mode, e.g. MI3, MO3, MP3 set_pin_mode(pin_number, mode); // Mode contains I, O or P (INPUT, OUTPUT or PULLUP_INPUT) break; default: // Unexpected char break; } } } 

Gerelateerde Artikelen

Beheren van Arduino met python gebaseerd web API (geen php)

Beheren van Arduino met python gebaseerd web API (geen php)

In deze handleiding zal ik u tonen hoe om uw apparaat arduino van een webpagina te controleren! Daarna zal ik u tonen hoe om te controleren uw arduino vanaf uw mobiele apparaat en zelfs het maken van een web-gebaseerde API voor het beheersen van je a
Arduino en Matlab: laat ze praten met behulp van seriële communicatie!

Arduino en Matlab: laat ze praten met behulp van seriële communicatie!

Hallo iedereen!Sinds toen heb ik begon te spelen met de Arduino, heb ik altijd geweest zwerven hoe ik kon maken het praten en communiceren met de Matlab-omgeving op een gemakkelijke en effectieve manier. Ik botste tegen vele Instructables en tutorial
Android en Arduino met Bluetooth via Porta app!

Android en Arduino met Bluetooth via Porta app!

DoelIn deze tutorial zal ik laten zien hoe is super eenvoudig gegevens uitwisselen tussen Android en Arduino met behulp van de app Porta.Zoals u ziet, is het verschil groot gebruik van Porta widgets!Nu echt u uw dagelijkse Arduino project zonder pijn
Raspberry pi + Openenergymonitor + PLC Panasonic met Python via Ethernet

Raspberry pi + Openenergymonitor + PLC Panasonic met Python via Ethernet

U wilt een Panasonic PLC verbinden met Openenergymonitor waarnemingsplatform, in dit geval met behulp van python ingebed in een Rasberry Pi heeft een webserver die Emoncms publiceert.PLC Panasonic FPX C14 RSpanning lezen met AFPX module A21 (2 Input
Externe Monitor Arduino met iPhone via 3G / 4G/Wifi

Externe Monitor Arduino met iPhone via 3G / 4G/Wifi

Dit instructable beschrijving van het instellen van de Arduino te gebruiken MeasViewLite app. In de app is het mogelijk om de naam van de sensoren en de eenheden die worden gebruikt, dus je zult moeten toezicht uitzicht met de namen van de sensor en
Interfacing c# met Arduino

Interfacing c# met Arduino

Dit is mijn eerste eenvoudige programma controle arduino via interfacing cSharp met behulp van seriële communicatie.Stap 1: voorbereidingEerst, moet u hebben:1. Arduino2. geleid3. weerstand.Stap 2: CodeSluit je Arduino aan brood aan boord, en zet de
Arduino aangedreven door uw SmartPhone (met behulp van seriële) - deel 1 - geluid en trillingen acties

Arduino aangedreven door uw SmartPhone (met behulp van seriële) - deel 1 - geluid en trillingen acties

Welkom bij het eerste deel van deze serie. In deze nemen serie die zullen we proberen zo veel als we kunnen uit je smartphone (android momenteel) aan uw microcontroller met seriële kabel (OTG kabel).In dit deel zullen we uitleggen hoe je kan spelen e
Flight Simulator met Arduino en Python

Flight Simulator met Arduino en Python

de bedieningsmogelijkheden Flight Simulator van Google Earth met behulp van een Arduino en versnellingsmeter.Vliegen vrijwel over de hele wereld; kantelen van de versnellingsmeter, vooruit, terug, links en rechts voor het besturen van het vliegtuig P
Arduino - besturingselement gelijkstroommotor via Bluetooth

Arduino - besturingselement gelijkstroommotor via Bluetooth

Hi guys,In dit project zullen wij de controle van een DC-motor met een smartphone via bluetooth. Dit project is geweldig om meer te leren over:DC - motor-Interfacing Arduino met uw smartphone-Bluetooth-module-L293Du kunt mijn website bezoeken voor me
Controle van de Arduino met Blynk [USB] [beginners] Wireless overal in de wereld

Controle van de Arduino met Blynk [USB] [beginners] Wireless overal in de wereld

Hier is hoe u kunt besturen arduino met blynk via USB van overal in de wereld!Stap 1: Hier is hoe u kunt besturen arduino met blynk via USB van overal in de wereld!Bekijk en geniet!
Met behulp van seriële UART 16 × 2 LCD op arduino

Met behulp van seriële UART 16 × 2 LCD op arduino

Het seriële UART 16 × 2 LCD-scherm kunt u een parallelle gebaseerde LCDvia een één-draads seriële interface. De seriële LCD zorgt voor alle opdrachten van de HD44780 waardoor naadloze integratie met alle micro die via een breed scala van TTL seriële
Arduino Android USB seriële communicatie met OTG kabel

Arduino Android USB seriële communicatie met OTG kabel

Ik heb een Arduino gebaseerd nacht lamp met behulp van foto weerstand en probleem met thats lichtniveaus van plaats tot plaats verschilde, wanneer ik aan het testen ben ik heb gebruikt een waarde als drempel om over te schakelen op het licht en na va
HTML-RGB schuifregelaar voor Arduino via seriële

HTML-RGB schuifregelaar voor Arduino via seriële

Hallo weer!Ik besloot te schrijven meer tutorials over mijn HTML/CSS & Arduino project genaamd Involt. Voor meer details, wat is het controleren van de website van het project.In dit instructable zal ik laten zien thij gemakkelijkste en ongewoon mani
Seriële communicatie tussen android en arduino via laptop bluetooth

Seriële communicatie tussen android en arduino via laptop bluetooth

Over:Dit instructable is over seriële communicatie tussen android en arduino via laptop ingebouwde Bluetooth. Ik heb geen aparte Bluetooth module. dus ik besloten heb om mijn laptop ingebouwde te gebruiken Bluetooth voor seriële communicatie.Stap 1: