Raspberry PI in GPIO nožic: Krmiljenje LED z Bash in Python

V prejšnjem delovnem mestu, smo videli so bili GPIO nožic in nekaj primerov praktične aplikacije, Danes se bomo osredotočili na delovanje univerzalni zatiči, in naučiti jih nadzirajo z sestavljač 's naročila Bash in z Python.

proto&pod vodstvom

Uporabi na LED, odpornost na 330 Ohm, žice, in ena Maketa, ali spajkanje in spajkanje železa.

Potrebovali boste tudi naše Malina že Raspbian pre-umestiti, Če je zadeva ne, Lahko vidite, kako to storiti naslednjih povezavo od na Imenik.

Jahanje vezje

Lahko spajkanje neposredno na LED žice in odpornost kot boste videli v naslednjih diagram, Čeprav je veliko rajši rabiti a Maketa; Je tudi zelo pomembno, da si tudi na zalizci, kot v na “diagonalno” notranjost je dioda LED združuje dve nožice za namestitev vezja, že da če ga vpne nazaj ne bo na vrsti.

Vezje, ki so potrebne za krmiljenje vžiga LED dioda.

Vezje, ki so potrebne za krmiljenje moč LED dioda.

Bom enega Maketa, in priporočam, da uporabite na, Obstaja nekaj od približno 4 € in nam omogočajo, da znova uporabite komponente znova in znova, ne da bi jih spajate, notranje povezave enega Maketa v glavnem so to.

protocon

Maketa povezave.

Povezave med na Maketa in Malina morajo biti v diagramu, na GPIO Lahko pridete vprašanje 3,3V dodeli logično visoko vrednost.

Vezij na Maketa.

Vezje, ki so potrebne za krmiljenje moč LED dioda.

Zdravo svet GPIO z Bash

Enkrat nameščen vezje, Bomo storiti, kar sem klic a “Zdravo svet GPIO” v Bash izvaja naslednje scenarij.

#!/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

Če želite izklopiti LED, smo lahko storite z naslednjimi scenarij.

#!/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 

V bistvu kaj počnemo z Bash je tvoriti a Imenik hierarhije v /razred/sys/gpio in dodajanje vsebine za vsako datoteko, ki bo obravnavana kot a spremenljivka.

Hierarhija

Hierarhije v imeniku /sys/class/gpio.

Uvod v Python

Smo že dokazali, da naše vezje deluje pravilno in je LED je bil odpuščen, da bi visoka vrednost spremenljivke, Sedaj poglejmo, kako smo lahko stori enako, v Python, To nam omogoča, da urnik naše spletne aplikacije za nadzor vhodov in izhodov za na GPIO iz naprave.

funcweb

Delovanje z uporabo spletne aplikacije.

Preden nadaljujete, Priporočam, da si ogledate poglavja je 1 da je 10 od Ta video tutorial od Python strugi YouTube od Kodo, ki olajša, Če kot da nimam veliko idejo programiranja v Python, To lahko pridejo do vas zelo dobro, da vas seznanijo s šifro, da bomo videli več naprej in prišel razumem.

Različne Pinouts v GPIO (BCM in odbor)

Obstajata dve vrsti pin številčenja, fizično številčenja ali način ODBOR, in oštevilčenje čip Na široko posejati SoC jih nadzoruje, Bomo za uporabo v pinout načinu BCM, ampak poglejmo razliko.

BCMvsBOARD

Zdravo svet GPIO z Python

Ko gledaš video posnetke, in različnih pinouts že razumeli osnovne kode, da bi se “Zdravo svet GPIO” v Python.

Najprej bomo prenesti vse, kar potrebujete za nadzor na GPIO z Python, v Raspbian so že vgrajeni Python in knjižnice GPIO, Ampak bomo dodatne paket in posodabljanje sistema za najnovejšo različico.

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

Modernizirati nekoč, Poglejmo, kako se obrniti na na LED z naslednjim scenarij, Pokličete lahko na primer enciende.py, in lahko vodimo kot trš z ukazom “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 tem bomo lahko izklopite, na primer klic 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() 

In s tem vas pokličemo parpadea.py, Mi bo utripa v 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() 

Če ne uvozite v knjižnico “čas“, ne morem dodati na “spanja“, in če ne dodate na “spanja” sekunde med tu in tam, To je čisto možno, da bo naše oko ne zaznava utripa.

To je zelo pomembno, da ne dodate posebne znake v na skripte v Python, iz tega razloga komentarji nimajo poudarki, Ker je dal znak napake neveljavne.

V naslednji vpis Bomo videli, kako narediti preprost Spletna aplikacija nam omogočajo, da izvajanje teh skripte, da bi lahko nadzor iz katere koli naprave z brskalnikom Web.

Če želite lahko sledite mi na Cvrkutati, Facebook, Google +, LinkedIn, ali delite z gumbi pod to objavo, Če imate kakršnakoli vprašanja ali predloge prosim ne oklevajte in pripombe.

Pomagajte nam, da dosežejo več bralcev Share on LinkedIn
LinkedIn
Share on Facebook
Facebook
Tweet about this on Twitter
Cvrkutati
Share on Google+
Google +
Email this to someone
e-pošta

16 misli na"Raspberry PI in GPIO nožic: Krmiljenje LED z Bash in Python

  1. Imam vprašanje od newbie…
    ker odpornost 330 Ohm in kdaj uporabljati?

    Vedno uporabljamo za 330 Ko delamo z RPI, ali se lahko spreminja?

    Pozdrav in odličen blog!!!

    • Zdravo Peter,

      Načeloma naj bi delovala, Napaka je le dovoljenja za nekatere ljudi, vendar teče iz spletnega programa, kot uporabnik www-data privzeto ni več je teh dovoljenj.

      Samo v primeru začeti tekmovanje v teku “sudo chmod + x script.py” da bi bilo izvedljivo, Čeprav ne tako bi moralo delovati samo iz terminala; Mi lahko naučili, če vrne napako v terminal prost dostop scenarij??

      Najlepša hvala za vaš komentar.

  2. zdravo,
    Jaz sem poskušal obrniti na LED z python po vodnik vzorcev, ampak to mi daje to napako, ko sem prost kode je:

    uvoz RPi.GPIO kot GPIO

    Napaka:
    -bash: uvoz: vrstni red ni bilo mogoče najti

    Ali veste, zakaj je to napaka?

    Hvala in čestitke na blog služi mi veliko!

    • Nano Hello, Dobrodošli spet.

      Vrstico Omenjate je izjavo, ki je pogosto vključena v začetku scenarij povedati terminal, kjer tolmač, ki odreja morate prenesti, v tem primeru, Python; za bash bi takole:

      #!/Bin/bash

      V tem primeru deluje z izjavo in brez njega saj ima datoteka končnico .py, ampak to je dobra praksa, da vedno dodate.

      Upam, da ste počistili svoje dvome, vuelve por aquí cuando quieras y muchas gracias por tu comentario 🙂

  3. hvala, na vajah je odlično, vendar imam dvom:

    Pustim teh napak:

    vrstica 12 uvoz:ni mogoče najti
    vrstica 14 Sintaksna napaka: Word nepričakovano (pričakoval “)”)

    Koda je:

    #GPIO-setup.py
    ### ZAČELI INIT INFO
    # Zagotavlja: GPIO-setup.ch
    # Zahteva začetek: $remote_fs $syslog
    # Zahteva-Stop: $remote_fs $syslog
    # Privzeto-Start: 2 3 4 5
    # Privzeta Stop: 0 1 6
    # Povzetek: Namestitveni način gpio
    # Opis: Nastavitev gpio 22/27/17/4 način
    ### KONCU INIT INFO

    uvoz RPi.GPIO kot GPIO
    #Definiramo način BCM
    GPIO.setmode(GPIO. BCM)
    #Zdaj smo opredeliti pin GPIO kot izhod
    GPIO.setup(4, GPIO. VEN)
    GPIO.setup(17, GPIO. VEN)
    GPIO.setup(27, GPIO. VEN)
    GPIO.setup(22, GPIO. VEN)

    Kakšno idejo???

    • Pozdravljeni Leoctam, Hvala za komentarja.

      Prvi linij daje razumeti, da poskušate ustvariti sistem daemon, vendar so vodeni kaj je ne bo v račun.

      po drugi strani, kodo, ki se uporabljajo za interakcijo z je GPIO je Python, z kaj moraš ostati v .py skript, ki bodo sklicevati iz vaše demon sistema, ali uporabljate Bash narediti tako kot v prvem primeru, v tem tutorial.

pusti odgovor