TALLER DE TIFLOTÉCNICA CON ARDUINO. 1. Introducción: En este taller vamos a ver como se pueden desarrollar dispositivos accesibles utilizando placas Arduino y una cantidad limitada de componentes y módulos auxiliares. Con estos elementos y una programación adecuada de los dispositivos Arduino es posible la construcción de aparatos por parte del usuario de forma intuitiva. 2. Qué es Arduino: Arduino es una plataforma de desarrollo de dispositivos electrónicos basado en microcontroladores, de carácter “opensource” o de código abierto, tanto en hardware como software. Pero para ir a la raíz ¿Que es un microcontrolador?. Un microcontrolador es un microprocesador embebido en un circuito impreso junto con la memoria y los periféricos de entrada salida. Físicamente un microcontrolador está conformado dentro de un encapsulado de forma prismática que presenta en sus laterales unos terminales de conexión eléctrica al exterior. Estos terminales están diseñados para su montaje en placas de ensamblaje electrónico mediante diversas técnicas de soldadura o mediante zócalos de inserción. A diferencia de un procesador o microprocesador de un ordenador convencional, esta integración hace que el microcontrolador esté especialmente adaptado para el control de elementos eléctricos y electrónicos del exterior. Aparte de la alimentación del microcontrolador, los terminales comprenden entradas y salidas analógicas y digitales de conexión que pueden ser programadas para acometer una reacción frente a la aplicación de tensión desde el exterior según un programa interior preestablecido. Hoy en día hay más microcontroladores en funcionamiento en el mundo que el número de ordenadores personales fabricados en toda la historia. Los microcontroladores están en dispositivos tales como mandos a distancia, aparatos inteligentes, lavadoras, automóviles, semáforos, aparatos de aire acondicionado, juguetes interactivos, aparatos informáticos sencillos y prácticamente todo aquello que se denomina “digital” o “inteligente”. Pero, ¿A que se refiere el concepto plataforma de desarrollo con microcontroladores?. Lo primero que destaca de un Arduino es que incorpora en una placa de circuito impreso el microcontrolador, un regulador de tensión para la alimentación, una pluralidad de conectores o pines capaces de admitir conectores Dupont, un conector USB, miniUSB o microUSB y otros elementos auxiliares básicos. Este dispositivo se puede programar directamente desde un ordenador personal, con el simple uso de un cable USB correspondiente y con el software adecuado. Asimismo, a los conectores o pines de la placa se pueden asociar módulos o sensores de forma directa y sin soldadura. Muchos modelos de Arduino están capacitados para su uso directo en placas “Breadboard” o de prototipado rápido sin soldadura. Aunque en la mayoría de los proyectos realizados con Arduino es común el uso de componentes electrónicos discretos, tales como resistencias, condensadores y transistores, en este taller nos hemos esforzado en evitar este tipo de construcción. Principalmente para facilitar el trabajo a una persona con discapacidad visual o invidente en la investigación con Arduino. Las placas Arduino son programables desde una multitud de plataformas de desarrollo de software, tales como XCode, Eclipse, Visual Studio y otros. Sin embargo, con la plataforma se desarrolló un entorno integrado “IDE” de Arduino, multiplataforma y que usa un lenguaje de programación basado en “Wiring”. Este lenguaje de programación es una pequeña variante simplificada de C++. ¿Y cuantos modelos de placas Arduino existen? Al ser un desarrollo de código abierto no solo hay las placas oficiales que se diseñaron originalmente, sino que cualquier fabricante puede fabricar y comercializar placas propias, clones o mejoradas en algún aspecto, siempre que mantengan una cierta compatibilidad. Por ejemplo son conocidas las Genuino arduino de Arduino.org, FreeArduino de Elecfreaks y una miriada de productos de fabricantes chinos. Un pequeño listado es el que sigue: - Arduino uno. - Arduino Mini. -Arduino Mega. - Arduino Robot. - Arduino Esplora. - Arduino Due. - Arduino m0. - Arduino YUN. - Arduino YUN Mini. - Lilipad en sus variantes. - Arduino Industrial 101. - Arduino Nano. - Arduino BT. - Arduino uno WiFi. - Arduino Duemilanove. - Arduino Micro. Cabe destacar que los microcontroladores usados en los Arduino son chips tipo AVR de 8 bits del fabricante Atmel y tipo ARM de 32 bits, tal como los Cortex. Con la misma filosofía han aparecido en el mercado plataformas análogas, tal como Pinguino basado en microcontroladores PIC del fabricante Microchip y Netduino basado en la plataforma .Net de Microsoft. 3. Módulos Shield y sensores embebidos: Dadas las características de conectividad de las placas Arduino, han aparecido una gran variedad de módulos auxiliares o “Shields” que son fácilmente conectables de forma directa a un Arduino, ampliando las capacidades del Arduino. Estos módulos, denominado también “Shields” pueden incorporar componentes para controlar motores, módulos de comunicaciones, reproductores de sonido, módulos de captura de datos, módulos de expansión, drivers de maquinaria externa, etc. Muchos de estos módulos o shields están diseñados para su colocación apilada o en cadena, completando el diseño del dispositivo. Al igual, En el mercado existen una gran variedad de sensores de todo tipo destinados al uso industrial. Muchos de estos sensores requieren de componentes electrónicos tales como resistencias y condensadores para su configuración. Sin embargo han aparecido sensores embebidos sencillos, que comprenden un sensor determinado y la electrónica necesaria para su conexión directa a un Arduino, simplificando la construcción. Un ejemplo son los módulos “Octopus” de Elecfreaks, que se han utilizado en este taller. Un punto importante es que el uso de dichos módulos conlleva el uso de librerías de desarrollo que se deben incorporar en el entorno de desarrollo elegido, para incorporar posteriormente a los programas de funcionamiento. de los Arduino 4. Arduino.cc y Arduino.org: en cuanto se empieza a trabajar con Arduino se suele acudir a internet para recabar información. Y nos encontramos dos lugares web oficiales. ¿Cual es el bueno?. Pues un poco de historia. En el año 2005, el instituto de interacción de Ibrea (Italia) impartía una serie de cursos donde se usaban placas de desarrollo que resultaban relativamente caras. Aproximadamente unos 100 dólares, así que miembros del profesorado y alumnos decidieron crear una placa económica y de código abierto para fomentar su uso. Arduino LLC fue la compañía creada por Massimo Banzi, David Cuartielles, David Mellis, Tom Igoe and Gianluca Martino en 2009 y es la propietaria de la marca Arduino. Las placas Arduino eran fabricadas por una spinoff llamada Smart Projects Srl creada por Gianluca Martino. En noviembre de 2014 cambiaron el nombre de la empresa que manufactura las placas Arduino de Smart Projects Srl a Arduino Srl y registraron el dominio arduino.org, esto fue el inicio de la división que se produjo poco después. Hasta principios de 2015 la web oficial de Arduino era www.arduino.cc mantenida por los creadores de Arduino y todo su equipo. En febrero de 2015 se hizo público la ruptura entre los fundadores de Arduino y el fabricante de las placas de Arduino liderado por Gianluca Martino. En la actualidad ambas empresas desarrollan nuevas placas distintas y software de desarrollo distinto, con sus propias características. Por lo tanto hay que tener en cuenta que placa usamos para trabajar con el IDE más adecuado. aún así, las placas siguen manteniendo un grado de compatibilidad considerable. Nota: Arduino no es el nombre de ningún perro. Es el nombre de un establecimiento de hostelería, “Bar di Re Arduino” donde uno de los fundadores pasaba algunas horas. Arduino fue un antiguo rey de Italia. 5. Perfiles de accesibilidad que se pueden afrontar con Arduino: Si nos centramos en la discapacidad visual como objetivo del desarrollo accesible de un dispositivo con Arduino nos encontramos tres perfiles de interacción básica. - Perfil sonoro de interacción. Una forma básica de interacción puede ser a partir de sonidos y tonos que indican el estado de funcionamiento del dispositivo. Así un dispositivo basado en Arduino puede estar dotado de un sensor que monitoriza un estado cualquiera y que a través de un zumbador u otro dispositivo sonoro es capaz de avisar del cambio de estado detectado por dicho sensor. En Arduino no existe oficialmente ningún software de síntesis de voz, pero mediante un shield o módulo de reproducción de audio mp3 es posible crear dispositivos que reproducen mensajes previamente grabados en la interacción con el dispositivo. Este perfil es sumamente flexible, ya que los mensajes pregrabados en forma de archivos de audio pueden contener locuciones en el idioma que se desee y con la mejor vocalización posible. - Perfil táctil de interacción. Con un Arduino es posible controlar motores, servomotores u otros elementos que pueden cambiar de posición, forma, tamaño o disposición de sus elementos. Un ejemplo básico es un reloj táctil, que mediante unos servomotores puede cambiar la posición de unos cursores sobre unas escalas graduadas en braille, posibilitando la lectura táctil directa de una hora o de una indicación numérica cualquiera. - Perfil de accesibilidad mediante dispositivos accesibles externos. este perfil de accesibilidad aprovecha el uso de los medios de comunicación entre dispositivos para acceder e interactuar con el dispositivo accesible. Un ejemplo son los proyectos diseñados a partir de un Arduino dotado de comunicaciónes Wifi, al cual se puede acceder con un aparato dotado de elementos de accesiblidad própia, tal como un teléfono móvil, una tableta o un ordenador. Así, es posible crear una estación meteorológica con un Arduino Uno Wifi o un Arduino Yun que se puede acceder desde el navegador web de un teléfono móvil inteligente, o un ordenador con los medios de accesibilidad necesarios. Los medios de comunicación entre el dispositivo construido con Arduino y el aparato de control que presta la accesibilidad, no necesariamente se limitan a WiFi. Sino que también pueden usarse otros protocolos de comunicación, tales como Bluetooth, infrarrojos, radiofrecuencia, etc. 6. Enlaces a recursos de aprendizaje con Arduino: - Arduino.cc https://www.arduino.cc Es la web original del proyecto Arduino. Creada por los fundadores del equipo original, encontraremos en ella todos los recursos necesarios para Arduino, así como tutoriales, un wiki, acceso a un IDE multiplataforma o entorno de desarrollo integrado para Windows, MacOS y Linux. Además, es posible dar soporte al proyecto mediante donaciones o la compra de las placas ya construidas y comercializadas. Arduino.org http://www.arduino.org Las placas Arduino eran fabricadas por una spinoff llamada Smart Projects Srl creada por Gianluca Martino. En noviembre de 2014 cambiaron el nombre de la empresa que manufactura las placas Arduino de Smart Projects Srl a Arduino Srl y registraron el dominio arduino.org. También encontraremos abundante información y recursos de aprendizaje, su propio IDE de desarrollo, y la venta de sus productos. - Elecfreaks https://www.elecfreaks.com Elecfreaks es una empresa de diseño y desarrollo de soluciones de prototipado en código abierto. Está orientado al mercado de soluciones sencillas para el desarrollo mecánico y electrónico, tanto de aficionados como profesionales. Dispone de una cartera de productos muy extensa y proporciona información extensa de recursos para el aprendizaje y la uso de sus productos. Es la que hemos seleccionado para el suministro de Shields y sensores embebidos. - Adafruit https://www.adafruit.com Adafruit Industries es una compañía norteamericana dedicada a la fabricación y venta de hardware “opensource” o de código libre. Adafruit, además de hacer sus propios diseños, también comprende una gran base de datos, información y tutoriales sobre Arduino y módulos electrónicos. es un referente a nivel mundial. - Sparkfun Electronics. ()En inglés y en español. https://www.sparkfun.com http://tienda.bricogeek.com/3_sparkfun Otro fabricante y vendedor de material electrónico “opensource” que se ha volcado en la fabricación y desarrollo de elementos y módulos para construcción de dispositivos. Arduino playground. http://playground.arduino.cc/Es/Es Es una wiki comunitaria de Arduino en español, donde se fomenta la colaboración entre las personas que desarrollán sobre Arduino, estudian su funcionamiento o simplemente tienen curiosidad. Tienen una gran base de datos y recursos educativos de proyectos con Arduino. 7. Enlaces generales a webs de desarrollo con Arduino: La cantidad de webs con recursos sobre el desarrollo de proyectos varios, entre los que se usan Arduino es inmensa. Aquí destacamos un pequeño grupo donde entre los proyectos dedicados a Arduino existe una importante cantidad de proyectos donde la accesibilidad para una persona invidente o con discapacidad visual es notoria. - Instructables. (En inglés). http://www.instructables.com Esta es una web que cuenta con un gran repositorio de proyectos destinados a accesibilidad. Los proyectos están en su mayoría perfectamente explicados y descritos para reproducirlos. - Hack a day. (En inglés). http://hackaday.com Esta es una de las webs que empezaron a listar proyectos con Arduino de forma más temprana. Está descrita a modo de blog y los proyectos se listan de forma continua, pudiendose hacer búsqueda por distintos criterios. Los artículos que se pueden encontrar sobre los proyectos a veces son autocloncuyentes y en otros casos llevan a la web original de cada desarrrollador. 8. Enlaces dedicados a accesibilidad con Arduino: - The blind Arduino Project. (En inglés). Esta web pertenece a una comunidad de desarrolladores invidentes y con discapacidad visual que tienen por objetivo fomentar la creación de proyectos con arduino por parte de personas invidentes o con discapacidad visual. Convocan unas reuniones regulares en San Francisco, California. - Blind Arduino Blog. http://blarbl.blogspot.com.es Este blog nació como colaboración de LightHouse Labs y The Smith-Kettlewell Eye Research Institute. Es una recopilación de noticias e información sobre personas invidentes y con discapacidad visual queconforman la comunidad maker alrededor de Arduino. Trabajan sobretodo en el campo de la programación y la adecuación de entornos de programación a lectores de pantalla sobre Windows. - Proyectos presentados como ejemplos en este taller. http://delprat.es/arduino/ En esta web se podrá encontrar información más actualizada de los proyectos mostrados en este taller, así como código y planos de desarrollo 3D de los elementos mecánicos. Para contacto vía correo electrónico con el ponente del taller dirigirse a: arduino@delprat.es Juan Nuñez. Nota: Todas las marcas, nombres comerciales y derechos adquiridos son propiedad de sus dueños o administradores. El código desarrollado para los dispositivos accesibles mostrados en este taller forman parte del código abierto bajo licencia aún por especificar.