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 / La programmation

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 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 célèbre bibliothèque RPi.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 permettant de travailler avec des broches GPIO. Il a été écrit par Ben Nuttall, responsable de la communauté de Raspberry Pi. Destiné à être intuitif et “amical,” il simplifie 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?

Rien. Rien du tout. RPi.GPIO a été publié début 2012 par le développeur Ben Croston. C'est une bibliothèque robuste permettant aux utilisateurs de contrôler les broches GPIO à partir de code. Il est présent dans presque tous les projets débutants Projets Raspberry Pi pour débutants Projets Raspberry Pi pour débutants Ces 10 projets Raspberry Pi pour débutants sont parfaits pour une introduction aux capacités matérielles et logicielles du Pi, et vous aideront à vous lancer temps! Lire la suite nous avons couvert.

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..

Quel est l'avantage de GPIO Zero?

En apprenant 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: configuration et activation d'un voyant:

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

La bibliothèque RPi.GPIO est importée et une broche pour le voyant est déclarée. Le type de disposition des broches est défini (les modes BCM et BOARD sont expliqués dans notre guide GPIO Tout ce que vous devez savoir sur le Raspberry Pi. GPIO Pins Tout ce que vous devez savoir sur le Raspberry Pi. Le pin Raspberry Pi est un fantastique petit En bref, ils ouvrent tout un monde de bricolage et de bricolage électroniques (Lire la suite), et la broche est configurée en tant que sortie. Ensuite, la broche est activée.

Cette approche a du sens, mais la façon de le faire GPIO Zero est beaucoup plus simple:

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 à la “facile à lire, aussi court que possible” exigence. 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 tableau 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 dans une interview de RasPi.tv 2015:

“La numérotation BOARD peut sembler plus simple, mais je dirais que cela amène les nouveaux utilisateurs à penser que toutes les broches ont un but général, et elles ne le sont pas. 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, il vaut la peine de l’apprendre.!

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 plus 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 de GPIO Zero:

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. .est_primé pour détecter les appuis sur les boutons.

Nous avons utilisé cette fonctionnalité exacte dans le didacticiel sur les boutons Raspberry Pi. 2 façons d’ajouter un bouton à votre projet Raspberry Pi. 2 manières d’ajouter un bouton à votre projet Raspberry Pi. Comment connecter un bouton à votre Raspberry Pi? Voici deux manières de commencer, illustrées à l'aide de Python et d'une LED. Lire la suite, qui est un excellent moyen de se familiariser avec les différences entre les bibliothèques.

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 à propos des tractions et des 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 choses à faire. possibilité pour cela, mais cela ne devrait pas être obligatoire si vous débutez.”

Dans l'ensemble, l'approche simple de GPIO Zero est probablement une bonne chose pour les débutants et les vétérans. En outre, 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 Wiring Pi est là pour vous.

Alternativement, si vous programmez déjà en JavaScript, Node.js peut facilement être installé sur le Pi. L’accès GPIO est disponible via la bibliothèque rpi-gpio npm. Ruby on 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, avec des bibliothèques multilingues comme l'excellent pigpio, peuvent compliquer le choix d'une bibliothèque. 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 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'à maintenant, GPIO Zero prend une bonne idée et le rend encore meilleur.

Une excellente façon de commencer à utiliser GPIO Zero est de prendre un projet pour débutant tel que Musical Door Sensor. Jouez votre propre thème lorsque vous entrez dans la pièce avec Raspberry Pi. Jouez votre propre thème lorsque vous entrez dans la pièce avec Raspberry Pi. arriver à la maison pour un accueil personnel? Dans ce projet simple, Raspberry Pi, nous utiliserons un commutateur à lames pour déclencher une mélodie lors de l’ouverture d’une porte. Lisez Plus et portez-le dans la nouvelle bibliothèque.

Explorer plus sur: GPIO, Python, Raspberry Pi.