CURSO DE ARDUINO
Unid. I
INTRODUCCIÓN
A ARDUINO
WWW.ROBOTICFEST.CL
Unid. I
INTRODUCCIÓN
A ARDUINO
¿Qué es
arduino?
Arduino es una plataforma de código abierto para el Wiring para una prestigiosa universidad. Su objetivo
desarrollo electrónico, cuyo objetivo es simplificar era entregar una herramienta que permitiera a estu-
el uso de hardware y software. Cuando hablamos de diantes y profesionales crear dispositivos para inte-
código abierto, queremos decir que Arduino pone ractuar con su entorno mediante el uso de sensores
a disposición los esquemas de hardware y software y actuadores. El proyecto prosperó, lanzando en el
para que cualquier persona pueda utilizarlos, mejo- 2005 la primera versión de lo que ya tomaba forma
rarlos o adaptarlos. Esto abre un mundo de constante del proyecto Arduino. El éxito llegó, y el grupo de fun-
crecimiento ya que cualquier persona puede hacerse dadores, cinco en ese entonces, comenzaron a tener
parte del proyecto Arduino según sus intereses. Por sus primeras diferencias. Es así, como varios años más
ejemplo, existen muchos desarrolladores de software tarde se separaron, y uno de sus fundadores paten-
que se dedican a la programación de código, que luego ta el nombre Arduino en Italia y Europa iniciando un
comparten y liberan para que sea utilizado por el res- proyecto en paralelo. En ese entonces, Arduino sólo
to de la comunidad. Del mismo modo, los modelos de tenía patente en Estados Unidos, y por lo tanto, no
hardware también son libres, por lo que construir tu hubo más opción que levantar el proyecto en Europa
propio Arduino es una idea completamente real. bajo otro nombre: Genuino.
Lo único que la empresa ha reservado es el nombre Ya que hemos aclarado un poco de la historia de Ar-
Arduino, Genuino y sus logos asociados, evitando que duino, es muy importante que tengas en cuenta algu-
algún inescrupuloso se adueñe de la marca para be- nos puntos. Primero que todo, recordarte que para
neficio propio. Se preguntarán, ¿qué tiene que ver Ar- este curso no necesitas un Arduino, ni cables, ni ma-
duino y Genuino? O quizás a más de alguno ya le qui- teriales, sólo un computador con internet. Si a pesar
sieron vender una placa original que no tenía impreso de esto, quieres adquirir componentes físicos para
el texto Arduino, sino que decía Genuino. Revisemos llevar a cabo el curso, considera lo siguiente. En el
brevemente la historia para entender este punto, ya mercado existen tres tipos de placas. Las originales,
que podría ser muy útil cuando te animes a adquirir estadounidenses, comercializadas con el nombre de
una placa física. Arduino, las originales comercializadas bajo el nom-
bre de Genuino, y las no originales, comercializadas
El proyecto Arduino tiene sus orígenes en Italia en el con distintos nombres, siendo el más común: Arduino
año 2003, a raíz del desarrollo de un proyecto llamado Compatible.
Arduino como
entorno de desarrollo
Una confusión recurrente es pensar que Arduino es yecto, pero existen muchas placas (quizás la mayoría)
sólo una placa que tiene impresas las letras Arduino de capacidades superiores, como el Arduino Mega, e
UNO y sirve para controlar sensores. Esta es sólo una incluso con menor tamaño, como Arduino Micro y Ar-
placa en específico, y es la que se utilizará en este cur- duino Nano. Existen también placas orientadas a tec-
so precisamente por ser la más conocida y por lo tanto, nologías específicas, como el Arduino MKR NB 1500,
la más documentada y soportada por los foros de ayu- que es un dispositivo capaz de conectarse a redes
da en internet. Pero Arduino es mucho más que eso. inalámbricas de tecnología Narrow Band IoT, red que
aún ni siquiera tiene antenas comerciales en chile. A
Existen decenas de placas diseñadas y construidas por continuación, se presentan algunos ejemplos de los
la empresa, cada una con sus funcionalidades específi- dispositivos mencionados. Los tamaños están tentati-
cas. Tenemos Arduino UNO como el emblema del pro- vamente a escala entre ellos:
Junto a esta diversidad de hardware, se ofrece un en- llo, que ofrece hardware para todas las necesidades,
torno de desarrollo de software que es el motor de los software para dar vida a los proyectos y un constante
proyectos, el IDE de Arduino. Queda claro entonces apoyo a través de la web en sus diversas comunidades
que Arduino es una completa plataforma de desarro- y foros.
Microcontroladores y
microprocesadores.
Cuando pensamos en proyectos de automatización, de Como podemos observar en la imagen del Atme-
inteligencia artificial o de IoT (el fenómeno de conec- ga328p, un microcontrolador se presenta mdiante
tar todo a internet) , existe un factor común; alguien un encapsulado negro con pines de conexión, y es a
(o algo) debe encargarse de los procesos que quiero través de éstos que debemos programar las instruc-
automatizar. No es lo mismo enviar datos de la hume- ciones. Las instrucciones quedan grabadas de forma
dad de la tierra vía bluetooth a un dispositivo móvil, o permanente en la memoria ROM, y sólo bajo la ins-
incluso vía WiFi, que contar personas en tiempo real trucción de sobreescritura, puede ser borrada para
mediante video o fotografías. Y por esta razón, no almacenar nuevas instrucciones. Esto contradice
siempre será necesario un procesador dedicado, y mu- un poco la concepción inicial de ROM, que como su
chas veces bastará con utilizar un microcontrolador. nombre lo dice (read only memory) es una memoria
sólamente de lectura. Los avances tecnológicos han
permitido construir sistemas regrabables muy dife-
rentes a los de sus inicios, y por lo tanto de memoria
MICROCONTROLADOR
ROM sólo queda el nombre.
Una vez escrito un código en su memoria, ya tenemos
un sistema autónomo que es capaz de realizar pro-
cesos y cálculos de acuerdo a las instrucciones esti-
puladas en dicho código. Si bien parece un proceso
sencillo, programar y utilizar los microcontroladores
no es fácil, requiere de un hardware específico y tam-
bién de un lenguaje muy poco amigable. Sin embar-
go, plataformas como Arduino nos ha simplificado la
Un microcontrolador es un dispositivo físico (hard- tarea al integrar hardware y software, permitiéndo-
ware), que permite realizar tareas de control a par- nos llegar de forma muy sencilla a este dispositivo de
tir de procesamiento de información en baja escala. control. Programar un microcontrolador mediante el
Corresponde a un encapsulado único que contiene puerto USB del computador, y utilizando un lenguaje
a la unidad de procesamiento central (CPU), a la me- de alto nivel como C++, era una tarea que requería
moria de acceso aleatorio (RAM) y a la memoria de de mucha dedicación y conocimiento antes de la exis-
sólo lectura (ROM). Además, el encapsulado ofrece tencia de Arduino.
un conjunto de pines que cumplen el rol de entradas
y salidas, con el fin de conectar con el exterior el sis-
tema interno del dispositivo.
MICROPROCESADOR
A diferencia del microcontrolador, un microprocesa- hardware para ser programado, e incluso más que el
dor es simplemente eso, un procesador. Una unidad controlador, ya que necesita periféricos de entrada y
de procesamiento central (CPU) sin suficiente memo- salida de información y memorias de acceso adicio-
ria RAM, ROM, SSD, ni ninguno de los periféricos que nales a su propio encapsulado. Sus características
estamos acostumbrados a escuchar cuando hacemos de procesamiento y prestaciones son superiores, lo
alusión al computador. Por lo tanto, un procesador que encarece considerablemente su costo, pero son
no es capaz de funcionar sin la existencia de dispo- capaces de resolver las tareas que los microcontrola-
sitivos adicionales. Al igual que el microcontrolador, dores no pueden.
requiere de enormes esfuerzos a nivel de software y
COMPARATIVA ENTRE UN MICROCONTROLADOR Y MICROPROCESADOR
Es difícil declarar con exactitud las ventajas y desven- para nuestro proyecto, se presenta a continuación
tajas de estos elementos, pues existen usos específi- una comparativa entre las características principales
cos en los que cada uno es la mejor opción. Para po- de cada uno:
der escoger de manera correcta el dispositivo ideal
MICROCONTROLADOR MICROPROCESADOR
Bajo costo de fabricación Alto costo de fabricación
Fácil implementación y puesta en marcha
Implementación compleja, puede requerir de
ya que incluye todos los elementos en un
hardware adicional para su funcionamiento
mismo encapsulado
La mayoría son orientados a múltiples
Son orientados a tareas específicas
tareas
Son de menor tamaño total considerando que Son de mayor tamaño si se considera la
no necesitan periféricos necesidad de elementos periféricos
Baja capacidad de procesamiento Alta capacidad de procesamiento
Capacidades limitadas por su fabricación. El uso de elementos externos para su
Al ser un único encapsulado, no es funcionamiento, permite mejorar el
posible aumentar capacidades de memoria o desempeño final al incrementar las
almacenamiento. capacidades de éstos.
ARDUINO UNO
Arduino UNO o Genuino UNO, es la placa más famo- das bajo conocimiento absoluto del producto ori-
sa construida por la empresa, fama que le ha traído ginal. Pero siempre hay excepciones, y con el fin de
muchas consecuencias positivas; es la más documen- abaratar costos de fabricación, las industrias chinas
tada en foros y sitios internet, la más fácil de adquirir, integran un circuito de conexión usb que requiere la
la que más accesorios posee, y algo no tan positivo, instalación de un controlador adicional en el com-
de la que más versiones de dudosa procedencia se putador, llamado CH340. Dejando de lado esto, y en
ofrecen en el mercado. Esto no significa que las pla- algunos casos la calidad de los materiales, las placas
cas fabricadas fuera de la empresa Arduino no sean de otros fabricantes son en su mayoría compatibles e
una buena opción, ya que recordemos que el código idénticas en funcionamiento con las originales, pero
es libre, y por lo tanto las réplicas han sido fabrica- costando la quinta parte de éstas.
Con todo lo anterior, sobran razones para conven- sitaremos adquirir ningún dispositivo físico, ya que
cernos de que Arduino UNO es una excelente opción utilizaremos una plataforma de simulación online
para iniciar el aprendizaje, considerando además que que nos permitirá incluso simular cosas tan extrava-
sus capacidades, aunque limitadas, son más que su- gantes como una nube de gas sobre un sensor. Esta
ficientes para el curso y para gran parte de los pro- plataforma es Tinkercad, y será presentada a cabali-
yectos de iniciación. Para nuestra suerte, no nece- dad en el siguiente capítulo.
ARDUINO IDE
Para darle instrucciones a cualquier elemento de Además Arduino pone a disposición su propio IDE
hardware, es necesario crear algoritmos, que deben gratuitamente, el que debe ser instalado en el com-
ser entendidos por la máquina para poder concretar- putador junto a los controladores de placa de ser
los. En adelante, llamaremos a este proceso escribir necesario. Pero nuevamente, para efectos de este
código o simplemente, programar. Pero para progra- curso, nada de eso es obligatorio ya que Tinkercad
mar se necesita un espacio donde poder escribir, y también nos ofrece un simulador del Arduino IDE.
para que el hardware nos entienda, necesitamos un
traductor que le hable en idioma de hardware. Esto
es precisamente un IDE (del inglés, entorno de desa-
rrollo integrado), un espacio donde podemos escribir,
editar, guardar, importar y exportar código, y al mis-
mo tiempo, una herramienta para compilar y cargar
el código en el microcontrolador. Esto último, es el
proceso donde el IDE toma el código escrito en len-
guaje de alto nivel (en este caso basado en C++), y lo
traduce en lenguaje de bajo nivel, capaz de ser enten-
dido por la máquina.
PARTES DEL ARDUINO UNO
Arduino UNO se presenta como una excelente op- controlador específico, el ATmega328p, que por sí
ción para comenzar el aprendizaje. Pero a estas altu- solo es un microcontrolador. Sin embargo, suele ha-
ras cabe preguntarse, ¿es entonces Arduino UNO un cerse referencia a la placa completa como un sistema
microcontrolador o microprocesador? Y la respues- de control, o bien microcontrolador. A continuación
ta es: ninguno de los dos. Arduino es un entorno de se describen las partes principales de la placa:
desarrollo que facilita la programación y el uso de un
PUERTO USB: permite la conexión con el computador terminado y se quiere dejar funcionando desde algún
para la carga de código en el microcontrolador, envío y conector de pared (con el correspondiente uso de un
recepción de información, y también actúa como fuen- transformador de 220V -9V)
te de energía eléctrica
MICROCONTROLADOR ATMEGA328P: es el cerebro
BOTÓN DE REINICIO: reinicia la placa comenzan- del Arduino UNO, punto de control y proceso de todas
do nuevamente la ejecución del programa cargado. No las instrucciones. Está anclado en la placa y la interac-
elimina los códigos almacenados en la ROM. ción con éste se realiza en base a la programación de
código en el IDE de arduino
LED INTEGRADO: es un led que puede ser controlado
desde el código programado. Es útil para mostrar re- SALIDA 5V: este puerto actúa como fuente de ali-
sultados y evitar la conexión de un led adicional. Está mentación de 5V. Tiene un límite corriente muy bajo
internamente conectado con el pin 13 de la placa. por lo que no es útil para conectar elementos de alta
demanda energética como algunos motores DC, pero
PINES DIGITALES: son pines que ofrecen lectura es ideal para el encendido de componentes de bajo
y escritura de señales digitales. Una señal en alto co- consumo como leds, sensores, displays, etc
rresponde a 5V y una señal en bajo, 0V. Además, algu-
nos de estos pines, señalizados como PWM, ofrecen la PINES ANALÓGICOS: son pines que ofrecen lectura
simulación de una señal analógica como salida. analógica de información, y por lo mismo anteponen
Jack hembra 9V: es una vía alternativa de alimenta- la letra A al número de pin (ejemplo, pin A5). Es impor-
ción eléctrica para la placa. No ofrece transmisión de tante tener en cuenta que no ofrecen salida de señales
información, pero es útil cuando el proyecto ya está analógicas.
ANALÓGICO VS DIGITAL
Cuando revisamos las partes del Arduino UNO, nos relojes analógicos, fotografías digitales y analógicas,
encontramos con pines de tipo analógicos y otros de etc. ¿Entendemos realmente a qué hace alusión cada
tipo digital. Durante el día utilizamos más de alguna uno de estos conceptos? A continuación revisaremos
vez estos conceptos para referirnos a nuestro entor- en detalle estos términos para entender su relación
no. Documentos en formato digital, televisión digital, directa con Arduino.
SEÑAL ANALÓGICA
Una señal analógica es una señal continua, que está tar fielmente la información transmitida, sin embargo
presente de forma regular en los fenómenos natura- son señales altamente susceptibles al ruido, a la pér-
les. El sonido, la luz, el peso, son fenómenos capaces dida de información, y muy difíciles de manejar ya que
de generar señales o impulsos analógicos. Por ejem- la manipulación debe realizarse mediante hardware.
plo, cuando una onda sonora incide de forma mecánica ¿Sabías que muchos de los filtros que hoy usamos en
en el condensador interno de un micrófono, se genera las fotografías ya existían hace muchos años? La gran
una señal eléctrica continua, que representa fielmente diferencia es que mientras hoy con un simple click
la onda que la generó. Para poder transformar los fe- cambiamos los filtros a gusto, años atrás el fotógrafo
nómenos naturales en señales eléctricas, es necesario debía portar varias cámaras con diferentes rollos fo-
de un transductor o sensor específico, el que a partir tográficos para poder incluir filtros en sus tomas. Hoy
de una determinada manifestación generará una onda en día el mundo analógico va perdiendo cada vez más
eléctrica. terreno ante los avances de la tecnología, surgiendo la
necesidad de interpretar el mundo de una forma digi-
Las señales analógicas tienen la ventaja de represen- tal, proceso que veremos en detalle a continuación.
SEÑAL DIGITAL
Una señal digital a diferencia de una analógica, no es
natural. Es más bien una forma de escribir informa-
ción en el lenguaje específico en el que se comunican
los dispositivos electrónicos. Por lo mismo son seña-
les discretas, ya que una señal continua tiene infinitos
valores que no pueden ser representados en su tota-
lidad por una construcción digital. Esto le da algunas
características beneficiosas como una alta tolerancia
al ruido y a la pérdida de información.
El lenguaje en el que celulares, televisores modernos,
etc se comunican, es el código binario, un lenguaje ba-
sado sólo en dos estados: 1 y 0. Pero los dispositivos
electrónicos no son números lo que realmente trans-
miten, ya que enviar un cero a través de un circuito
es imposible. Lo que en realidad se transmite son im-
pulsos eléctricos, donde el 0 binario es representado
por un pulso de 0V, y el 1 binario es representado un
pulso de 5V. Esto es desde una vista general, ya que en
la práctica no son exactamente los voltajes que se utili-
zan ni es idéntico en todos los dispositivos. Veamos en
detalle en qué consiste el lenguaje binario
LENGUAJE BINARIO
DECIMAL BINARIO
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 1010
El código binario consiste en la representación de in- a contar en decimal. Sabemos que al llegar al nueve,
formación mediante dos números. Cada elemento de necesitamos un dígito adicional para seguir contan-
una señal, cada letra del teclado, cada color, puede ser do, saltamos un dígito a la izquierda y retomamos el
representado por un código numérico. Pero un núme- contador desde cero, así logramos escribir el diez. El
ro es un elemento abstracto, no puede ser transmitido código binario es básicamente lo mismo, pero en vez
por un cable o a través de un circuito. Lo que sí pode- de agregar un nuevo dígito al llegar al nueve, lo hace-
mos transmitir son voltajes, y el código binario va de mos al llegar al uno (sólo tenemos dos dígitos, ceros
la mano de esto. Todos los números decimales pue- y unos). A continuación se presenta una tabla con los
den ser escritos mediante ceros y unos. Parece extra- números escritos en binario.
ño, pero esto se debe a que estamos acostumbrados
Ya que sabemos que los números se pueden escribir en
lenguaje binario, ahora simplemente basta cambiar el
cero y el uno por dos estados de voltaje, 0V y 5V. Esos
voltajes representan ambos números, y por lo tanto
forman la base del lenguaje del hardware. Veamos a
continuación cómo se visualiza una señal analógica es-
crita en función de ceros y unos.
Como podrás darte cuenta, entre más dígitos binarios
tengas, se puede hacer una mejor representación de
la señal, ya que las barras pueden ser cada vez más
pequeñas, pero jamás se podrá representar de forma
discreta, una señal que en esencia es continua.
CURSO DE ARDUINO
Unid. I
INTRODUCCIÓN
A ARDUINO
WWW.ROBOTICFEST.CL