Pourquoi GPIO Zero est meilleur que RPi.GPIO pour les projets Raspberry Pi
Publicité
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, et la bibliothèque Python RPi.GPIO, très répandue, 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. Il a été é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?
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. Les 11 meilleurs projets pour les débutants Raspberry Pi Les 11 meilleurs projets pour les débutants Raspberry Pi Ces projets pour les débutants de Raspberry Pi sont parfaits pour se lancer avec les capacités de n’importe quel modèle Raspberry Pi. 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?
Lorsque vous apprenez 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'une DEL:
Le code ci-dessus devrait être assez familier à quiconque a utilisé son Pi pour contrôler des 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. Pins GPIO Tout ce que vous devez savoir sur le Raspberry Pi. Les pins GPIO. Le Raspberry Pi est un fantastique petit ordinateur. 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 manière 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 la méthode led.on () .
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 dans une interview de RasPi.tv 2015:
«La numérotation de 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 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 à l'avenir, cela vaut la peine d'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 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 module de boutons 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: le bouton est pressé 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 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. 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 fait 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 ce dernier ne soit peut-être pas le meilleur moyen d'apprendre à utiliser Rails!
Toutes ces alternatives, associées à 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 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.
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. Avez-vous déjà voulu arriver à la maison pour un accueil personnel? Dans ce simple projet Raspberry Pi, nous utiliserons un commutateur à lames pour déclencher une mélodie lors de l’ouverture d’une porte. Lisez-en plus et portez-le dans la nouvelle bibliothèque.
Explorez plus sur: GPIO, Python, Raspberry Pi.