Configuración de Python y buses GPIO e I2C en Raspberry 3 Model B


Hoy voy a daros los pasos a seguir para instalar la librería GPIO de Python a fin de poder acceder a los dispositivos conectados a los pines de dicho bus. Para ello en primer lugar es necesario  instalar las herramientas de desarrollo en Python. Finalmente,  os explicaré como habilitar el bus I2C.

Para empezar, tenéis que acceder a la RPI, ya sea mediante la conexión de pantalla, teclado y ratón o vía un cliente SSH (Putty) tal y como se ha hecho en las entradas anteriores.

A continuación, para instalar las herramientas de Python, introducid  las siguientes instrucciones en la ventana de la RPI:

     sudo apt-get update
     sudo apt-get install python-dev python-pip
     sudo pip install --upgrade distribute
     sudo pip install ipython

Ahora ya es posible instalar la librería GPIO de Python, simplemente con la siguiente instrucción:

          sudo pip install --upgrade RPi.GPIO

Por último, vamos a habilitar el bus I2C. Este bus es accesible desde los pines SDA y SCL del GPIO, los cuales comparte con los múltiples dispositivos esclavo que se le pueden conectar. Así pues, cada esclavo tiene una dirección dentro del bus con la que se identifica al interactuar con la RPI.

En la ventana de la RPI introducir las siguientes instrucciones:

     sudo apt-get install -y python-smbus
     sudo apt-get install -y i2c-tools
     sudo raspi-config

E'Interface Options', habilitar I2C, 'Finish'. Reiniciar la RPI con sudo reboot. Una vez reiniciada, nos volvemos a conectar y comprobamos que el bus detecta los dispositivos conectados:

     sudo i2cdetect -y 1

Nos debería aparecer una matriz como la siguiente, en la que indica las posiciones en las que hay un dispositivo conectado y su dirección dentro del bus:


Fig. 1: Direcciones bus I2C

En mi caso tengo conectado el sensor de temperatura/presión BMP180, el cual por defecto utiliza la dirección 0x77.

Con este post doy por finalizado los pasos de configuración de la RPI, tanto para las comunicaciones como para la interactuación con dispositivos conectados a ella.


Comentarios