Ir al contenido principal

GPIO

Esquemas de los puertos GPIO

Introducción a los GPIO y esquemas

GPIO (General Purpose Input/Output) es, como su propio nombre indica, un sistema de E/S (Entrada/Salida) de propósito general, es decir, una serie de conexiones que se pueden usar como entradas o salidas para usos múltiples. Estos pines están incluidos en todos los modelos de Raspberry Pi, para que puedas realizar proyectos interesantes como lo harías con Arduino.
Los GPIO representan la interfaz entre la Raspberry Pi y el mundo exterior. Y con ellos podrás hacer multitud de proyectos, desde hacer titilar un LED hasta otros mucho más sofisticados. Pero para eso debes saber sus características y como se programan. Lo primero variará en función de la revisión de placa que tengas o del modelo.
Todos los pines son de tipo “unbuffered”, es decir, no disponen de buffers de protección, así que deberás tener cuidado con las magnitudes (voltajes, intensidad,…) cuando conectes componentes a ellos para no dañar la placa. Como podrás apreciar en las imágenes posteriores, no todos los pines tienen la misma función:
  • Pines de alimentación: puedes apreciar pines de 5v, 3v3 (limitados a 50mA) y tierra (GND o Ground), que aportan alimentación a estos voltajes para tus circuitos. Te pueden servir como una fuente de alimentación, aunque también puedes utilizar otras fuentes (pilas, fuentes de alimentación externas, etc). Recuerda que son unbuffered y debes tener cuidado para no dañar la placa.
  • DNC (Do Not Connect): son pines que por el momento no tienen función, pero en futuras implementaciones son utilizados para otros fines. Por eso solo los vas a encontrar en modelos más primitivos de la Raspberry Pi. En las actuales placas han sido marcados como GND.
  • GPIO normales: son conexiones configurables que puedes programar para tus proyectos, tal como te enseñaremos más adelante.
  • GPIO especiales: dentro de éstos se encuentran algunos pines destinados a una interfaz UART, con conexiones TXD y RXD que sirven para comunicaciones en serie, como por ejemplo, conectar con una placa Arduino. También podemos ver otros como SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, etc…, los cuales explicaremos su funcionamiento más adelante.









Análogo y digital. Traducción del artículo "Analogue Vs. Digital." Teaching Physical Computing with Raspberry Pi and Python Raspberry Pi Foundation

Un dispositivo digital solo tiene dos posibles u alternativas, recibir o enviar señales de: 0 (apagado, off) y 1 (encendido on). Son ejemplos de estos dispositivos un LED o un pulsador.
LED: Dispositivo de salida digital "actuador" 

led
LED. Fuente Teaching Physical Computing with Raspberry Pi and Python Raspberry Pi Foundation

Un pulsador: dispositivo de entrada digital, "Sensor".

El gráfico de abajo muestra el tiempo  de pulsado y no pulsado de un botón o pulsador.
digital graph
Fuente: Teaching Physical Computing with Raspberry Pi and Python Raspberry Pi Foundation

Los dispositivos digitales son muy fáciles de usar con la Raspberry Pi ya que todos sus GPIO son digitales (sus 40 pines).

Los dispositivos analógicos son aquellos que pueden recibir señales o enviar señales con valores comprendido entre el 0 y 1. Quiere decir que presentan muchas más alternativas.

Un motor es un dispositivo de salida "Actuador" al cual podrás enviarle señales intermedias, por ejemplo 0.5 sería que el motor trabaje a media capacidad, cero no trabajaría y 1 sería a toda su capacidad o muchas otras posibilidades 0.1, 0.3 0.8, etc.
motor


Un ejemplo de un componente analógico de entrada es un  Light Dependent Resitor (LDR), un sensor de intensidad lumínica ( A medida que aumenta la luz la resistencia disminuye).
LDR
 Cómo podemos usar un componente analógico en una raspberry, si es digital.


El uso de componentes analógicos con el Raspberry Pi es un poco más complicado que el uso de componentes digitales.

Para utilizar un componente de salida analógica con los pines GPIO, es necesario utilizar una técnica llamada
Pulse Width Modulation (PWM), Modulación de Ancho de Pulso. Esto envía impulsos muy rápidos de 1s y 0s al componente, que cuando tomado como un promedio se puede recibir como valores entre 1 y 0.

Mira el gráfico de abajo. La línea azul muestra la señal digital, durante un período de tiempo, pasando de 0 a 1 y viceversa. La señal es 1 para un tercio del tiempo total y 0 para los dos tercios restantes. Esto entonces promedia alrededor de 0,33, que sería el valor que es recibido por el componente analógico. Puede ver esto como la línea roja en el gráfico.

Un ejemplo de un componente de entrada analógica es un Light Dependent Resitor (LDR). Cuando no hay luz brillando en el componente, enviará un 0, y como luz aumenta el valor enviado por el LDR aumentará gradualmente hasta que alcanza un valor máximo de 1.
pwm


Para utilizar un componente de entrada analógica con los pines GPIO, es necesario utilizar un convertidor analógico a digital Analogue to Digital Convertor (ADC), que convertirá las señales analógicas en señales digitales. Aunque usted puede comprar pequeños ADC para su uso en sus circuitos, hay varios tableros adicionales que puede comprar para el Raspberry Pi con ADCs incluidos, como el Explorer HAT. Otra opción es utilizar un condensador en sus circuitos junto con el componente analógico. Un ejemplo de esto se puede encontrar en el recurso Laser Tripwire en el sitio web de Raspberry Pi.

¿Cómo explicaría las diferencias entre analógico y digital a sus estudiantes?

Comentarios