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.
gpiozero
est un emballage simple, conçu pour les débutants.pigpio
est probablement le plus puissant, bien que la documentation soit sommaire et mieux adaptée à un programmeur expérimenté. (J'utilise câblagepic
parce que c'est plus facile, mais j'ai plus de 40 ans d'expérience.)Réponses:
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 :
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.
la source
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.
la source