Ya en este hilo se ha hablado de alguna otra utilidad de la Raspberry. En concreto se ha hablado de los GPIO.
GPIO son las siglas en ingles de
General Purpose Input/Output, que traducido al espa
ñol significa Entrada/Salida de Prop
ósito General
Estos pines GPIO se encuentran en el conector lateral de 40 pines de la Raspberry. En la foto podemos ver la leyenda de cada pin.
Como se puede apreciar, el pin 1 es la salida de 3,3V.
Los pines 2 y 4 funcionan tanto como toma o salida de la tensi
ón de +5V. Si alimentamos la Raspberry por el conector micro-USB tendremos en estos pines +5V. Pero tambi
én podr
íamos conectar una fuente de alimentaci
ón, bien estabilizada de 5V a uno de estos pines para que funcione.
Los pines negros que pone
Ground, es la masa o el negativo de la alimentaci
ón.
Los pines verdes GPIO son aut
énticos entrada/salida de prop
ósito general. Son 17 en total.
Hay otros GPIOs con otros colores. Estos, aunque se pueden usar como prop
ósito general, est
án reservados para funciones concretas como puerto serie (en gris GPIO 14 y 15),
interface I2C (en rosa GPIO3 y 5) que sirve para manejar los IMUs,
interface SPI (Serial Parallel Interface en azul claro GPIO10,9,11,6 y 7).
Los pines 27 y 28 en amarillo se usa para reconocer chips por I2C y de esa manera instalar el driver correspondiente de forma autom
ática.
No os preocup
éis por estas nuevas siglas surgidas como interface I2C, interface SPI, ya volver
é m
ás tarde al tema.
El prop
ósito de este post es el de definir la funci
ón de un GPIO. Hemos visto por definici
ón, que es de entrada y salida.
¿Pero qué quiere decir?
Estos pines son digitales, o tienen el valor 1 (activado) o tienen el valor 0 (desactivado) y se controlan por Software. Es decir con un programa podemos hacer que se utilice bien como entrada , bien como salida.
Si lo usamos de salida tiene la funci
ón de un interruptor, es decir o est
á activado o est
á desactivado. O sea que lo podemos utilizar para encender o apagar aparatos, activar rel
és.
Si lo usamos como entrada podemos leer la activaci
ón o desactivaci
ón de un sensor o un interruptor. De esta manera lo podemos para leer sensores de sentina, puerta abierta, activaci
ón de una alarma (p.e. gas), incluso para leer los pulsos del molinete (contar metros de cadena) o los pulsos de la corredera (medir velocidad sobre el agua). Tambien un GPIO utilizado como salida puede activar otro GPIO usado como entrada.
Supongo que ya os est
áis imaginando las posibilidades que ofrece la Raspberry. No solo un plotter si no tambi
én la posibilidad de monitoreo y de control. Es decir podemos convertir a la Raspberry en una central de dom
ótica.
Volviendo a los interfaces I2C y SPI, decir que son unos interfaces desarrollados por la industria.
El
I2C que es I
²C, del ingl
és
Inter-Integrated Circuit, fue desarrollado por Philips en 1982 Se utiliza principalmente internamente para la comunicaci
ón entre diferentes partes de un circuito, por ejemplo, entre un controlador y circuitos perif
éricos integrados. En nuestro caso la Raspberry y el IMU. Lo bueno de este interface es que se configura como un Bus pudiendo conectar varios aparatos con una jerarqu
ía determinada para poder identificar cada uno de ellos.
En este punto aclaro lo que es un
IMU. Un IMU es un se
nsor que mide inercias (inertial measurement unit- unidad medici
ón inercia). Son sensores que miden aceleraciones en diferentes ejes y se les conoce tambi
én como gir
óscopos. Adem
ás del gir
óscopo, le suelen a
ñadir sensores de campo magn
éticos (uso como compas) de temperatura, presi
ón y humedad.
El
Bus SPI (
Serial Peripheral Interface) es otro est
ándar de comunicaciones, usado principalmente para la transferencia de informaci
ón entre circuitos integrados en equipos electr
ónicos. Este bus utiliza m
ás pines que el I2C pero tiene las ventajas, entre otras, de ser m
ás r
ápido que el I2C y ser totalmente bidireccional (full d
úplex). Este interface se usa, por ejemplo para conectarse con un conversor anal
ógico-digital (AD). De esta manera podemos leer con la Raspberry se
ñales anal
ógicas, como voltaje, amperaje, nivel de dep
ósitos, temperatura, etc.
Resumiendo, el conector de 40 pines de la Raspberry, nos abre las posibilidades de conectar la Raspberry con diferentes dispositivos electr
ónicos por medio del bus I2C y SPI y de esa manera leer datos de sensores como giroscopos o de campo magn
ético o convertidores anal
ógicos-digitales. Los pines GPIO nos permite monitorear y controlar tanto leyendo sensores dig
ítales como accionando dispositivos digitales como rel
és.
Hasta aqui una idea basica de los GPIO. En cuanto tenga mas tiempo, explicare como los podemos utilizar.