Aviečių PI ir GPIO smeigtukai: Kontroliuoti su Bash, Python, LED

Į ankstesnį postą mes matėme buvo GPIO smeigtukai ir praktinio pritaikymo pavyzdžiai, Šiandien mes dėmesys vykdant bendrosios paskirties smeigtukai, ir išmokti kontroliuoti juos su Vertėjo ˛od˛iu užsakymus Bash ir su Python.

proto&buvo

Naudos yra LED, atsparumas 330 Omo, vielos, ir vienas Breadboard, ar litavimo ir litavimo ketaus.

Mes taip pat turime mūsų Aviečių jau Raspbian iš anksto įdiegta, Jeigu jūsų byla yra ne, Jūs galite pamatyti kaip tai padaryti taip susieti su Katalogas.

Jojimo grandinės

Galima lituoti tiesiai į LED vielos ir atsparumo kaip jūs pamatysite toliau diagrama, Nors tai daug geriau naudoti, Breadboard; Tai taip pat labai svarbu pažvelgti gerai tinka žandenoms, kaip ir su “įstrižainės” viduje, diodas LED derinant du smeigtukai prijungti grandinę, jau Jei jūs prijungti jį atgal bus ne įjungti.

Grandinę reikia kontroliuoti degimą, LED diodas.

Grandinę reikia kontroliuoti galia LED diodas.

I 'm going to naudoti vieną Breadboard, ir aš rekomenduojame naudoti a, Yra keletas nuo maždaug 4 € ir jie leidžia mums panaudoti komponentai ir vėl nereikia lydmetalis juos, vidaus ryšiai, vienas Breadboard jie linkę būti taip.

protocon

Breadboard jungtys.

Jų ryšius su Breadboard ir Aviečių jie turi būti kaip šioje schemoje, į GPIO Jūs galite pasiekti klausimas 3,3V priskirti loginio didelės vertės.

Ant Breadboard.

Grandinę reikia kontroliuoti galia LED diodas.

Sveiki pasaulyje GPIO su Bash

Kai sumontuoti grandinės, Mes ketiname daryti, ką aš vadinu yra “Sveiki pasaulyje GPIO” į Bash veikia taip 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

Jei norite išjungti LED, mes galime tai daryti su šių 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 

Iš esmės ką mes darome su Bash yra sukurti tam Katalogų hierarchijoje į /sys/klasės/gpio ir pridėti turinį į kiekvieną failą, kuris bus laikomi, kintamasis.

hierarchija

Hierarchija /sys/class/gpio katalogas.

Įvadas į Python

Mes jau įrodyta, kad mūsų grandinė veikia tinkamai ir LED jis buvo deginti duoti loginį didelės vertės rodiklis, Dabar Pažiūrėkime, kaip mes galime padaryti tą patį Python, Tai leis mums planuoti mūsų interneto programų kontrolės sąnaudos ir produkcija, GPIO iš bet kokio prietaiso.

funcweb

Operacija, naudojant žiniatinklio programa.

Prieš pradedant, Mes rekomenduojame, kad jūs matote skyriams, 1 į į 10 iš Šis klipas samouczku iš Python kanalas "YouTube"Kodas lengviau, Jei kaip aš neturiu daug idėja, programavimo Python, Jis gali ateiti pas jus labai gerai susipažinti jums su kodais, mes pamatyti daugiau į priekį ir ateiti į suprasti.

Skirtingų Pinouts į GPIO (BCM ir valdybos)

Yra dviejų tipų pin numeravimas, fizinė numeravimą arba režimas VALDYBA, numeravimo lustas SoC Broadcom kontroliuoti juos, Mes ketiname naudoti, lydinčioje režimu BCM, bet Paώvelkime α skirtumas.

BCMvsBOARD

Sveiki pasaulyje GPIO su Python

Po žiūri vaizdo įrašus, ir įvairių pinouts jau suprasti pagrindinį kodą, kad į “Sveiki pasaulyje GPIO” į Python.

Pirmą kartą mes ketiname parsisiųsti viską, ką reikia kontroliuoti ir GPIO su Python, į Raspbian jie jau yra įdiegta Python ir bibliotekų GPIO, bet mes ruošiamės įdiegti papildomą paketą ir papildyti, kad naujausia versija.

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

Atnaujinta vieną kartą, Pažiūrėkime, kaip įjungti ir LED su šių scenarijų, Pvz. galite skambinti enciende.py, ir mes jį paleisti kaip root su komanda “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) 

Tai mes galime paversti jį, pavyzdžiui paskambinti 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() 

Ir tai mes paskambinsime jums parpadea.py, Mes padarysime mirksi, 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() 

Jei jūs neimportuoti biblioteka “laiko“, nepavyko įtraukti į “miego“, ir jei nėra įtraukti į “miego” sekundės tarp įjungimas ir išjungimas, Visai tikėtina, kad bus ne suvokti mūsų akis Mirga.

Tai labai svarbu nepridėti specialiųjų ženklų, scenarijus python, dėl šios priežasties komentarus nevykdo akcentai, Nes ji davė simbolių klaida neteisingas.

Į šį įrašą Mes matome, kaip padaryti paprasta Žiniatinklio programos leidžia mums vykdyti šių scenarijus, kad būtų galima kontroliuoti jis bet kuriuo įrenginiu su naršykle Interneto.

Jei jums patinka galite follow me on Twitter, "Facebook", Google +, LinkedIn, arba pasidalinti ja su mygtukus pagal šio leidinio, Jei turite klausimų ar pasiūlymų prašome nedvejodami komentaras.

Padėti mums pasiekti daugiau skaitytojų Share on LinkedIn
LinkedIn
Share on Facebook
"Facebook"
Tweet about this on Twitter
Twitter
Share on Google+
Google +
Email this to someone
el. paštas

16 mintys apie"Aviečių PI ir GPIO smeigtukai: Kontroliuoti su Bash, Python, LED

  1. Turiu klausimą iš naujokas…
    nes varža 330 Omo ir kada ja naudotis?

    Visada naudojami 330 Kada mes dirbame su RPI, ar jis gali skirtis?

    Sveikinimo ir puikus dienoraštis!!!

    • Hi Peter,

      Iš esmės jis turi dirbti, klaida tik davė teises kai kuriems žmonėms, tačiau nuo žiniatinklio programa, kaip vartotojo www-data numatyta daugiau turi šias teises.

      Tik tuo atveju įvykdykite komandas: “sudo chmod + x script.py” padaryti vykdomąjį, Nors ne taip jis turi dirbti tik nuo terminalo; Jūs galite išmokyti mane jei grąžina klaidą terminale paleisti scenarijų??

      Ačiū labai už jūsų komentarą.

  2. geras, Kada aš įvedu scenarijus Python, man sako, kad į arroba yra tam SyntaxError kas gali būti? Ačiū ir linkėjimai.

    • Rasti man labai keista,, Kadangi scenarijus yra ne @, gal galėtumėte duoti išsamesnės informacijos apie šią klaidą?

      iki pasimatymo, ir ačiū už komentarus.

  3. labas,
    Bandau įjungti LED per python po vadovas mėginių, bet jis suteikia man šią klaidą, kai aš paleisti kodą jis:

    importuoti RPi.GPIO kaip GPIO

    Klaida:
    -bash: importo: nebuvo nustatyta, kad

    Ar žinote, kodėl ši klaida yra?

    Dėkojame ir sveikiname dienoraštį tarnauja man daug!

    • Nano Sveiki, Sveiki dar kartą.

      Jūs paminėti eilutė yra teiginys, kad dažnai yra įtraukti scenarijų pasakyti terminalo, kai vertėjas, kuriuo turėtumėte pradžioje praeiti, Šiuo atveju, Python; bash būtų toks:

      #!/bin/basha

      Tokiu atveju jis dirba su deklaracija ir be jo nuo failo plėtinys .py, bet tai gera praktika visada jį įtraukti.

      Tikiuosi, kad turite išvalyti savo abejones, vuelve por aquí cuando quieras y muchas gracias por tu comentario 🙂

  4. ačiū, Šis vadovėlis yra puikus, bet aš turiu abejonių:

    jie palieka mane su šios klaidos:

    linija 12 importo:nerastas
    linija 14 sintaksės klaida: netikėtų žodžių (tikisi “)”)

    Mano kodas yra:

    #GPIO-setup.py
    ### PRADĖTI INIT INFO
    # Suteikia: GPIO-setup.ch
    # Reikia pradėti: $remote_fs $syslog
    # Reikalaujama stabdyti: $remote_fs $syslog
    # Numatytasis pradžios: 2 3 4 5
    # Numatytąją Stop: 0 1 6
    # Trumpas aprašymas: Sąrankos režimu gpio
    # Aprašymas: Sąrankos gpio 22/27/17/4 režimu
    ### GALŲ GALE INIT INFO

    importuoti RPi.GPIO kaip GPIO
    #Mes apibrėžti BCM režimas
    GPIO.setmode(GPIO. BCM)
    #Mes dabar suprantame GPIO išvesties smeigtukai
    GPIO.setup(4, GPIO. IŠ)
    GPIO.setup(17, GPIO. IŠ)
    GPIO.setup(27, GPIO. IŠ)
    GPIO.setup(22, GPIO. IŠ)

    Bet idėja???

    • Sveiki Leoctam, Ačiū už komentarus.

      Pirmąsias eilutes duoti suprasti, kad jūs bandote kurti sistemos demonas, bet jie yra komentarų, kad ji negali atsižvelgti į.

      kita vertus, kodas, kurį naudojate bendrauti su į GPIO yra Python, Taigi turi likti scenarijų .py, kad bus galima remtis iš jūsų sistemos demono, arba naudokite Bash padaryti kaip ir pirmajame pavyzdyje ši pamoka.

palik atsakymą