Bibliothèques d'interfaçage avec le GPIO

30

Quelles bibliothèques sont disponibles pour l'interfaçage avec le GPIO?

ramblinjan
la source
pas une liste complète, mais en voici quelques-unes - bien que je pense que cette question sera fermée, car les questions de type liste ont tendance à ne pas bien fonctionner sur les sites de la pile, car il y aura un flux de réponses sans fin
user2813274

Réponses:

14

Je vais interpréter ce que je pense que vous pourriez demander plus largement comme "Comment puis-je contrôler GPIO depuis l'espace utilisateur?"

Une très bonne façon de commencer à utiliser GPIO est d'utiliser le système de /sysfichiers. Vous pouvez tout faire à partir de la ligne de commande.

Par exemple,

cd sys/class/gpio
echo 0 > export
cd gpio0
echo high > direction

Plus de documentation se trouve dans linux / Documentation / gpio.txt .

décalage vers le bleu
la source
1
Est-ce que cela fonctionne avec tous les systèmes d'exploitation?
Alex L
Ceci est spécifique à Linux.
blueshift
1
Existe-t-il des didacticiels utilisant cette méthode? Je n'ai vu que des bibliothèques (principalement celle en python).
Shane Hudson
2
Ce n'est pas nécessairement une bibliothèque selon la demande de l'OP.
Andrew Larsson
1
Les autres réponses à cette question sont bien meilleures - cette réponse ne répond pas à la question sur les bibliothèques.
recantha
12

Il y en a un que j'ai trouvé ici . Je n'ai pas eu la chance de le tester, car mon Pi n'est pas arrivé. Cela semble toutefois rassurant. Il y a même un fil de discussion ici qui professe des bénéfices prometteurs. Si vous voulez un exemple C basique avec des bibliothèques standard, il y en a un ici d'eLinux.

Andrew Larsson
la source
Quelle a donc été votre expérience de cette bibliothèque?
Peter Mortensen
1

quick2wire peut être utilisé par des utilisateurs réguliers (pas root):

API Quick2Wire Python

Une bibliothèque Python pour contrôler le matériel connecté aux broches d'en-tête du Raspberry Pi, sans s'exécuter en tant qu'utilisateur root .

dugres
la source
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien de référence. Les réponses de lien uniquement peuvent devenir invalides si la page liée change.
Mark Booth
@MarkBooth: "l'essentiel de la réponse" est " peut être utilisé par les utilisateurs réguliers " contrairement aux autres réponses.
dugres
1

J'utilise Wiring PI et cela fonctionne vraiment bien. Je l'utilise avec le langage C et je n'ai eu aucun problème jusqu'à présent. Il est facile à comprendre et à manipuler.

Franzi
la source
0

Pi4J vous permet de contrôler les broches GPIO à l'aide de Java. Je ne sais pas comment cela fonctionne, mais il y a une explication sur http://pi4j.com/

Matthieu
la source
0

Il est vraiment simple de contrôler les ports GPIO dans n'importe quelle langue comme indiqué sur http://elinux.org , donc je pense que vous n'avez en fait pas besoin d'un cadre pour le contrôle direct.

Vous devez savoir quelles fonctionnalités supplémentaires vous attendez d'un framework, comme

  • Contrôle à distance via un navigateur
  • Une jolie interface utilisateur de navigateur ou peut-être un programme autonome
  • Contrôle automatique basé sur le temps ( tâches cron )

J'ai fini par écrire un cadre pour moi: contrôler les ports GPIO sur HTTP et avec des tâches cron qui correspondent parfaitement à mes besoins. Je voulais avoir quelque chose pour la domotique. J'avais donc besoin de tâches cron et d'une interface Web JSON pour exécuter une application native sur mon iPhone. Par conséquent, je n'ai pas écrit d'interface utilisateur de navigateur. Je pense que ce serait également bon pour un système d'alarme.

Je n'ai pas encore trouvé de liste (complète) de frameworks. Il y en a certains mentionnés sur le forum de raspberrypi.org.

le mec
la source
0

Johny-Five est assez facile à utiliser pour ceux qui connaissent Node.js ou JavaScript. Voir http://johnny-five.io/examples/raspi-io/

npm install johnny-five raspi-io
var five = require("johnny-five");
var Raspi = require("raspi-io").RaspiIO;
var board = new five.Board({
  io: new Raspi()
});

board.on("ready", function() {
  var led = new five.Led("P1-13");
  led.blink();
});

Particulièrement utile pour les projets Pi contrôlant GPIO via un serveur Web

Yves M.
la source