Primeros pasos con GPIO en la Raspberry

Una vez instalados Raspbian y Node.js en la Raspberry, llega el momento de empezar a desarrollar software. Lo que necesito es, en primer lugar, encontrar un módulo JavaScript que me permita acceder a GPIO. Investigando un poco, descubro que hay muchos paquetes que permiten controlar la GPIO de la Rasp desde JavaScript.

Por lo que he ido mirando, quizás los que más destaquen sean:

  1. pi-gpio. Proporciona una interfaz muy simple para el manejo de la GPIO.
  2. rpi-gpio. Parece un poco más elaborado que el anterior. Este paquete usa el esquema de numeración de pines de GPIO propio de Raspberry (en lugar de la numeración del pin físico) y todas las funciones de entrada/salida son asíncronas lo que, a priori, encaja mejor con el esquema de funcionamiento de Node.
  3. onoff. Proporciona funciones tanto síncronas como asíncronas para el acceso de E/S a GPIO. Además, proporciona un mecanismo de detección de interrupciones que permite la invocación de callbacks cuando cambia la señal en un pin y evita estar haciendo pooling a GPIO.
  4. node-rpio. Sólo proporciona funciones síncronas pero tiene una amplia cobertura funcional y parece que es muy rápido.

Tras unos primeros intentos con rpi-gpio, me voy a decantar por trabajar con el último de los cuatro (node-rpio).

Una cosa que hay que tener en cuenta es que para el acceso a los pines de GPIO en la Rasp es necesario tener privilegios de administrador. Desde el punto de vista de seguridad, no es una buena práctica el conceder privilegios de administrador a diestro y siniestro así que, en primer lugar, voy a instalar la herramienta gpio-admin:

Imagen1

Imagen2

Cerramos la sesión y volvemos a entrar y ya debemos tener la membresía del grupo gpio.

Otro aspecto a considerar es el esquema de nombrado de los pines. Dado que este es un aspecto que puede ser muy importante (nos podemos cargar la Rasp conectándola mal) voy a ver si recapacito un poco. El módulo node-rpio soporta dos esquemas de numeración de interfaces: la numeración física y el esquema de numeración de GPIO (WiringPi).

Imagen3

En fin, vamos a por ello. Voy a empezar con algo sencillo empleando un LED de dos colores (verde y rojo) conecto la pata de rojo al pin 11 (físico, GPIO.0 en numeración WiringPi) y la pata verde al pin 1 (fisico, GPIO.1 en numeración wPi) y la tierra al pin 6. El montaje, con los accesorios que tengo, queda así:

Imagen6

Empiezo probando que funciona desde la línea de comandos, establezco el modo de los pines correspondientes a los colores a salida.

Imagen4

Compruebo que, efectivamente, el valor está establecido a out (pin 0 y 1 wPi o pines físicos 11 y 12):

Imagen5

Si ahora escribo el valor de salida 1 en el pin 0 debería encenderse el LED de color rojo:

Imagen7

Imagen8

Escribo el valor de salida 0 en el pin 0 y el valor de salida 1 en el pin 1 y el LED deberá lucir en verde:

Imagen10

Imagen9

Bueno, hemos superado la primera prueba. En el siguiente post empezaré a programar en JavaScript para hacer esto mismo.

Anuncios

Autor: dotorqantico

Químico y escéptico, me gusta la ciencia, la lectura, el golf y el ciclismo.

1 comentario en “Primeros pasos con GPIO en la Raspberry”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s