Ha pasado un tiempo desde la ultima vez que publique en mi Blog, quiero retomarlo tratando de publicar un poco mas seguido, (¿una entrada diaria?) Ya veremos como lo ejecuto.

En esta entrada, quiero empezar con algo simple pero para muchos puede ser un excelente punto de entrada para IoT, y tenemos aquí un Raspberry Pi 3 que ya hoy en día se podría considerar como la computadora mas vendida de todo los tiempos.

Este pequeño ordenador tiempo la potencia de un celular, suficiente para hacer grandes proyectos, hasta los mas simples a lo más complejo. Quiero empezar como funciona tan simple como encender un Led y un Boton.

Para empezar hay el Raspberry Pi necesita de un Sistema Operativo (SO) muchos tutoriales como instalar el SO, en mi caso particular lo hice a través de NOOBS, una vez que hayas puesto en marcha el SO para este tutorial use Raspbian.

Solo aclaremos unos conceptos, una tarjeta como Raspberry posee pines GPIO que son General Purpose Input Output, lo genial de estos pines es que son configurables como entrada como salida. En mi caso particular de Raspberry Pi 3 que posee 40 Pines. Cada pin se tiene que configurar según la función que vaya tener, ya que si se configura como entrada (IN) no puede servir que haga de salida (OUT).

Los GPIO funciona leyendo o enviando señales que no es mas que voltaje que se exponen en los pines, por lo que una salida o entrada se encuentra en el rango 3V por lo que la salida de esta solo se tendrá 3V. Igualmente estos pines se puede dar funcionalidad avanzadas como SPI, PWM, I2C incluso Serial. Ahora el siguiente paso es identificar cada Pin y la posición de esta, hay muchas maneras una es observar la siguiente imagen ☺️:

GPIO layout

Y la otra (mas Geek) es usando el terminal y usar pinout (mas a la mano, y offline) ademas que proporciona informacion adicional.

Ahora que sabemos como identificar los Pin, es hora ponernos manos a la obra y empezar a programar para esta actividad usaremos Python.

Creamos un archivo .py (en mi caso ledon.py) empezaremos importando algunas librerías en Python:

import RPi.GPIO as GPIO
import time

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)

Estas dos librarías permiten manipular los GPIO, time no mas que una librería que sirve trabajar y manipular variables de tiempo así como también generar Delay en nuestro bucles. Lo siguiente es desactivar unos warnings ya que durante la ejecución te avisara que los pines fueron definidos anteriormente, con esto lo desactivamo. Por ultimo declaramos el modo de GPIO que no es mas que una forma de visualizar los pines segun tu criterio.

Raspberry PI y los pines GPIO: Controlando un LED con Bash y con Python -  Un peatón en la red

Ahora para encender un Led es necesario declarar el tipo de GPIO y tan solo declararlo como 1, ya podemos encender el Led.

GPIO.setup(40, GPIO.OUT)
GPIO.output(40, 1)

Y para apagar el LED es tan simple como:

GPIO.output(40, 0)
Raspberry Pi 3 y Led
Raspberry Pi 3, Protoboard y el LED

Ahora para continuar el desafío vamos a usar un botón de tal manera que cuando lo oprima me encienda el Led, para ello tenemos el siguiente código:

import RPi.GPIO as GPIO
import time
## CONFIG BASICA ##
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
## LED
GPIO.setup(40, GPIO.OUT)

## BOTON
GPIO.setup(3, GPIO.IN,pull_up_down=GPIO.PUD_UP)

if __name__ == '__main__':
    while True:
        Boton1 = GPIO.input(3)
        GPIO.output(40, 0)
        if Boton1 == False:
            GPIO.output(40, 1)
Raspberry Pi 3, Protoboard, Led y Boton

Para entender como lo aplique, tenemos que entender que la imagen use el PIN 40 para el LED, me suministra el positivo y Ground o tierra lo obtengo del PIN 39. Para el caso del botón estoy usando el PIN 3 y Ground con el PIN 6. Ahora con el while, Python esta continuamente chequeando el PIN hasta que obtenga un False, al detectarlo enciendo el Led con la instrucción de encender el LED con el que vimos anteriormente.

Asi de simple es usar Raspberry Pi 3, no esta demás comentarles que todo este procedimiento esta bajo su responsabilidad por lo que los invito a que documenten, Raspberry es un dispositivo es mas sensible al ser pines Unbuffered por lo que no tiene ningún mecanismos de protección, igualmente es bueno hacer el intento por que todo esto es parte del aprendizaje y estos ordenadores con económicos.

Hasta una próxima entrada!