You are on page 1of 8

Microcontroladores o Arduino, ¿no

es lo mismo?
febrero 14, 2015

Microcontroladores o Arduino

Microcontroladores o Arduino encierra no solo una pregunta. La


idea de este Post es conocer la filosofía de Arduino y la de los
Microcontroladores. En general, saber un poco de las
diferencias y la realidad de lo que es, y significa Arduino y las
diferencias con un desarrollo con microcontroladores

Sin duda, para aquellos que nacieron con la filosofía de Arduino, el


mundo a sus pies se ve diferente y parece todo más fácil de lograr,
Arduino ofrece múltiples soluciones en tiempos relativamente
cortos. Para aquellos más viejitos, como quien les está contando
esto, nacimos con los microcontroladores y tuvimos que estudiar
largas y largas noches, hacer pruebas, mediciones, quemar
elementos y pelearnos con nuestras familias.

Lo Primero a saber
Arduino y Microcontroladores no son lo mismo. Arduino es una
plataforma de desarrollo que si, indudablemente su núcleo es un
Microcontrolador de la línea Atmel. Microcontroladores, en general,
son chips, es decir circuitos integrados que ofrecen un Hardware
embebido junto con varios periféricos también embebidos. Por
ejemplo cuando hablamos de Timers, Osciladores internos, PWM,
conversores A/D , módulos de captura, Puertos, Stacks TCP, o
Usarts, Puertos GPIO, estamos hablando de periféricos de un
Microcontrolador que están embebidos dentro del mismo.

Arduino

La potencia de desarrollo de Arduino podemos explicarla en 3


características fundamentales:

El Hardware pre armado alrededor del Microcontrolador


proveyendo al usuario una interface de puertos y periféricos
que pueden estar ligados o no directamente al microcontrolador
Atmega, incluso la simbología o nombres de lo que el usuario ve
es diferentes de la simbología del microcontrolador.

Por ejemplo: La interface Nro. 9 en Arduino, será el pin 15 del


Microcontrolador PB1 (OC1A/PCINT1), así figura en el DataSheet el
Atmega328. Otro caso es el puerto serie que se utiliza en el monitor
serial de Arduino, se interconecta con el Microcontrolador por medio
de otro Chip que es el encargado de convertir el protocolo serial
USB a una interface asincrónica RS232. La siguiente figura muestra
la simbología Arduino y su relación con el Microcontrolador:

Las librerías de Arduino cuya potencia


permite el desarrollo de múltiples
Pin_Out Microcontrolador Amega328
aplicaciones de manera simple y rápida.
Las librerías son las que hacen todo el
trabajo arduo, que es el trabajo de aquellos
que nacimos en la era de
Microcontroladores, y están pensadas
Hardware Arduino Uno con
para la simbología de las diferentes placas
Atmega328
de Arduino.

Los Shields de Arduino que simplifican aún más la tarea del


desarrollo de las aplicaciones puesto que existe un Shield
(módulo de hardware especial) a la medida de las aplicaciones.
Estos Shields prevén la adaptabilidad de señales para
acondicionamiento de los sensores, Drivers de corriente,
regulación de alimentación,y sobre todo la funcionalidad para lo
que fue construído.

Lógicamente, uno pensará que no le interesan los


Microcontroladores o, en todo caso, no profundizar en ellos dada
esta enorme potencialidad de Arduino. Pero, en necesario saber que
esta potencialidad se logra con un conocimiento acabado de la
arquitectura del Microcontrolador para poder desarrollar dichas
librerías que nos simplifican la vida.

Microcontroladores

Como ya podemos adivinar, son la base de todo desarrollo y para


aquellos que van a desarrollar proyectos con Microcontroladores,
será necesario conocer profundamente su funcionamiento interno,
además es necesario conocer electrónica digital y analógica
intermedia, dado que los shields debemos construirlos por nuestra
cuenta en algunos casos de acuerdo a nuestro requerimiento o, en
otros casos, podremos utilizar los que se utilizan en Arduino, para lo
cual necesitaremos conocer las características eléctricas de
acoplamiento entre estos y el microcontrolador, niveles de tensión,
datasheet del módulo, diagrama de Pin-Out, función de cada Pin, etc

En la actualidad, la potencia de los microcontroladores es disponer


de un buen compilador que también nos va a simplificar la tarea y
para lo cual, el propio fabricante de Microcontroladores nos
proporciona las herramientas de trabajo, el compilador (o en otros
casos lo realizan empresas de terceros).

Por ejemplo si quisiéramos trabajar con el Atmega328 que es que


usa Arduino, necesitaríamos un Atmel StarterKit y el Atmel Studio. El
primero es el Hardware de entrenamiento y/o plataforma para probar
y experimentar nuestros proyectos, es decir no es un diseño final,
sino que este hardware provee la mayoría de los periféricos a usar en
un proyecto como Display LCD, 7 segmentos, Reles, Botones y
pulsadores, leds, USB, etc. El segundo es el llamado IDE o software
de desarrollo que nos permite realizar la edición de nuestros
programas fuente, la compilación, la programación del
microcontrolador, la simulación y emulación o Debugger en tiempo
real.

Una vez que nuestro proyecto funciona, hay que realizar el diseño de
la plaqueta (nuestro Hardware terminado) que involucrará no solo al
Microcontrolador sino también toda la interface de la aplicación,
Shields, etc.

Si quisiéramos desarrollar con Microcontroladores de Microchip, los


PIC, deberíamos y nuevamente, disponer de un Hardware de
desarrollo y un software IDE.

Para tener una idea de lo que estamos hablando les presento una
imagen de ambaos, Hardware y IDE

El entorno IDE, viene con un compilador que suministra el fabricante,


por ejemplo Microchip nos ofrece la línea XC, para más información
Microchip

Actualmente se diseñan Arduinos con


diferentes tipos de Microcontroladores , es
decir, Arduino al ser una Open-Source,
permite que el Hardware sea
implementado por diferentes tipos de
Kit Desarrollo de Microcontroladores
PIC empresa MCE Electronics fabricantes de Microcontroladores, por
ejemplo con Pics, llamado Pinguino, que
implementan el Hardware de Arduino con
los PIC 18Fxx , explorar más

Como se puede observar, el universo de


posibilidades de software, plataformas de
Software MPLABX- Microchip para Hardware y aplicaciones es muy grande.
Microcontroladores PIC
Arduino ha ganado gran parte del mercado
y posibilitado a que desarrolladores de software, hoobistas,
apasionados por la electrónica y la tecnología tengan una plataforma
de desarrollo simple y potente sin la necesidad de ser expertos en
electrónica. Los programadores pueden, por ejemplo trabajar en sus
programas sin profundizar demasiado en la electrónica y dedicarse
solo a lo que es de su domino, que es la programación. Este nuevo
mundo Arduino, dejó a los desarrolladores con Microcontroladores,
una nueva herramienta, y a los fabricantes un nuevo mercado.

¿Qué usamos entonces? , ¿Cual es mejor?

La respuesta no es fácil ni, intuitiva, todo depende del contexto de


uso:

Educación: Arduino es muy superior para la enseñanza de


electrónica y microcontroladores, sobre todo en escuelas técnicas
secundarias y/o terciarias. Sin duda es más flexible y divertido
desarrollar con Arduino, y además despierta fácilmente el interés.
Los alumnos utilizan los Sketches más fácilmente para programar
que un lenguaje o compilador.

Pre-Proyectos: Estudios de factibilidad o pruebas rápidas como


estudio inicial de un proyecto más grande, Arduino ahorra costos y
tiempo.

Escala de proyectos : Si un proyecto va a fabricarse en unidades


masivas, por ejemplo más de 1000, es importante considerar los
costos. Cuando usamos un Arduino en un desarrollo, el producto
final puede utilizar pocos pines y/o recursos de la placa que no se
utilicen, es más barato entonces, comprar un Microcontrolador y
diseñar el propio Hardware. Lo que se puede hacer es probar con
Arduino y luego mudar nuestra aplicación para implementarla con un
Microcontrolador determinado, para lo cual hay que estudiar y saber
de Microcontroladores, lo que requerirá también, conocimientos de
electrónica.

Tipo de Aplicaciones especiales: Existen aplicaciones en donde las


señales de tiempo real, requerimientos de velocidad, memoria
interna y/o memoria externa, incluso librerías necesarias y no
implementadas aún, o, que dichas librerías no satisfagan lo deseado.
En estos casos habrá que estudiar el Microcontrolador internamente
para modificar las librerías o, pasarse a otro microcontrolador. Por
ejemplo, PWM de Arduino trabaja a una frecuencia fija de 490Htz, lo
cual puede que no sea útil para ciertas aplicaciones, por ejemplo el
dimerizado, si pretendemos controlar la intensidad de luz de una
lámpara en corriente alterna, seguramente no nos va a servir y
tengamos que modificar la librería o, conocer cómo se implementa el
PWM en Arduino para poder modificarlo.

Experiencia: El que ya desarrolla con microcontroladores ve a


Arduino como una alternativa diferente, pero es importante haber
tomado contacto con ambos para sacar sus propias conclusiones, y
no todas las conclusiones convergen.

Documentación: Este factor es importante, Arduino tiene exceso de


buena documentación, clara y entendible. Los microcontroladores
no tanto, son más cerrado. Por ejemplo Microchip, los PICʼs son
excelentes pero la documentación es muy dura, incluso la de los
compiladores, y en este sentido, han perdido mercado.

Compiladores: Para los microcontroladores es de suma importancia


un compilador bien documentado, la mayoría cumple el ANSI-C, pero
pueden haber diferencias en cuanto a portabilidad. Por más que
cumplan la norma seguramente no se va a poder migrar fácilmente
de un PIC16 a un PIC18 o DSPIC.

Tiempos de desarrollo: Sin duda un factor clave, Arduino lleva la


ventaja.

Desarrollo lógico e intelectual: El desarrollar con


Microcontroladores exige y adiestra más profundamente en el
conocimiento lógico. Arduino se libera de esta profundización.

En resumen:

Es necesario, a mi criterio, conocer ambas filosofías de desarrollo. El


trabajar con Microcontroladores nos da otra apertura, otra imagen,
otro grado más profundo en las aplicaciones y que implica un nivel
de conocimiento superior. La desventaja es que con
microcontroladores, hay que mantenerse más actualizado, nuevas
herramientas, plataformas, compiladores, nuevos
microcontroladores, es decir necesitamos más tiempo y más
conocimiento de cada microcontrolador en especial, con el adicional
que al ya poder conocerlo y utilizarlo, seguramente ya hayan salido
nuevos micros, y aprendido sumará mucha experiencia. Arduino es
potente, más simple, menor tiempo. Como posible desventaja
podemos decir que nos ata a una arquitectura de diseño, lo cual
puede ser ventaja para algunos y desventaja para otros.

Fin

Liked it? Take a second to support Gustavo Circelli on Patreon!

You might also like