Outils pour utilisateurs

Outils du site


rbpi:rbpi_gpio

Ci-dessous la répartition des broches GPIO assignées sur mon raspberry pi2

IN OUT GROUND
Recepteur/Emetteur RF433MHz GPIO 27 (PIN 13) GPIO 17 (PIN 11) GND (PIN 9)
Recepteur/Emetteur Infrared GPIO 23 (PIN 18) GPIO 24 (PIN 16) GND (PIN 14)
Capteur HumiditeTemperature GPIO 21 (PIN 40) N.A GND (PIN 39)



Pour utiliser les GPIO, un (ou plusieurs) des choix suivants

1. Télécharger et installer la librairie C wiringPi
Je l'ai fait dans /home/pi/wiringPi
Le make permet de diposer des librairies wiringPi et du gpio (gpio readall, gpio read 1, etc …)
Les headers (.h) et la lib permet de créer des exe utilisant les gpio ; c'est le cas de mes scripts radiofrequences.
Cette librairie wiringPi offre aussi la possibilité de faire de la communication en série, en faisant #include <wiringSerial.h>, qui met à disposition les fonctions suivantes :

les_fonctions_declarees.h
    int serialOpen (char *device, int baud) ;
    void serialClose (int fd) ;
    void  serialPutchar (int fd, unsigned char c) ;
    void  serialPuts (int fd, char *s) ;
    void  serialPrintf (int fd, char *message, …) ;
    int   serialDataAvail (int fd) ;
    int serialGetchar (int fd) ;
    void serialFlush (int fd) ;            



2. Python en version 2.7 dispose d'un module GPIO

test1.py
    import RPi.GPIO as GPIO
    GPIO.setmode(GPIO.BCM)
 
    GPIO.setup(4,GPIO.OUT)		# Mettre le GPIO en mode écriture : le RBPI écrit la valeur
    GPIO.output(4,GPIO.HIGH) 	# valeur haute (pull up)
    GPIO.output(4,GPIO.LOW) 	# valeur haute (pull down)    
    GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Mettre le GPIO en mode lecture, 
                                                     # en le pullant préalable à UP
	...

Mon script de grab de temperature communique avec ce sensor à l'aide de ce module.

3. Installer wiringPi2 (https://github.com/WiringPi/WiringPi-Python)

    sudo apt-get install python-dev python-pip  
    sudo pip install wiringpi2

Puis coder :

test2.py
    import wiringpi
    serial = wiringpi.serialOpen('/dev/ttyAMA0',9600) # Requires device/baud and returns an ID
    wiringpi.serialPuts(serial,"hello")
    wiringpi.serialClose(serial) # Pass in ID



4. Installer la bibliothèque pyserial, puis coder

   Apparemment, cette bibliothèque python est déjà installée sur mon rbpi
test3.py
    from serial import Serial
    serial_port = Serial(port='/dev/ttyACM0', baudrate=9600)
    serial_port.write("une chaine a transmettre au peripherique serie")
	lu = serial_port.readline(); # une chaine a recevoir du peripherique
	lu
    Serial.close(serial_port)
    Testée avec mon arduino, connecté en USB --> ca fonctionne !!!!

Remarque : Sur mon rbpi2, - /dev/ttyAMA0 correspond aux GPIO RX et TX de la liaison série
- /dev/ttyACM0 correspond à la détection d'un périphérique série sur le port USB du rbpi2

rbpi/rbpi_gpio.txt · Dernière modification: 2016/07/16 08:44 (modification externe)