Ahududu PI ve GPIO iğne: Bir LED Bash ve Python ile denetleme

Önceki posta gördük GPIO pimleri ve bazı pratik uygulama örnekleri vardı, Bugün genel amaçlı pimleri operasyonunda ele alınacak, ve onları tercüman'ın emirleri ile kontrol etmeyi öğrenmek Bash ve ile Python.

Proto&yol açtı

Kullanacağı bir LED, bir direnç 330 Ohm, Tel, ve bir Breadboard, veya lehim ve bir havya.

Biz-ecek da lüzum bizim Ahududu zaten var Raspbian önceden yüklenmiş, Senin durumunda ise, Sen-ebilmek görmek nasıl yapmak Aşağıdaki bağlantı üzerinden Dizin.

Devre sürme

Doğrudan lehim LED Tel ve direnç olarak aşağıda göreceksiniz Diyagramı, Kullanmak daha iyi olmasına rağmen bir Breadboard; Ayrıca de favorileri bakmak çok önemlidir, olduğu gibi “çapraz” içinde diyot LED devre bağlamak için iki iğneli birleştirerek, zaten geriye doğru monte ederseniz bu açılmaz.

Devre diyot LED ateşleme kontrol için gerekli.

Devre diyot LED gücünü kontrol için gerekli.

Ben kullanmak için gidiyorum Breadboard, ve size kullanmanızı öneririz bir, Bazı yaklaşık 4 € den ve bizi bileşenleri tekrar tekrar onları lehim gerek kalmadan yeniden kullanmak izin, bir iç bağlantılar Breadboard Onlar birini olma eğilimi.

protocon

Breadboard bağlantıları.

Arasındaki bağlantıları Breadboard ve Ahududu Aşağıdaki çizimde olduğu gibi olmaları gerekir, , GPIO Sorunu ulaşabilirsiniz 3,3V mantıksal bir yüksek değer atamak için.

Devre Breadboard üzerinde.

Devre diyot LED gücünü kontrol için gerekli.

Merhaba GPIO Bash ile dünya

Bir kez bağlı devre, Ben dediğimiz yapacaksın bir “Merhaba Dünya GPIO” içinde Bash birini çalıştıran komut dosyası.

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

LED kapatmak için aşağıdaki ile yapabiliriz komut dosyası.

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

Temel olarak ne ile yapıyoruz Bash oluşturmak için bir Dizin sıradüzeni içinde /sys/sınıf/GPIO ve daha sonra olarak işlenir her dosya içerik eklemek bir değişken.

hiyerarşi

/Sys/class/gpio dizin hiyerarşisinde.

Python Giriº

Biz zaten bizim devre düzgün çalıştığını kanıtlanmıştır ve LED yüksek metodunun bir değişkene vermek için ateş, Şimdi aynı nasıl yapabiliriz bir bakalım Python, Bu-ecek bırakmak bizi zamanlamak bizim Web uygulamaları giriş ve çıkışlarını kontrol etmek için GPIO birisi aygıt--dan.

funcweb

WEB uygulaması kullanarak işlemi.

Devam etmeden önce, Sen görmenizi tavsiye bölümleri 1 için 10 in Python gelen bu video özel öğretmen kanalı YouTube in Kolaylaştırılmış kodu, Eğer programlama çok fikrim yok gibi Python, Bu size de biz daha ileride görüp bunu anlamak için geldim kodu ile daha yakından tanımak için çok gelebilir.

GPIO farklı Pinouts (BCM ve yönetim kurulu)

Var iki tip-PIN numaralandırma, fiziksel numaralandırma veya modu YÖNETİM KURULU, ve belgili tanımlık küçük parça numaralandırma SoC Broadcom Bu denetimleri, Bağlantı modunda kullanmak için gidiyoruz BCM, Ama fark bakalım.

BCMvsBOARD

Merhaba GPIO Python ile dünya

Videoları izledikten sonra, ve farklı pinouts zaten yapmak için temel kodu anlamak “Merhaba Dünya GPIO” içinde Python.

Önce size gereken her şeyi kontrol etmek download edecek GPIO ile Python, içinde Raspbian Hadi ama yüklü Python ve kütüphaneler GPIO, Ama biz ek bir paket yüklemek ve güncelleştirmek belgili tanımlık sistem en son sürümüne sahip olacak.

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

Bir kez güncellendi, Nasıl açmak görelim LED Aşağıdaki ile komut dosyası, Örneğin arayabilirsiniz enciende.py, ve biz komutu ile root olarak çalıştırabilirsiniz “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) 

Bununla biz bunu kapatabilirsiniz, Örneğin arama 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() 

Ve bu konuda sizi arayacak parpadea.py, Yanıp sönen yapacağız 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ğer kitaplığı alma “zaman“, değil ekleyebilirsiniz “uyku“, ve eğer eklemek değil “uyku” bir saniye arasında açma ve kapatma, Oldukça göz değil algıladıkları olacak mümkündür titreşim.

Özel karakterler eklemek çok önemlidir komut dosyaları Python ile, Bu nedenle yorum aksan olarak yerine, Geçersiz karakter hata verdi beri.

Aşağıdaki giriş Biz-ecek görmek nasıl basit bir yapmak Web uygulaması Bunlar yürütmek izin komut dosyaları, tarayıcı ile herhangi bir cihaz kontrol edebilmek için Web.

Senin gibi beni takip edebilirsiniz Eğer Twitter, Facebook, Google +, LinkedIn, ya da bu yayın altında düğmeleri ile paylaşın, Eğer herhangi bir sorunuz veya öneriniz lütfen yorum çekinmeyin..

Bize daha fazla okuyucu ulaşmak için yardım Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

16 üzerine düşünceler"Ahududu PI ve GPIO iğne: Bir LED Bash ve Python ile denetleme

  1. Rookie den bir sorum var…
    Çünkü direnç 330 Ohm ve hangi durumlarda kullanmalı?

    Her zaman için kullanılır 330 Ne zaman RPI ile çalışmak, ya da farklı olabilir?

    Bir tebrik ve mükemmel blog!!!

    • Merhaba Pedro,

      Prensipte o-meli iş, hata yalnızca izinler bazı insanlar ama web uygulamasından çalıştıran verdi, Kullanıcı www-data varsayılan olarak böyle izinlere sahip değil bu yana.

      İçinde büyük denemek koşma “sudo chmod + x script.py” yürütülebilir yapmak için, Her ne kadar olmadan çalıştırılmalıdır terminalden gibi; Bana bazı hata terminalde run komut dosyası döndürür Eğer öğretebilir misin??

      Çok senin yorum için teşekkür ederiz.

  2. Merhaba,
    Bir LED python Kılavuzu örnekleri takip aracılığıyla etkinleştirmek çalışıyorum ama ne zaman ı koşmak belgili tanımlık şifre bana aşağıdaki hata veriyor bu:

    alma RPi.GPIO GPIO olarak

    Hata:
    -Bash: alma: sipariş bulunamadı

    Bu hata neden olduğunu biliyor musun?

    Teşekkürler ve tebrikler blog hizmet veren beni çok!

    • Nano Merhaba, Yorum için teşekkürler.

      Görünüşe göre kodu Python değil ve Bash tarafından algılanıyor.

      Komut dosyasını çalıştırmakta olduğunuz, veya Terminal doğrudan kod satırları?

        • Sen münhal için memnunum.!!!

          Yorum için teşekkürler, herhangi bir sorunuz varsa bunu yapmak için tereddüt etmeyin; okuyucular ve ben arasında bir el özleyeceğim.

  3. Daha iyi,
    Benim anlamadığım bu kodun ilk satırı: #!usr/bin/env/python
    Ne hizmet için??
    O inşaat aynı derecede ile veya olmadan görmek

    • Nano Merhaba, daha hoş geldiniz.

      Genellikle beyanı ekleyin bir komut dosyası ana sayfa yorum bulunduğu satırı için göstermek sen terminal nerede için tercüman hangi onlara emir geçmelidir olduğunu, Bu durumda Python ile; Bash için aşağıdaki gibi olur:

      #!/bin/bash

      Bu durumda bildirimi ve o olmadan çalışır beri dosya uzantısı .py vardır, Ama her zaman eklemek için iyi bir yöntemdir.

      Sizin şüphe temizlendiğini umuyoruz, Her ne zaman sen istemek ve eyvallah pek için senin yorum 🙂 buraya

  4. Teşekkür ederiz, öğretici mükemmel, Ama ben bir şüphe var:

    Bana aşağıdaki hatayla bıraktıkları:

    satır 12 alma:bulunamadı
    satır 14 sözdizimi hatası: beklenmeyen kelime (bekliyor “)”)

    Benim kodudur:

    #GPIO setup.py
    ### INİT BİLGİ BAŞLAMAK
    # Sağlar: GPIO-setup.ch
    # Gerekli-başlangıç: $remote_fs $syslog
    # Gerekli-Stop: $remote_fs $syslog
    # Varsayılan başlangıç: 2 3 4 5
    # Varsayılan-Stop: 0 1 6
    # Kısa açıklama: Kurulum modu GPIO
    # Açıklama: Kurulum GPIO 22/27/17/4 modu
    ### SON BAŞLATMA BİLGİSİ

    alma RPi.GPIO GPIO olarak
    #Biz BCM modu tanımlar
    GPIO.setmode(GPIO. BCM)
    #Biz şimdi GPIO çıktı Pini tanımlayın
    GPIO.setup(4, GPIO. OUT)
    GPIO.setup(17, GPIO. OUT)
    GPIO.setup(27, GPIO. OUT)
    GPIO.setup(22, GPIO. OUT)

    Herhangi bir fikir???

    • Merhaba Leoctam, Yorum için teşekkürler.

      Sistem arka plan programı oluşturmak için çalışıyoruz anlamak için ilk satırları ver, Ama dikkate alınmayacaktır diye yorumladı.

      Gel gelelim, Python GPIO ile etkileşim için kullandığınız kodu nedir, çok sizin sistemi arka plan programından çağrılacak bir komut dosyası .py kalmalı, veya Bash Bu öğreticinin ilk örnekte olduğu gibi bunu yapmak için kullanın.

Cevap bırak