PIN Raspberry PI dan GPIO: Mengendalikan LED dengan Bash dan Python

Dalam posting sebelumnya kita lihat adalah PIN GPIO dan beberapa contoh aplikasi praktis, Hari ini kita akan fokus pada operasi umum PIN, dan belajar untuk mengendalikan mereka dengan interpreter's pesanan Bash dan dengan Python.

Proto&memimpin

Akan menggunakan LED, daya tahan 330 Ohm, kawat, dan satu Papan tempat memotong roti, atau solder dan soldering iron.

Kita juga akan perlu kami Raspberry sudah Raspbian pra-instal, Jika kasus Anda tidak, Anda dapat melihat bagaimana melakukannya Berikut link dari Direktori.

Naik sirkuit

Anda dapat solder langsung LED kawat dan perlawanan ketika Anda akan melihat di bawah diagram, Meskipun jauh lebih baik untuk menggunakan Papan tempat memotong roti; Hal ini juga sangat penting untuk melihat baik di cambang, seperti dalam “Diagonal” dalam dioda LED menggabungkan dua PIN untuk me-mount sirkuit, sudah itu jika Anda me-mount mundur tidak mau hidup.

Sirkuit yang dibutuhkan untuk mengendalikan pengapian LED Dioda.

Sirkuit yang dibutuhkan untuk mengendalikan kekuatan LED Dioda.

Aku akan menggunakan salah satu Papan tempat memotong roti, dan saya merekomendasikan bahwa Anda menggunakan, Ada beberapa dari sekitar €4 dan mereka memungkinkan kita untuk menggunakan kembali komponen lagi dan lagi tanpa solder mereka, koneksi internal salah Papan tempat memotong roti mereka cenderung berikut.

protocon

Koneksi papan tempat memotong roti.

Hubungan antara Papan tempat memotong roti dan Raspberry mereka harus menjadi seperti diagram berikut, The GPIO Anda dapat mencapai masalah 3,3V untuk menetapkan nilai tinggi Logis.

Sirkuit pada papan tempat memotong roti.

Sirkuit yang dibutuhkan untuk mengendalikan kekuatan LED Dioda.

Halo dunia GPIO dengan Bash

Sekali terpasang sirkuit, Kami akan melakukan apa yang saya sebut “Halo dunia GPIO” dalam Bash menjalankan berikut 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

Untuk menonaktifkan LED, kami dapat melakukan itu dengan berikut 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 

Pada dasarnya apa yang kita lakukan dengan Bash adalah untuk menciptakan Hirarki direktori dalam /gpio/sys/kelas dan menambahkan konten ke setiap file yang akan diperlakukan sebagai variabel.

hirarki

Hirarki dalam direktori /sys/class/gpio.

Pengantar Python

Kami telah membuktikan bahwa sirkuit kami bekerja dengan benar dan LED itu telah fired untuk memberikan nilai tinggi logis untuk variabel, Sekarang mari kita lihat bagaimana kita dapat melakukan hal yang sama Python, yang akan memungkinkan kita untuk menjadwalkan kami aplikasi web untuk mengontrol input dan output GPIO dari perangkat.

funcweb

Operasi menggunakan aplikasi WEB.

Sebelum melanjutkan, Saya sarankan bahwa Anda melihat Bab dari 1 untuk 10 dari Tutorial ini video dari Python saluran YouTube dari Kode yang difasilitasi, Jika karena saya tidak memiliki banyak ide tentang pemrograman di Python, Dapat datang kepada Anda yang sangat baik untuk membiasakan Anda dengan kode yang kita akan melihat lebih depan dan datang untuk memahaminya.

Pentanahan berbeda dari GPIO (BCM dan papan)

Ada dua jenis pin penomoran, penomoran fisik atau mode DEWAN, dan penomoran chip SoC Broadcom mengendalikan mereka, Kita akan menggunakan pinout dalam modus BCM, Tapi mari kita melihat perbedaan.

BCMvsBOARD

Halo dunia GPIO dengan Python

Setelah menonton video, dan berbeda pentanahan sudah dapat mengerti kode dasar untuk membuat “Halo dunia GPIO” dalam Python.

Pertama kita akan mendownload semua yang Anda butuhkan untuk mengontrol GPIO dengan Python, dalam Raspbian mereka sudah diinstal Python dan Perpustakaan GPIO, Tapi kita akan menginstal sebuah paket tambahan dan memperbarui sistem untuk memiliki versi terbaru.

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

Diperbarui sekali, Mari kita lihat bagaimana untuk menyalakan LED dengan berikut script, Misalnya Anda dapat enciende.py, serta dapat kita jalankan sebagai root dengan perintah “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) 

Dengan ini kami dapat mematikannya, misalnya panggilan 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() 

Dan dengan ini kami akan menghubungi Anda parpadea.py, Kami akan membuat berkedip 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() 

Jika Anda tidak mengimpor Perpustakaan “waktu“, tidak dapat menambahkan “tidur“, dan jika tidak menambahkan “tidur” kedua antara on dan off, Hal ini sangat mungkin bahwa mata kita akan tidak menganggap berkedip.

Hal ini sangat penting untuk tidak menambahkan karakter khusus dalam script dengan Python, untuk alasan ini Komentar tidak membawa aksen, Sejak itu memberikan kesalahan karakter tidak valid.

Dalam entri berikut Kita akan melihat bagaimana untuk membuat sederhana Aplikasi web memungkinkan kita untuk mengeksekusi ini script, mampu kontrol dari berbagai perangkat dengan peramban Web.

Jika Anda suka, Anda dapat mengikuti saya di Twitter, Facebook, Google +, LinkedIn, atau berbagi dengan tombol di bawah ini publikasi, Jika Anda memiliki pertanyaan atau saran jangan ragu untuk komentar.

Membantu kami untuk menjangkau lebih banyak pembaca Share on LinkedIn
LinkedIn
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on Google+
Google +
Email this to someone
email

16 Thoughts on"PIN Raspberry PI dan GPIO: Mengendalikan LED dengan Bash dan Python

  1. Saya punya pertanyaan dari newbie…
    karena perlawanan 330 Ohm dan Kapan menggunakannya?

    Selalu digunakan untuk 330 Ketika kita bekerja dengan RPI, atau mungkin bervariasi?

    Salam dan sangat baik blog!!!

    • Hi Peter,

      Pada prinsipnya harus bekerja, kesalahan hanya diberikan izin untuk beberapa orang, tetapi berjalan dari aplikasi web, sebagai pengguna www-data secara default tidak lagi memiliki izin.

      Hanya dalam kasus mencoba menjalankan “sudo chmod + x script.py” membuat executable, Meskipun tidak begitu itu harus bekerja hanya dari terminal; Anda dapat mengajarkan saya jika mengembalikan kesalahan di terminal untuk menjalankan script??

      Terima kasih banyak atas komentar Anda.

  2. Bagus, Ketika saya masukkan script dengan python, memberitahu saya bahwa arroba adalah SyntaxError apa yang dapat? Terima kasih dan salam.

    • Menemukan saya itu sangat aneh, Karena dalam script ada tidak @, bisa Anda memberikan rincian lebih lanjut dari kesalahan?

      Sampai jumpa lagi, dan terima kasih atas komentar.

  3. Halo,
    Saya mencoba untuk menyalakan LED melalui python mengikuti panduan sampel tapi itu memberi saya error berikut ketika saya menjalankan kode itu:

    Impor RPi.GPIO sebagai GPIO

    Kesalahan:
    -bash: Impor: urutan tidak ditemukan

    Apakah Anda tahu mengapa kesalahan ini?

    Terima kasih dan Selamat atas blog adalah melayani saya banyak!

    • Halo Nano, Terima kasih atas komentar.

      Tampaknya bahwa kode yang ditafsirkan oleh Bash dan bukan oleh Python.

      Apakah Anda menjalankan script, atau baris kode di terminal langsung?

        • Saya senang bahwa Anda memecahkan!!!

          Terima kasih atas komentar, Jangan ragu untuk melakukannya jika Anda memiliki pertanyaan; antara pembaca dan aku akan merindukanmu tangan.

  4. Baik lagi,
    apa yang saya tidak mengerti adalah baris pertama kode: #!usr/bin/env/python
    Apa itu?
    Saya melihat bahwa ia bekerja hanya dengan atau tanpa itu

    • Halo Nano, Selamat datang lagi.

      Garis yang Anda sebutkan adalah pernyataan yang sering disertakan pada awal sebuah script untuk memberitahu terminal mana penafsir yang pesanan Anda harus lulus, dalam kasus ini, Python; untuk bash akan menjadi sebagai berikut:

      #!/bin/bash

      Dalam kasus ini, ia bekerja dengan deklarasi dan tanpa itu sejak file ekstensi .py, Tapi itu adalah praktik yang baik untuk selalu ditambahkan.

      Saya berharap untuk telah dibersihkan keraguan, kembali di sini kapan pun Anda mau dan terima kasih untuk Anda komentar 🙂

  5. Terima kasih, tutorial yang sangat baik, tetapi saya memiliki keraguan:

    mereka meninggalkan saya dengan kesalahan berikut:

    garis 12 Impor:tidak ditemukan
    garis 14 kesalahan sintaks: Firman yang tak terduga (mengharapkan “)”)

    Kode saya adalah:

    #GPIO-setup.py
    ### MULAI INIT INFO
    # Menyediakan: GPIO-setup.ch
    # Diperlukan-Start: $remote_fs $syslog
    # Diperlukan-Stop: $remote_fs $syslog
    # Default-mulai: 2 3 4 5
    # Default-Stop: 0 1 6
    # Deskripsi pendek: Pengaturan mode gpio
    # Deskripsi: Pengaturan gpio 22/27/17/4 keluar modus
    ### AKHIR INIT INFO

    Impor RPi.GPIO sebagai GPIO
    #Kita mendefinisikan modus BCM
    GPIO.setmode(GPIO. BCM)
    #Kita sekarang mendefinisikan GPIO output pin
    GPIO.setup(4, GPIO. KELUAR)
    GPIO.setup(17, GPIO. KELUAR)
    GPIO.setup(27, GPIO. KELUAR)
    GPIO.setup(22, GPIO. KELUAR)

    Ide???

    • Halo Leoctam, Terima kasih atas komentar.

      Baris pertama memberikan untuk memahami bahwa Anda sedang mencoba untuk membuat sistem daemon, tetapi mereka yang berkomentar sehingga ia tidak akan diambil ke account.

      Dilain pihak, kode yang Anda gunakan untuk berinteraksi dengan GPIO adalah Python, oleh apa yang Anda miliki untuk tinggal di .py skrip yang akan dipanggil dari setan Anda sistem, atau menggunakan Bash untuk melakukannya sebagai contoh pertama dalam tutorial ini.

Tinggalkan balasan