Los pines GPIO (General Purpose Input Output) de la Raspberry PI nos permiten trabajar con electrónica de una forma fácil como lo podríamos hacer también con Arduino.
Son 26 pines organizados en dos filas de 13, y cada uno de los pines o bien tiene su función específica o es de propósito general, yo voy a mostrar la distribución de los pines de la Raspberry PI Rev 2.0, ya que es la que tengo.
Como podemos ver en la siguiente imagen comparativa de las dos revisiones, en la segunda revisión de la PI disponemos de dos pines +5V, cinco de GROUND (toma de tierra), dos de +3,3V, ocho pines GPIO de propósito general, cinco SP10, dos UART, y dos pines I2C1.
En las nuevas Raspberry PI A+ y B+ disponemos de 14 pines GPIO más, ID_SD, ID_SC, tres pins GND, y nueve GPIO de propósito general; lo que nos permitirá desarrollar proyectos mas grandes.
Con ellos podemos controlar circuitos electrónicos, por ejemplo para mover motores o controlar el encendido y apagado de relés que actuarán como interruptores para circuitos de 220V.
Estos pines los podemos configurar y controlar directamente desde el interprete de ordenes Bash, o desde lenguajes de programación como C o Python, gracias a las librerías GPIO que se han implementado para ellos.
En mi caso he escogido Python, ya que a pesar de no haber programado nunca en este lenguaje, lo que me va a permitir aprenderlo sobre la marcha junto a vosotros, es uno de los recomendados para iniciarse en la programación.
Además me resulta muy interesante la posibilidad de ejecutar los Scripts en Python que escribamos mediante un botón HTML, que al ser presionado ejecuta una función en PHP, que a su vez llama a ejecutarse al Script en Python
Esto nos va a permitir manejar nuestros proyectos desde el navegador de cualquier dispositivo mediante una aplicación Web, pudiendo así llegar a implementar soluciones domóticas muy económicas, por ejemplo.
Ahora que ya sabemos que son los pines GPIO y para que sirven, en la siguiente entrega veremos una ligera introducción a la electrónica básica para finalmente montar un circuito como el del siguiente esquema, para encender un diodo Led y comprobar que todo está listo y funciona correctamente, a lo que yo he llamado Hello World versión GPIO.
Si te ha gustado puedes seguirme en Twitter, Facebook, Google+, Linkedin, o compartirlo con los botones ubicados debajo de esta publicación, si tienes cualquier pregunta o sugerencia no dudes en comentar.
Hola
En la primera versión de la RPi creo que sólo tiene un pin para +5v, otro para +3.3V y otro para GND. Y los que sobran quedan como no utilizados.
También creo que los pines GPIO trabajan a 3.3V.
Si lo puedes confirmar…
Hola Juan, muchas gracias por tu comentario.
A que versión te refieres? Yo he añadido los diagramas de pinout a partir de los modelos A y B rev 1.0; como explico en este artículo y en muchos otros tutoriales, todos los pines GPIO que pueden actuar como entradas o salidas trabajan a 3.3V y si les añades mas voltaje puedes quemar tu Raspberry.
Luego están los de alimentación que ofrecen 3.3V, 5V y GND; y debes tener en cuenta que hay algunos pines GPIO con funciones específicas como buses SPI, I2C…
Espero haber despejado tus dudas, hasta pronto.
Hola y gracias por tu post, mi pregunta es la siguiente…la raspberry permite el mismo control de sensores que un ardruino por ejemplo, el sensor de luz, el sensor ultrasonico, el sensor de temperatura y humedad, el sensor de presencia o que sensores pueden funcionar con rasberry?
Hola Andrés,
Con Raspberry PI puedes utilizar todo tipo de sensores digitales que trabajen a 3,3V.
Con Arduino puedes utilizar todo tipo de sensores digitales y analógicos que trabajen a 5V.
La diferencia básicamente es la precisión de los sensores, pues los analógicos son mas precisos, ya que el voltaje siempre se podría adaptar.
hola, tengo la raspberry pi b+ y quiero un motor pero no me funciona el codigo del gpio con la b+ y con la b si, usando los mismos pines
La disposición de los pines GPIO en ambas versiones no es la misma, por lo que no funcionará si no conectas cada cable en el GPIO correspondiente del modelo B+.
Puedes revisar la numeración en los esquemas de este artículo, y una vez lo adaptes para el modelo B+ también funcionará con Raspberry PI 2 ya que se ha mantenido la posición.
muy interesante el proyecto, en que cuestiones de seguridad pudiéramos aplicar este proyecto a la domótica y que hardware y software se necesitaría?
Hola Alex, gracias por tu comentario.
Para posibles usos reales de este sistema o similares, es evidente que debería securizarse al máximo posible.
Lo mínimo sería configurar en Apache un password para acceder a la página web, securizar todos los servicios de cada máquina que componga el sistema, con medidas como firewall basado en IPTables, un IDS/NIDS, Port Knocking, Fail2Ban… tunelizar el flujo de streaming para que no vaya en claro, e infinidad de medidas que están a tu disposición.
La seguridad total no existe, pero cuanto más difícil lo ponemos mas posibilidades tenemos de no ser el blanco escogido.
Buna.As dori sa stiu cum pot sa activez SPI in raspberry
Hello Mitica, thanks for comment.
You can enable SPI in the Advanced Options section of the raspi-config menu.