Himbeer-PI und GPIO-pins: Steuerung einer LED mit Bash und Python

In der früheren Post sahen wir waren die GPIO-Pins und Beispiele für praktische Anwendungen, Heute konzentrieren wir uns auf den Betrieb der universelle pins, und lernen sie mit dem Interpreter Bestellungen kontrollieren Bash und mit Python.

Proto&geführt

Wird ein LED, einen Widerstand von 330 Ohm, Draht, und eine Steckbrett, oder Lötzinn und Lötkolben.

Wir müssen auch unsere Himbeere haben bereits Raspbian vorinstalliert, Wenn Ihr Fall nicht ist, Sie können sehen, wie es folgenden link von der Verzeichnis.

Der Reitring

Du kannst direkt Löten der LED Draht und Widerstand als Sie sehen im folgenden Diagramm, Obwohl es viel besser zu verwenden ist eine Steckbrett; Es ist auch sehr wichtig, auch auf Dressage zu suchen, wie in der “Diagonale” innerhalb der Diode LED Das Kombinieren der zwei Pins um die Schaltung zu mounten, bereits dass wenn Sie es nach hinten montieren wird sich nicht einschalten.

Schaltung zur Steuerung der Zündung einer LED-Diode benötigt.

Schaltung benötigt, um die Macht der eine LED-Diode Steuern.

Ich werde eine verwenden Steckbrett, und ich empfehle die Verwendung eines, Es gibt einige ab ca. €4 und sie erlauben uns, die Komponenten immer wieder wiederverwenden, ohne sie zu löten, die interne Anschlüsse eines Steckbrett Sie neigen dazu, die wie folgt lauten.

protocon

Ein Steckbrett-Verbindungen.

Die Verbindungen zwischen den Steckbrett und die Himbeere Sie müssen wie im folgenden Diagramm werden., die GPIO Sie erreichen die Frage 3,3V ein hoher Wahrheitswert zuweisen.

Schaltung auf Steckbrett.

Schaltung benötigt, um die Macht der eine LED-Diode Steuern.

Hallo Welt des GPIO mit Bash

Einmal montiert Schaltung, Wir werden tun, was ich nenne eine “Hallo Welt GPIO” in Bash Ausführen der folgenden Skript.

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

Um die LED deaktivieren, können wir es mit folgendem tun Skript.

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

Im Grunde machst was wir mit Bash ist die Schaffung einer Directory-Hierarchie in /Sys/Klasse/gpio und Hinzufügen von Inhalt zu jeder Datei, die behandelt werden als ein Variable.

Hierarchie

Hierarchie innerhalb des /sys/class/gpio-Verzeichnisses.

Einführung in Python

Wir haben bereits bewiesen, dass unsere Schaltung funktionsfähig ist und die LED hat es abgefeuert worden, ein hoher Wahrheitswert der Variablen geben, Jetzt mal sehen, wie wir das gleiche tun können, Python, Das können wir planen unsere Web-Anwendungen die ein- und Ausgänge der Steuerung der GPIO von jedem Gerät.

funcweb

Bedienung über die WEB-Anwendung.

Bevor Sie fortfahren, Ich empfehle, dass Sie sehen die Kapitel über die 1 zu den 10 der Diese video-Anleitung von Python den Kanal des YouTube der Code, erleichtert, Wenn da habe ich nicht viel Ahnung von Programmierung in Python, Es können Sie sehr gut, um Sie mit dem Code vertraut machen, die wir sehen voran und es verstehen sich begeben.

Verschiedene Pinouts von der GPIO (BCM und Board)

Es gibt zwei Arten von Pin-Nummerierung, die physische Nummerierung oder Modus BRETT, und die Nummerierung des Chips SoC Broadcom Sie zu kontrollieren, Wir werden die Pinbelegung im Modus verwenden BCM, aber schauen wir uns den Unterschied.

BCMvsBOARD

Hallo Welt des GPIO mit Python

Nachdem gerade die videos, und verschiedene Pinouts kann schon verstehen, den grundlegenden Code machen die “Hallo Welt GPIO” in Python.

Zuerst werden wir download alles was Sie brauchen zu kontrollieren die GPIO mit Python, in Raspbian Sie sind bereits installiert Python und die Bibliotheken GPIO, aber werden wir ein zusätzliches Paket installieren und Aktualisieren des Systems um die neueste Version haben.

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

Einmal aktualisiert, Mal sehen, wie Sie schalten die LED mit den folgenden Skript, Sie können zum Beispiel aufrufen enciende.py, und wir können es als Root mit dem Befehl “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) 

Mit diesem können wir ihn ausschalten, Rufen Sie beispielsweise 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() 

Und damit wir rufen Sie parpadea.py, Wir werden machen, blinken die 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() 

Wenn Sie keine die Bibliothek importieren “Zeit“, können nicht hinzufügen, die “Schlaf“, und wenn nicht fügen Sie die “Schlaf” von einer Sekunde zwischen ein- und ausschalten, Es ist durchaus möglich, dass unser Auge nicht wahrnehmen wird Flimmern.

Es ist sehr wichtig, nicht, um Sonderzeichen in der Skripte in Python, aus diesem Grund tragen die Kommentare nicht Akzente, Da gab es ungültige Zeichen Fehler.

In den folgenden Eintrag Wir werden sehen, wie ein einfacher machen Web-Anwendung ermöglichen Sie es uns, diese werden ausgeführt Skripte, von jedem Gerät mit Browser kontrollieren können Web.

Wenn Sie mir folgen können, auf Twitter, Facebook, Google +, LinkedIn, oder Teilen Sie sie mit den Schaltflächen unter dieser Publikation, Wenn Sie Fragen oder Anregungen Sie bitte nicht zögern kommentieren.

Helfen Sie uns, um mehr Leser zu erreichen Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

16 Thoughts on"Himbeer-PI und GPIO-pins: Steuerung einer LED mit Bash und Python

  1. Ich habe eine Frage von newbie…
    Da der Widerstand der 330 Ohm und Verwendung?

    Immer dienen 330 Wenn wir mit RPI arbeiten, oder es kann variieren?

    Ein Gruß und ausgezeichnete blog!!!

    • Hallo Peter,

      Im Prinzip sollte es funktionieren, Fehler hat nur Berechtigungen für einige Leute, aber von der Webanwendung ausgeführt gewährt., als Benutzer hat Www-Daten standardmäßig nicht mehr diese Berechtigungen.

      Gerade im Fall versuchen “Sudo Chmod + x script.py” es ausführbar machen, Obwohl nicht sollte also nur vom Terminal funktioniert es; Kannst du mir beibringen Wenn Sie einen Fehler im Terminal zum Ausführen des Skripts zurück??

      Vielen Dank für Ihren Kommentar.

  2. Gute, Wenn ich das Skript in Python eingeben, sagt mir, dass die Arroba SyntaxError ist, was sein kann? Vielen Dank und Grüße.

  3. Hallo,
    Ich versuche, eine LED über Python nach Anleitung Proben einzuschalten, aber es gibt mir die folgende Fehlermeldung, wenn ich den Code ausführen es:

    Importieren Sie RPi.GPIO als GPIO

    Fehler:
    -bash: Import: die Bestellung wurde nicht gefunden.

    Wissen Sie, warum dieser Fehler ist?

    Vielen Dank und herzlichen Glückwunsch zum Blog dient mir viel!

    • Nano-Hallo, Danke für den Kommentar.

      Es scheint, dass der Code von Bash und nicht von Python interpretiert wird.

      Das Skript wird ausgeführt, oder die Codezeilen im Terminal direkt?

  4. Gut wieder,
    Was ich nicht verstehe, ist die erste Zeile des Codes: #!Usr/bin/Env/python
    Was ist es?
    Ich sehe, dass es nur mit bzw. ohne funktioniert

    • Nano-Hallo, wieder Willkommen.

      Die Linie, die Sie erwähnen ist die Anweisung, die oft ist am Anfang ein Skript, um dem Terminal zu sagen, wo der Interpreter die Bestellungen sollten Sie übergeben, in diesem Fall, Python; für Bash würde wie folgt aussehen.:

      #!/bin/bash

      In diesem Fall funktioniert es mit der Erklärung und ohne es da die Datei die Erweiterung .py hat, aber es ist gute Praxis immer es hinzu.

      Ich hoffe, dass Ihre Zweifel gelöscht haben, hier zurück, wann immer Sie wollen und ich danke Ihnen sehr für Ihren Kommentar 🙂

  5. Danke, das Tutorial ist sehr gut, aber ich habe eine Frage:

    Sie lassen mich mit den folgenden Fehler:

    Linie 12 Import:nicht gefunden
    Linie 14 Syntax-Fehler: unerwartete Wort (erwartet “)”)

    Mein Code ist:

    #GPIO-setup.py
    ### BEGIN INIT INFO
    # Bietet: GPIO-setup.ch
    # Required-Start: $Remote_fs $syslog
    # Required-Stop: $Remote_fs $syslog
    # Standard-Start: 2 3 4 5
    # Standard-Stop: 0 1 6
    # Short-Description: Setup-Modus gpio
    # Beschreibung: Setup-gpio 22/27/17/4 out-Modus
    ### END INIT INFO

    Importieren Sie RPi.GPIO als GPIO
    #Wir definieren den BCM-Modus
    GPIO.setmode(GPIO. BCM)
    #Jetzt definieren wir sie Pin GPIO als Ausgang
    GPIO.setup(4, GPIO. HERAUS)
    GPIO.setup(17, GPIO. HERAUS)
    GPIO.setup(27, GPIO. HERAUS)
    GPIO.setup(22, GPIO. HERAUS)

    Jede Idee???

    • Hallo Leoctam, Danke für den Kommentar.

      Die ersten Zeilen geben um zu verstehen, dass Sie versuchen, erstellen Sie einen System-daemon, aber sie sind kommentiert, so dass es nicht berücksichtigt werden.

      Andererseits, der Code, mit dem Sie interagieren mit dem GPIO, ist Python, so bleiben Sie in einem Skript .py, die aufgerufen wird aus Ihrem System-daemon, oder verwenden Sie Bash um zu tun wie im ersten Beispiel in diesem tutorial.

Hinterlasse eine Antwort