¿Qué es Arduino?
Arduino es una plataforma de hardware libre -creada por David Cuartielles y
Massimo Banzi- basada en una placa con un microcontrolador y un entorno de
desarrollo, y fue ideada para facilitar el uso de la electrónica en proyectos
multidisciplinares, tanto para entusiastas como para expertos.
Incorpora un microcontrolador reprogramable y una serie de pines-hembra (los
cuales están unidos internamente a las patillas de E/S del microcontrolador) que
permiten conectar allí de forma muy sencilla y cómoda, diferentes sensores y
actuadores.
Hardware
En relación con el hardware, Arduino incorpora un microcontrolador que permite la
programación con un lenguaje de alto nivel. Se trata del elemento encargado de
efectuar los procesos matemáticos y lógicos, así como también de gestionar los
recursos para cada componente externo que conectemos a la placa principal.
Una placa Arduino incorpora una serie de entradas analógicas y digitales, gracias a
las que podremos conectar distintos sensores y otras placas o shields. Todo esto
nos permite agregar nuevas funcionalidades sin necesidad de alterar el diseño
original de la placa.
Un elemento importante dentro del hardware de Arduino son sus puertos de
entrada/salida, mediante los que es posible conectar la placa a la computadora para
integrar el trabajo con el software. placa a la computadora para Integrar el trabajo
con el software
El modelo del microcontrolador
El microcontrolador que lleva la placa Arduino UNO es el modelo
ATmega328P de la marca Atmel. La “P” del final significa que este chip incorpora la
tecnología “Picopower” (propietaria de Atmel), la cual permite un consumo eléctrico
sensiblemente menor comparándolo con el modelo equivalente sin “Picopower”, el
Atmega328 (sin la “P”). De todas formas, aunque el ATmega328P pueda trabajar a
un voltaje menor y consumir menos corriente que el Atmega328 (especialmente en
los modos de hibernación), ambos modelos son funcionalmente idénticos.
Lo que sí nos puede venir bien es conocer la disposición concreta de las patillas
(llamadas también “pines”) de entrada/salida del microcontrolador, ya que, aunque
hemos dicho anteriormente que en general todos los pines de E/S sirven para
comunicar el microcontrolador con el mundo exterior, es cierto que cada pin suele
tener una determinada función específica. Como cada modelo de microcontrolador
tiene un número y ubicación de pines diferente, en nuestro caso concreto
deberemos tener a mano la disposición de pines del ATmega328P. La figura
siguiente muestra esta disposición en el encapsulado de tipo DIP.
Observando la imagen se puede saber qué pin es el que recibe la alimentación
eléctrica (señalado como “VCC”), qué dos pines están conectados a tierra (los
señalados como “GND”), qué pines son los de E/S (señalados como PBx, PCx o
PDx) y la existencia de otros pines más específicos como el AVCC (donde se recibe
la alimentación suplementaria para el convertidor analógico-digital interno del chip) o
el AREF (donde se recibe la referencia analógica para dicho convertidor). También
se puede observar que junto al nombre de los pines de E/S se indica entre
paréntesis las funciones especializadas que cada uno de ellos tiene en particular
(además de su función genérica de entrada/salida).
Algunas de estas funciones específicas las iremos estudiando a lo largo del libro,
como por ejemplo la función de “reset” del microcontrolador, o la comunicación con
el exterior usando el protocolo serie o el SPI o el I2C, o el uso de interrupciones, o el
de las salidas PWM, etc.
Software
Un programa es un conjunto concreto de instrucciones, ordenadas y agrupadas de
forma adecuada y sin ambigüedades que pretende obtener un resultado
determinado. Cuando decimos que un microcontrolador es “programable”, estamos
diciendo que permite grabar en su memoria de forma permanente (hasta que
regrabemos de nuevo si es necesario) el programa que deseemos que dicho
microcontrolador ejecute. Si no introducimos ningún programa en la memoria del
microcontrolador, este no sabrá qué hacer.
Las siglas IDE vienen de Integrated Development Environment, lo que traducido a
nuestro idioma significa Entorno de Desarrollo Integrado. Esto es simplemente una
forma de llamar al conjunto de herramientas software que permite a los
programadores poder desarrollar (es decir, básicamente escribir y probar) sus
propios programas con comodidad. En el caso de Arduino, necesitamos un IDE que
nos permita escribir y editar nuestro programa (también llamado “sketch” en el
mundo de Arduino), que nos permita comprobar que no hayamos cometido ningún
error y que además nos permita, cuando ya estemos seguros de que el sketch es
correcto, grabarlo en la memoria del microcontrolador de la placa Arduino para que
este se convierta a partir de entonces en el ejecutor autónomo de dicho programa.
Al igual que el hardware de Arduino, el software que necesitamos para programarlo
se distribuye libremente, por eso, solo se precisa descargarlo desde su web oficial.
IDE de Arduino
El IDE de Arduino se distribuye como un programa empaquetado, con todo lo que
necesitamos para programar, así encontraremos lo siguiente:
EDITOR DE CÓDIGO
Se trata de un programa diseñado específicamente para que podamos crear y editar
código fuente. aunque es posible utilizar cualquier editor de texto plano para crear
este tipo de código, un editor específico integra el reconocimiento del lenguaje de
programación que utilizaremos.
COMPILADOR
Es un programa informático que se encarga de traducir un programa que hemos
desarrollado en un lenguaje de programación a un lenguaje diferente; en general
traducirá nuestro código a lenguaje de máquina, entendible por el hardware.
DEPURADOR (debugger)
Este tipo de programa estå diseñado para probar y eliminar los errores que puedan
existir en el código que desarrollamos. En otras palabras, se trata de un programa
que ejecuta el código para detectar posibles errores lógicos.
1
Söderby, Karl, and Jacob Hylén. [Link]
started-ide-v2, CC BY-SA 3.0.
Bibliografias
- El mundo Genuino-Arduino : curso práctico de formación - 1. edicion. (2018).
Alfaomega Grupo Editor.
- Arduino / Claudio Alejandro Peña Millahual. - 1a ed. - Ciudad Autónoma de Buenos
Aires