¿Y si no funciona ese programa? Lo modificaremos las veces que sea necesario hasta que encontremos el error. Este proceso de aprendizaje es relativamente rápido. Sin embargo, Arduino no es solo una herramienta importante en el aprendizaje, sino también en el desarrollo de prototipos, en el que disponemos de un hardware totalmente operativo.
Empecemos por ver qué es Arduino: Arduino es una plataforma libre, educativa y de desarrollo. Generalmente, cuando se habla de un Arduino –«Estoy programando un Arduino»–, nos estamos refiriendo al elemento físico de la plataforma Arduino, su hardware
(también conocido como tarjeta, placa o PCB). Arduino es algo más que un hardware, por lo que su definición más exacta es la de plataforma formada por: un hardware, un software
(o entorno de programación) y un lenguaje de programación
.
La función de la plataforma Arduino es facilitar el uso de un microcontrolador (MCU)
. A partir de ahora utilizaremos las siglas MCU para referirnos a un microcontrolador.
IMPORTANTE
¿Control de procesos?
Qué complejo parece esto… Vamos a buscar en el diccionario de la RAE qué significa «control» y «proceso».
•Control: «Regulación manual o automática sobre un sistema».
•Proceso: «Conjunto de fases sucesivas de un fenómeno natural o de una operación artificial».
Entonces el control de procesos sería la regulación manual o automática sobre un conjunto de fases sucesivas de un fenómeno natural o de una operación artificial.
Un MCU es un circuito integrado que puede ser reprogramado y que está diseñado para el control de procesos mediante la lectura y generación de señales
.
Para entender mejor qué es Arduino y un MCU supongamos que tenemos que implementar una solución para el control del nivel de líquido de un tanque. No obstante, vamos a considerar que no disponemos de una plataforma como Arduino o similar ni conocimientos previos sobre programación, electrónica, ni MCU.
Como no disponemos de Arduino, necesitamos un MCU. Primeramente, tenemos que escoger el más adecuado, considerando las características técnicas del proceso que vamos a controlar. En el mercado disponemos de varios fabricantes de MCU, todos ellos con un amplio catálogo. Tendremos que decantarnos por un fabricante y escoger un MCU de entre todos los que tiene; para analizar los MCU, necesitamos trabajar con sus manuales.
El manual de un MCU no está desarrollado para que cualquier persona, independientemente de su formación, pueda interpretarlo. Nos enfrentaremos a manuales de hasta 450 páginas, con un lenguaje muy técnico, por lo que no solo es necesario un conocimiento previo sobre MCU, sino sobre programación, muchos «mecanismos internos», como Timers, interrupciones, etc. Posiblemente, si nunca hemos programado, no entenderemos para qué sirven.
Además, debemos analizar sus limitaciones en cuanto a potencia eléctrica, y si necesita más componentes para poder operar (como osciladores, condensadores…).
También nos limitará el formato (tamaño) de cada MCU; nos encontramos con muchos que no vamos a poder «manejar» por su reducido tamaño. Aún con todas estas dificultades, vamos a suponer que nuestra elección es la correcta.
A continuación, el siguiente problema sería cómo conectar el MCU al PC para poder programarlo: tendremos que comprar un módulo para poder programarlo, lo que nos va a obligar a realizar diferentes conexiones (implicará protoboards, cables, etc.). A todo esto quizás le debamos sumar más componentes que necesite el MCU para poder operar. Sin embargo, podemos con todo, solucionamos todos estos pasos y ya estamos listos para programar. Necesitamos un entorno de programación: lo más seguro es que el fabricante del MCU disponga de uno propio, pero quizás ofrece diferentes versiones (de prueba, para estudiantes, para profesionales) y podrán ser de pago o no.
Descargamos el entorno y ahora sí que empezamos a programar. No obstante, puede que ese entorno no sea todo lo «amigable» que esperemos. Puede ser un entorno muy completo con una gran cantidad de herramientas, menús… Lo cual es bueno, pero quizás, al principio, nos llegue a confundir, aunque al final, después de revisar documentación, lo entendamos y podamos seguir.
Si no tenemos conocimientos de programación, no nos va a quedar otro remedio que aprender, tendremos que buscar información (ejemplos, documentación, manuales, etc.).
Como acabamos de ver, existe una gran cantidad de obstáculos para simplemente empezar a programar un MCU y, con todo esto, una vez que los superemos, tenemos que ser capaces de llegar a una solución, desarrollar el programa adecuado e implementar físicamente este sistema (conectarlo a un entorno).
IMPORTANTE
Sin una formación adecuada, lo más seguro es que no nos veamos capaces de afrontar este reto, pero con Arduino esto cambia. Arduino nos elimina toda una serie de obstáculos para que nuestra principal preocupación sea programar un MCU y conectar el Arduino a los elementos que intervengan en un proceso.
A continuación veremos cómo se nos platea la misma tarea con un Arduino y veremos qué papel desempeña cada uno de los elementos de la plataforma Arduino.
IMPORTANTE
Es importante recalcar que Arduino no fabrica los MCU de su hardware; estos son desarrollados y fabricados por Atmel.
Arduino incorpora los MCU en el proceso de fabricación de las placas. En consecuencia, lo que hicieron fue estudiar ese manual de 450 páginas de cada MCU y dar una solución a ese problema, ofreciéndonos un sistema que incorpora todo la electrónica necesaria para programar e implementar un MCU.
Planteémonos el mismo caso del capítulo anterior, pero ahora, con un Arduino. Primeramente, al igual que pasaba con el MCU, tendremos que elegir un Arduino. Disponemos de un gran catálogo de placas Arduino, todas las placas presentan diferencias entre ellas (debido a la incorporación de periféricos como: WIFI, Ethernet, conector tarjetas SD, etc.), aunque las diferencias básicas son debidas al MCU en concreto que incorpore cada placa.
Читать дальше