Malina PI i GPIO igle: Kontroliranje LED sa Bash i Python

U prethodnom post smo vidjeli su GPIO igle i neki primjeri praktične primjene, Danas ćemo se usredotočiti na rad opće namjene igle, i naučiti kako ih kontrolirati s Prevoditelj naredbe Paša i s Python.

proto&vodio

Će se koristiti za LED, otpor od 330 ohma, žica, i jedan Maketa, ili lemljenje i lemilo.

Također trebamo naš Malina imaju već Raspbian unaprijed instaliran, Ako slučaj nije, Možete vidjeti kako se radi sljedeće povezati from u Imenik.

Jahanje u krugu

Mogu lemiti izravno na LED žice i otpora kao što ćete vidjeti u sljedećem dijagram, Iako je mnogo bolje koristiti u Maketa; Također je vrlo važno da pogledate na zaliscima, kao u u “dijagonalni” unutar je dioda LED kombinirajući dvije igle za ugradnju u krug, već to ako ţelite ga unatrag ne uključuje.

Sklop je potrebno za kontrolu paljenja LED dioda.

Sklop je potrebno za kontrolu snage LED dioda.

Ja ću koristiti jedan Maketa, Preporučujem da koristite za, Postoje neki od oko 4 € i oni nam omogućuju da ponovno korištenje komponenti iznova bez da ih lemljenje, unutarnje veze jednog Maketa Oni imaju tendenciju da se sljedeće.

protocon

Maketa veze.

Veze između s Maketa i na Malina moraju biti kao na sljedećoj slici, na GPIO Može doći do problema 3,3V dodijeliti logička visoke vrijednosti.

Kolo na maketa.

Sklop je potrebno za kontrolu snage LED dioda.

Pozdrav svijet GPIO sa Bash

Jednom postavljeni sklop, Mi ćemo učiniti ono što ja nazivam je “Pozdrav svijetu GPIO” u Paša trčanje slijedeće skripta.

#!/bin/bash
#Exportamos el puerto GPIO 17 
echo 17 > /sys/class/gpio/export 
#Lo configuramos como salida 
echo out > /sys/class/gpio/gpio17/direction 
#Encendemos el LED asignandole 1 como valor lógico
echo 1 > /sys/class/gpio/gpio17/value

Isključivanje LED, možemo to učiniti sa sljedećim skripta.

#!/bin/bash
#Apagamos el LED asignandole 0 como valor lógico
echo 0 > /sys/class/gpio/gpio17/value  
#Eliminamos la entrada del puerto GPIO 17 
echo 17 > /sys/class/gpio/unexport 

Uglavnom radimo s Paša je stvoriti u Imenik hijerarhija u /sys/class/gpio i dodavanje sadržaja za svaku datoteku koja će se tretirati kao je Varijabla.

Hijerarhija

Hijerarhija unutar /sys/class/gpio Imenik.

Uvod u Python

Već su dokazali da naš sklop ispravno radi i na LED je to otkaz dati logičan visoke vrijednosti varijable, Sada da vidimo kako mi može učiniti isto Python, To će nam omogućiti da raspored naših web aplikacija za kontrolu ulaza i izlaza u GPIO s bilo kojeg uređaja.

funcweb

Rad pomoću web-aplikacije.

Prije nastavka, Ja preporučiti taj te vidjeti poglavlja u 1 da je 10 od Ovaj video tutorial iz Python kanal od Mladost od Kod omogućio, Ako i nemam puno ideja za programiranje u Python, Dolazi i do vas jako dobro upoznati te s kodom koji ćemo vidjeti više naprijed i dođi da ga razumije.

Različite Pinouts GPIO (BCM-a i odbor)

Postoje dvije vrste pin brojeva, fizički numeriranje ili način ODBORA, numeriranje čip SoC Broadcom kontrolirati ih, Mi ćemo koristiti u dekadskog u načinu BCM-A, Ali pogledajmo razliku.

BCMvsBOARD

Pozdrav svijet GPIO sa Python

Nakon gledanja video, i različitih pinouts već mogu razumjeti osnovni kod kako bi se “Pozdrav svijetu GPIO” u Python.

Prvo ćemo sve što je potrebno preuzeti kontrolu u GPIO s Python, u Raspbian Oni su već instalirani Python i knjižnice GPIO, Ali mi ćemo instalirati dodatni paket i ažurirati sustav imati najnoviju verziju.

usuario@maquina:~$ sudo apt-get install python-dev
usuario@maquina:~$ sudo apt-get install python-rpi.gpio
usuario@maquina:~$ sudo apt-get update && sudo apt-get upgrade

Ažurira jednom, Da vidimo kako se uključiti u LED sa sljedećim skripta, Na primjer možete nazvati enciende.py, i možemo ga pokrenuti kao root naredbom “sudo Python enciende.py”.

#!usr/bin/env/ python
#enciende.py
#importamos la libreria GPIO
import RPi.GPIO as GPIO 
#Definimos el modo BCM 
GPIO.setmode(GPIO.BCM) 
#Ahora definimos el pin GPIO 17 como salida
GPIO.setup(17, GPIO.OUT) 
#Y le damos un valor logico alto para encender el LED
GPIO.output(17, GPIO.HIGH) 

S ovim smo možete okret Internet od, na primjer nazvati apaga.py

#!usr/bin/env/ python
#apaga.py
#importamos la libreria GPIO
import RPi.GPIO as GPIO 
#Definimos el modo BCM
GPIO.setmode(GPIO.BCM)  
#Ahora definimos el pin GPIO 17 como salida
GPIO.setup(17, GPIO.OUT) 
#Y le damos un valor logico bajo para apagar el LED
GPIO.output(17, GPIO.LOW) 
#Finalmente liberamos todos los pines GPIO, es decir, los desconfiguramos)
GPIO.cleanup() 

I ovo će vas zovemo parpadea.py, Učinit će treptati na LED.

#!usr/bin/env/ python
#parpadea.py
#importamos la libreria GPIO
import RPi.GPIO as GPIO 
#Importamos la libreria time
import time 
#Definimos el modo BCM 
GPIO.setmode(GPIO.BCM) 
#Ahora definimos el pin GPIO 17 como salida
GPIO.setup(17, GPIO.OUT) 
#Queremos que lo que contenga el for i in range se repita 5 veces
for i in range(0,5): 
        #Asignamos valor logico alto para encenderlo
               GPIO.output(17, GPIO.HIGH) 
        #Esperamos un segundo
               time.sleep(1)
        #Asignamos valor logico bajo para apagarlo
         GPIO.output(17, GPIO.LOW) 
        #Esperamos un segundo
         time.sleep(1) 
#Una vez termina las 5 repeticiones, liberamos el pin GPIO utilizado; en este caso el 17
GPIO.cleanup() 

Ako uvezete u biblioteku “vrijeme“, nije moguće dodati na “sna“, i ako ne dodati na “sna” sekunde između i, To je sasvim moguće da naše oči opaziti treperenje.

To je vrlo važno ne dodavati posebne znakove u u skripte u Python, iz tog razloga komentare ne nose naglaske, Budući da ga je dao znak pogreške nije valjana.

U sljedećoj stavci Vidjet ćemo kako to napraviti jednostavan Web-aplikacije Dopustite nam da izvršavanje tih skripte, biti u mogućnosti upravljati s bilo kojeg uređaja s preglednikom Web.

Ako želite možete slijedite me na Twitter, Facebook, Google +, LinkedIn, ili podijeliti s gumbima ispod ove publikacije, Ako imate bilo kakvih pitanja ili sugestija slobodno komentirati.

Pomažu nam do više čitatelja Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

16 misli na"Malina PI i GPIO igle: Kontroliranje LED sa Bash i Python

  1. Imam pitanje od newbie…
    jer se otpor 330 ohma i kad se koristi?

    Uvijek se koristi 330 Kada radimo s RPI, ili se mogu razlikovati?

    Pozdrav i odličan blog!!!

    • Bok Petar,

      U principu to bi trebalo raditi, greška je samo dao dozvole za neki ljudi ali izvodi iz web-aplikacije, kao korisnik www-data zadano više nema te dozvole.

      Samo u slučaju pokušajte trčanje “sudo chmod + x script.py” kako bi to executable, Iako ne tako to rade samo s terminala; Možeš li me naučiti da vraća pogrešku u terminalu pokrenite skriptu??

      Hvala vrlo velik dio za svoj komentar.

  2. Pozdrav,
    Pokušavam uključiti LED kroz python nakon vodič uzoraka ali Internet popuštanje mene slijedeće greška našto ja trčanje kod to:

    uvesti RPi.GPIO kao GPIO

    Pogreška:
    -Paša: Uvoz: redoslijed nije pronađen

    Zašto je ovaj greška??

    Hvala i čestitke na blog služi mi puno!

    • Nano Hello, Dobro došli.

      Linija te spomenuti je izjava koja je često uključena u početku skripte reći terminala gdje trebate tumača koji naručuje proći, u ovom slučaju, Python; bash bi kako slijedi:

      #!/bin/bash

      U ovom slučaju, Internet utvrde sa deklaracija i bez toga jer datoteka ima ekstenziju .py, Ali to je dobra praksa uvijek dodati.

      Nadam se da ste očistili svoje sumnje, vuelve por aquí cuando quieras y muchas gracias por tu comentario 🙂

  3. Hvala ti, tutorial je odličan, Ali imam sumnje:

    Odlazim sljedeće pogreške:

    linija 12 Uvoz:nije pronađen
    linija 14 Pogreška sintakse: Word neočekivano (Očekuje se “)”)

    Moj broj je:

    #GPIO-setup.py
    ### POČETI INIT INFO
    # Pruža: GPIO-setup.ch
    # Zahtijeva pokretanje: $remote_fs $syslog
    # Obavezno zaustaviti: $remote_fs $syslog
    # Zadani početak: 2 3 4 5
    # Propust-Stop: 0 1 6
    # Kratki opis: Postavljanje načina rada gpio
    # Opis: Postava gpio 22/27/17/4 van način
    ### KRAJU INIT INFO

    uvesti RPi.GPIO kao GPIO
    #Definira način upravljanja kontinuitetom Poslovanja
    GPIO.setmode(GPIO. BCM-A)
    #Možemo sada definirati GPIO izlaznih pinova
    GPIO.setup(4, GPIO. VANJSKA STRANA)
    GPIO.setup(17, GPIO. VANJSKA STRANA)
    GPIO.setup(27, GPIO. VANJSKA STRANA)
    GPIO.setup(22, GPIO. VANJSKA STRANA)

    Bilo koji ideja???

    • Pozdrav Leoctam, Hvala za komentiranje.

      U prvim redovima dati razumjeti da pokušavate stvoriti daemon programu sustava, Ali oni su komentirali tako da će biti uzeti u obzir.

      s druge strane, Šifra koju koristite za interakciju s GPIO je Python, tako mora ostati u original .py koji će se pozivati iz sustava daemon, ili koristite Bash to kao prvi primjer u ovom vodiču.

ostavi odgovor