Tercer Congreso Virtual, Microcontroladores y sus Aplicaciones
Congreso 2014, Pgina 1
Arduino en la enseanza
Germn Tojeiro Calaza IES Monte Neme Electrnica Espaa germantojeiro@gmail.com Una estupenda y barata placa de desarrollo de proyectos, adaptada a cualquier nivel de conocimientos de electrnica. Ideal para estudiantes de electrnica de formacin profesional o para jvenes entusiastas que quieran implementar una idea relacionada con la electrnica o el diseo interactivo. Una nueva manera de aprender electrnica y programacin en lenguaje C a medida que se construyen o disean circuitos. 1 Qu es Arduino ? Arduino (Fig. 1) es una plataforma open hardware microcontrolada para el desarrollo de productos y proyectos electrnicos enfocada a un pblico no experto como artistas, diseadores, msicos y en general, entusiastas de la electrnica. Como es hardware abierto o libre, su precio es muy asequible para estudiantes y centros educativos en comparacin con otro tipo de placas comerciales. El proyecto fue concebido en Italia en el ao 2005 por el zaragozano David Cuartielles, ingeniero electrnico y docente de la Universidad de Mlmo (Suecia) y Massimo Banzi, italiano, diseador y desarrollador Web. Arduino est basado en una sencilla placa con entradas y salidas, analgicas y digitales, en un entorno de desarrollo que est basado en el lenguaje de programacin Processing. Es un dispositivo que conecta el mundo fsico con el mundo virtual, o el mundo analgico con el digital. Como su eje motor es un microcontrolador, esta tarjeta puede reprogramarse y por tanto, puede reutilizarse en multitud de proyectos personales. Su entorno de programacin (IDE) es simple y fcil de usar para principiantes y lo suficientemente flexible para los usuarios avanzados. El software de Arduino funciona en los sistemas operativos Windows, Macintosh OSX y Linux. La mayora de los entornos para microcontroladores estn limitados a Windows. Su hardware es ampliable y de Cdigo abierto. Arduino est basado en los microcontroladores ATMEGA168, ATMEGA328 y ATMEGA1280. Los planos de los mdulos estn publicados bajo licencia Creative Commons, por lo que diseadores de circuitos con experiencia pueden hacer su propia versin del mdulo, amplindolo u optimizndolo. Incluso usuarios relativamente inexpertos pueden construir la versin para placa de desarrollo para entender cmo funciona y ahorrar algo de dinero. Sin duda, este pequeo dispositivo nos ofrece una variedad de interesantes opciones inversamente proporcional a su reducido tamao. Slo hace falta un poco de imaginacin, algunos conocimientos de electrnica y programacin y lanzarse a la aventura. Todo lo que necesitas para empezar a desarrollar con Arduino lo puedes encontrar en la web: http://www.arduino.cc/ o en su versin en espaol: http://www.arduino.cc/es/ 1.1 Para qu sirve Arduino? Arduino es una placa con un microcontrolador de la marca Atmel y con toda la circuitera de soporte, que
Fig. 1
2 incluye, reguladores de tensin, un puerto USB conectado a un mdulo adaptador USB-Serie que permite programar el microcontrolador desde cualquier PC de manera cmoda Un arduino dispone de varios pines que pueden configurarse como entrada o salida y a los que puede conectarse cualquier dispositivo que sea capaz de transmitir o recibir seales digitales de 0 y 5 V. Tambin dispone de entradas y salidas analgicas. Mediante las entradas analgicas podemos obtener datos de sensores en forma de variaciones continuas de un voltaje. Las salidas analgicas suelen utilizarse para enviar seales de control PWM a diferentes dispositivos. Arduino viene en una variedad de diferentes tipos que hacen que elegir el ms adecuado sea un poco difcil, pero la variedad tambin nos brinda la flexibilidad para elegir la solucin perfecta a las necesidades de nuestros proyectos. En esta ponencia, por extensin, no pretendo cubrir todas las opciones de la familia arduino, pero a con- tinuacin muestro algunas de las opciones ms reseables para empezar. Arduino Uno es una buena opcin para comenzar a usar arduino; proporciona una base slida para los principiantes y tiene muchas de las opciones que se desea a medida que exploras la plataforma. Tambin trabaja con casi todos los escudos o Shields disponibles. Arduino Nano es rasgo por rasgo casi lo mismo que el Arduino Uno, pero es aproximadamente 1/3 del tamao y no se pueden usar shields con tanta facilidad. Est destinado a ser utilizado como un elemento permanente en los proyectos o con bread boards para pruebas. Arduino Lilypad tiene un diseo nico que se puede coser en la tela para proyectos que se puedan vestir o para arte. Por supuesto, no ests limitado a esas aplicaciones, pero los shields no funcionan en este arduino, de modo que la expansin puede ser difcil. Arduino Mega 2560 tiene ms memoria y ms pines de E/S que cualquier otra Arduino. Este es el Arduino ms grande y mejor que puedes conseguir, pero puede que no necesites tanto poder si tus proyectos no lo requieren. Este tambin es un poco ms caro, por lo que debes pensar si lo que quieres para un proyecto permanente o para montar y probar diferentes proyectos 1.2 Ampliando el Arduino. Las shields permiten aadir funcionalidad a tu arduino al instante. Tienen pines que se colocan justo encima del arduino y se puede aprovechar inmediatamente lo que sea que la shield pueda hacer.
Fig. 2 Se pueden agregar mltiples shields al mismo tiempo. Por ejemplo, se puede usar un arduino para que busque en Twitter por un hashtag especfico (Shield de Ethernet) y luego controle un carrito a control remoto con radiofrecuencia (Shield RF). Arduino puede controlar motores y servos sin necesidad de una shield, pero la shield de motor simplifica enormemente el cableado. Existen un montn de shields para arduino disponibles, hay shields para msica, videojuegos, bluetooth, pantallas tctiles, LCD. Pero esa es slo la punta del iceberg, yo dira que hay shields para casi todo. En la Fig. 2 podemos observar una shield WiFi montada encima de un arduino Uno para proporcionarle conexin inalmbrica a Internet. En la Fig. 3 se muestra una shield XBee montada sobre un arduino Uno para comunicaciones basadas en el protocolo XBee. 1.3. Programacin del Arduino. La IDE de Arduino es una herramienta de desarrollo de plataforma cruzada escrita en Java, y que permite controlar todas las funciones de software del arduino.
Fig.3 Cada programa que se escribe, recibe el nombre de sketch y se compila y se carga en la placa arduino con el IDE. Existen muchos sketches gratis disponi- Tercer Congreso Virtual, Microcontroladores y sus Aplicaciones Congreso 2014, Pgina 3
bles en internet y el IDE (Fig 4) viene con una gran cantidad de ejemplos para empezar a familiarizarte con casi todas las funciones que puede hacer el arduino. Fig. 4 1.4 Entorno grfico de programacin: SA4. S4A (Scratch for Arduino) es una modificacin de Scratch desarrollada por el Grupo de Programacin Smalltalk del Citilab, para programar de forma sencilla e intuitiva, la plataforma de hardware libre Arduino. S4A Incluye nuevos bloques para controlar sensores y actuadores conectados a sistema Arduino La integracin de estos dos entornos permiti el desarrollo de S4A (Fig. 5). Esta plataforma nos permite entrar al mundo de la electrnica, la robtica y programacin, y desarrollar diferentes prototipos, sin necesidad de tener conocimientos avanzados. Ha sido desarrollada para atraer a la gente al mundo de la programacin. Su objetivo es tambin proporcionar una interfaz de nivel alto para programadores de arduino con funcionalidades como la interaccin de varias placas a travs de eventos de usuario. Fig. 5 Los programas desarrollados con Scratch estn compuestos por objetos sobre los que podemos actuar; podemos moverlos por el escenario, cambiara su forma, su color y tambin podemos interactuar con ellos. Este maravilloso entorno de programacin es gratuito y muy adecuado para alumnos de todas las edades que quieran introducirse en el mundo de la programacin de arduino sin conocimientos de programacin. Sin embargo, no nos engaemos, posee una potencia oculta que permite desarrollar proyectos complejos que impliquen comunicaciones avanzadas, como Xbee y Android.
1.5 Entorno grfico de programacin: LABVIEW. LabVIEW es un lenguaje de programacin visual que emplea iconos en lugar de lneas de cdigo, para crear aplicaciones. Fue creado por National Instruments en 1976. La principal diferencia con lenguajes basados en texto es que, en lugar de que una serie de instrucciones determinen la ejecucin del programa, es el flujo de datos el que la dicta; lo que viene a ser llamado dataflow programming. En concreto, la ejecucin viene supeditada a la estructura de un diagrama de bloques, el cual se crea a partir de la interconexin de una serie de funciones a travs de cables. Estos se encargan de propagar tanto variables como cdigo tan pronto como se encuentren disponibles en las respectivas fuentes. Podemos observar un programa realizado en LabVIEW en la Fig. 6.
1.6 Entorno de simulacin con arduino: PROTEUS VSM. PROTEUS es un entorno integrado diseado (Fig. 7) para la realizacin completa de proyectos de construccin de equipos electrnicos en todas sus etapas: diseo, simulacin, depuracin y construccin. La suite se compone de cuatro elementos, perfectamente integrados entre s: . ISIS es la herramienta para la elaboracin avanzada de esquemas electrnicos, que incorpora una librera de ms de 6.000 modelos de dispositivos digitales y analgicos. .ARES es la herramienta para la elaboracin de placas de circuito impreso con posicionador automtico de elementos y generacin automtica de pistas, que permite el uso de hasta 16 capas. Con ARES el trabajo duro de la realizacin de placas electrnicas rece sobre el PC en lugar de sobre el diseador. .PROSPICE la herramienta de simulacin de circuitos electrnicos segn el estndar industrial SPICE3F5.
4 Fig. 6 .VSM (Virtual System Modelling) es la revolucionaria herramienta que permite incluir en la simulacin de circuitos el comportamiento completo de los microcontroladores ms conocidos del mercado. PROTEUS es capaz de leer los ficheros con el cdigo ensamblado para los microprocesadores de las familias PIC, AVR, 8051, HC11, ARM/LPC200 y BASIC STAMP y simular perfectamente su comportamiento. Incluso puede ver su propio cdigo interactuar en tiempo real con su propio hardware pudiendo usar modelos de perifricos animados tales como displays LED o LCD, teclados, terminales RS232, simuladores de protocolos I2C, etc. Proteus es capaz de trabajar con los principales compiladores y ensambladores del mercado. El distribuidor en Espaa con abundante informacin y documentacin didctica sobre el uso del programa es: http://www.hubor-proteus.es. La versin ms actual de este producto es 8.1 que trae integrado el modelo de arduino para poder simular y depurar nuestros diseos.
Fig. 7
Copyright 2014. Germn Tojeiro: El autor delega a la Organizacin del Tercer Congreso Virtual de Microcontroladores la licencia para reproducir este documento para los fines del Congreso ya sea que este artculo se publique en el sitio web del congreso, en un CD o en un documento impreso de las ponencias del Segundo Congreso Virtual de Microcontroladores.