Que board de desarrollo usar?

Que board de desarrollo usar?

Muchas veces antes de empezar un proyecto pensamos  ¿Qué board voy a usar? con esta guía queremos ayudarte a que puedas tomar esta decisión, para eso vamos a evaluar algunos parámetros entre las marcas y tecnologías más usadas en el mercado! 

como seleccionar una board

Nivel conocimiento necesario

¿Qué necesitas saber antes de empezar?

Arduino: Son boards muy fáciles de usar, una persona que tenga conocimiento básicos en el uso de computadoras podría empezar desde cero sin requerir conocimiento de electrónica o programación

https://www.dynamoelectronics.com/20-boards-arduino

NodeMcu: Esta board en su modo básico es fácil de manejar porque usa el software de arduino, su ventaja está en que tiene un procesador con WIFI integrado y usar esta comunicación si requiere un conocimiento previo, además si quieres entrar a programar el procesador requiere un conocimiento aún más avanzado en Linux

https://www.dynamoelectronics.com/nxp-ti-otras/1103-nodemcu-32mbytes.html

Micros: Usar microcontroladores puede ser la mejor solución a medida en un proyecto, pero usarlos para diseñar una board requiere un conocimiento previo en el software que use el microcontrolador como en el diseño de PCBs

https://www.dynamoelectronics.com/151-nxp-ti-otras

Raspberry: Al ser una microcomputadora el nivel de conocimiento va a depender de la aplicación que se quiera hacer, sin embargo se va a requerir algo de conocimiento básico de Linux, y hacer aplicaciones como servidores Web, uso de entradas y salidas o hacer tu propio sistema de video en casa va a requerir un nivel de conocimiento más avanzado.

https://www.dynamoelectronics.com/149-raspberry

FPGA: Son el dispositivo con la mayor diferencia entre los que hemos visto, tanto por su forma de procesamiento como los lenguajes de programación que usa HDL (lenguaje de descripción de hardware), para usar en una FPGA en realidad se requiere un nivel de conocimiento avanzado sobre todo si se quiere trabajar en niveles de abstracción inferiores

https://www.dynamoelectronics.com/nxp-ti-otras/1222-spartan-3e-starter-board-xc3s500e.html

 

Información

¿Cuanta información podemos encontrar?

Arduino: Se encuentra mucha mucha información, encontraras información en todos los idiomas, videos, libros, tutoriales, cursos. etc

NodeMcu: Se encuentra información, no tanta como arduino pero no te vas a varar, para aplicaciones avanzadas la información es un poco más limitada

Micros: Es un poco relativo a la marca, los micros PIC probablemente sean de los que más información encuentres, sin embargo con la mayoría de marcas contaras prácticamente con las hojas de datos, hojas de aplicación, manuales de referencia y foros específicos, la información en su mayoría está en inglés y hay pocos vídeos y pocos libros que te pueden ayudar.

Raspberry: Encontraras mucha información!, en diferentes idiomas, pero en su mayoría inglés, hay muchos videos y tutoriales que puedes usar

FPGA: Hay poca información se depende prácticamente de las hojas de datos y de referencia que de la marca que quieres usar, la mayoría de información está en inglés, se encuentran algunos libros y pocos video tutoriales.

 

Precio

Comparamos el precio de estas boards en el mercado colombiano

Arduino: El precio de arduino es bajo una arduino UNO Original puede oscilar entre unos 80.000 a 90.000 se encuentra boards tipo arduino de más bajo precio entre 20.000 y 30.000, antes de comprar ten en cuenta la calidad, se encuentra muchas arduino falsas en el mercado que normalmente no tienen ningún control de calidad

https://www.dynamoelectronics.com/boards-arduino/65-arduino-uno-r3.html

NodeMcu: Es una board muy económica está entre 20.000 y 30.000, existen varias versiones  

https://www.dynamoelectronics.com/nxp-ti-otras/1103-nodemcu-32mbytes.html

Micros: Los microcontroladres varían mucho su precio de acuerdo a su capacidad de procesamiento y numero de pines podemos encontrar micros desde 10.000 pesos en adelante, para aprender a usar micros se pueden encontrar board que van desde los 80.000 en adelante

https://www.dynamoelectronics.com/nxp-ti-otras/239-frdm-kl25z.html

Raspberry: Para ser una micro computadora tiene un precio muy bajo de alrededor de 180.000, tienes que tener en cuenta que como mínimo vas a necesitar adicionalmente una fuente de alimentación y una memoria micro SD para el sistema operativo.

https://www.dynamoelectronics.com/raspberry/1177-raspberry-pi-3.html

FPGA: Hay de muchos precios, se pueden encontrar FPGAs básicas desde 80.000 hasta varios millones!, si lo leíste bien varios millones hay boards de estas como la Zynq UltraScale+ de Xilinx que pueden costar más de 8000US

https://www.dynamoelectronics.com/nxp-ti-otras/1222-spartan-3e-starter-board-xc3s500e.html

Capacidad de procesamiento

Arduino: Existen varias boards de arduino que tienen diferentes velocidades de procesamiento, pero en general varias boards arduino incluyendo la arduino UNO tienen  una CPU de 8 bits y un reloj de 16Mhz, esta velocidad es buena para muchos procesos, en sistemas como alarmas, robots seguidores de línea, control de procesos sencillos, etc. No se recomendaría usar en procesos como tratamiento de imágenes, o sistemas de control que requieran hacer muchos cálculos en números decimales
 
NodeMcu: La velocidad estándar es de 80Mhz, y funciona con un microprocesador de 32bits, con esta velocidad puedes hacer muchos procesos, sobre todo orientado a IoT que son las aplicaciones más comunes de esta board.
 
Micros: Los microcontroladres varían mucho su capacidad de procesamiento la mínima está en la misma velocidad de arduino es decir 16mhz a 8 bits, sin embargo la nuevas familias de micros integran núcleos ARM que son de 32 bits y velocidades de procesamiento que pueden estar sobre los 100Mhz, e incluyen unidades de procesamiento matemático adicionales, lo que hace que puedas trabajar con números decimales sin perder velocidad,
 
Raspberry: Si buscas velocidad de procesamiento llegaste al lugar adecuado, con un procesador Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit, tenemos 4 núcleos una velocidad 1.4Ghz! es una capacidad de procesamiento alta donde corre su sistema operativo y pueden desarrollarse aplicaciones graficas que son las que más capacidad de procesamiento requieren.
         
FPGA: Pero si la velocidad de la raspberry no fue adecuada, con una FPGA lo puedes lograr, con su procesamiento en paralelo las FPGAs  pueden hacer cosas increíbles, los sistemas como raspberry o los micros hacen procesamiento secuencial, pero las FPGAs pueden hacer procesamiento en paralelo ideal para aplicaciones como tratamiento de imágenes, controladores de pantallas, minería de datos, encriptación, reconocimiento de voz, tratamiento de señales entre otros!


Librerías para periféricos

Si estás desarrollando un prototipo donde integres diferentes dispositivos, probablemente quieras que ya exista la programación de este para poderla integrar en tu programa y así ahorrar horas de trabajo veamos qué tan fácil es conseguir librerías

 

Arduino: Es la plataforma en la cual vas a encontrar más librerías y ejemplos de uso la formas más fácil de integrar algo probablemente sea con Arduino

NodeMcu: Al ser compatible con el software de arduino vas a encontrar varias librerías, no tantas como por ejemplo para arduino UNO, pero podrás encontrar librarías de los elementos más comunes
 
Micros: Depende de la marca y del software que uses, pero no vas a encontrar tantas como arduino, puedes encontrar para el manejo de los buses de datos pero vas a requerir conocimiento para poder integrar otras librerías que encuentres y adaptarlas a tu programa
 
Raspberry: Encontrarás varias librerías, ejemplos e información la mayoría de esta en inglés, y vas a necesitar aprender algo de Linux y de phyton o C++ para poderlas usar
        
FPGA: Vas a encontrar poca información y a pesar que existen varios software que te ayudan es posible que tengas que hacer todo por tu cuenta, como lo hemos dicho antes es un nivel más avanzado y la comunidad que trabaja alrededor de esta tecnología es más pequeña
 

Buses de datos

La forma más común de conectar periféricos es por medio de buses de datos, asi memorias, relojes, sensores y demás se encuentran en buses de datos siendo los más comunes Serial, SPI e I2C, pero cuantos buses de datos tengo a disposición en esta plataformas?

Arduino: Existen muchas boards de arduino unas tienen más recursos que otras pero la más usada es la arduino UNO vamos a ver en esta que buses tenemos: 1 UART, 1 SPI, 1 I2C 

NodeMcu: 2 UART, 2 SPI, WiFi
 
Micros: Depende de la referencia los puedes encontrar con múltiples buses, algunos tienen soporte USB y ethernet
 
Raspberry PI 3 B+:  2 SPI, 1 UART, 1 I2C, 4 USB, 1 Ethernet      

FPGA: Depende  a la referencia, se pueden programar múltiples protocolos
 

Aplicaciones

¿Cuáles ambientes son en los que más se encuentran estos dispositivos?

Arduino: Lo puedes usar en aplicaciones de todo tipo sin embargo es más común encontrarlo en aplicaciones académicas

 
NodeMcu: Al igual que arduino se encuentran más aplicaciones en la academia orientada a internet de las cosas
 
Micros: Se encuentran en el sector industrial, por ejemplo puedes encontrarlo en un mouse, en teclados, en sistemas de apertura de puertas, en sistemas de control de acceso, entre otros, están más orientados a aplicaciones especificas
 
Raspberry PI: La mayoría de aplicaciones las puedes encontrar en academia y sistemas de video, como centros de entretenimiento, pantallas publicitarias, servidores, IoT, entre otras

FPGA: Por su capacidad de procesar en paralelo se usa en industria por ejemplo en sistemas de visión artificial o en investigación para procesamiento de datos  

Product successfully added to the product comparison!