Raspberry Pi
Con este artículo comienzo una nueva sección sobre Raspberry Pi, en las próximas entregas me dedicaré a crear instrucciones sobre los primeros pasos de configuración y puesta en marcha de un Raspberry Pi 3, así como la instalación de distintos programas para ejecutar funciones específicas como Servidor en la nube de archivos (OwnCloud), un centro multimedia (OSMC), y un servidor LAMP personal con DNS dinámico.
¿Qué es Raspberry Pi?
Para ponerlo en términos sencillos, Raspberry Pi es un pequeño ordenador, que permite la ejecución de un sistema operativo:
- Raspbian (basado en GNU/Linux distro Debian)
- Windows 10 IoT (Internet of Things)
- Ubuntu Mate
- Sistemas basados en GNU/Linux a medida
Su estructura es muy parecida a la de cualquier ordenador, tiene un procesador central, una memoria RAM, un dispositivo de almacenamiento (la tarjeta MicroSD), puertos de entrada y salida que podemos dividir en general en 2 tipos, los standard USB, audio y video, y los GPIO (General Purpose Input Output) que veremos en detalle mas adelante.
Características
¿Entonces puedo reemplazar un ordenador de escritorio por un Raspberry Pi? Si y no, si bien, se puede ejecutar un ambiente gráfico, y ejecuta LibreOffice (preinstalado en Raspbian), es también limitado, podríamos hacer documentos sencillos, navegar por internet, descargar e instalar una amplia variedad de programas, pero siempre estará limitado su capacidad de procesamiento y memoria:
RPI Model A | RPI Model A+ | RPI Model B | RPI Model B+ | RPI 2 Model B | RPI 3 Model B | |
SoC | BROADCOM BCM2835 | BROADCOM BCM2835 | BROADCOM BCM2835 | BROADCOM BCM2835 | BROADCOM BCM2836 | BCM2837 64bit CPU |
CPU | ARM11 ARMV6 | ARM11 ARMV6 | ARM11 ARMV6 | ARM11 ARMV6 | ARM11 ARMV7 ARM CORTEX-A7 | ARM Cortex-A53 |
Velocidad | 700 MHZ | 700 MHZ. | 700 MHZ. | 700 MHZ. | 4 NÚCLEOS 900 MHZ | 4 NÚCLEOS 1.2 GHZ |
GPU | Broadcom VideoCore IV | Broadcom VideoCore IV | Broadcom VideoCore IV | Broadcom VideoCore IV | Broadcom VideoCore IV | Broadcom VideoCore IV |
Memoria | 256 MB LPDDR SDRAM | 256 MB LPDDR SDRAM | 512 MB LPDDR SDRAM | 512 MB LPDDR SDRAM | 1 GB LPDDR2 SDRAM | 1 GB LPDDR2 SDRAM |
Velocidad | 400 MHZ. | 400 MHZ. | 400 MHZ. | 400 MHZ. | 450 MHZ. | 900 MHZ. |
Puertos USB | 1 | 1 | 2 | 4 | 4 | 4 * |
* El modelo 3 incluye además Bluetooth y WiFi integrados.
Como podemos apreciar en la tabla anterior, la capacidad de memoria RAM es poca, en los primero modelos tenemos solo 256MB y en el mas moderno modelo 3 1 GB de RAM, con un procesador de 4 nucleos a 1.2 ghz, aproximadamente la capacidad de procesamiento y memoria de un móvil de gama media, la capacidad de almacenamiento está determinada por la tarjeta que insertemos donde instalaremos el sistema operativo, aunque puede ser ampliada con cualquier unidad de disco duro externo por USB o bien utilizando un dispositivo de almacenamiento en RED.
Entre otros programas como los del LibreOffice, los equivalentes al Office de Microsoft de desarrollo abierto, también podemos ejecutar lenguajes de programación, como Python.
¿Y que de los GPIO’s?
Estas salidas y entradas genéricas que incluyen los Raspberry Pi, le sirven para comunicarse con el mundo y es aquí, donde comienza su utilidad como «algo mas que un pequeño pc», mediante estos puertos lo podemos conectar con dispositivos de entrada y salida, sensores y actuadores que le permiten interactuar con el «mundo»:
Como podemos ver en la siguiente ilustración del GPIO del Raspberry Modelo B, cada Pin tiene una función definida:
Tenemos salidas de voltaje de 3.3 volts y 5.0 volts, y una serie de pines numerados GPIOxx, usando estos puntos de conexión o pins, podemos conectar dispositivos entrada o salida, por ejemplo podemos encender un LED usando los GPIO (ver referencia).
Primero el circuito básico, un Led conectado a una fuente de alimentación de 3.3V con una resistencia en serie, pues el voltaje de trabajo de un LED Rojo es de 1.7 – 2.0 V, alimentarlo con mas voltaje acortaría su vida útil:
Ya hemos visto que el Raspberry tiene una salida de 3.3 Volts, asi que si conectamos el circuito quedaría algo así:
Y ejecutando un programa en Python podemos hacer que el LED encienda y apague, el código completo de este ejemplo se encuentra en la página oficial de Raspberry. GPIO LED
Otro ejemplo, esta vez de una señal de entrada, es conectar un botón pulsador, en una forma muy simplificada veamos este ejemplo:
En el diagrama (muy simplificado) podemos ver que se conecta un botón a la alimentación de 3.3 volts y luego el otro lado del interruptor (switch) al GPIO2 (Pin13), esta es la parte «física», después la parte «lógica» o de Software consistiría en hacer un programa o script que continuamente «lea» el estado del GPIO2 (Pin13) y en cuanto este cambie a estado «alto» (HIGH) significa que el botón ha sido presionado y ejecutar en consecuencia una serie de acciones asociadas al botón pulsado.
De igual manera podríamos conectar un sensor de temperatura a un puerto y «leer» la información y desplegarla, almacenarla o enviarla a la nube.
Pero no todo son «entradas», pues podremos conectar por ejemplo un relay, que básicamente es un interruptor que funciona con una señal que recibe del Raspberry y abre o cierra un circuito, lo que podría encender o apagar cualquier circuito, por ejemplo una lámpara o un sistema de riego, etc.
Con los GPIO’s las posibilidades de desarrollo de aplicaciones se incrementan tanto como nuestra imaginación, y pensaréis, tengo un mini pc, que se puede conectar por cable ethernet o wifi a internet, que puede encender y apagar cosas, y que puede obtener información de sensores, a que nos va sonando esto? Domótica y IoT o el Internet de las Cosas.
Un ejemplo sencillo de esto, instalamos en la MicroSD un sistema de control como el Home Assistant, luego, mediante WiFi y una serie de sensores repartidos por casa podemos medir la temperatura, humedad y las condiciones de luz, esta información puede ser desplegada en un sistema que se puede instalar en el móvil o consultar entrando en nuestro Raspberry por internet:
Conclusiones
Finalmente y después de este pequeño análisis, tenemos un micro pc, que puede ejecutar código y programas, y puede recibir y enviar señales, si agregamos unos servos, algunos sensores de proximidad, de luz, y algunas piezas de plástico o cualquier otro material, podríamos construir un robot, o un brazo mecánico!
Las posibilidades de nuevo son infinitas, son estos dispositivos relativamente baratos, fáciles de usar que empujan el desarrollo y traen consigo la «Cultura Maker», o el «hágalo usted mismo», hoy en día, podemos comprar unas cuantas piezas electrónicas, ensamblarlo nosotros mismos, desarrollar un programa y hacer cualquier tipo de dispositivo conectado a internet o a otros dispositivos que pueda realizar una infinidad de actividades automatizadas.
Referencias:
RaspberryPi Sitio oficial: https://www.raspberrypi.org/
Python: https://www.raspberrypi.org/documentation/usage/python/
HomeAssistant: https://home-assistant.io/
Ejemplo del LED: https://www.raspberrypi.org/documentation/usage/gpio/README.md
Sugerencia de compra:
[sc name=»firma_general»]
Padrisimo!!! LEGO para ingeniosos, jejeje.
Felicidades por la publicación Ulises.