Comparer et contraster les API GPIO Python


11

Je commence juste avec Pi et je veux programmer GPIO en Python. Jusqu'à présent, je suis tombé sur cinq bibliothèques:

Avant de consacrer du temps à en apprendre un, je veux savoir:

  • S'il y a des limitations à l'un ou à l'autre.
  • Quelles différences objectives significatives existent entre eux.


Vous avez raison, et cela sera probablement fermé comme subjectif. Il n'y a pas de réponse simple. gpiozeroest un emballage simple, conçu pour les débutants. pigpioest probablement le plus puissant, bien que la documentation soit sommaire et mieux adaptée à un programmeur expérimenté. (J'utilise câblagepi cparce que c'est plus facile, mais j'ai plus de 40 ans d'expérience.)
Milliways

Je suggère que nous fermions cette question comme une opinion, à moins que nous ne voulions que chaque personne utilisant GPIO partage son expérience dans les réponses.
Dmitry Grigoryev

Réponses:


13

Attention. Je suis l'auteur de pigpio sera donc partiale.

Vous pourriez avoir un avant-goût en regardant elinux .

RPi.GPIO a été le premier et le plus populaire. Ce sera celui pour lequel vous verrez le plus souvent des exemples.

RPIO s'appuie sur RPi.GPIO (il est censé être un plug-in de remplacement) et ajoute quelques fonctionnalités. En particulier, il ajoute un PWM temporisé matériel adapté aux LED et aux servos et des chaînes d'impulsions temporisées matérielles. RPi.GPIO fournit uniquement un logiciel PWM qui donne des défauts visibles dans les LED et raccourcit la durée de vie des servos. Comme mentionné dans le repo RPIO github :

Ce référentiel n'est plus maintenu activement!

câblagePi Python est un port d'une grande partie de la fonctionnalité C de câblagePi vers Python. Je ne l'ai pas utilisé et je n'en sais pas grand-chose.

pigpio Python est un portage de la fonctionnalité C de pigpio vers Python. Comme RPIO.GPIO, il fournit un PWM temporisé par matériel pour les LED et les servos, et des chaînes d'impulsions chronométrées par matériel. Une caractéristique unique de pigpio est qu'il chronomètre les événements GPIO à la source, donc à n'importe quel moment, pigpio est probablement le plus précis. pigpio peut fonctionner sur un PC en réseau (Windows, Mac, Linux) pour contrôler un Pi distant.

gpiozero est un wrapper simplifiant autour de presque toutes les bibliothèques ci-dessus. Il s'agit en fait d'un frontal qui essaie de supprimer autant que possible l'utilisateur des détails d'implémentation sous-jacents. gpiozero (je pense) est le point de départ Python recommandé par la Fondation. gpiozero peut (je pense) fonctionner sur un PC en réseau (Windows, Mac, Linux) pour contrôler un Pi distant si pigpio est le backend.

Attention, demandez à 10 autres personnes et elles auront 10 vues différentes. Toutes les bibliothèques ont leur utilité. Ce sont tous des outils. Ce qui vous convient le mieux dépend du type d'ouvrier que vous êtes.


0

Je recommanderais RPi.GPIO mais GPIO zero est le meilleur pour les débutants mais a plus de limitations. Cependant, je n'ai aucune connaissance des autres mais si je n'en ai pas entendu parler, cela ne veut pas dire qu'ils ne sont pas aussi bons que les autres.


GPIO Zero fait tout RPi.GPIO fait, il n'y a pas de limitations. Il y a des fonctionnalités plus avancées dans pigpio qui ne sont pas encore implémentées dans GPIO Zero, mais pour ce qu'il prend en charge, il fournit une belle API au-dessus de l'une ou l'autre bibliothèque.
ben_nuttall
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.