Arduino
Arduino
De esta edicin:
Universidad de Alicante
Vicerrectorado de Estudios, Formacin y Calidad
Instituto de Ciencias de la Educacin (ICE)
ISBN: 978-84-606-8636-1
RESUMEN
En los ltimos aos las plataformas de hardware libre han adquirido gran relevancia en el desarrollo de
prototipos y en la educacin en tecnologa. Una plataforma de hardware libre es bsicamente un diseo de
sistema un electrnico microprocesador que sus autores difunden libremente y puede ser utilizado sin tener que
pagar licencias. Ente la multitud de plataformas disponibles, destaca Arduino. Se caracteriza por su bajo precio,
y que el software necesario para hacer funcionar la plataforma es libre y gratuito. Todo ello hace que estos
dispositivos sean fcilmente accesibles por estudiantes. Este trabajo describe la aplicacin de hardware libre a
experimentos de laboratorio en asignaturas de ingeniera de la UA, especialmente del mster en Automtica y
Robtica, en las que se controlan sistemas industriales o robticos. Esto contrasta con los experimentos clsicos
en los que se emplean sistemas caros y difcilmente accesibles por el alumno. Adems, los experimentos deben
ser atractivos y de aplicaciones reales, para atraer el inters del alumno, con el objetivo principal de que aprenda
ms y mejor en el laboratorio.
84
1. INTRODUCCIN
85
El concepto de hardware libre de Arduino hace referencia a un diseo de un
sistema electrnico basado en microprocesador que est disponible de forma gratuita,
para su uso o modificacin. Adems, el software usado para programar el sistema es
libre y de acceso gratuito, y fcil de obtener, poner en marcha y usar [2][3]. Todo esto
ha hecho que los dispositivos de la plataforma Arduino se hayan popularizado y
extendido enormemente, y sea posible encontrar soluciones disponibles de forma
abierta, para prcticamente todo tipo de proyectos. As mismo, su hardware ha llegado a
ser verdaderamente econmico y fcil de adquirir.
Actualmente existen una gran variedad de placas de Arduino, que van desde las
ms sencillas como UNO o Leonardo (18 a 20+IVA en la tienda oficial de Arduino),
hasta las ms avanzadas como la DUE (36+IVA), que tiene un procesador ARM de 32
bits, o la YN (52+IVA), que tiene un procesador adicional con Linux y WiFi [2].
Todos los dispositivos Arduino se programan fcilmente con el mismo entorno de
desarrollo, mediante lenguaje C/C++, pudindose crear desde programas simples de un
solo archivo basados en procedimientos, hasta programas complejos de mltiples
archivos y orientados a objetos [2].
Tambin es fcil encontrar documentacin en internet sobre cualquier aspecto de
la plataforma Arduino, y hay gran cantidad de libros de texto para usuarios con distintos
niveles de conocimientos [4]. El xito de la plataforma tambin ha hecho que se oferten
muchos cursos sobre la misma, incluso por parte de instituciones relevantes, como por
ejemplo el que organiza actualmente el Comit Espaol de Automtica (CEA) [5].
Aunque Arduino se emplea mucho en robtica, tambin es muy popular en otras
reas como electrnica, domtica, modelismo, multimedia, msica, bioingeniera,
qumica, etc. Y para todas estas reas, aunque especialmente en las ms relacionadas
con la ingeniera, Arduino es una plataforma muy extendida en educacin, tanto a nivel
de Bachiller como superior. Como ejemplo, se puede mencionar trabajos sobre la
aplicacin en la enseanza de robtica [6], ingeniera qumica [7] o bioingeniera [8].
Incluso es posible usar Arduino junto con otras aplicaciones softwares propias de
ingeniera, como el popular Matlab/Simulink [9].
86
El propsito principal del proyecto es disear y poner en marcha experimentos
de prcticas basados en la plataforma de hardware libre Arduino para asignaturas del
Mster Universitario en Automtica y Robtica. Adems de las ventajas que suele
aportar esta plataforma citadas en el apartado anterior, se ha tenido en cuenta el uso de
la misma por otro motivo importante, que se describe a continuacin.
En el citado mster, se da el hecho de que los alumnos que ingresan en l
proceden de diversas titulaciones de ingeniera (Informtica, Multimedia,
Telecomunicaciones, Industrial, Electrnica, Diseo de Produccin, etc.), y si bien
todos tienen una buena base en ingeniera, se ha constatado que los niveles de
conocimientos sobre programacin y aspectos del hardware dependen mucho del ttulo
de origen. En esto tambin afecta que el mster tiene una doble orientacin, profesional
e investigadora, y ocurre que hay alumnos que ingresan en l principalmente para
ponerse al da en las tecnologas de hardware o programacin. En general, se puede
considerar que hay dos tipos de alumnos: mientras unos alumnos tienen buena base en
hardware o automatizacin, pero no en programacin, hay otros alumnos expertos en
informtica y programacin, pero pocos conocimientos de automatizacin y control.
Considerando las caractersticas de la plataforma Arduino, se pens que con era
posible usarla para plantear prcticas de laboratorio atractivas para los dos tipos de
alumnos citados. Por una parte, los alumnos con un perfil ms industrial o de
electrnica aprenden programacin orientada a objetos con C++, beneficindose de sus
conocimientos del hardware. Y por otra parte, los alumnos con experiencia en
informtica aprenden a conectar y usar dispositivos sensores y actuadores, sacando
provecho de su formacin en programacin. Este es el principal objetivo del proyecto.
Tambin anim a la realizacin de este proyecto el hecho de que es
relativamente fcil utilizar Arduino como controlador de equipos de prcticas
disponibles, y se desea que era interesante seguir utilizando en las asignaturas. Adems,
el hardware de Arduino es libre y econmico, y el software necesario es de libre
distribucin, lo que conlleva que la adquisicin y la puesta en marcha de estos
productos frente a otros controladores industriales profesionales sean mucho ms
asequibles. Esto tambin conlleva que sea fcil disponer de mltiples controladores
Arduino para que los alumnos puedan trabajar individualmente, o en grupos pequeos,
o que incluso los propios alumnos se animen a comprar sus propios controladores.
87
2. METODOLOGA
2.2. Procedimiento
Para el desarrollo del proyecto, se escogieron cuatro experimentos de laboratorio
de entre los que se vienen realizando en las asignaturas consideradas. En cada
experimento hay un equipamiento existente implicado, que originalmente inclua un
controlador propio, con sus mtodos de configuracin y funcionamiento particulares.
Estos equipos son un el cabezal de una impresora 3D, un robot cartesiano industrial, un
88
robot mvil seguidor de lneas, y un pequeo robot humanoide Robonova. En todos los
casos, se dispone de una sola unidad de cada uno.
El primer paso fue abordar como incluir la plataforma Arduino en el equipo y en
el experimento. Gracias a la flexibilidad de Arduino, a la experiencia de los profesores,
y a otros experimentos sencillos con Arduino realizados en cursos anteriores [10], fue
posible modificar cada equipo para usar Arduino con cierta facilidad, si bien en algn
caso hubo que disear circuitos interfaz para conectar Arduino con los equipos.
Los diferentes experimentos de laboratorio se fueron diseando a lo largo del
curso, antes de la imparticin de las asignaturas en donde se han aplicado. En la seccin
3 se describen con detalle los experimentos, y los equipos que se usan en cada uno.
Concretamente, los cuatro experimentos de laboratorio abordados han sido estos:
- Control de un robot cartesiano (2 grados de libertad) construido con
elementos industriales.
- Control PID de temperatura sencillo del cabezal de una impresora 3D.
- Programacin de un robot seguidor de lneas con control PID.
- Programacin de un robot humanoide para que camine.
Para cada experimento se ha usado la versin de Arduino ms adecuada al
equipo que hay que controlar en cada caso. Adems del propio Arduino incorporado a
cada equipo, se adquirieron varias unidades ms para que los alumnos puedan
desarrollar y depurar sus programas simultneamente, hasta tener una versin que
pudieran ejecutar en el equipo final.
Al mismo tiempo que se realiz el diseo de los experimentos de laboratorio, y
de la planificacin de los problemas que deban resolver los alumnos, tambin se han
redactado los manuales de prcticas necesarios, y que permiten a los alumnos conocer
los principales aspectos de los equipos, y controladores Arduino, que deben manejar y
programar. Esto no implica que el alumno no necesite buscar informacin adicional
para resolver cuestiones concretas, ya que se considera importante que el alumno de
ingeniera se desenvuelva buscando y examinando hojas de caractersticas y manuales
de equipos y elementos hardware, puesto que necesitar esta experiencia para luego
poder abordar proyectos por su cuenta.
Finalmente, se ha considerado la evaluacin de la opinin de los alumnos
mediante encuestas al final de asignaturas. Se ha planteado un modelo de encuesta de
89
comn para los alumnos de las diferentes asignaturas, y de los resultados de la encuesta
se han extrado conclusiones interesantes. Esto se aborda en el apartado 3.3.
3. RESULTADOS
En esa seccin se explican los aspectos principales de los cuatro experimentos
de laboratorio desarrollados en torno a la plataforma Arduino, mencionndose el trabajo
que el alumno debe realizar en ellos. Adems, al final de la seccin, se expone la
encuesta sobre la opinin de los alumnos con respecto a las prcticas con Arduino, y se
comentan los principales resultados extrados de la misma.
90
La Figura 1 tambin muestra los circuitos necesarios para conectar el Arduino al
cabezal, y que debe implementar el alumno. Conectado a una entrada del Arduino, se
emplea un divisor de tensin para convertir la temperatura percibida por el sensor en un
valor de tensin proporcional, que el Arduino puede medir. El circuito de accionamiento
con rel conectado a una salida digital del Arduino se encarga de dar potencia a la
resistencia que calienta el cabezal.
Una vez que los alumnos han montado los circuitos anteriores, se proponen
diferentes ejercicios de programacin. El primero consiste en hacer unos programas
sencillos para verificar que los circuitos funcionen correctamente. Despus, se pide al
estudiante que, partiendo de un programa de plantilla, complete ste para implementar
el controlador PID. Finalmente, el alumno debe tratar de ajustar el controlador de forma
que se alcance la temperatura deseada lo ms rpidamente posible con la menor
oscilacin, y con un ciclo de histresis de alrededor de esa temperatura. Para realizar las
distintas fases de la prctica, el alumno dispone de tres sesiones de dos horas.
91
Normalmente el robot cartesiano est gobernado por un PLC (Programable
Logic Controler), que es un controlador industrial con E/S (Entradas/Salidas) lgicas de
24V. Pero con en este experimento, se sustituye el PLC por un Arduino Mega 2560 para
realizar control del robot. El Arduino Mega se caracteriza por disponer de gran cantidad
de lneas E/S, lo que es imprescindible para interactuar con el robot cartesiano. Para
poder conmutar entre el PLC y el Arduino, y para realizar la conversin de niveles de
voltaje de las seales de E/S de 24V a las empleadas por el Arduino de 5V, los autores
han desarrollado unos circuitos adaptadores, que tambin incluyen asilamiento elctrico
para evitar problemas de sobretensiones en el Arduino y el PC al que se conecta.
El robot incluye los elementos bsicos de E/S usados en muchos equipos de
automatizacin, como muestra la Figura 3. Como actuadores dispone de dos motores
trifsicos de potencia, gobernados por variadores de frecuencia, y de un freno neumtico
para el eje vertical. Como sensores tiene cuatro pulsadores de final de carrera y dos
encoders incrementales. Adems el robot tiene una paleta con un joystick que permite
realizar movimiento manuales, un botn-seta de emergencia y de varios pilotos. Todos
estos elementos estn conectados al Arduino mediante los adaptadores de niveles.
Para lograr que todos los alumnos conozcan el funcionamiento robot y sean
capaces de hacer un programa de control bsico para el mismo, sin impedir que los
alumnos ms destacados puedan incluir funciones ms avanzadas al programa, se
plantean dos bloques de tareas para realizar, uno con tareas obligatorias y otro con
tareas opcionales. Las tareas obligatorias incluyen estos aspectos bsicos: la calibracin
de los ejes, el control de freno del eje vertical, la deteccin de los finales de carrera,
92
mover el carro en ambos los ejes con el joystick, gestionar el botn-seta de emergencia,
y detectar una posible alarma en los variadores de frecuencia. Como tareas optativas se
proponen estas: desplazamientos con aceleracin y frenado (rampas de velocidad),
desarrollar una interfaz grfica de mando para un PC y un protocolo de comunicacin
con el Arduino, permitir desplazar segn un nmero de pasos de encoder o una
distancia en metros cada eje, y desplazar el carro a una posicin destino desde la actual.
Figura 3. Robonova original (izquierda), y versin modificada con Arduino Due (centro y derecha).
93
Como parte obligatoria de la prctica, el alumno debe programar el Arduino
DUE del Robonova para que este robot recorra una distancia andando, de pie y lo ms
recto posible. Se valora que ese movimiento sea suave y natural, parecido al de una
persona. Hay que tener en cuenta especialmente los motores de las dos piernas, pero
tambin puede ayudar mover los brazos opcionalmente. La tarea de andar no es tan fcil
como puede parecer, debido a que no solo hay que tener en cuenta los movimientos,
sino tambin hay garantizar que el robot tiene un equilibrado estable en cada instante.
Antes de realizar la programacin del robot con el lenguaje C++ mediante el
IDE de Arduino, el alumno debe estimar los valores de posiciones clave de los servos, y
los intervalos de tiempo que son necesarios para ejecutar las secuencias de movimientos
o trayectorias bsicas necesarias para las tareas que se desean, como dar un paso,
levantarse, etc. Esto se puede hacer con una aplicacin de simulacin del Robonova,
como por ejemplo la aplicacin gratuita RZ1 Action. Con las posiciones y tiempos ya
estimados, se puede plantear el diseo del programa. El programa debe ir enviado a los
motores las posiciones que tiene almacenadas en los tiempos adecuados, aplicando un
algoritmo de interpolacin, y repitiendo una secuencia para conseguir que el robot ande
paso a paso. Con el programa ya funcionando, hay que reajustar los movimientos hasta
conseguir que el robot ande correctamente.
Como parte optativa, el alumno debe considerar que puede haber obstculos
grandes en mitad de la trayectoria por la que se desplaza el robot, y tiene que modificar
el programa para que el robot pueda detectar los obstculos mediante sus sensores, y en
caso de determinar que hay un objeto delante, intentar esquivarlo rodeando el obstculo.
94
En este caso se ha utilizado un robot GoShield-GR (ver Figura 4), diseado en
conjunto por la empresa GoShield, que lo comercializa, y los varios de los autores de
este trabajo. Se trata de un robot rastreador especialmente pensado para competiciones
de seguimiento de lneas. El robot tiene en su parte inferior 20 sensores foto-reflectivos
que le permiten seguir lneas negras pintadas sobre un suelo blanco. El celebro del robot
es un Arduino DUE, como en el caso del experimento del robot humanoide.
96
equipos de control de fabricantes especficos con hardware cerrado.
Q8 Me ha resultado fcil crear programas para el controlador de Arduino con su lenguaje C/C++.
Q9 Usando Arduino, he aprendido, o he mejorado mis conocimientos, sobre como conectar
dispositivos de entrada y salida a un controlador.
Q10 Creo que los conocimientos adquiridos sobre Arduino me permiten usar esta plataforma para
resolver otras aplicaciones de control, automatizacin o robtica por mi cuenta.
Q11 Me he comprado, o he pensado en comprarme, una placa de Arduino por mi cuenta para hacer
los experimentos de la asignatura u otras aplicaciones.
Q12 Es probable que use la plataforma Arduino para resolver aplicaciones en el futuro.
Q13 Creo que la plataforma Arduino es aplicable tambin en un mbito profesional, adems del
educacional.
Q14 He echado en falta trabajar con un controlador de caractersticas ms industriales.
Figura 5. Resultados de la encuesta: grado de acuerdo del alumno (1-5) para cada cuestin (Q1-Q14)
Al analizar los resultados de la Figura 5, en primer lugar se puede ver como los
valores mnimos y mximos para Q1 y Q2 muestran la disparidad de nivel de
97
conocimientos previos que tienen los alumnos tanto en programacin como en
hardware. Para Q3 se ve que los alumnos opinan en general que es fcil comenzar a
trabajar con la plataforma Arduino. Respecto a la disponibilidad de tiempo medida por
Q4, la opinin de los alumnos es variada. Los alumnos estn muy de acuerdo con el
hecho de usar Arduino en las prcticas, segn reflejan los resultados de Q6 y Q7. Las
respuestas a las cuestiones Q8 a Q10 reflejan que los alumnos consideran en buen grado
que han adquirido o mejorado sus conocimientos. Asimismo, las respuestas a Q11 y
Q12 reflejan como los alumnos estn bastante dispuestos a comprar un Arduino por su
cuenta. Respecto al uso de Arduino en un mbito ms profesional, frente al educacional,
la opinin es variada, aunque positiva, como indica la cuestin Q13. Finalmente, las
respuestas a la cuestin Q14 reflejan que hay cierta disparidad de opinin sobre si
habra sido ms interesante usar un controlador de caractersticas ms industriales.
4. CONCLUSIONES
El trabajo descrito en este artculo ha conseguido llevar la plataforma Arduino a
las prcticas de laboratorio de asignaturas de ingeniera, que abordan aspectos de
automatizacin control y robtica, impartidas en la Escuela Politcnica Superior de la
Universidad de Alicante, y especialmente en asignaturas del Mster en Automtica y
Robtica de la Universidad de Alicante. Aplicar Arduino en las prcticas de laboratorio
ha sido relativamente fcil, gracias en gran parte a la experiencia de los autores.
Tambin ha contribuido a ello la facilidad de uso de puesta en marcha y uso de Arduino,
y de toda la documentacin que hay disponible sobre esta plataforma. Adems, se han
conseguido buenos resultados sobre el inters mostrado por los alumnos y el
aprendizaje, lo que ha sido validado por una encuesta annima a los alumnos.
La plataforma Arduino se aprende a usar rpidamente, y as los alumnos se
centran en los problemas propios de los experimentos, como son el desarrollo y la
programacin de los algoritmos de control que hacen que el robot o la mquina funcione
con las especificaciones dadas.
Uno de los problemas que se plantea en la enseanza de asignaturas del Mster
en Automtica y Robtica es que los alumnos proceden de diferentes titulaciones y
presentan niveles de conocimientos diferentes en hardware y programacin. Con las
prcticas basadas en Arduino se ha constatado que los alumnos pueden aprenden mejor
los conocimientos que les faltan. As, los alumnos que conocan mejor aspectos de
98
hardware, aprenden programacin orientada a objetos, mientras que los alumnos con
una mejor base sobre informtica, aprenden aspectos de hardware.
Tambin se ha conseguido reutilizar equipamiento de laboratorio que haba
disponible y que no se aprovechaba bien, tras sustituir su electrnica de control por un
controlador Arduino adecuado. Adems, el bajo coste del hardware de Arduino y su
software libre, anima a los alumnos a comprar sus propios dispositivos para practicar
fuera del aula de laboratorio, o incluso desarrollar sus propios proyectos.
Aunque Arduino demuestra ser una excelente herramienta educacional, y
tambin puede ser til para muchas aplicaciones reales, no es conveniente dejar
completamente de lado un equipamiento ms profesional que Arduino. Es
recomendable mantener experimentos de laboratorio que usen equipos industriales y
comerciales dentro de lo posible, ya que esos sern los equipos con los que se
encuentran habitualmente los alumnos en el mbito profesional. Los mismos alumnos
opinan de este modo, como tambin ha reflejado la encuesta realizada. Lo ideal es
combinar Arduino con robots o mquinas reales.
5. REFERENCIAS BIBLIOGRFICAS
[1] Kushner, D. (2011). The Making of Arduino. IEEE Spectrum. Artculo web (mayo 2015):
http://spectrum.ieee.org/geek-life/hands-on/the-making-of-arduino
[2] Banzi, M. (2011). Getting Started with Arduino. 2 Edicin. USA. OReilly.
[3] Arduino Home: Portal oficial del hardware libre Arduino. Pgina web (mayo 2015):
http://arduino.cc
[4] Warren, J.D., Adams, J. & Molle, H. Arduino Robotics (Technology in Action). Apress,
2011.
[5] Comi espaol de Automtica (CEA) (2015). "Curso prctico on-line de Arduino
Avanzado". Pgina web (mayo 2015): http://www.ceautomatica.es/curso-online-de-cea-
curso-practico-line-de-arduino-avanzado
[6] Valencia Peidr, A, Rodrguez, J.J., Azorn, J.M. & Reinoso, . (2014). Implementacin
de una maqueta de control bilateral de 1 GDL con Arduino para telerrobtica. XXXV
Jornadas de Automtica. Valencia, septiembre de 2014.
[7] Luzn, G., Fernndez-Arteaga, A., Altmajer, D., Garca, A.I., Fernndez, M. (2014). Uso
de hardware y software libre en laboratorios de Ingeniera Qumica. II Congreso de
innovacin docente de Ingeniera Qumica. Valencia, enero 2014.
99
[8] Fernndez, M.A. & Snchez, D. (2014). Desarrollo de materiales docentes para
asignaturas de Bioingeniera. Proyectos de Innovacin y Mejora Docente 2013/2014.
Universidad de Cdiz.
[9] Gil J.E., Muoz, A.J., Torres, V., & Gmez, J.M. (2014). Uso de Simulink y Arduino
para Prcticas de Robtica. XXXV Jornadas de Automtica. Valencia, septiembre 2014.
[10] Perea, I., Puente, S., Candelas, F.A. & Torres, F. (2010). Nueva tarjeta de sensorizacin y
control para robot humanoide. XXXI Jornadas de Automtica. Jan, septiembre 2010.
100