Pourquoi GPIO Zero est meilleur que RPi.GPIO pour les projets Raspberry Pi

Pourquoi GPIO Zero est meilleur que RPi.GPIO pour les projets Raspberry Pi

Le Raspberry Pi est l'ordinateur parfait pour apprendre. 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 la bibliothèque Python RPi.GPIO populaire est un excellent exemple d'une telle bibliothèque. Mais est-ce le meilleur chemin pour les débutants ? Rejoignez-nous pendant 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 dénomination simples et des fonctions descriptives, GPIO Zero est plus accessible pour les débutants à comprendre. Même les utilisateurs chevronnés de la bibliothèque RPi.GPIO peuvent la préférer --- et pour comprendre pourquoi, regardons comment RPi.GPIO se compare à GPIO Zero.

Quel est le problème avec RPi.GPIO ?

Rien. Rien du tout. RPi.GPIO a été publié 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 de débutant nous avons couvert.



comment forcer l'arrêt du macbook pro

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

Qu'y a-t-il de si bon avec GPIO Zero ?

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





Prenons l'exemple suivant, la configuration et l'allumage d'une LED :

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





La bibliothèque RPi.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 ), et la broche est configurée comme une 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 :

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

comment combiner deux photos en une sur iphone

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

Il y a certaines raisons pour lesquelles cette méthode de travail est une amélioration par rapport à RPi.GPIO.

Premièrement, il répond à l'exigence « facile à lire, aussi court que possible ». Bien que les instructions de configuration RPi.GPIO soient 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 à allumer une LED.

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

« La numérotation de BOARD peut sembler plus simple, mais je dirais que cela amène les nouveaux utilisateurs à penser que toutes les broches 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 l'utilité des épingles peut être dangereux.

En d'autres termes, il est tout à fait logique d'utiliser les numéros BCM. Étant donné que GPIO Zero sera standard dans la documentation Raspberry Pi à l'avenir, cela vaut la peine d'être appris !

Le GPIO Zero est-il réellement meilleur ?

Bien que cela 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 débutants comme pour les codeurs chevronné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 à partir du Documentation GPIO Zéro :

Les bouton Le module simplifie la configuration des boutons poussoirs. Il sait que les boutons sont des entrées, il 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, avec le .is_pressed pour détecter les pressions sur les boutons.

Nous avons utilisé cette fonctionnalité exacte dans le Tutoriel bouton Raspberry Pi , ce qui est un excellent moyen de vous familiariser avec les différences entre les bibliothèques.

Les utilisateurs de la bibliothèque RPi.GPIO remarqueront que les résistances pull-up/pull-down internes du Pi ne sont pas configurées dans le code. Cela soulève une question intéressante. Est-il essentiel pour les débutants de connaître 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 auriez raison --- mais pourquoi dois-je enseigner cela le premier jour ?[...] Si vous voulez enseigner l'électronique en plus de profondeur, il y a beaucoup de possibilités pour cela --- mais cela ne devrait pas être obligatoire si vous ne faites que commencer.

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

Python est-il la seule option ?

Python est le langage pour lequel Pi est connu, mais ce n'est pas la seule option. Si vous êtes déjà familiarisé avec la programmation en langage C, alors Câblage 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 npm rpi-gpio . Rubis sur rails peut également être installé sur le Raspberry Pi, bien que le Pi ne soit peut-être pas le meilleur moyen d'apprendre Rails !

Toutes ces alternatives, ainsi que des bibliothèques multilingues comme l'excellente pas cher 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.

Premiers pas avec GPIO Zero vous-même

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

pourquoi trouver mon iphone dit pas de localisation trouvée

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 était parfait jusqu'à présent, GPIO Zero prend une bonne idée et la rend encore meilleure.

Un excellent moyen de démarrer avec GPIO Zero est de prendre un projet pour débutant comme le Musical Door Sensor et de le porter sur la nouvelle bibliothèque.

Partager Partager Tweeter E-mail 5 astuces pour booster vos machines Linux VirtualBox

Vous en avez assez des mauvaises performances offertes par les machines virtuelles ? Voici ce que vous devez faire pour améliorer les performances de votre VirtualBox.

Lire la suite
Rubriques connexes
  • DIY
  • La programmation
  • Tarte aux framboises
  • Python
  • GPIO
A propos de l'auteur Ian Buckley(216 articles publiés)

Ian Buckley est un journaliste indépendant, musicien, interprète et producteur vidéo vivant à Berlin, en Allemagne. Quand 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.

Plus de Ian Buckley

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner