Accueil

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

Added 2018-10-01


Le Raspberry Pi est l'ordinateur idéal 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 GPIO (General Purpose Input / Output) permettent aux futurs fabricants d’expérimenter avec des projets électroniques de bricolage.

C’est particulièrement facile lorsque vous utilisez des bibliothèques de code qui contrôlent ces broches. La bibliothèque RPi.GPIO Python, très populaire, en est un excellent exemple. 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 permettant de 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 courants de Raspberry Pi.

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

Quel est le problème avec RPi.GPIO?

Malgré son utilisation intensive, RPi.GPIO n'a jamais été conçu pour les utilisateurs finaux. C’est une preuve du bon design de RPi.GPIO que de nombreux débutants l’utilisent néanmoins.

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

Quand vous apprenez le code Python , vous apprenez qu’il devrait être facile à lire et aussi court que possible. GPIO Zero vise 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: configuration et activation d'une DEL:

Code à configurer et voyant à afficher à l'aide de la bibliothèque RPi.GPIO

Le code ci-dessus devrait être assez familier à quiconque a Comment programmer votre Raspberry Pi pour contrôler les lumières DEL utilisé leur Pi pour contrôler les LED .

Cette approche a du sens, mais la manière de le faire GPIO Zero est beaucoup plus simple:

Configuration d'une LED avec GPIO Zero

GPIO Zero dispose d'un module pour les voyants, importé au départ. Cela signifie que vous pouvez déclarer le numéro d'identification personnelle et appeler le conduit sur()  méthode.

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

Cette méthode de travail est une amélioration de RPi.GPIO pour certaines raisons.

Tout d'abord, il répond à l'exigence «facile à lire, aussi court que possible». Bien que les instructions de configuration de RPi.GPIO soient assez faciles à comprendre, elles ne sont pas nécessaires. Une LED sera toujours une sortie, donc GPIO Zero configure les broches en coulisse. Il ne reste que trois lignes de code à configurer, puis allume une LED.

Vous remarquerez peut-être qu’il n’ya 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 RasPi.tv :

«La numérotation BOARD peut sembler plus simple, mais je dirais que cela amène les nouveaux utilisateurs à penser que toutes les épingles ont un but général, et ce n’est pas le cas. Connectez une LED à la broche 11, pourquoi ne pas en connecter davantage aux broches 1, 2, 3 et 4? Le puits 1 est 3V3. 2 et 4 sont 5V. Une méconnaissance du but des épingles peut être dangereuse. ”

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

GPIO Zero est-il réellement meilleur?

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

D'autre part, il est important de savoir exactement ce qui se passe pour apprendre. Prenons l'exemple de la configuration d'un bouton de la Documentation GPIO Zero :

Exemple de code GPIO Zero Button

le bouton  Le module simplifie la configuration des boutons-poussoirs. Il sait que les boutons sont des entrées et utilise donc le numéro de broche déclaré pour la configuration. Il est également plus facile de vérifier si vous appuyez sur un bouton. .is_pressed  pour détecter les appuis sur les boutons.

Les utilisateurs de la bibliothèque RPi.GPIO remarqueront 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 pour les débutants de connaître les résistances de rappel? Encore une fois, Ben Nuttall a une réponse à cette question:

"Vous pourriez dire qu'il est bon de savoir sur les tractions et les tractions, et vous auriez raison - mais pourquoi dois-je enseigner cela le premier jour? […] Si vous voulez enseigner l'électronique plus en profondeur, il y a beaucoup de portée pour cela, mais cela ne devrait pas être obligatoire si vous commencez tout juste.

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

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 connaissez déjà la programmation en langage C, alors Câblage Pi  a vous 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 . Rubis sur rails  peut également être installé sur le Raspberry Pi, bien que celui-ci ne soit peut-être pas le meilleur moyen d'apprendre à utiliser Rails !

Toutes ces alternatives, ainsi que des bibliothèques multilingues comme l'excellent cochon  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'elle ne fournit pas, vous serez plus que prêt à plonger dans ces autres bibliothèques à votre propre rythme.

Débuter avec GPIO Zero Yourself

GPIO Zero est la plus récente des librairies à faire des vagues pour le Pi et à juste titre. Pour la plupart des utilisateurs, cela simplifie la lecture et l’écriture rapide des broches GPIO.

Étant donné l’utilisation de 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.






Nuage de tags

Choix de L'éditeur


Thomas Becket

Je suis un écrivain indépendant qui couvre la programmation et les logiciels.
Je suis étudiant en informatique et je m'intéresse à la programmation, aux logiciels et à la technologie
Gadgets technologiques et critiques 2019