Dos de las más populares plataformas para IOT (internet de las cosas) y pruebas electrónicas son Arduino y Raspberry PI. Hay muchas otras, pero sin duda estas dos son las más populares.
Cuando en los años 80 surgió el movimiento de software libre por medio de Richard Stallman y su FSF (Free Software Foundation) muchos se preguntaron si era buena idea compartir el conocimiento de forma libre, es decir, aprovechar el conocimiento compartido por el creador para que otros puedas reproducirlo e incluso modificarlo y realizar mejoras o nuevas creaciones sobre el original.
La dificultad de compartir el "hardware" radica en que no es tan facil copiar elementos físicos como si lo es con el software pero sin embargo estas plataformas tuvieron su éxito por el bajo costo que presentan en relación a las prestaciones que ofrecen, asequibles a cualquier bolsillo que quiera comenzar en el mundo de la electrónica/programación.
El hardware libre posibilitó tanto a entusiastas como especialistas tener a mano una plataforma completa de pruebas y prototipado prescindiendo de algunas cuestiones limitantes, tanto desde el punto de vista técnico como comercial.
En este post vamos a tratar las diferencias entre las dos plataformas abiertas más utilizadas en la actualidad: Arduino y Raspberry PI.
Arduino
Ofrece diferentes placas con características distintas con respecto al hardware entre las que se encuentran:
- Arduino Uno
- Arduino Mega
- Arduino Micro
- Arduino Nano
- Arduino Leonardo
- Arduino Due
Nos enfocaremos en el Arduino Uno que es uno de los más populares por su precio y las características técnicas que ofrece.
Raspberry PI
En el mercado existen dos modelos de placas de Raspberry PI, la A y la B. La diferencia de precio entre ambas no es muy significante aunque sí sus prestaciones, siendo más potente el modelo B.
En ambas placas a simple vista se ven chips, conectores, agujeros para tornillos, pero fuera de eso, por dentro son bastante diferentes.
Empecemos por el core, Arduino Uno R3 viene con un ATmega328P que es un microcontrolador de 8 bits mientras que la Raspberry 3B trae un microprocesador Cortex-A53 (ARMv8) de 64 bits.
Con ambas se pueden controlar entradas y salidas, pero Arduino es apta para resolver circuitos de automatización, control y robótica. Además, Raspberry PI es más versátil, pues se presenta como un motherboard pequeño, una computadora de bolsillo.
En términos de I/O (entradas-salidas), Arduino tiene un puerto USB-B que puede ser usado por una computadora para transferir los programas a ejecutar, también una entrada para la fuente de alimentación (5V) y un conjunto de pines de I/O.
Una Raspberry Pi es mucho más sofisticada en este sentido, teniendo salida de Video (puerto HDMI), un puerto para una tarjeta SD, una entrada de audio jack, puerto CSI de cámara, DSI display port, 4 puertos USB 2.0 los cuales puedes usarlos para agregar dispositivos USB, un puerto de Ethernet, Wireless LAN (WiFi) Bluetooth 4.2 y pines de I/O (GPIO). En fin las posibilidades son más amplias en el Raspberry.
Arduino no tiene sistema operativo. Sólo puede correr programas que son compilados por la plataforma de Arduino, los cuales la mayoría son escritos en C++.
Raspberry Pi corre un sistema operativo, el cual usualmente es GNU Linux pero tranquilamente puede correr Windows 10 IOT.
¿Cuál debería usar? ¿Raspberry Pi o Arduino?
Dadas estas diferencias, podemos pensar que la Raspberry Pi es mucho más poderosa y tiene más capacidad que Arduino (más versátil por que no), entonces deberíamos usar esta? Equivocado.
Arduino consume mucho menos potencia (~50 mA cuando está ocioso) que Raspberry (+700 mA).
Arduino tiene 20 I/O pines. Raspberry Pi tiene 8. Los pines individuales de Arduino pueden manejar una corriente máxima de 40 mA mientras que Raspberry PI GPIO cada uno puede manejar como máximo 16 mA.
En Raspberry Pi puedes programar casi que en cualquier lenguaje que quieras, si corres un Linux puedes configurar como quieras, posta.
¿Qué acerca de la programación?
Arduino es mejor programarlo usando C++ y su dialecto "Arduino" el cual es sólo C++ con algunas características que hacen sencillo para los que recién están comenzando.
Pero no estás limitado sólo a esto. Si pueden tenerlo conectado todo el tiempo a una PC a través del USB incluso puedes correr código Node.js
usando este proyecto Johnny Five. Si, ¡más JavaScript para todo! 😂
Hay otras librerías para otros lenguajes como: Python (pyserial) y Go (Gobot).
En mi opinión, Arduino es mejor cuando quieres compilar un programa y que sea rápido/eficiente en consumo de recursos por ej. la batería y en caso de que quieras hacer uso de muchos sensores ya que es uno de sus puntos fuerte (buena interfaz con el mundo real).
No te tienes que preocupar mucho ya que no hay nada más que tu programa corriendo en el Arduino. Ni siquiera tiene una conexión de red (siempre hablando del UNO) lista para usar.
Raspberry Pi, al ser una mini computadora sin una pantalla, puedes programar con más herramientas tradicionales como Java, C#, Go incluso montar un servidor web y correr algo de PHP o Javascript 😏
En fin, las posibilidades son muchas pero como resumen si necesitas un sistemita de control o automatización, sensar algo de la vida real y un actuador simple, de cabeza el Arduino pero si es algo que requiere más procesamiento (visión artificial, traer/eviar datos a internet o ejecutar un código ya codeado en algo que no sea C++) iría por el Raspberry Pi.
Comentarios