Tutorial‎ > ‎Raspberry Pi‎ > ‎

Python RPi.GPIO

RPi.GPIO è un modulo per Python per gestire le GPIO della Raspberry Pi. Questo modulo è ancora il sviluppo e mancano alcune parti, ma è possibile usarlo con le limitazioni del caso e anche come test. Nelle prove che ho fatto non ho trovato problemi.
Trovate informazioni sulle GPIO della Raspi su qui
Ricordate che sono a 3,3V e quindi vanno interfacciate in modo adeguato.
La documentazione sulla libreria è disponibile qui dove è possibile scaricarla. La trovate anche su Python Package Index
Visto che è disponibile su PyPI usiamo easy_install per installarla.
Prima di tutto dove avere installato easy_install che in Debian si trova nel package python-pip
  • installiamo python-pip
    • pi@raspberrypi:~$ sudo apt-get install python-pip 
  • ora python-dev
    • se usciamo Python 2: sudo apt-get install python-dev
    • Se usciamo Python 3: sudo apt-get install python3-dev 
  • procediamo con l'installazione di distribute
    •  pi@raspberrypi:~$ sudo pip install distribute
  • e ora il modulo RPi.GPIO
    •  pi@raspberrypi:~$ sudo pip install RPi.GPIO
  • fatto
Provate ora a vedere se il modulo è installato correttamente

pi@raspberrypi:~$ python
Python 2.6.6 (r266:84292, Dec 27 2010, 21:57:32)
[GCC 4.4.5 20100902 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import RPi.GPIO as GPIO
>>> dir(GPIO)
['BCM', 'BOARD', 'IN', 'InvalidChannelException', 'InvalidDirectionException', 'InvalidModeException', 'OUT', 'WrongDirectionException', '_BCM', '_ExportedIds', '_GPIO_PINS', '_GetValidId', '_MODE', '_MODES', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '_unexport', 'atexit', 'input', 'os', 'output', 'setmode', 'setup']
>>>


Un esempio su come usarla la trovate su http://code.google.com/p/raspberry-gpio-python/


esempio Lab1_Raspberry_PI

E ora proviamo helloword che si usa con gli MCU, fare lampeggiare un led.
Per questa prova serve una resistenza da circa 330ohm e un led da collegare come da schema qui sotto.



Ora scriviamo questo piccolo codice d'esempio in python usando la libreria RPi.GPIO

import RPi.GPIO as GPIO, time

"""
possiamo chiamare i pin con il numero assegnato o come numero BCM GPIO.
usando GPIO.setmode(GPIO.BCM))usciamo i pin chiamandoli per il numero.
"""
 
GPIO.setup(12, GPIO.OUT) # definiamo che il pin 12 (GPIO18) è un uscita


while 1: # loop infinito
   GPIO.output(12, True)  # GPIO a 1 (HIGH), led accesso
   time.sleep(1)          # attendi 1 secondo
   GPIO.output(12, False) # GPIO a 0 (LOW), led spento
   time.sleep(1)          # attendi 1 secondo e ricomincia


esempio Lab2_Raspberry_PI

Nel esempio precedente abbiamo visto come usare i pin chiamandoli per numero, ora vediamo come chiamarli per BCM GPIO
Lo schema elettrico rimane lo stesso del precedente


import RPi.GPIO as GPIO, time

"""
possiamo chiamare i pin con il numero assegnato o come numero BCM GPIO.
usando GPIO.setmode(GPIO.BCM))usciamo i pin chiamandoli per GPIO
il pin num 12 corrisponde al GPIO 18
"""
GPIO.setmode(GPIO.BCM)  
GPIO.setup(18, GPIO.OUT) # definiamo che il la GPIO18 (pin12) è un uscita


while 1: # loop infinito
   GPIO.output(18, True)  # GPIO a 1 (HIGH), led accesso
   time.sleep(1)          # attendi 1 secondo
   GPIO.output(18, False) # GPIO a 0 (LOW), led spento
   time.sleep(1)          # attendi 1 secondo e ricomincia



Comments