Lo mejor de cualquier Raspberry Pi, incluida la Raspberry Pi 4, es que puedes usarla para construir todo tipo de artilugios increíbles, desde robots hasta consolas de juegos retro y detectores de pedos. La mayoría de los sensores, motores, luces y otros periféricos que hacen posible estos proyectos se conectan al conjunto de pines GPIO (entrada y salida de propósito general) de la RasPi. Estos pines ofrecen una conexión directa al sistema en chip (SoC) en el corazón de la Pi, lo que permite que la Pi se comunique con componentes externos y complementos conocidos como HAT (hardware adjunto en la parte superior). Cada modelo de Pi desde la Raspberry Pi B+ en 2014 ha tenido 40 pines GPIO, aunque en Pi Zero y Zero 2 W, tiene 40 agujeros en los que puede soldar pines o cables. Si no tienes un soldador, no temas, tenemos una lista de los mejores soldadores para que elijas.
Esta guía se actualizó para reflejar las nuevas capacidades de Raspberry Pi 4, que todavía viene con 40 pines GPIO, pero tiene algunas conexiones I2C, SPI y UART adicionales disponibles.
No importa lo que esté construyendo, necesita conocer el pinout GPIO de Raspberry Pi, el mapa y la explicación de lo que puede hacer cada pin. Mientras que algunos pines proporcionan voltajes y lógica, otros son tierra y otros se conectan a diferentes tipos de interfaces, todo lo cual explicamos a continuación.
Pines de entrada y salida de uso general (GPIO)
El GPIO es el aspecto más básico pero accesible de Raspberry Pi. Los pines GPIO son digitales, lo que significa que pueden tener dos estados, apagado o encendido. Pueden tener una dirección para recibir o enviar corriente (entrada, salida respectivamente) y podemos controlar el estado y la dirección de los pines usando lenguajes de programación como Python, JavaScript, node-RED, etc.
El voltaje de funcionamiento de los pines GPIO es de 3,3 V con un consumo de corriente máximo de 16 mA. Esto significa que podemos alimentar de manera segura uno o dos LED (diodos emisores de luz) desde un solo pin GPIO, a través de una resistencia (consulte los códigos de color de la resistencia). Pero para cualquier cosa que requiera más corriente, un motor DC por ejemplo, necesitaremos usar componentes externos para asegurarnos de no dañar el GPIO.
El control de un pin GPIO con Python se logra importando primero una biblioteca de código escrito previamente. La biblioteca más común es RPi.GPIO y se ha utilizado para crear miles de proyectos desde los primeros días de Raspberry Pi. En tiempos más recientes, se introdujo una nueva biblioteca llamada GPIO Zero, que ofrece una entrada más fácil para aquellos que son nuevos en Python y la electrónica básica. Ambas bibliotecas vienen preinstaladas con el sistema operativo Raspberry Pi.
Los pines GPIO tienen múltiples nombres; la primera referencia más obvia es su ubicación «física» en el GPIO. Comenzando en la parte superior izquierda del GPIO, y con eso nos referimos al pin más cercano a donde se inserta la tarjeta micro SD, tenemos el pin físico 1 que proporciona energía 3v3. A la derecha de ese pin está el pin físico 2 que proporciona una potencia de 5v. Los números de los pines luego aumentan a medida que avanzamos hacia abajo en cada columna, con el pin 1 yendo al pin 3, 5, 7, etc. hasta llegar al pin 39. Verá rápidamente que cada pin del 1 al 39 en esta columna sigue una secuencia de números impares. Y para la columna que comienza con el pin 2, irá 4, 6, 8, etc. hasta llegar a 40. Siguiendo una secuencia de números pares. La numeración física de pines es la forma más básica de ubicar un pin, pero muchos de los tutoriales escritos para Raspberry Pi siguen una secuencia de numeración diferente.
La numeración de pines de Broadcom (BCM) (también conocida como numeración de pines GPIO) parece ser caótica para el usuario promedio. Con GPIO17, 22 y 27 siguiendo uno al otro sin pensar en la numeración lógica. El mapeo de pines BCM se refiere a los pines GPIO que se han conectado directamente al sistema en un chip (SoC) de Raspberry Pi. En esencia tenemos enlaces directos al cerebro de nuestra Pi para conectar sensores y componentes para usar en nuestros proyectos.
Verá la mayoría de los tutoriales de Raspberry Pi usando esta referencia y eso se debe a que es el esquema de numeración de pines admitido oficialmente por la Fundación Raspberry Pi. Por lo tanto, es una buena práctica comenzar a usar y aprender el esquema de numeración de pines BCM, ya que se convertirá en una segunda naturaleza para usted con el tiempo. También tenga en cuenta que la numeración de pines BCM y GPIO se refieren al mismo esquema. Entonces, por ejemplo, GPIO17 es lo mismo que BCM17.
Ciertos pines GPIO también tienen funciones alternativas que les permiten interactuar con diferentes tipos de dispositivos que usan los protocolos I2C, SPI o UART. Por ejemplo, GPIO3 y GPIO 4 también son pines SDA y SCL I2C que se utilizan para conectar dispositivos mediante el protocolo I2C. Para usar estos pines con estos protocolos, debemos habilitar las interfaces mediante la aplicación de configuración de Raspberry Pi que se encuentra en el menú Preferencias del sistema operativo Raspbian.
I2C, SPI y UART: ¿Cuál usas?
Veremos las diferencias específicas entre I2C, SPI y UART a continuación, pero si se pregunta cuál necesita usar para conectarse a un dispositivo determinado, la respuesta corta es consultar la hoja de especificaciones. Por ejemplo, una pequeña pantalla LED puede requerir SPI y otra puede usar I2C (casi nada usa UART). Si lee la documentación que viene con un producto (siempre que tenga alguna), generalmente le dirá qué pines Pi usar.
Para los usuarios de Raspberry Pi 4, tenga en cuenta que ahora hay muchos más pines I2C, SPI y UART disponibles para usted. Estas interfaces adicionales se activan mediante superposiciones de árboles de dispositivos y pueden proporcionar cuatro conexiones SPI, I2C y UART adicionales.
I2C – Circuito Inter-Integrado
I2C es un protocolo serie de dos hilos de baja velocidad para conectar dispositivos que utilizan el estándar I2C. Los dispositivos que utilizan el estándar I2C tienen una relación maestro-esclavo. Puede haber más de un maestro, pero cada dispositivo esclavo requiere una dirección única, obtenida por el fabricante de NXP, anteriormente conocida como Philips Semiconductors. Esto significa que podemos hablar con varios dispositivos en una sola conexión I2C, ya que cada dispositivo es único y el usuario y la computadora pueden detectarlo mediante comandos de Linux como i2cdetect.
Como se mencionó anteriormente, I2C tiene dos conexiones: SDA y SCL. Funcionan enviando datos hacia y desde la conexión SDA, con la velocidad controlada a través del pin SCL. I2C es una forma rápida y fácil de agregar muchos componentes diferentes, como pantallas LCD / OLED, sensores de temperatura y convertidores analógicos a digitales para usar con fotorresistores, etc. para su proyecto. Si bien resulta ser un poco más difícil de entender que los pines GPIO estándar, el conocimiento obtenido al aprender I2C le será útil, ya que comprenderá cómo conectar sensores de mayor precisión para usar en el campo.
El Raspberry Pi tiene dos conexiones I2C en GPIO 2 y 3 (SDA y SCL) son para I2C0 (maestro) y los pines físicos 27 y 28 son pines I2C que permiten que el Pi se comunique con placas adicionales HAT (hardware adjunto en la parte superior) compatibles .
SPI – Interfaz de periféricos en serie
SPI es otro protocolo para conectar dispositivos compatibles a su Raspberry Pi. Es similar a I2C en que existe una relación maestro-esclavo entre la Raspberry Pi y los dispositivos conectados a ella.
Por lo general, SPI se usa para enviar datos a distancias cortas entre microcontroladores y componentes como registros de desplazamiento, sensores e incluso una tarjeta SD. Los datos se sincronizan usando un reloj (SCLK en GPIO11) del maestro (nuestra Pi) y los datos se envían desde la Pi a nuestro componente SPI usando el pin MOSI (GPIO GPIO10). MOSI significa Master Out Slave In. Si el componente necesita responder a nuestro Pi, entonces enviará datos usando el pin MISO (GPIO9) que significa Master In Slave Out.
UART – Receptor/Transmisor Asíncrono Universal
Conocidos comúnmente como «Serial», los pines UART (Transmit GPIO14, Receive GPIO15) proporcionan un inicio de sesión de consola/terminal para la configuración sin cabeza, lo que significa conectarse a la RasPi sin un teclado o dispositivo señalador. Normalmente, la forma más fácil de hacer una configuración de Raspberry Pi sin cabeza es simplemente controlar el Pi a través de una red o una conexión USB directa (en el caso de Pi Zero).
Pero, si no hay una conexión de red, también puede controlar un Pi sin cabeza usando un cable serie o USB a placa serie desde una computadora que ejecuta una consola de terminal. UART es excepcionalmente confiable y brinda acceso a un Pi sin necesidad de equipo adicional. Solo recuerde habilitar la consola serie en la aplicación de configuración de Raspberry Pi. Lo más probable es que no quiera hacer esto, pero el soporte de UART está ahí si lo necesita.
Tierra (tierra)
Ground se conoce comúnmente como GND, gnd o, pero todos significan lo mismo. GND es desde donde se pueden medir todos los voltajes y también completa un circuito eléctrico. Es nuestro punto cero y al conectar un componente, como un LED a una fuente de alimentación y tierra, el componente se convierte en parte del circuito y la corriente fluirá a través del LED y producirá luz.
Al construir circuitos, siempre es aconsejable hacer primero las conexiones a tierra antes de aplicar energía, ya que evitará problemas con componentes sensibles. El Raspberry Pi tiene ocho conexiones a tierra a lo largo del GPIO y cada uno de estos pines a tierra se conecta a una sola conexión a tierra. Por lo tanto, la elección de qué pin de tierra usar está determinada por la preferencia personal o la conveniencia al conectar los componentes.
5v
Los pines de 5v brindan acceso directo al suministro de 5v proveniente de su adaptador de red, menos energía que la utilizada por la propia Raspberry Pi. Una Pi se puede alimentar directamente desde estos pines y también puede alimentar otros dispositivos de 5v. Cuando use estos pines directamente, tenga cuidado y verifique sus voltajes antes de hacer una conexión porque pasan por alto cualquier característica de seguridad, como el regulador de voltaje y el fusible, que están ahí para proteger su Pi. Omita estos con un voltaje más alto y podría dejar su Pi inoperable. Especialmente si 5v y 3.3v están conectados juntos, sí, una vez lo hicimos y sabemos que hace que una Raspberry Pi se apague en segundos.
3v3
El pin de 3v está ahí para ofrecer un suministro estable de 3,3v a los componentes de alimentación y para probar los LED. En realidad, será raro que incluyas este pin en una construcción, pero tiene un uso especial. Al conectar un LED al GPIO, primero debemos asegurarnos de que el LED esté cableado correctamente y que se encienda. Al conectar la pata larga del LED, el ánodo al pin de 3.3v a través de una resistencia, y la pata más corta, el cátodo a cualquiera de los pines de tierra (gnd), podemos verificar que nuestro LED se enciende y funciona. Esto elimina una falla de hardware del proyecto y nos permite comenzar a construir nuestro proyecto con confianza.
MÁS: Raspberry Pi How To’s
MÁS: ¿Por qué todos los expertos en tecnología deberían tener una Raspberry Pi?
MÁS: Cómo configurar una Raspberry Pi sin cabeza
MÁS: Más de 25 comandos de Linux que los usuarios de Raspberry Pi deben saber