Salut à tous,
Alors voila, j'ai réussi à piloter une pin gpio en tout ce qu'on veut.
Le principe est de créer le système de fichier virtuel (sysfs)
correspondant à l'Id de la pin, puis indiquer la direction et enfin
écrire ou lire sur la pin. J'ai suivis le tutoriel
http://www.acmesystems.it/foxg20/doku.php?id=tutorial:gpio dans sa
partie How Linux manages the GPIO lines (sysfs method).
debarm:/# echo 82 > /sys/class/gpio/export
=> Crée le dossier gpio82 dans /sys/class/gpio. Dedans on trouve les
fichiers direction et value
debarm:/# echo out > /sys/class/gpio/gpio82/direction
=>Configure J7.3 (Id 82) en sortie
debarm:/# echo 1 > /sys/class/gpio/gpio82/value
=>Mettre à 1 J7.3
debarm:/# echo 0 > /sys/class/gpio/gpio82/value
=>Mettre à 0 J7.3
A partir de là, il suffit de créer un fichier en C par exemple qui
écrit 0 ou 1 dans /sys/class/gpio/gpio82/value
Là ou les choses se corses, s'est quand on veut le faire en php à
partir d'un navigateur par exemple. Les fichiers virtuels créés
précédemment sont propriété de root et les autres utilisateurs ne
peuvent que les lires. En changeant les droits d'accès, tout marche.
chmod 777 /sys/class/gpio/gpio82/direction
chmod 777 /sys/class/gpio/gpio82/value
Mais tout n'est pas résolu car comme ces fichiers sont virtuels,
lorsque la carte est mise hors tension puis rebranchée, ils ont
disparus.
L'idée est donc de les créer au démarrage de l'OS en ecrivant un shell
placé dans /etc/init.d et un lien dans /etc/rc2.d :
créer le shell suivant dans /etc/init.d
#!/bin/sh
echo "Activer les ports GPIO"
echo -n "J7.3 : "
if test -e /sys/class/gpio/gpio82
then echo "Déja actif"
else echo 82 > /sys/class/gpio/export
chmod 777 /sys/class/gpio/gpio82/direction
chmod 777 /sys/class/gpio/gpio82/value
echo "OK"
fi
Le rendre exécutable
chmod +x ActivGpio.sh
créer le lien symbolique dans /etc/rc2.d
cd /etc/rc2.d
ln -s /etc/init.d/ActivGpio.sh S99ActivGpio.sh
Redémarrer la fox, si on observe la séquence de boot (sur le port
debugg), on voit l'exécution du script se faire lors du runlevel2
(après le lancement des deamons habituels). Dès lors ça marche !!!
J'ai aussi testé en cgi en C.
Cordialement, Marco
On 15 mar, 15:17, "
pierre-h.be...@laposte.net" <pierre-
h.be...@laposte.net> wrote:
> Bonjour,
> Je n'ai pas réussi non plus à piloter un bit GPIO avec un scipt CGI. Je soupçonne un problème de configuration de lihgttpd que je n'arrive pas à résoudre.
> J'ai envoyé le mail suivant à acme-systems:
> -----------------------------------
> Destinataire:
i...@acmesystems.it
> Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ?
> Je crée ma boîte
mailwww.laposte.net