Malinová PI a GPIO kolíky: Ovládanie LED s Bash a Python

V predchádzajúci príspevok sme videli boli GPIO kolíkov a niekoľko príkladov z praktickej aplikácie, Dnes sa zameriame na prevádzku general-purpose kolíky, a naučiť sa ovládať ich interpreter príkazov Bash a s Python.

Proto&viedol

Používať LED, odporom 330 Ohm, drôt, a jeden Doštičku, alebo spájkovanie a spájkovanie železo.

Budeme tiež potrebovať našu MalinaRaspbian predinštalovaný, Ak váš prípad nie je, Môžete vidieť, ako to urobiť v nasledujúci odkaz z Adresár.

Na koni na okruhu

Môžete spájky priamo LED drôt a odolnosť ako uvidíte v nasledujúcom diagram, Aj keď je lepšie použiť Doštičku; Je tiež veľmi dôležité pozrieť sa aj na kotlety, rovnako ako v “diagonálne” vnútri dióda LED kombinuje dva kolíky na kopci na okruhu, už že pri montáži dozadu sa nezapne.

Okruh zariadenie na ovládanie na diódy LED.

Obvod treba kontrolovať silu LED diódy.

Hodlám používať jednu Doštičku, a odporúčam použiť, Tam sú niektoré od cca 4 € a umožňujú nám na opakované použitie komponentov znovu a znovu bez toho, aby spájka ich, interné pripojenie jedného Doštičku majú tendenciu byť nasledovné.

protocon

Doštičku pripojenia.

Spojenie medzi Doštičku a Malina musia byť v nasledujúcom diagrame, El GPIO Problém sa môžete dostať 3,3V priradenie logického vysokú hodnotu.

Okruh na doštičku.

Obvod treba kontrolovať silu LED diódy.

Ahoj svet GPIO s Bash

Raz namontované okruh, Budeme robiť to, čo hovorím “Dobrý deň svete GPIO” v Bash spustený nasledovné skript.

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

Ak chcete vypnúť LED, môžeme to urobiť s týmto skript.

#!/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 podstate to, čo robíme s Bash je vytvoriť Adresárovej štruktúry v /SYS/triedy/gpio a pridávanie obsahu každého súboru, ktorý bude považovaný premenná.

Hierarchia

Hierarchia v adresári /sys/class/gpio.

Úvod do Python

Sme už preukázali, že náš obvod pracuje správne a LED to bol vyhodený dať logické vysokú hodnotu premennej, Teraz uvidíme, ako môžeme urobiť to isté Python, ktoré nám plán umožní našej webové aplikácie na kontrolu vstupov a výstupov GPIO z ľubovoľného zariadenia.

funcweb

Ovládanie pomocou webovej aplikácie.

Pred začatím, Odporúčam, že budete vidieť kapitol 1 na 10 z Tento video návod od Python kanál YouTube z Kód uľahčiť, Ak ako nemám moc predstavu o programovanie v Python, Môžete prísť veľmi dobre zoznámiť vás s kódom, ktorý sa chystáte vidieť viac dopredu a pochopí to.

Rôzne vývodom GPIO (BCM a dosky)

Existujú dva typy pin číslovania, fyzické číslovanie alebo režim DOSKA, a číslovanie čip SoC Broadcom ktoré ovládacie prvky, Budeme používať pinoutom v režime BCM, ale Pozrime sa na rozdiel.

BCMvsBOARD

Ahoj svet GPIO s Python

Po zhliadnutí videa, a rôzne vývodom už pochopiť základné kód, aby sa “Dobrý deň svete GPIO” v Python.

Najprv budeme sťahovať všetko, čo potrebujete na ovládanie GPIO s Python, v Raspbian teraz prichádzajú nainštalovaný Python a knižnice GPIO, ale budeme inštalovať ďalší balíček a aktualizáciu systému na najnovšiu verziu.

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

Aktualizuje raz, Pozrime sa, ako sa obrátiť na LED s týmto skript, Napríklad môžete volať enciende.py, a môžeme ho spustiť ako root príkaz “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 týmto môžeme vypnúť to, napríklad volať 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() 

A s týmto zavoláme vám parpadea.py, Bude blikať 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() 

Ak si neželáte, dovoz knižnice “čas“, pridať “spánok“, a ak nie pridať “spánok” sekundy medzi Zapnutie a vypnutie, Je celkom možné, že naše oko bude vnímať blikanie.

Je veľmi dôležité, pridať špeciálne znaky v skripty v jazyku Python, z tohto dôvodu komentáre nemajú akcenty, Vzhľadom k tomu, že ho dal znak chyba neplatný.

V tejto položke Uvidíme, ako vytvoriť jednoduchý Webová aplikácia umožňujú vykonávať tieto skripty, byť schopný ovládať ho z ľubovoľného zariadenia s prehliadačom Web.

Ak by ste za mnou na Twitter, Facebook, Google +, LinkedIn, alebo zdieľať pomocou tlačidiel podľa Táto publikácia, Ak máte akékoľvek otázky, alebo návrhy prosím neváhajte komentár.

Pomôžte nám osloviť viac čitateľov Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

16 myšlienky na"Malinová PI a GPIO kolíky: Ovládanie LED s Bash a Python

  1. Mám otázku od nováčik…
    pretože odpor 330 Ohm a kedy ho použiť?

    Vždy použiť z 330 Keď pracujeme s RPI, alebo sa môže líšiť?

    Pozdrav a vynikajúce blog!!!

  2. Ahoj nie mi funguje, a preto, postupujte podľa týchto krokov na úpätí list s python, Existujú, ktoré vám povolenie na vykonanie súboru python?

    • Ahoj Pedro,

      V zásade by mal fungovať, chyba len dala povolenia na niektorých ľudí, ale beží z webovej aplikácie, ako používateľ www-data štandardne už nemá tieto povolenia.

      Len v prípade skúste beh “sudo chmod + x script.py” vrátiť spustiteľný, Aj keď nie tak by to malo fungovať len z terminálu; môžete ma učiť, ak vráti nejakú chybu v termináli spustiť skript??

      Díky moc za váš komentár.

  3. dobrý deň,
    Snažím sa zapnutie LED cez python po sprievodca vzorky, ale to mi dáva nasledujúce chyby pri spustení kód to:

    Import RPi.GPIO ako GPIO

    Chyba:
    -bash: Import: poradie sa nenašiel

    Viete, prečo je táto chyba?

    Ďakujem a gratulujem k blogu slúži mi moc!

    • Nano Hello, ešte raz Vitajte.

      Ste spomenul, je vyhlásenie, že je často zahrnutá od začiatku skript povedať terminálu, kde interpreter, ktorý nariadi by ste mali prejsť, v tomto prípade, Python; pre bash by sa takto:

      #!/bin/bash

      V tomto prípade to funguje s deklaráciou a bez neho, pretože súbor má príponu .py, ale to je dobrej praxe vždy pridať.

      Dúfam, že ste zrušili svoje pochybnosti, sem, kedykoľvek chcete a veľmi vám ďakujem za váš komentár 🙂

  4. ďakujem, výučba je vynikajúce, ale mám pochybnosti:

    Nechám nasledujúce chyby:

    riadok 12 Import:nebol nájdený
    riadok 14 Syntaktická chyba: neočakávané slovo (očakával “)”)

    Môj kód je:

    #GPIO-setup.py
    ### ZAČAŤ INIT INFO
    # Poskytuje: GPIO-setup.ch
    # Vyžaduje-Štart: $remote_fs $syslog
    # Vyžaduje-Stop: $remote_fs $syslog
    # Predvolený začiatok: 2 3 4 5
    # Predvolené-Stop: 0 1 6
    # Krátky popis: Nastavenie režimu gpio
    # Popis: Nastavenie gpio 22/27/17/4 režim
    ### KONIEC INIT INFO

    Import RPi.GPIO ako GPIO
    #Sme definovanie režimu BCM
    GPIO.setmode(GPIO. BCM)
    #Teraz sme ich definovať pin GPIO ako výstup
    GPIO.setup(4, GPIO. VON)
    GPIO.setup(17, GPIO. VON)
    GPIO.setup(27, GPIO. VON)
    GPIO.setup(22, GPIO. VON)

    Akýkoľvek nápad???

    • Dobrý deň Leoctam, Vďaka za komentovanie.

      Prvé riadky dá pochopiť, že sa snaží vytvárať démon systému, ale sa riadiť tým, čo nie je bude mať na účte.

      na druhej strane, kód, ktorý používate na interakciu s GPIO je Python, Takže musíte zostať v .py skript, ktorý bude možné uplatniť zo systému daemon, alebo použite Bash tak ako v prvom príklade tento tutoriál.

nechať odpoveď