Tiges de framboisier PI et GPIO: Commander une LED avec Bash et Python

Dans le post précédent que nous avons vu étaient les broches GPIO et quelques exemples d'applications pratiques, Aujourd'hui, nous nous concentrerons sur l'application de broches, et apprendre à les contrôler avec les commandes de l'interprète Bash et avec Python.

proto&a conduit

Utilisera un LED, une résistance de 330 Ohm, fil, et l'autre Carte de prototypage, ou soudure et un fer à souder.

Nous devrons également notre Framboise ont déjà Raspbian pré-installé, Si votre cas n'est pas, Vous pouvez voir comment le faire le lien suivant de la Annuaire.

Le circuit d'équitation

Vous pouvez souder directement le LED fils et résistance que vous verrez dans la suite diagramme, Bien qu'il est préférable d'utiliser un Carte de prototypage; Il est également très important de regarder bien sur pattes, comme dans le “diagonale” à l'intérieur de la diode LED combinant les deux broches pour monter le circuit, déjà que si vous la montez en arrière s'allume pas.

Circuit pour contrôler l'allumage d'une diode LED.

Circuit pour contrôler la puissance d'une diode LED.

Je vais utiliser un Carte de prototypage, et je vous recommandons d'utiliser un, Il y en a depuis environ 4 € et ils nous permettent de réutiliser des composants maintes et maintes fois sans avoir à souder, les connexions internes d'une Carte de prototypage ils ont tendance à être ce qui suit.

protocon

Une connexions Breadboard.

Les connexions entre les Carte de prototypage et le Framboise ils doivent être comme dans le diagramme suivant, le GPIO Vous pouvez rejoindre la question 3,3V pour attribuer une haute valeur logique.

Circuit sur maquette.

Circuit pour contrôler la puissance d'une diode LED.

Hello World of le GPIO avec Bash

Circuit une fois monté, Nous allons faire ce que j'appelle un “Bonjour monde GPIO” dans Bash exécutez ce qui suit 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

Pour désactiver la LED, nous pouvons le faire par ce qui suit 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 

Fondamentalement ce que nous faisons avec Bash consiste à créer un Hiérarchie des répertoires dans /sys/class/gpio et ajout de contenu à chaque fichier qui sera traitée comme un variable.

hiérarchie

Hiérarchie au sein de l'annuaire de /sys/class/gpio.

Introduction à Python

Nous avons déjà prouvé que notre circuit fonctionne correctement et le LED a il été congédié pour donner une logique haute valeur à la variable, Maintenant nous allons voir comment nous pouvons faire la même chose Python, Cela nous permettra de planifier nos applications Web pour contrôler les entrées et sorties de la GPIO depuis n'importe quel périphérique.

funcweb

Opération à l'aide de l'application WEB.

Avant de procéder, Je recommande que vous voyez les chapitres de la 1 à la 10 de Ce tutoriel vidéo de Python le canal de YouTube de Code facilitée, Si comme je n'ai pas d'idée de programmation en Python, On peut venir à vous très bien pour vous familiariser avec le code que nous verrons plus avant et arriver à comprendre ce.

Brochage différent de la GPIO (BCM et Conseil)

Il existe deux types de numérotation des broches, la numérotation physique ou la mode CONSEIL D'ADMINISTRATION, et la numérotation de la puce SoC Broadcom leur contrôle, Nous allons utiliser le brochage en mode AC., Mais regardons la différence.

BCMvsBOARD

Hello World of le GPIO avec Python

Après avoir regardé les vidéos, et brochage différent peut déjà comprendre le code de base pour faire le “Bonjour monde GPIO” dans Python.

Tout d'abord nous allons télécharger tout ce dont vous avez besoin pour contrôler la GPIO avec Python, dans Raspbian elles sont déjà installées Python et les bibliothèques GPIO, mais nous allons installer un package supplémentaire et mise à jour du système pour avoir la dernière version.

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

Mis à jour une fois, Nous allons voir comment activer le LED par ce qui suit script, Vous pouvez par exemple appeler enciende.py, et nous pouvons l'exécuter en tant que root avec la commande “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) 

Avec cela nous pouvons éteindre, par exemple appeler 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() 

Et avec cela, nous vous appellerons parpadea.py, Nous allons faire clignoter le 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() 

Si vous n'importez pas la bibliothèque “temps“, ne peut pas ajouter le “sommeil“, et si ne pas ajouter le “sommeil” d'une seconde entre marche et arrêt, Il est fort possible que notre œil ne percevra pas scintiller.

Il est très important de ne pas ajouter des caractères spéciaux dans le scripts en Python, C'est pourquoi les observations ne portent pas d'accents, Depuis il a donné erreur de caractère non valide.

Dans l'entrée suivante Nous allons voir comment faire un simple Application Web nous permettent d'exécuter ces scripts, pour pouvoir contrôler depuis n'importe quel appareil avec navigateur Web.

Si vous le souhaitez vous pouvez me suivre sur Twitter, Facebook, Google +, LinkedIn, ou partagez-les avec les boutons situés sous cette publication, Si vous avez des questions ou suggestions n'hésitent pas à commenter.

Aidez-nous à atteindre plus de lecteurs Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

16 Thoughts on"Tiges de framboisier PI et GPIO: Commander une LED avec Bash et Python

  1. J'ai une question de newbie…
    parce que la résistance des 330 Ohm et quand l'utiliser?

    Sont toujours utilisées pour 330 Lorsque nous travaillons avec RPI, ou il peut varier?

    Un blog de vœux et excellent!!!

  2. Bonjour me travail, et puis suivez les étapes à la lettre avec python, Il faut donner les autorisations sur le fichier du python?

    • Salut Peter,

      En principe, cela devrait fonctionner, erreur a seulement donné des autorisations pour certaines personnes, mais en cours d'exécution de l'application web, comme l'utilisateur www-data par défaut n'est plus a ces autorisations.

      Juste au cas essayez d'exécuter “sudo chmod + x script.py” pour le rendre exécutable, Bien que pas si cela devrait fonctionner seulement à partir de terminal; Vous pouvez m'enseigner si vous retourne une erreur dans le terminal pour exécuter le script ??

      Je vous remercie beaucoup pour votre commentaire.

  3. Bon, Quand je rentre le script en python, me dit que l'arroba est un SyntaxError ce qui peut être? Merci et salutations.

    • Me trouver très étrange, Étant donné que dans le script il n'y a aucun @, pourriez-vous donner plus de détails sur l'erreur?

      A bientôt, et Merci pour les commentaires.

  4. Salut,
    Je suis en train d'allumer une LED grâce à python suivant échantillons de guide, mais il me donne l'erreur suivante quand je lance le code il:

    importation RPi.GPIO comme GPIO

    Erreur:
    -bash: importer: l'ordre n'a pas été trouvé.

    Savez-vous pourquoi est cette erreur?

    Merci et félicitations pour le blog est me servir beaucoup!

    • Bonjour nano, Merci de commenter.

      Il semble que le code est interprété par Bash et non par Python.

      Vous exécutez le script, ou les lignes de code dans le terminal directement?

      • Hmm il exécutée à partir de la borne…fat erreur hehe (Je suis nouveau à la framboise ne peut pas se le permettre encore = P )

        • Je suis heureux que vous avez résolu!!!

          Merci de commenter, n'hésitez pas à le faire si vous avez des questions; entre les lecteurs et je vais vous manquer un coup de main.

  5. Bonne fois,
    ce que je ne comprends pas est la première ligne de code: #!usr/bin/env/python
    Qu'est-ce que c'est?
    Je vois que ça fonctionne juste avec ou sans lui

    • Bonjour nano, Bienvenue à nouveau.

      La ligne que vous mentionnez est l'instruction qui est souvent placée au début d'un script pour raconter le terminal où l'interpréteur de commandes devrait vous transmettre, dans ce cas, Python; pour bash serait la suivante:

      #!/bin/bash

      Dans ce cas, il fonctionne avec la déclaration et sans lui étant donné que le fichier a l'extension .py, mais il est conseillé de toujours ajouter.

      J'espère avoir effacé vos doutes, de retour ici chaque fois que vous voulez et je vous remercie beaucoup pour votre commentaire 🙂

  6. Merci, le tutoriel est excellent, mais j’ai un doute:

    ils me laissent les erreurs suivantes:

    ligne 12 importer:pas trouvé
    ligne 14 erreur de syntaxe: mot inattendu (s’attendant “)”)

    Mon code est:

    #GPIO-setup.py
    ### BEGIN INIT INFO
    # Fournit: GPIO-setup.ch
    # Requis-Start: $remote_fs $syslog
    # Requis-Stop: $remote_fs $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Le programme d’installation mode gpio
    # Description: Configuration gpio 22/27/17/4 le mode
    ### FIN INIT INFO

    importation RPi.GPIO comme GPIO
    #Nous définissons le mode BCM
    GPIO.setmode(GPIO. AC.)
    #Nous définissons maintenant les broches de sortie GPIO
    GPIO.setup(4, GPIO. HORS)
    GPIO.setup(17, GPIO. HORS)
    GPIO.setup(27, GPIO. HORS)
    GPIO.setup(22, GPIO. HORS)

    Toute idée???

    • Bonjour Leoctam, Merci de commenter.

      La première donne à comprendre que vous essayez de créer un démon système, mais ils sont commentés, donc il ne va pas tenir compte.

      D'un autre côté, le code que vous utilisez pour interagir avec le GPIO est Python, Si vous devez rester dans un script .py qui sera appelé depuis votre démon système, ou utilisez Bash pour faire comme dans le premier exemple dans ce tutoriel.

Laisser une réponse