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 nalozima za tumač Paša i s Python.

Proto&vodio

Će koristiti u LED, otpor od 330 ohma, žica, i jedan Maketa, ili zalemiti i lemilo.

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

Jahanje u krug

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 “Dijagonalna” unutar je dioda LED Kombinirajući dvije igle za montiranje sklop, već To ako ga montirati unatrag ne uključuje.

Sklop je potrebno za kontrolu paljenja LED dioda.

Sklop je potrebno za kontrolu snage LED dioda.

Će koristiti jedan Maketa, a preporučljivo je koristiti za, Postoje neki od otprilike 4 € i oni nam omogućuju da ponovno korištenje komponenti više puta bez potrebe da ih lemljenje, unutarnju povezanost jedne Maketa Oni imaju tendenciju da se sljedeće.

protocon

Maketa veze.

Veza između na Maketa i na Malina moraju biti kao u sljedećem dijagramu, na GPIO Može doći do pitanja 3,3V dodijeliti logička visoke vrijednosti.

Kolo na maketa.

Sklop je potrebno za kontrolu snage LED dioda.

Hello World of GPIO sa Bash

Jednom postavljeni sklop, Mi ćemo učiniti ono što ja nazivam je “Pozdrav svijetu GPIO” u Paša izvodi sljedeć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

Da biste isključili LED, mi to možemo 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/klasa/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ć smo pokazali da naš sklop radi ispravno i u LED je to otkaz dati logičan visoku vrijednost varijable, Sada da vidimo kako možemo učiniti isto u 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

Operacija pomoću web-aplikacije.

Prije nastavka, Ja preporučiti taj te vidjeti poglavlja u 1 da se 10 od Ovaj video tutorial iz Python kanal od Mladost od Koda olakšana, Ako i nemam puno ideja za programiranje u Python, Može doć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, na fizički Numeriranje ili načinu ODBOR, Numeriranje čip SoC Broadcom kontrolirati ih, Mi ćemo koristiti u dekadskog u načinu BCM-A, Ali Pogledajmo razliku.

BCMvsBOARD

Hello World of GPIO sa Python

Poslije gledanja videa, 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 Već su 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 ga isključiti, 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 s tim, mi ćemo vas pozvati parpadea.PY, Učinit ćemo bljeskati u 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 ne uvezete knjižnici “vrijeme“, Nije moguće dodati na “sna“, a ako nije moguće dodati na “sna” sekunde između na i izvan, Sasvim je moguće da će naše oči ne vide i tame.

To je vrlo važno za dodavanje posebne znakove u na skripte u Python, iz tog razloga komentare ne nose naglaske, Od tada dao znak greška nije valjana.

U sljedećoj stavci Ćemo vidjeti kako to napraviti jednostavan Web-aplikaciju nam omogućiti da izvršavanje tih skripte, biti u mogućnosti kontrolirati s bilo kojeg uređaja s preglednikom Web.

Ako želite možete Slijedite me na Twitter, Facebook, Google +, LinkedIn, ili ga podijeliti s gumbima ispod ove publikacije, Ako imate bilo kakvih pitanja ili prijedloge Molimo ne ustručavajte se komentirati.

Pomažu nam do više čitatelja Share on LinkedIn
LinkedIn
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on Google+
Google +
Email this to someone
e-pošte

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 neke ljude ali izvodi iz web-aplikacije, kao korisnik www-data zadano više nema te dozvole.

      U slučaju pokušajte trčanje “sudo chmod + x script.py” Kako bi ga izvediv, Iako nije tako to bi trebalo raditi samo iz terminala; Možeš li me naučiti da vraća pogrešku na terminalu za pokretanje skripte??

      Hvala vrlo velik dio za svoj komentar.

  2. Pozdrav,
    Pokušavam okrenuti na LED kroz piton nakon vodič uzoraka ali Internet Popuštanje mene slijedeće greška našto trčanje kod to:

    uvesti RPi.GPIO kao GPIO

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

    Znaš li zašto je ova greška?

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

    • Nano Hello, još jednom Dobrodošli.

      Linija te spomenuti je iskaz koji se često isporučuje na početku Skripta reći terminala gdje tumač koji naručuje treba proći, u ovom slučaju, Python; bash bi kako slijedi:

      #!/Bin/bash

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

      Nadam se da ste Očistili svoje sumnje, natrag ovdje kad god želite i hvala za Vaš komentar 🙂

  3. hvala, tutorial je odličan, Ali ja sumnjam:

    ostavljaju me uz sljedeće pogreške:

    linija 12 Uvoz:Nije pronađen
    linija 14 pogreška sintakse: neočekivane riječi (očekujući “)”)

    Moj broj je:

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

    uvesti RPi.GPIO kao GPIO
    #Definiramo način bcm-a
    GPIO.setmode(GPIO. BCM-A)
    #Sada možemo 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 koju pokušavate stvoriti sustav demon, Ali oni su komentirali tako da to neće biti uzeti u obzir.

      s druge strane, Šifra koju koristite za interakciju s GPIO je Python, Pa mora ostati u .py skriptu koja će se pozivati iz sustava demon, ili koristite Bash to kao u prvom primjeru u ovom vodiču.

Komentariši