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

Stap 2: Instellen van de Pyduino-bibliotheek


Het stukje code hieronder opslaan in een bestand met de naam pyduino.py

Dit stukje code stuurt een seriële bericht instructie naar onze arduino. De arduino zal vervolgens de instructie interpreteren en genoemde taak uitvoeren. Deze seriële berichten zijn alleen een paar tekens. De pyduino-bibliotheek moet worden gekoppeld met een arduino sketch op de volgende stap om het te laten werken.

Deze bibliotheek ondersteunt alleen een paar van de functies die de arduino heeft.

set_pin_mode (pin_number, modus) == pinMode (leidde, uitvoer);

digital_write (pin_number, digital_value) == digitalWrite (leidde, hoog);

digital_read(pin_number) == digitalRead(pin);

analog_read(pin_number) == analogRead(pin);

analog_write (pin_number, analog_value) == analogWrite (pin, waarde);

Neem een kijkje op de broncode hieronder om te zien hoe het werkt. De python code maakt verbinding met de arduino, wanneer u eerst een instantie van de klasse van de Arduino initialiseren. Afterwords de klasse heeft verschillende functies waar het een klein bericht die we naar onze arduino sturen zal genereren.

 """A library to interface Arduino through serial connection """ import serialclass Arduino(): """ Models an Arduino connection """ def __init__(self, serial_port='/dev/ttyACM0', baud_rate=9600, read_timeout=5): """ Initializes the serial connection to the Arduino board """ self.conn = serial.Serial(serial_port, baud_rate) self.conn.timeout = read_timeout # Timeout for readline() def set_pin_mode(self, pin_number, mode): """ Performs a pinMode() operation on pin_number Internally sends b'M{mode}{pin_number} where mode could be: - I for INPUT - O for OUTPUT - P for INPUT_PULLUP MO13 """ command = (''.join(('M',mode,str(pin_number)))).encode() #print 'set_pin_mode =',command,(''.join(('M',mode,str(pin_number)))) self.conn.write(command) def digital_read(self, pin_number): """ Performs a digital read on pin_number and returns the value (1 or 0) Internally sends b'RD{pin_number}' over the serial connection """ command = (''.join(('RD', str(pin_number)))).encode() self.conn.write(command) line_received = self.conn.readline().decode().strip() header, value = line_received.split(':') # e.g. D13:1 if header == ('D'+ str(pin_number)): # If header matches return int(value) def digital_write(self, pin_number, digital_value): """ Writes the digital_value on pin_number Internally sends b'WD{pin_number}:{digital_value}' over the serial connection """ command = (''.join(('WD', str(pin_number), ':', str(digital_value)))).encode() self.conn.write(command) def analog_read(self, pin_number): """ Performs an analog read on pin_number and returns the value (0 to 1023) Internally sends b'RA{pin_number}' over the serial connection """ command = (''.join(('RA', str(pin_number)))).encode() self.conn.write(command) line_received = self.conn.readline().decode().strip() header, value = line_received.split(':') # e.g. A4:1 if header == ('A'+ str(pin_number)): # If header matches return int(value) def analog_write(self, pin_number, analog_value): """ Writes the analog value (0 to 255) on pin_number Internally sends b'WA{pin_number}:{analog_value}' over the serial connection """ command = (''.join(('WA', str(pin_number), ':', str(analog_value)))).encode() self.conn.write(command) def close(self): """ To ensure we are properly closing our connection to the Arduino device. """ self.conn.close() print 'Connection to Arduino closed' 

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: