Y se hizo la luz!

Posted by David Guillermo on Tuesday, May 26, 2015

Buenas.

Para variar, he pasado una buena temporada sin escribir nada en el blog, me gustaría poder decirles que no volverá a pasar, pero soy un desastre…. Como muchos sabrán tengo una Rapsberry Pi desde hace bastante tiempo, algo de lo que tenía muchas ganas, era de hacer el típico experimento de encender leds mediante el GPIO.

Este fin de semana por fin me he decidido, hace unas cuatro semanas aproximadamente adquirí una protoboard, cables, botón y led. La intención de ese material, es dotar a la Raspberry Pi de un botón de encendido y apagado, ya que hacerlo quitando el cable de corriente es dañino para la SD e incómodo. Hoy sólo he jugado con los led, intentaré entre hoy y mañana que el botón de encendido y apagado funcione.

Primero descargarse el Wiring Pi, es una librería escrita en C , la cual nos permite controlar GPIO , pudiendo controlar los diferentes pines de IO. ( Yo he podido activar el GPIO , pero no asignarle valores a los pines que activo ).

$ sudo su
$ apt-get install git-core
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi/
$ git pull
$ ./build

Una vez instalado

$ gpio -v

gpio version: 2.13
Copyright (c) 2012-2013 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

This Raspberry Pi is a revision 1 board.

Y así sabremos (si no sabemos) que revisión del GPIO tenemos. Como se puede observar, conectamos del GPIO3 a la protoboard, y del GPIO6 a la protoboard, y la resistencia en la misma zona que el led, una vez conectado todo encendemos la Raspberry Pi La gran mayoría de opciones que vi, estaban hechas en C, python … Yo me decanté por Bash, pasteo las lineas del script

root@raspbmc:~# cat leds
#!bin/bash

echo "Export GPIO0" ; echo 0 > /sys/class/gpio/export ; echo "... Done"
echo "Export GPIO1" ; echo 1 > /sys/class/gpio/export ; echo "... Done"
echo "Direction GPIO0" echo out > /sys/class/gpio/gpio0/direction ; echo "... Done"
echo "Direction GPIO1" echo out > /sys/class/gpio/gpio1/direction ; echo "... Done"
while true; do
    echo 1 > /sys/class/gpio/gpio1/value
    sleep 0.5
    echo 0 > /sys/class/gpio/gpio1/value
    sleep 0.5
    echo 1 > /sys/class/gpio/gpio0/value
    sleep 0.5
    echo 0 > /sys/class/gpio/gpio0/value
    sleep 0.5
done

echo "Power off GPIO0" ; echo 0 > /sys/class/gpio/unexport ; echo "... Done"
echo "Power off GPIO1" ; echo 1 > /sys/class/gpio/unexport ; echo "... Done"

Y aquí unas instantáneas del blink.

En lo que tenga el botón a funcionar, pondré imágenes y conexiones, saludos!