Configurer l'accès au GPIO du Raspberry Pi
Cet articlé décrit l'utilisation de pigpio sur un Raspberry Pi tournant sous Arch Arm. pigpio permet d'accéder aux entrée/sorties du Raspberry Pi qui se situent sur le connecteur d'extension.
Mes recherches pour pouvoir accéder aux ports GPIO en mode utilisateur (c'est à dire sans passer en mode root) ont été fastidieuses. En effet, la plupart des gens se contente d'exécuter leurs programmes en mode super-utilisateur, ce qui est une aberration.
J'ai exploré la voie du sysfs où j'ai essayé de modifier les propriétés des fichiers du répertoire /sys/class/gpio grâce à des règles udev. Cela m'a mené à une impasse à cause des liens symboliques remontants contenu dans /sys/class/gpio.
Les autre solutions passent par un accès direct à /dev/mem, ce qui mène à une impasse aussi. Une des solutions acceptables serait d'utiliser d'un driver dédié (cf Thèse de VU Nguyen dans les liens en fin d'article).
J'utilise maintenant la librairie pigpio. Elle n'a pas été facile à dégotter tant les fausses pistes furent nombreuses. Elle est bien faite, un module Python est disponible.
Instalation de git, si ce n'est pas déjà fait :
# apt install git
Modification du chemin de recherche des librairies : Modifiez le fichier /etc/ld.so.conf et ajoutez-y la ligne suivante :
/usr/local/lib
Mettez à jour la liste des répertoires des librairies dynamiques :
# ldconfig
Téléchargez pigpio :
$ git clone https://github.com/joan2937/pigpio.git
$ cd pigpio
$ make all
$ su
# make install
Création d'une unité systemd pour le daemon soit lancé au démarrage : Créez le fichier /etc/systemd/system/pigpiod.service contenant les lignes suivantes :
[Unit] Description=Gpio daemon [Service] ExecStart=/usr/local/bin/pigpiod Type=forking [Install] WantedBy=multi-user.target
# systemctl start pigpiod
# systemctl enable pigpiod
# systemctl status pigpiod
* pigpiod.service - pigpio daemon
Loaded: loaded (/etc/systemd/system/pigpiod.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2015-09-18 19:51:36 CEST; 1min 16s ago
Main PID: 512 (pigpiod)
CGroup: /system.slice/pigpiod.service
`-512 /usr/local/bin/pigpiod
Sep 18 19:51:36 jannequin systemd[1]: Starting Gpio daemon...
Sep 18 19:51:36 jannequin systemd[1]: Started Gpio daemon.
Vérification que ça marche sur le classique exemple de la led clignotante (connectée ici sur le gpio 24 soit la pin 18) :
#!/usr/bin/env python
import time
import pigpio
GPIO_LED = 24
pi = pigpio.pi()
pi.set_mode(GPIO_LED, pigpio.OUTPUT)
while True:
pi.write(GPIO_LED, 1)
time.sleep(1)
pi.write(GPIO_LED, 0)
time.sleep(1)
pi.stop()
Liens
- Implementation of Linux GPIO Device Driver on Raspberry Pi Platform
- Les GPIO du Raspberry Pi
- setting udev rules for the GPIO?
- RPi.GPIO basics 6 – Using inputs and outputs together with RPi.GPIO – pull-ups and pull-downs
- RPi Low-level peripherals
- Tutorial: Raspberry Pi GPIO Pins and Python
- Les GPIO du Raspberry Pi
Utilisation du bus i2c sur un Raspberry Pi
Autorisez le bus i2c au boot : Ajoutez la ligne suivante au fichier /boot/config.txt :
device_tree_param=i2c_arm=on
Installez les packages nécessaires :
# pacman -S i2c-tools
# modprobe i2c-dev
Chargement du module i2c-dev au démarrage : Créez le fichier /etc/modules-load.d/i2c.conf en ajoutant la ligne suivante :
i2c-dev
Créez un groupe …
suite...Utilisation du bus spi sur un Raspberri Pi
Autorisez le bus spi au boot : Ajoutez la ligne suivante au fichier /boot/config.txt :
device_tree_param=spi=on dtoverlay=spi-bcm2708
Créez un groupe spi et ajoutez l'utilisateur (franck ici) à ce groupe :
# groupadd spî
# gpasswd -a franck spi
Modification des droits des devices spi : Créez le fichier /etc/udev/rules …
suite...Utilisation d'un module GPS (liaison série)
Jouons avec un récepteur GPS
Comme il est connecté au port série, il faut arrêter la console sur la laision série. Modifiez le fichier /boot/cmdline.txt et supprimez toutes référence /dev/AMA0 dans les parties «console=» et «kgdboc=»
Arrêtez le service console :
systemctl disable serial-getty@ttyAMA0.service
Pour pouvoir …
Arch Linux sur un Raspberry Pi
Cet article décrit l'installation de Linux Arch sur une carte Rasberry Pi. Je me suis inspiré de nombreux articles disponibles sur le web (références dans la partie « liens » à la fin de l'article).
Flashage d'une carte SD
Cette étape consiste à écrire l'image binaire de Linux Arch Arm sur une …