Catégories
Liens
Utilisations : entrées, sorties, …
Elevate your permissions to root user to allow IO access
sudo -i
Setup to control pin as output
Substitute 23 in the following commands for your GPIO number (GPIO, not pin number)
echo “23” > /sys/class/gpio/export echo “out” > /sys/class/gpio/gpio23/direction
Control Output State
echo “1” > /sys/class/gpio/gpio23/value echo “0” > /sys/class/gpio/gpio23/value
Setup to read pin as an input
Substitute 23 in the following commands for your GPIO number (GPIO, not pin number)
echo “23” > /sys/class/gpio/export echo “in” > /sys/class/gpio/gpio23/direction
Read its state
cat /sys/class/gpio/gpio23/value
To Release A Pin Afterwards
echo “23” > /sys/class/gpio/unexport
Avec la biblio RPI.gpio et la biblio gpiozero : Here’s a list of devices which currently supported:
Ressources
Lancer une fonction
from gpiozero import Button from signal import pause def say_hello(): print("Hello!") button = Button(2) button.when_pressed = say_hello pause()
Lancer un programme
from gpiozero import Button from signal import pause import subprocess button = Button(2) button.wait_for_press() subprocess.call(['omxplayer test.mkv'], shell=True)
Déclencher deux sons avec deux boutons Avec Pygame : http://nerdparadise.com/tech/python/pygame/basics/part3/
from gpiozero import Button from signal import pause import pygame b1 = Button(2) b2 = Button(3) pygame.mixer.init() son1 =pygame.mixer.Sound('/usr/share/scratch/Media/Sounds/Electronic/Zoop.wav') son2 =pygame.mixer.Sound('/usr/share/scratch/Media/Sounds/Electronic/Laser1.wav') def launch_sound1(): son1.play() def launch_sound2(): son2.play() b1.when_pressed = launch_sound1 b2.when_pressed = launch_sound2 pause()
Même chose en plus souple
from gpiozero import LED, Button from signal import pause import pygame button1 = Button(2) button2 = Button(3) led = LED(17) pygame.mixer.init() monson1 =pygame.mixer.Sound('/usr/share/scratch/Media/Sounds/Electronic/Zoop.wav') monson2 =pygame.mixer.Sound('/usr/share/scratch/Media/Sounds/Electronic/Laser1.wav') # dictionnaire clé/valeur pour lister les sons sounds = {button1: monson1, button2: monson2} def stateON(button): sounds[button].play() led.on() def stateOFF(button): sounds[button].stop() led.off() def btntest(): # parcours l'ensemble des clés du dictionnaire sounds for button in sounds.keys(): # when_pressed envoie apr defaut le bouton en tant qu'argument de la fonction stateON / stateOFF button.when_pressed = stateON button.when_released = stateOFF btntest() pause()
from gpiozero import LED, Button from signal import pause led = LED(17) button = Button(2) button.when_pressed = led.on button.when_released = led.off pause() <code> </WRAP> </WRAP> ----- FIXME ==== Installation ==== sudo apt-get install python-setuptools sudo easy_install -U RPIO Comme on a accès aux couches physiques avec ce type de module, il faut lancer python ou idle (l'interpréteur python) en mode administrateur : sudo idle & ==== Exemples === **Exemple de code en python (http://explainingcomputers.com/rasp_pi_robotics.html) :** <code python> import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(7,GPIO.OUT) for x in range(0,3): GPIO.output(7,True) time.sleep(1) GPIO.output(7,False) time.sleep(1) GPIO.cleanup()
Autre exemple en contrôlant des moteurs à courant continu via un L298 :