Vadelma PI ja GPIO nastat: Valvoa LED kanssa Bash ja Python

Edellinen viesti näimme oli GPIO nastat ja esimerkkejä käytännön sovelluksia, Tänään keskitymme yleiskäyttöinen nastat toimintaa, ja oppia hallitsemaan tulkin läsnäollessa tilauksia Bash ja Python.

proto&johti

Käyttää LED, vastus on 330 Ohm, Lanka, ja yksi Leipälauta, tai juottaa ja juotin.

Tarvitsemme myös meidän Vadelma Tenga ya Raspbian Edellinen-asettaa, Jos asia ei ole, Voit nähdä, miten tehdä se Seuraava linkki Hakemisto.

Ratsastus piiri

Voi juottaa suoraan LED lanka ja vastus kuten näkyy seuraavassa kaavio, Vaikka se on paljon parempi käyttää Leipälauta; On myös tärkeää tarkastella oikealla pulisongit, kuten “Diagonal” sisällä diodi LED yhdistämällä kaksi nastat asentaa piiri, jo että jos laite asennetaan taaksepäin ei käynnisty.

Ohjaamaan Valodiodi diodi sytytyksen piiri.

Piiri on tarvitaan ohjaamaan Valodiodi diodi.

Aion käyttää yhtä Leipälauta, ja suosittelen, että käytät, Jotkut noin 4 € ja ne antavat meille mahdollisuuden käyttää osia uudelleen ja uudelleen ei tarvitse juottaa ne, yksi Ohjainyksikön sisäiset kytkennät Leipälauta ne ovat yleensä seuraavassa.

protocon

Leipälauta yhteydet.

Yhteyksiä Leipälauta ja Vadelma niiden on oltava kuten seuraavassa kaaviossa, että GPIO Pääset kysymys 3,3V looginen korkean arvon määrittäminen.

Piiri leipälauta.

Piiri on tarvitaan ohjaamaan Valodiodi diodi.

Hei maailma GPIO Bash

Liittämisen jälkeen piiri, Aiomme tehdä, mitä kutsun “Hei maailma GPIO” Tässä Bash jatkuva seuraava Script.

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

Voit poistaa LED, voimme tehdä sen seuraavat Script.

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

Periaatteessa mitä me teemme Bash on luoda Hakemistorakenteen Tässä /sys/class/gpio ja lisäämällä sisältöä jokaisen tiedoston pidetään muuttuja.

hierarkian

Hierarkian /sys/class/gpio-hakemistossa.

Johdatus Python

Olemme jo osoittaneet, että meidän piiri toimii oikein ja LED ole ammuttu korkea totuusarvo antaa muuttujan, Nyt Katsotaanpa, miten voimme tehdä sama Python, Tämä mahdollistaa aikataulun meidän Web-sovellukset hallita panokset ja tuotokset GPIO mistä tahansa laitteesta.

funcweb

Käyttävää WEB-sovellus.

Ennen kuin jatkat, Suosittelen, että näet luvuissa 1 Voit 10 ja Tässä opetusvideota python kanava YouTube ja Koodi helpottaa, Jos niin ei ole paljon ajatusta ohjelmointi Python, Voi tulla Oletko hyvin voit tutustua koodi, joka näemme enemmän eteenpäin ja ymmärtävät.

Eri Pinouts GPIO (BCM: n ja hallituksen)

On olemassa kahdenlaisia pin numerointi, fyysinen numerointi- tai tilassa HALLITUKSEN, ja siru numerointi SoC Broadcom ohjata niitä, Aiomme käyttää pinout tilassa BCM, mutta Katsotaanpa ero.

BCMvsBOARD

Hei maailma GPIO python

Kun katsot videoita, ja eri pinouts jo ymmärtää perus koodin, jotta “Hei maailma GPIO” Tässä Python.

Ensin aiomme ladata kaiken, mitä tarvitset hallita GPIO kanssa Python, Tässä Raspbian niitä vielä asennettu Python ja kirjastot GPIO, mutta aiomme asentaa paketteja ja päivittää järjestelmä on uusin versio.

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

Päivitetty kerran, Katsotaanpa, miten päälle LED seuraavat Script, Voit esimerkiksi soittaa enciende.py, ja otamme sen pääkäyttäjänä komennolla “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) 

Tämän me hapantua se lähettää, esimerkiksi soittaa 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() 

Ja tässä me soitetaan sinulle parpadea.py, Teemme vilkkua 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() 

Jos et tuoda kirjastoon “aika“, voi lisätä “Sleep“, ja jos lisää “Sleep” sekunnin päälle ja pois päältä, On täysin mahdollista, että silmä ei ymmärtää välkkyä.

On tärkeää lisätä erikoismerkkejä skriptit python, Tästä syystä kommentteja ei tehdä aksentti, Koska se antoi merkin virhe virheellinen.

Seuraava merkintä Näemme, miten tehdä yksinkertainen Web-sovellus voimme toteuttaa nämä skriptit, jotta voit hallita mistä tahansa laitteesta selaimella Web.

Jos haluat, voit seurata minua Twitter, Facebook, Google +, LinkedIn, tai jakaa sen painikkeet nojalla tämän julkaisun, Jos sinulla on kysyttävää tai ehdotuksia, älä epäröi kommentoida.

Voimme tavoittaa enemmän lukijoita Share on LinkedIn
LinkedIn
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on Google+
Google +
Email this to someone
Sähköposti

16 ajatuksia"Vadelma PI ja GPIO nastat: Valvoa LED kanssa Bash ja Python

  1. Olen newbie kysymys…
    koska vastus 330 ohmia ja kun sitä käytetään?

    Käytetään 330 Kun työskentelemme RPI, tai voi vaihdella?

    Posti ja erinomainen blogi!!!

    • Hei Peter,

      Periaatteessa sen pitäisi toimia, virhe on vain antanut jotkut mutta käynnissä web-sovellus, käyttäjän www-data oletusarvoisesti ei enää ole näitä oikeuksia.

      Vain siinä tapauksessa kokeile “sudo chmod + x script.py” tehdä executable, Tosin niin sen pitäisi toimia vain terminaalista; Voit opettaa minulle jos palauttaa virheen terminaalin komentosarjan??

      Paljon kiitoksia kommenttisi.

  2. Hyvä, Kun kirjoitan kirjoitus python, kertoo minulle, että arroba SyntaxError mitä voidaan? Kiitos ja terveisiä.

  3. Moi,
    Yritän LEDin läpi python jälkeen opas näytteiden ottaminen mutta se antaa minulle seuraavan virheen, kun suoritan koodi se:

    tuo RPi.GPIO GPIO

    Virhe:
    -bash: tuonti: tilaus ei löytynyt

    Tiedätkö, miksi tämä virhe on?

    Kiitos ja onnittelut blogin palvelee minua, paljon!

  4. Hyvin taas,
    mitä en ymmärrä on ensimmäisellä rivillä koodia: #!usr/bin/env/python
    Mikä se on?
    Näen, että se toimii vain kanssa tai ilman sitä

    • Nano Hello, Tervetuloa toisen kerran.

      Te mainita on ilmoitus siitä, että on usein mukana alussa script kertomaan terminaaliin, jossa tulkki, joka tilaukset sinun pitäisi siirtää, Tässä tapauksessa Python; bash olisi seuraava:

      #!/bin/bash

      Tässä tapauksessa se toimii vakuutus ja ilman sitä, koska tiedostossa on laajennus .py, mutta se on hyvä käytäntö aina lisätä sen.

      Toivon poistanut epäilyksiin, tänne jos haluat paljon kiitoksia kommentti 🙂

  5. Kiitos, opetusohjelma on erinomainen, mutta epäile:

    ne jättävät minut seuraavat virheet:

    rivi 12 tuonti:ei löydy
    rivi 14 Syntaksivirhe: Odottamaton sana (odottaa “)”)

    Minun koodi on:

    #GPIO-setup.py
    ### ALKAA INIT INFO
    # Tarjoaa: GPIO-setup.ch
    # Required-Start: $remote_fs $syslog
    # Required-Stop: $remote_fs $syslog
    # Oletus-Käynnistä: 2 3 4 5
    # Oletus-Stop: 0 1 6
    # Lyhyt kuvaus: Asennuksen tila gpio
    # Kuvaus: Setup gpio 22/27/17/4 tila pois
    ### LOPULTA INIT INFO

    tuo RPi.GPIO GPIO
    #Määrittelemme BCM-tilassa
    GPIO.setmode(GPIO. BCM)
    #Nyt määritellä GPIO Tulostusnastaa
    GPIO.setup(4, GPIO. ULOS)
    GPIO.setup(17, GPIO. ULOS)
    GPIO.setup(27, GPIO. ULOS)
    GPIO.setup(22, GPIO. ULOS)

    Mitään käsitystä???

    • Hei Leoctam, Kiitos kommentoida.

      Ensimmäiset rivit antaa ymmärtää, että yrität luoda järjestelmän daemon, mutta he ovat kommentoineet niin se ei oteta huomioon.

      Toisaalta, koodi, jota käytät vuorovaikutuksessa GPIO on Python, joten sinun täytyy pysyä komentosarjan .py, joka on vedonnut järjestelmä-daemon, käyttää Bash siihen kuten ensimmäisessä esimerkissä tässä opetusohjelmassa.

Jätä vastaus