Publicité

Le Raspberry Pi est l'ordinateur parfait pour l'apprentissage. Le système d'exploitation Raspbian basé sur Linux intègre Python, ce qui en fait un excellent premier système pour les codeurs débutants. Ses broches d'entrée / sortie à usage général (GPIO) permettent aux fabricants en herbe d'expérimenter facilement des projets électroniques de bricolage.

C'est particulièrement facile lorsque vous utilisez des bibliothèques de code qui contrôlent ces broches et le RPi populaire. La bibliothèque GPIO Python est un excellent exemple d'une telle bibliothèque. Mais est-ce le meilleur chemin pour les débutants? Rejoignez-nous alors que nous enquêtons.

Qu'est-ce que GPIO Zero?

La bibliothèque GPIO Zero est une bibliothèque Python pour travailler avec des broches GPIO. C'était écrit par Ben Nuttall, responsable de la communauté Raspberry Pi. Destiné à être intuitif et «convivial», il rationalise le code Python pour la plupart des cas d'utilisation habituels de Raspberry Pi.

Combinant des pratiques de nommage simples et des fonctions descriptives, GPIO Zero est plus accessible aux débutants. Même les utilisateurs chevronnés du RPi. La bibliothèque GPIO peut la préférer - et pour comprendre pourquoi, examinons comment RPi. GPIO se compare à GPIO Zero.

instagram viewer

Qu'est-ce qui ne va pas avec RPi. GPIO?

Rien. Rien du tout. RPi. GPIO a été lancé début 2012 par le développeur Ben Croston. Il s'agit d'une bibliothèque robuste permettant aux utilisateurs de contrôler les broches GPIO à partir du code. Il figure dans presque tous les projets pour débutants Les 11 meilleurs projets Raspberry Pi pour les débutantsCes projets Raspberry Pi pour débutants sont parfaits pour démarrer avec les capacités de n'importe quel modèle Raspberry Pi. Lire la suite nous avons couvert.

Malgré son utilisation extensive, RPi. GPIO n'a jamais été conçu pour les utilisateurs finaux. C'est un témoignage de RPi. Le bon design de GPIO que tant de débutants l'utilisent néanmoins.

Qu'est-ce qui est si bon avec GPIO Zero?

Lorsque vous êtes apprentissage du code Python, vous apprenez qu'il doit être facile à lire et aussi court que possible. GPIO Zero vise à couvrir les deux points. Construit au-dessus de RPi. GPIO en tant que wrapper de langage frontal, il simplifie la configuration et l'utilisation de GPIO.

Considérez l'exemple suivant, configurer et allumer une LED:

Code à configurer et LED à la sortie à l'aide du RPi. Bibliothèque GPIO

Le code ci-dessus devrait être assez familier à toute personne qui a utilisé leur Pi pour contrôler les LED.

Le RPi. La bibliothèque GPIO est importée et une broche pour la LED est déclarée. Le type de disposition des broches est configuré (les modes BCM et BOARD sont expliqué dans notre guide GPIO Tout ce que vous devez savoir sur les broches GPIO du Raspberry PiLe Raspberry Pi est un petit ordinateur fantastique, mais que font exactement les broches GPIO (General Purpose Input / Output)? En bref, ils ouvrent tout un monde de bricolage électronique et d'invention bricolage. Lire la suite ), et la broche est configurée en sortie. Ensuite, la broche est activée.

Cette approche est logique, mais la façon de procéder de GPIO Zero est beaucoup plus simple:

Configuration d'une LED avec GPIO Zero

GPIO Zero dispose d'un module pour LED, importé au départ. Cela signifie que vous pouvez déclarer le code PIN et appeler le conduit sur() méthode.

Pourquoi l’approche de GPIO Zero est-elle meilleure?

Il y a quelques raisons pour lesquelles cette méthode de travail est une amélioration de RPi. GPIO.

Premièrement, il répond à l'exigence «facile à lire, le plus court possible». Alors que le RPi. Les instructions de configuration GPIO sont assez faciles à comprendre, elles ne sont pas nécessaires. Une LED sera toujours une sortie, donc GPIO Zero configure les broches dans les coulisses. Le résultat est juste trois lignes de code à configurer, puis allumez une LED.

Vous remarquerez peut-être qu'il n'y a pas de configuration du mode carte dans l'exemple GPIO Zero. La bibliothèque utilise uniquement la numérotation Broadcom (BCM) pour les broches. Le concepteur de la bibliothèque Ben Nuttall explique pourquoi en 2015 Entretien de RasPi.tv:

"La numérotation des tableaux peut sembler plus simple, mais je dirais qu'elle amène les nouveaux utilisateurs à penser que toutes les épingles sont à usage général - et elles ne le sont pas. Connectez une LED à la broche 11, pourquoi ne pas en connecter d'autres aux broches 1, 2, 3 et 4? Eh bien 1 est 3V3. 2 et 4 sont 5V. Un manque de conscience de la fonction des broches peut être dangereux. »

En d'autres termes, il est absolument logique d'utiliser les numéros BCM. Étant donné que GPIO Zero sera la norme dans la documentation Raspberry Pi à l'avenir, cela vaut la peine d'apprendre!

GPIO Zero est-il réellement meilleur?

Bien qu'elle semble plus simple à première vue, la nouvelle bibliothèque a-t-elle des problèmes? Comme pour toute nouvelle bibliothèque de codage, c'est une question d'opinion. D'une part, la suppression du code de configuration est excellente pour les codeurs débutants et expérimentés. L'écriture de code est plus simple et plus rapide.

D'un autre côté, savoir exactement ce qui se passe est important pour l'apprentissage. Prenons l'exemple de la configuration d'un bouton Documentation GPIO Zero:

Exemple de code de bouton zéro GPIO

le bouton Le module simplifie la configuration des boutons-poussoirs. Il sait que les boutons sont des entrées, utilise donc le numéro de broche déclaré pour la configuration. La vérification d’une pression sur un bouton est également plus facile, .is_pressed pour détecter les pressions sur les boutons.

Nous avons utilisé cette fonctionnalité exacte dans le Tutoriel sur le bouton Raspberry Pi 2 façons d'ajouter un bouton à votre projet Raspberry PiComment connecter un bouton à votre Raspberry Pi? Voici deux façons de démarrer, illustrées à l'aide de Python et d'une LED. Lire la suite , ce qui est un excellent moyen de vous familiariser avec les différences dans les bibliothèques.

Utilisateurs du RPi. La bibliothèque GPIO remarquera que les résistances internes pull-up / pull-down du Pi ne sont pas configurées dans le code. Cela soulève une question intéressante. Est-il essentiel que les débutants connaissent les résistances pull-up / down? Encore une fois, Ben Nuttall a une réponse à cette question:

"Vous pourriez dire qu'il est bon de connaître les tractions et les tractions, et vous avez raison - mais pourquoi dois-je enseigner cela le premier jour? […] Si vous voulez enseigner l'électronique plus en profondeur, il y a beaucoup de possibilités pour cela, mais cela ne devrait pas être obligatoire si vous commencé."

Dans l'ensemble, l'approche simple de GPIO Zero est probablement une bonne chose pour les débutants comme pour les vétérans. En plus, RPi. GPIO ne va nulle part. Il sera toujours là pour revenir en cas de besoin.

Python est-il la seule option?

Python est le langage pour lequel le Pi est connu, mais ce n'est pas la seule option. Si vous connaissez déjà la programmation en langage C, alors Wiring Pi vous a couvert.

Alternativement, si vous programmez déjà en JavaScript, Node.js peut facilement être installé sur le Pi. L'accès GPIO est disponible via le bibliothèque rpi-gpio npm. Ruby on Rails peut également être installé sur le Raspberry Pi, bien que le Pi ne soit pas le meilleure façon d'apprendre Rails!

Toutes ces alternatives, ainsi que des bibliothèques multilingues comme l'excellent pigpio peut rendre le choix d'une bibliothèque déroutant. C'est là que GPIO Zero excelle: pour les débutants qui se demandent comment et par où commencer.

Si vous êtes à un point où vous avez besoin de quelque chose qu'il ne fournit pas, vous serez plus que prêt à plonger dans ces autres bibliothèques à votre rythme.

Débuter avec GPIO Zero Yourself

GPIO Zero est la bibliothèque la plus récente pour faire sensation pour le Pi et pour cause. Pour la plupart des utilisateurs, le codage des broches GPIO est plus simple à lire et plus rapide à écrire.

Compte tenu de l'utilisation du Raspberry Pi dans l'éducation, tout ce qui rend l'apprentissage plus naturel est une bonne chose. Alors que RPi. GPIO a été parfait jusqu'à présent, GPIO Zero prend une bonne idée et la rend encore meilleure.

Un excellent moyen de commencer avec GPIO Zero est de prendre un projet pour débutant comme le Capteur musical de porte Jouez votre propre thème lorsque vous entrez dans la pièce avec Raspberry PiAvez-vous déjà voulu arriver chez vous pour un accueil personnalisé? Dans ce projet Raspberry Pi simple, nous utiliserons un interrupteur à lames pour déclencher une mélodie lorsqu'une porte est ouverte. Lire la suite et le porter dans la nouvelle bibliothèque.

Ian Buckley est un journaliste indépendant, musicien, interprète et producteur de vidéos vivant à Berlin, en Allemagne. Lorsqu'il n'écrit pas ou sur scène, il bricole de l'électronique ou du code DIY dans l'espoir de devenir un savant fou.