TUTORIAL RASPBERRY PI – GPIO [PARTE 2]: CONTROL DE LEDs CON PYTHON

¡Hola a todos y a todas! Hace unos días que publiqué un tutorial sobre cómo encender y apagar un LED con la Raspberry Pi. Lo hacíamos a través de la terminal. Ahora vamos a escribir un pequeño programa en Python que haga parpadear un par de LEDs que estén conectados a los GPIO de la Raspberry Pi.

El anterior tutorial lo podéis encontrar en el siguiente enlace:

Vamos a seguir una serie de pasos para llevar a cabo esto. Seguro que así queda más claro.

PASO 1: MONTAJE

Antes de nada, vamos a realizar el montaje. Necesitaremos dos LEDs y un par de resistencias, por ejemplo de 1K Ohmios. Utilizaremos los GPIO 17 y 27. Quedará algo así:

PASO 2: INSTALACIÓN DE LA LIBRERÍA GPIO PARA PYTHON

Tras realizar el montaje, instalaremos la librería para poder controlar los GPIO con Python. Está alojada en SourceForge, pero podemos descargarla en la Raspberry Pi con el siguiente comando:

wget 'http://downloads.sourceforge.net/project/raspberry-gpio-python/RPi.GPIO-0.5.4.tar.gz' Una vez descargada, vamos a descomprimir el tarball: tar zxvf RPi.GPIO-0.5.4.tar.gz Entramos en el directorio que acabamos de descomprimir: cd RPi.GPIO-0.5.4/ Ahora toca instalar la librería. Por si no tenemos el paquete python-dev, introducimos el siguiente comando: sudo apt-get install python-dev Cuando acabe la instalación del paquete anterior, procedemos a instalar la librería: sudo python setup.py install

PASO 3: PROGRAMA PYTHON PARA HACER UN ENCENDIDO INTERMITENTE DE LOS LEDS

En este tercer paso, vamos a escribir un pequeño programa en Python que haga que se enciendan y apaguen los LEDs de forma intermitente.

3.1. Creamos un nuevo archivo Python.

sudo nano blink.py

3.2. Importamos la librería que acabamos de instalar y declaramos los pines.

Los pines serán de salida, pues tenemos que encender LEDs. Como ya hemos hecho en el montaje, utilizaremos los GPIO 17 y 27. La forma de tratar los pines, su declaración y el encendido y apagado os recordará a Arduino.

import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.OUT) ## GPIO 17 como salida GPIO.setup(27, GPIO.OUT) ## GPIO 27 como salida 3.3. Creamos una función para ejecutar el bucle que enciende y apaga los LEDs. Por si no sabéis cómo definir funciones en Python. Aquí os dejo un tutorial: Funciones en Python. La función se llamará 'blink'. Es la típica con la que se empieza en Arduino. def blink(): print "Ejecucion iniciada..." iteracion = 0 while iteracion < 30: ## Segundos que durara la funcion GPIO.output(17, True) ## Enciendo el 17 GPIO.output(27, False) ## Apago el 27 time.sleep(1) ## Esperamos 1 segundo GPIO.output(17, False) ## Apago el 17 GPIO.output(27, True) ## Enciendo el 27 time.sleep(1) ## Esperamos 1 segundo iteracion = iteracion + 2 ## Sumo 2 porque he hecho dos parpadeos print "Ejecucion finalizada" GPIO.cleanup() ## Hago una limpieza de los GPIO3.4. Llamamos a la función.blink() ## Hago la llamada a la funcion blink Con esto, ya tendríamos todo el código hecho. 3.5. Ejecutamos el código.sudo python blink.py Pues fin del tutorial. Como podéis ver, más fácil imposible. El código recuerda mucho a cómo se programa Arduino, así que si ya habéis trabajado con él, no tendréis problema alguno en avanzar y hacer cosas más chulas. ¡Nos vemos en el próximo tutorial! ¡Un saludo!