Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Grado Universitario en Ingeniería de Tecnologías Industriales 2018-2019 Trabajo Fin de Grado “Curso de robótica educativa” Fernando Yuste Rodríguez-Escalona Tutor Arturo de la Escalera Hueso Leganés, 18 octubre 2019 Esta obra se encuentra sujeta a la licencia Creative Commons Reconocimiento – No Comercial – Sin Obra Derivada III RESUMEN El futuro del mundo, y del mercado laboral en particular, está marcado por la gran revolución que viene, la revolución de la automatización. La interacción con robots será muy importante y será necesario un mayor conocimiento acerca del funcionamiento y control de estas máquinas. Con el objetivo de formar a jóvenes alumnos en competencias como la electrónica y la programación, surge este curso de robótica educativa, con el deseo de ofrecer un complemento a lo aprendido en las escuelas e institutos. A lo largo de este curso se han desarrollado diferentes niveles de un proyecto global, en el que se montarán vehículos robots controlados por una Raspberry, la cual tendrá distintos sensores conectados que permitirán el desarrollo de diferentes tareas. Para programar se utilizará Scratch, una herramienta muy útil para principiantes. Finalmente, se realizará una prueba en alumnos, con el objetivo de comprobar la eficacia del curso planificado y obtener unas valoraciones de los principales destinatarios del curso. Palabras clave Robótica educativa; Raspberry; Scratch. ABSTRACT The future of the world is determined by the automation revolution that is coming. The interaction with robots will be very important, so more knowledge about the operation and control of these machines will be required. With the aim of teaching young students skills such as electronics and programming, is created this robotic course. The desire is to offer a complement to the courses that schools teach. In this course, different levels has been developed as a part of a global project. Robots controlled by a Raspberry will be mounted, which will have different sensors connected that will allow the development of different tasks. Scratch, a tool very useful for begginers, will be used to program. Finally, sutdents will make a test of the robotics course, with the aim of verifying the effectiveness of the planned course. Key words Educational robotics; Raspberry; Scratch. V DEDICATORIA En primer lugar, quiero agradecer a D. Arturo, mi tutor en este proyecto, su acompañamiento todos estos meses, por haber ejercido de guía, por la atención prestada y por la disponibilidad, tanto personal como de recursos, ofrecida. En segundo lugar, me quiero acordar de mi familia, que me ha acompañado durante todos estos años, apoyándome en los momentos difíciles, y por haberme inculcado desde pequeño los valores del trabajo, esfuerzo y sacrificio. También quiero agradecer de manera especial a Daniel, Juan y Manuel, por ofreceros a realizar este curso de robótica, con lo que he podido evaluar el resultado de mi trabajo, por vuestra paciencia durante las sesiones y vuestras ganas de aprender. Para terminar, no me puedo olvidar de mis compañeros y profesores, sin los cuales no habría llegado a donde estoy, de la gente de la biblioteca, por la ayuda ofrecida en todo momento, y de los encargados del Maker Space, una gran iniciativa que permite el desarrollo de nuevos proyectos y la puesta en común de ideas, poniendo las herramientas necesarias al servicio de los estudiantes. VII ÍNDICE DE CONTENIDOS Contenido 1. INTRODUCCIÓN .................................................................................................... 1 1.1. Motivación ......................................................................................................... 1 1.2. Objetivos ............................................................................................................ 2 1.3. Marco regulador ................................................................................................. 3 1.4. Estructura de la memoria ................................................................................... 4 2. ESTADO DE LA TÉCNICA .................................................................................... 5 2.1. Situación actual .................................................................................................. 5 2.2. Marco actual ...................................................................................................... 6 2.3. Diseño de soluciones ......................................................................................... 7 3. DESARROLLO DEL PROYECTO........................................................................ 10 3.1. Configuración inicial ...................................................................................... 10 3.1.1. Descarga e instalación del sistema operativo ............................................... 10 3.1.2. Configuración VNC ..................................................................................... 11 3.1.3. Otras configuraciones ................................................................................... 11 3.2. Vehículo con sensor de distancia ..................................................................... 12 3.2. Robot seguidor de líneas .................................................................................. 20 3.3. Vehículo Ackermann ....................................................................................... 26 4. RESULTADOS DEL CURSO ................................................................................ 31 5. PLANIFICACIÓN Y ENTORNO SOCIO-ECONÓMICO .................................... 34 5.1. Planificación ................................................................................................... 34 5.2. Entorno socioeconómico .................................................................................. 35 5.2.1. Presupuesto.................................................................................................. 35 5.2.2. Impacto socio - económico ........................................................................ 37 6. CONCLUSIONES .................................................................................................. 39 6.1. Análisis de resultados ........................................................................................ 39 6.2. Valoración personal ........................................................................................... 40 6.3. Futuras líneas de desarrollo ............................................................................... 40 7. BIBLIOGRAFÍA ..................................................................................................... 42 IX ÍNDICE DE FIGURAS Figura 1. Robot Zowi [5] .................................................................................................. 5 Figura 2. Placa Arduino Uno [8] ...................................................................................... 7 Figura 3. Raspberry Pi modelo 3B ................................................................................... 7 Figura 4. Captura del programa VNC Viewer ................................................................ 11 Figura 5. Chasis 2WD para coche inteligente ................................................................ 12 Figura 6. Batería POWERADD 10000mAh................................................................... 13 Figura 7. Pines GPIO Raspberry Pi [11] ........................................................................ 14 Figura 8. Controlador Pololu DRV8835 [12] ................................................................. 14 Figura 9. Diagrama esquemático del DRV8835 [9] .......................................................15 Figura 10. Esquema de la conexión del HC-SRO4 y el zumbador a la Raspberry ........ 16 Figura 11. Programa de los motores en Scratch ............................................................. 18 Figura 12.Captura del programa del sensor ultrasónico en Scratch ............................... 19 Figura 13. Programa del zumbador y la cámara ............................................................. 20 Figura 14. Pololu QTR-8RC [14] ................................................................................... 21 Figura 15. Diseño 3D del soporte QTR-8RC [15] ......................................................... 22 Figura 16. Diagrama esquemático del Pololu QTR-8RC [14] ....................................... 23 Figura 17. Parte principal del programa del seguidor de líneas ..................................... 25 Figura 18. Esquema principio de Ackermann [16]......................................................... 26 Figura 19. Chasis del vehículo con servomotor. ............................................................ 27 Figura 20. Código del servomotor en Scratch ................................................................ 28 Figura 21. Montaje del chasis 3D por parte de un alumno ............................................. 29 Figura 22. Planificación del proyecto hecha con Tom's Planner .................................... 34 XI ÍNDICE DE TABLAS TABLA 1. COMPARATIVA ENTRE ARDUINO UNO Y RASPBERRY PI 3 B ....... 8 TABLA 2. RELACIÓN PWM-VOLTAJE EN LOS PINES GPIO ............................... 13 TABLA 3. RESULTADOS DE LA ENCUESTA PREVIA AL CURSO ..................... 31 TABLA 4. ENCUESTA FINAL CURSO ROBÓTICA ................................................ 33 TABLA 5. PRESUPUESTO .......................................................................................... 36 XIII LISTA DE ABREVIATURAS DC Direct current (ingl.: “corriente continua”) etc. etcétera GND Ground (ing.: tierra) GPIO General purpose input/ output (ingl.: “entrada/salida de propósito general”) PWM Pulse width modulation (ingl.: “modulación de ancho de pulso”) TIC Tecnologías de información y la comunicación VNC Virtual network computing (ingl.: “computación virtual en red”) 1 1. INTRODUCCIÓN En esta primera sección se desarrollará la justificación del trabajo, así como los objetivos que se desean alcanzar con este proyecto. Finalmente, se expondrá la estructura con la que se ha desarrollado la memoria. 1.1. Motivación En la actualidad, la robótica y automatización han incrementado notablemente su relevancia y uso en multitud de aplicaciones. Y en los años futuros esto será una constante, y sus aplicaciones y repercusión irán en aumento. Se estima que para 2030 cientos de millones de trabajadores en todo el mundo serán desplazados por la automatización. Este cambio será especialmente notorio para aquellas personas con una escasa formación, ya que los trabajos más físicos y simples serán los primeros en ser realizados por robots [1]. Debido a esto, cobrarán mayor relevancia los puestos de trabajos orientados al desarrollo, manejo y mantenimiento de la tecnología, que requerirán cada vez una mayor formación debido al aumento de la complejidad de los sistemas de automatización y los robots. Además, muchos de los niños en edad escolar trabajarán en profesiones que aún no existen, muchas de ellas ligadas a la automatización y la programación. Por eso, es fundamental que surjan numerosas vocaciones ingenieriles, y la formación de las nuevas generaciones en materias como la robótica y la programación. Es especialmente interesante iniciar el desarrollo en estas habilidades en edades tempranas, ya que los niños tienen una gran capacidad de aprendizaje. Precisamente para acercar la tecnología a los más jóvenes, surgen los cursos de robótica educativa. En estos cursos se fomenta el aprendizaje gradual y dinámico, por medio de proyectos, para adquirir conocimientos básicos en electrónica y programación, permitiendo conseguir objetivos relativamente complejos con unos conocimientos previos mínimos. Estos cursos, además, resultan de gran atractivo para los estudiantes, lo que incentiva su motivación de seguir aprendiendo sobre tecnología; y les permiten desarrollar su 2 creatividad al tener un alto grado de flexibilidad, abiertos a las preferencias de cada persona. Dentro de este contexto se encuentra el proyecto realizado, que trata de aunar varias ramas de la tecnología en un solo curso, con un objetivo global y un atractivo característico de los proyectos de cierta complejidad. Todo ello utilizando las herramientas disponibles en la actualidad para hacerlo accesible a personas sin un alto conocimiento en materias como electrónica o programación. 1.2. Objetivos Para la realización de este proyecto, se han marcado una serie de objetivos. Estos se pueden clasificar en objetivos personales, aquellos que mejoran la formación previa para la realización del trabajo; y objetivos del proyecto, aquellos que se pretenden alcanzar con la realización del curso de robótica. Objetivos personales: • Conocer la importancia de los cursos de robótica educativa en la actualidad, así como sus características y metodología. • Investigar acerca de las herramientas de hardware disponibles para estos cursos, especialmente aquellas más extendidas como Raspberry Pi y Arduino. Analizar también sus periféricos, que delimitan la extensión de nuestro proyecto. • Aprender a manejar Scratch, un software de programación por bloques, muy intuitivo, con el que los alumnos sin conocimientos en lenguajes de programación puedan incluir código en sus proyectos. Objetivos del proyecto: • Desarrollo de un curso educativo en varios niveles, con un fin único e integrador de todos los niveles. • Introducir nociones básicas en varias materias como la electrónica, la informática o la programación, explicando correctamente cada una de ellas. • Crear un curso que sea accesible para los alumnos, cuyo presupuesto en materiales no sea muy elevado, y los conocimientos previos sean adecuados al nivel en el que se va a implantar el proyecto. 3 • Llevar a cabo una prueba de curso con alumnos de Secundaria, y analizar los resultados para posibles mejoras futuras. 1.3. Marco regulador Para poder situar correctamente este proyecto, es necesario conocer qué legislaciones rigen sobre la robótica educativa en España, así como las políticas reguladoras de las herramientas utilizadas en el desarrollo de este proyecto. El Ministerio de Educación recoge la importancia del uso de las TIC como herramienta educativa en educación Primaria, tanto en asignaturas troncales como específicas, si bien es cierto que no hace referencia a la programación y la robótica, estando más orientada al manejo de información y creación de contenido. En cuanto a la educación Secundaria y Bachillerato, sí que aparecen contenidos relacionados con las TIC en las asignaturas de Tecnología en el 4º curso de educación Secundaria, y en Tecnología Industrial y TIC en Bachillerato. Estás asignaturas, aunque son optativas, permiten a aquellos alumnos con gusto por la tecnología el aprendizaje de nuevos conceptos y el desarrollo de una vocación ingenieril. En los últimos años, las diferentes Comunidades Autónomas han introducido asignaturas sobre robótica y programación en Primaria y Secundaria, con diferente aplicación según la Comunidad [2]. En cuanto al software utilizado, Scratch es un programa gratuito que no requiere de ninguna licencia especial, RealVNC requiere la creación de una cuenta y la aceptación de términos de uso. También hay que tener en cuenta que se hace uso de una cámara en el proyecto, cuya normativa hay que tener en cuenta. La agencia españolade protección de datos, en su área de videovigilancia, indica que no se permitirá el tratamiento de las imágenes recogidas, al considerarse éstas datos personales [3]. Por lo tanto, se borrarán las fotografías tomadas por la cámara al finalizar cada prueba de la programación, en las que puedan salir personas, especialmente si los alumnos son menores. 4 1.4. Estructura de la memoria En esta memoria se desarrollarán los siguientes puntos: • Estado de la técnica: en esta sección se expondrá la situación actual de los cursos de robótica educativa, así como los condicionantes que tienen, las posibilidades de hardware y software disponibles, y la elección de componentes para el proyecto. • Desarrollo del proyecto: se explicarán las diferentes etapas del curso de robótica educativa, detallando los materiales utilizados, así como las instrucciones necesarias para llevar a cabo las distintas tareas propuestas. • En la sección de resultados se realizará una prueba del curso diseñado, en la cual alumnos de Secundaria tendrán que realizar las diferentes partes del curso, y se analizarán los resultados obtenidos. • Planificación y marco socio-económico se mostrará a cabo la organización temporal seguida para el desarrollo del proyecto, así como las cantidades económicas gastadas en cada etapa. También se analizará el impacto social y económico del proyecto. • Finalmente, se expondrán las conclusiones obtenidas del proyecto global, se evaluarán los resultados del curso de robótica, se analizará el cumplimiento de los objetivos generales y personales y se expondrán futuras vías de expansión del proyecto. 5 2. ESTADO DE LA TÉCNICA 2.1. Situación actual En la actualidad, cada vez es más común encontrar cursos de robótica educativa, tanto en las aulas de secundaria o de la universidad, como en la oferta de actividades extraescolares. El aumento de oferta y demanda de estos cursos ha provocado que existan una gran variedad de ellos. La robótica educativa se puede aplicar desde los más pequeños hasta jóvenes en los primeros años de la formación universitaria. Con el objetivo de tener una referencia sólida para la realización de este proyecto, a lo largo de este apartado de estudiarán las diferentes posibilidades que tienen actualmente los cursos de robótica educativa, tanto a nivel pedagógico como de hardware y software. En el ámbito pedagógico, se ha descubierto que la robótica educativa aporta numerosos beneficios a los estudiantes en las diferentes etapas escolares. Entre los alumnos de educación infantil, entre otros, la robótica refuerza la creatividad de los niños, favorece el trabajo en grupo y el pensamiento crítico, y además mejora la autoestima Todo esto añadido a las nociones que se adquieren en electrónica o programación [4]. Un claro ejemplo es el robot Zowi, mostrado en la figura 1, elegido mejor juguete conectado del año 2016 por la Asociación Española de Fabricantes de Juguetes. Ofrece un gran abanico de posibilidades, desde juegos de memoria para los más pequeños, o controlar su movimiento desde un móvil o tablet, hasta programarlo con Bitbloq, una herramienta de programación por bloques [5]. Figura 1. Robot Zowi [5] 6 También entre los alumnos de secundaria se cuentan numerosos beneficios de los cursos de robótica, como la motivación por aprender, y también los estimula en el desarrollo del pensamiento abstracto [6]. Por ejemplo, la escuela de robótica Logix5 ofrece para los jóvenes de secundaria una serie de cursos, en los cuales se abarca completamente el proceso de hacer un robot, desde el montaje de los chasis o estructuras robóticas llamativas para los estudiantes, hasta el uso de distintos sensores y su programación [7]. Respecto al hardware, en los últimos años han proliferado diferentes plataformas de código abierto, que permiten al usuario adaptarlo a las necesidades de su proyecto. Esto, además, acompañado por una gran comunidad de estudiantes y desarrolladores que comparten sus creaciones para que puedan ser de ayuda al resto de la comunidad. Entre las más destacadas están Arduino, Raspberry Pi y Adafruit. También empresas líderes como LEGO desarrollan sus propios componentes destinados a la robótica educativa. Estos componentes pueden requerir o no un determinado software. Por ejemplo, Arduino Uno tiene su propio entorno de desarrollo, el Arduino IDE. Por el otro lado, Raspberry Pi tienen mayores posibilidades al poder soportar diferentes sistemas operativos, como Raspbian, en los que a su vez se puede programar en lenguajes como Phyton. Cada software tiene unas características distintas y ofrece ciertas ventajas, que tendrán que ser analizadas para elegir el más adecuado a las necesidades del curso. 2.2. Marco actual Los cursos de robótica educativa, ya sean llevados a cabo en las aulas o como actividades adicionales, están destinados a estudiantes, por lo que tienen una serie de condicionantes. El primero de ellos es el económico. El objetivo de optimizar el presupuesto es vital para que no haya un impedimento económico para que los alumnos puedan realizar un curso de robótica educativa. Cuanto más barato, más accesible para todos. Eso sí, sin perder los estándares de calidad. El segundo lugar, es necesario adaptar estos cursos al nivel de los alumnos, eligiendo el software más adecuado, así como los componentes que incluirá el robot. En este sentido, placas como Arduino son las más utilizadas por su sencillez y manejo. Además, muchas marcas ofrecen kits completos con guías y cursos adaptados a todos los niveles. 7 2.3. Diseño de soluciones Lo primero para poder desarrollar el proyecto es la elección del hardware, que determinará el entorno de desarrollo del proyecto y sus posibles aplicaciones. Teniendo en cuenta lo expuesto en los apartados anteriores la elección final estaba entre utilizar Arduino o Raspberry Pi. Para poder decidir correctamente, hemos hecho una comparativa entre ambas placas. Por un lado, está Arduino (figura 2), que es una de las placas más conocidas, y de las más utilizadas para los cursos de robótica, contiene un microcontrolador, además de un entorno de desarrollo, lo que la hace especialmente útil para una gran variedad de proyectos, acercando la electrónica de manera muy sencilla [8]. Por otro lado, Raspberry Pi es un ordenador en miniatura. Como se observa en la figura 3, está compuesto por una placa base, a la que se añaden un procesador y un chip gráfico. La función de disco duro la hace una tarjeta SD, y además cuenta con memoria RAM [9]. Figura 2. Placa Arduino Uno [8] Figura 3. Raspberry Pi modelo 3B 8 Para realizar una comparativa en mayor profundidad, se recogió la información relevante para el interés de nuestro proyecto, la cual queda recogida en la tabla 1. TABLA 1. COMPARATIVA ENTRE ARDUINO UNO Y RASPBERRY PI 3 B Arduino UNO Raspberry Pi 3 B Coste placa 20€ 35€ Puesta en marcha La configuración del software y hardware es inmediata. Requiere descarga y configuración del software Periféricos Para utilizar muchos de ellos es necesario comprar shields, y esto aumenta el coste. Incluye puertos USB, Ethernet y HDMI, además de ser compatible con Wifi y poder conectar pantallas y cámaras. Complejidad de proyectos Para proyectos simples y repetitivos. Sólo puede correr un código al mismo tiempo. Permite proyectos más complejos, con ejecución de varias tareas simultáneamente. Teniendo en cuenta que la diferencia de precios entre las placas no es muy grande, se ha optado por elegir la Raspberry Pi 3, ya que no supondrá una limitación en la complejidad del proyecto y ofrece mayores posibilidades, como el uso de la cámara. Respecto al software, el elegido es Scratch, ya que permite programar por bloques de manera intuitiva, sin necesidad de escribir elcódigo como tal. Este programa no requiere conocimientos avanzados en programación y ofrece un rápido aprendizaje. Además, está preinstalado en el Raspbian de la Raspberry Pi, por lo que no supone ninguna complicación añadida. 9 También ha sido clave para determinar la elección el enfoque del proyecto. El curso de robótica estará destinado a alumnos de Secundaria o Bachillerato, o incluso universitarios de primer año, y consistirá en construir un prototipo de coche inteligente en el que se utilicen diferentes sensores, actuadores y configuraciones. Otra de las características elegidas para el curso han sido los chasis para los robots. Se utilizarán estructuras con forma de vehículo para que sean más llamativas a los estudiantes. También los sensores a utilizar, como los ultrasónicos, la cámara o el sensor infrarrojo han sido elegidos para poder llevar a cabo proyectos atractivos en los que todas las etapas tengan una relevancia similar. 10 3. DESARROLLO DEL PROYECTO El proyecto se ha desarrollado en diferentes etapas, en cada una de las cuales se han ido cumpliendo distintos objetivos y cubriendo diferentes niveles del proyecto. 3.1. Configuración inicial Para poder desarrollar el proyecto satisfactoriamente, es necesario configurar la Raspberry Pi de manera correcta. En este apartado se explicarán los diferentes procesos de ajuste, desde la puesta a punto inicial a la configuración de los detalles. Serán necesarios una fuente de alimentación de 5V y al menos 2.5A, un teclado, un ratón, una pantalla a la que conectar la Raspberry y una tarjeta SD de al menos 8GB. Si bien esta configuración inicial no entra dentro del curso de robótica como tal, puede aportar a los alumnos conocimientos en el propio sistema operativo de la Raspberry, en los periféricos y en el software a utilizar durante el curso de robótica educativa. 3.1.1. Descarga e instalación del sistema operativo El sistema operativo usado mayoritariamente en la Raspberry es Raspbian. Para instalarlo, la página oficial de Raspberry Pi proporciona el software NOOBS, el cual es necesario descargar en un ordenador. Estos archivos descargados se copian en la tarjeta SD, que tendrá que haber sido previamente formateada para evitar fallos. Una vez copiados, se introduce la tarjeta SD en la Raspberry Pi y se conecta esta a una pantalla mediante el HDMI. También se conectan un teclado y un ratón. Una vez está todo conectado, se conecta la fuente de alimentación [10]. Después de unos segundos, sale la primera pantalla para elegir el sistema operativo a instalar, que será el Raspbian Full. Esta primera pantalla también deja la opción de cambiar el idioma, por lo que se elige el español. Es recomendable conectar un cable de red o bien configurar la conexión Wi-Fi para proceder correctamente con la instalación. Una vez terminado el proceso de instalación, la Raspberry se reinicia automáticamente. Aparece el escritorio de la Raspberry, y un asistente para facilitar algunos ajustes como la fecha y hora o la contraseña de usuario. Una vez finalizada esa configuración, la Raspberry ya está lista para su uso. 11 3.1.2. Configuración VNC Una herramienta que proporciona muchas facilidades para el desarrollo del proyecto es el software VNC (Virtual Network Computing). El programa VNC Viewer permite conectarse al escritorio de la Raspberry desde otro ordenador, y controlarlo a distancia gracias a la conexión Wi-Fi. Esto es muy útil para manejar la Raspberry cuando ésta se encuentra sobre una plataforma móvil, o sin pantalla, como es el caso de nuestro proyecto. Para configurar el VNC, es necesario descargar el software para el ordenador, en este caso VNC Server Y VNC Viewer. El primero permite crear una subred de equipos conectados y registrarse como usuario, mientras que el segundo permite ver y controlar los diferentes dispositivos de forma remota. Para poder acceder a la Raspberry es necesario activar el VNC en ella. La forma de hacerlo es abriendo el terminal, introducir sudo raspi-config, seleccionar Interfacing Options y, finalmente VNC, el cual queda activado permitiendo el acceso remoto. Tras esto solo queda iniciar sesión en con la cuenta VNC en la Raspberry. De esta manera queda configurado un equipo que incluye los diferentes ordenadores y Raspberry que queramos asociar, pudiendo acceder desde uno de ellos a varios de los otros al mismo tiempo, como se refleja en la figura 4. Figura 4. Captura del programa VNC Viewer 3.1.3. Otras configuraciones Otras de las configuraciones que se ha de hacer en la Raspberry es la activación de la cámara. Para ello, se abre el terminal de la Raspberry y se escribe sudo raspi-config. En 12 el menú de configuración se selecciona Interfacing Options y, a continuación, Camera. Finalmente, se acepta a la activación de la cámara. Aunque no es imprescindible, es de gran utilidad, especialmente para los alumnos, poder usar el software de Scratch en castellano. Para configurarlo, se hace clic en el icono y se selecciona el español. Tras estas modificaciones, ya está todo configurado para poder comenzar a desarrollar nuestro curso de robótica educativa. 3.2. Vehículo con sensor de distancia La primera etapa del curso consiste en montar un vehículo capaz de medir la distancia de un objeto que se encuentre delante de él y de indicarlo mediante pitidos, y hacer posible el control de su movimiento tanto a distancia como de manera autónoma. El chasis seleccionado es el correspondiente a la figura 5, chasis 2WD para coche inteligente, producto de The perseids, disponible para comprarlo. Está formado por una placa con diversas ranuras sobre la que se soportan el resto de componentes. El kit incluye dos motores DC con reductora, dos ruedas, una rueda loca, un soporte para 4 baterías AA y un interruptor. Sobre este chasis se han montado la Raspberry Pi, el sensor ultrasónico y una batería de 5V para alimentar la Raspberry. Esta batería es necesaria, ya que la Raspberry Pi necesita 5V para funcionar, y las 4 pilas de 1,5V serán encargadas de alimentar a los motores. Figura 5. Chasis 2WD para coche inteligente 13 La batería portátil utilizada para alimentar la Raspberry ha sido la de la figura 6, de POWERADD, que suministra 5V y 2,4A, requeridos para un correcto funcionamiento de la Raspberry. La capacidad de 10000mAh proporciona más de 5 horas de autonomía, y el tamaño reducido la hace apta para colocarla sobre el chasis. Para realizar las conexiones necesarias se han utilizado cables dupont macho-macho, hembra-hembra o macho-hembra según ha sido necesario. También se ha utilizado una pequeña protoboard para facilitar las conexiones. TABLA 2. RELACIÓN PWM-VOLTAJE EN LOS PINES GPIO PWM 0 100 200 300 400 500 600 700 800 900 1000 1024 Voltaje (V) 0 0,32 0,64 0,97 1,29 1,62 1,95 2,27 2,6 2,92 3,25 3,33 La conexión entre la Raspberry y el resto de los componentes tiene lugar sobre los pines GPIO (General Purpose Input/Output). Estos pines pueden ser configurados como entradas o salidas digitales [11]. Tienen un estado HIGH (3,3V) y uno LOW (0V), y además pueden ser configurados como salidas PWM (pulse-width modulation), una configuración que permite regular el valor medio del voltaje de salida para variar la velocidad de giro de un motor de corriente continua o el tono de un zumbador, entre otras muchas aplicaciones. El valor PWM puede ajustarse entre 0 (0V) y 1024 (3,3V), como se muestra en la tabla 2, debido a la resolución del GPIO. Los pines de la Raspberry Pi 3B+ están distribuidos de la manera reflejada en la figura 7. Figura 6. Batería POWERADD 10000mAh 14 Para poder controlar la velocidad y dirección del vehículo, es necesario manejar tanto la potencia como el sentido de giro de los motores. Para ello se ha utilizado el controlador de motores Pololu DRV8835para dos motores adaptado a Raspberry Pi, mostrado en la figura 8. En este controlador se han soldado un cabecero hembra y 3 bloques terminales de 2 pines, para facilitar las conexiones. Se ha montado sobre los pines GPIO 1-34, quedando libres los pines 35-40. El controlador está basado en un puente H dual y sigue el esquema de la figura 9. Figura 7. Pines GPIO Raspberry Pi [11] Figura 8. Controlador Pololu DRV8835 [12] 15 El funcionamiento de los motores está determinado por 4 pines del GPIO, dos para cada motor. Los pines GPIO 5 y 6 se han configurado como salidas (outputs), y determinan el sentido de giro para los motores 1 y 2, respectivamente. Si están en el valor alto, el motor gira hacia delante, mientras que, si es bajo, lo hace hacia detrás. Los pines GPIO 12 y 13 son salidas PWM y controlan la velocidad de los motores 1 y 2, respectivamente. VIN es el voltaje de entrada suministrado por el conjunto de las 4 baterías de 1,5V. Entre la batería y el controlador se ha colocado un interruptor para permitir desactivar los motores cuando sea necesario. Los voltajes de salida a los motores M1 y M2 son acordes a un correcto funcionamiento de los mismos, adquieren valor positivo o negativo según el sentido de giro del motor. De manera adicional, se ha instalado un detector de distancia ultrasónico HC-SR04 y un zumbador. El sensor envía el valor del tiempo que va entre que envía la señal ultrasónica y cuando la recibe. Con el valor de este tiempo, conociendo la velocidad del sonido y teniendo en cuenta que el recorrido es de ida y vuelta, es fácil calcular la distancia a la que se encuentra el objeto. El zumbador se ha conectado a la salida de un pin, conectando en medio una pequeña resistencia de protección, y el tono del mismo variará en función al voltaje suministrado, que será regulado gracias a PWM. Figura 9. Diagrama esquemático del DRV8835 [9] 16 El sensor ultrasónico tiene una tensión nominal de 5V, por lo que se puede alimentar con liberando uno de los pines de 5V de la Raspberry, para lo que habría que liberar espacio en los pines ocupados por el controlador de motores, o con el pin de 5V que sale del propio controlado. Otra opción que simplifica el circuito es alimentarlo con los 3,3V que proporciona un GPIO en estado alto, ya que esté valor ha sido probado y ha funcionado correctamente. El Trigger (disparador) es el pin que inicializa el sensor, indicando cuando empieza a mandar información, y se ha conectado directamente sobre el GPIO 16. El Echo es el encargado de enviar la información a la placa, y requiere de un divisor de voltaje para no superar los 3,3V que admiten los pines GPIO. El circuito ha quedado configurado de acuerdo al esquema de la figura 10. Se ha decido el uso de diagramas y esquemas más visuales, en lugar de los diagramas electrónicos clásicos, para facilitar su interpretación a los alumnos que tomen parte de este curso. También el uso de cables de diferentes colores facilita la identificación de las diferentes partes del montaje. Figura 10. Esquema de la conexión del HC-SRO4 y el zumbador a la Raspberry 17 Algunas mejoras posibles en la configuración serían añadir otro sensor ultrasónico en la parte trasera del chasis, para que también se tuviera en cuenta la distancia cuando el vehículo fuese marcha atrás. Para esto sería necesario liberar pines del controlador de motores, usando cables jumper en lugar de encajar directamente el controlador sobre el GPIO. Un complemento que se ha instalado ha sido la Cámara V2 para Raspberry Pi, que se coloca en la ranura indicada para ello. Esta cámara tomará fotos de los obstáculos detectados a una distancia de 5cm o menos y los mostrará en el escenario de Scratch. Como alternativa a la batería que alimenta la Raspberry, estaría el uso del regulador de voltaje Pololu S7V7F5, el cual iría situado sobre el controlador de motores. Este componente alimentaría la Raspberry gracias a las 4 pilas, ya que convierte voltajes de hasta 11,8V en 5V. Sin embargo, está alternativa es limitada, ya que la corriente proporcionada por el regulador es demasiado baja para algunas aplicaciones de la Raspberry Pi. Para que todo esto funcione correctamente es necesario crear un programa en la Raspberry. Para ello se crea un proyecto nuevo en Scratch, el software seleccionado, y se actúa de la siguiente manera. Scratch es un software que permite la creación de programas sobre personajes y escenarios, programas que son reflejados sobre la pantalla del ordenador, con bloques de movimiento, apariencia y sonido. En el caso de nuestro proyecto, estos bloques no serán necesarios, si bien otros como los bloques de control o las variables cobrarán especial relevancia. En Scratch, el programa se escribe sobre el personaje o escenario sobre el que se quiere actuar. En este caso, al actuar únicamente sobre el GPIO y la cámara, se programará sobre el escenario. Eliminando todos los personajes para tener mayor visibilidad en la pantalla. En primer lugar, se debe inicializar el servidor GPIO. Para ello se utiliza el bloque enviar a todos, dentro de los bloques de control. Este bloque, broadcast en inglés, manda un mensaje a todo el programa de Scratch. Para activar el GPIO se escribe gpioserveron, y después se inicializan el resto de pines a utilizar, indicando si son entradas (“in”), salidas (“out”) o salidas PWM (“outputpwm”) [13]. Una vez 18 configurados los pines, se pueden ajustar los valores de salida al valor alto (“on”), bajo (off) o ajustado a cierto valor de PWM entre 0 y 1024. Para que el programa se ejecute es necesario poner un bloque de inicio, que será el de la bandera verde de Scratch. También se pueden añadir otras condiciones de control, como que un bloque se ejecute al pulsar determinada tecla. En este caso, se han utilizado las flechas de dirección para controlar el movimiento del vehículo. El programa de la inicialización de los pines y control de los motores del vehículo ha quedado de la manera reflejada en la figura 10. Como se puede observar, el giro del vehículo se lleva acabo moviendo una rueda hacia delante y otra hacia detrás, al disponer únicamente de dos ruedas, y sin eje dirección. El tiempo que se mantienen los movimientos de avance y retroceso es 0,5 segundos, mientras que los de los giros es de 0,2 para poder realizar los giros con una mayor precisión. Figura 11. Programa de los motores en Scratch 19 Figura 12.Captura del programa del sensor ultrasónico en Scratch En cuanto al sensor ultrasónico y la cámara, Scratch dispone de un comando para el sensor de distancia ultrasónico. Dentro del bloque enviar a todos se escribe: “ultrasonic” + “trigger” + trigger pin + “echo” + echo pin [13]. Luego seleccionamos valor del sensor ultrasonic distance dentro de los bloques de sensores, y ya podemos visualizar el valor de la distancia, como se observa en la figura 12. Además, es necesario inicializar los pines de trigger y echo como salida y entrada, respectivamente, además de inicializar el GPIO (como las figuras 11 y 12 pertenecen al mismo programa, solo es necesario inicializarlo una vez). Por último, se ha configurado el código del zumbador y la cámara. El GPIO 20 se ha definido como salida PWM, para ajustar el tono a un valor de 700. El comando para hacer una foto y mostrarla en el escenario de Scratch consiste en escribir photo dentro del bloque enviar a todos. El funcionamiento del programa mostrado en la figura 13 sería de la siguiente manera. Si la distancia detecta es mayor a 10cm, el zumbador no actuaría. Si la distancia detectada está entre 5 y 10cm, sonaría un pitido de 0,1 segundos de duración espaciados por 0,5 segundos. Si la distancia es menor que 5cm, se tomaría una foto que sería 20 mostrada en el escenario (como en la figura 12), y además el pitido de 0,1s se escucharíaahora con mayor frecuencia. Con todo esto, instalando la Raspberry en el chasis anteriormente descrito, ha sido posible el control del vehículo de forma remota gracias a la conexión VNC. Para hacer el vehículo autónomo, bastaría con cambiar las condiciones de actuación de los motores. Al inicializar, siempre que la distancia sea mayor que 10, el coche avanza. Cuando detecta un objeto a una distancia menor, gira hasta que ya no tenga objeto delante y vuelva a avanzar. Al final esta primera etapa el alumno debería haber adquirido unos conocimientos básicos en las aplicaciones del sensor ultrasónico, del controlador de motores y la cámara, así como la capacidad de leer esquemas electrónicos y montarlos. También habrá aprendido a crear unos sencillos programas en Scratch utilizando los comandos más básicos y controlar la Raspberry de manera remota. 3.2. Robot seguidor de líneas La siguiente parte del curso de robótica consiste en el montaje y programación de un robot sigue-líneas. Este robot será capaz de seguir un circuito formado por una línea Figura 13. Programa del zumbador y la cámara 21 negra sobre un fondo blanco (también se podría programar con una línea blanca sobre fondo negro). El chasis utilizado inicialmente para esta parte ha sido el mismo que el utilizado para el vehículo con sensor de distancia. La batería también será la misma, ya mencionada anteriormente. También en este proyecto se ha utilizado el control de motores DRV 8835, pero ha sido necesario liberar más pines GPIO para el sensor encargado de seguir líneas. Por ello, en está ocasión, en vez de encajarlo directamente sobre los pines 1-34, se han utilizado cables jumper macho-hembra en los pines 4 (5V), 17 (3,3V), 29 (GPIO 5), 31 (GPIO 6), 32 (GPIO 12), 33 (GPIO 13) y 34 (tierra). Para poder seguir las líneas se ha utilizado el array de sensores infrarrojos Pololu QTR- 8RC [14]. Está formado por 8 sensores de reflectancia a base de fototransistores que, en función a la reflectancia de la superficie, permiten diferenciar si ésta es negra o blanca. Se puede dividir, dejando un array de 6 sensores y otro de 2 que funcionan de manera independiente, aunque en este caso se han utilizado los 8 sensores. También dispone de un bypass por si la fuente de alimentación es de 3,3V, como se aprecia en la figura 14. El componente también incluye pines macho que se han soldado para facilitar futuras conexiones con los cables jumper. Para una correcta sujeción del QTR-8RC se ha utilizado un soporte específicamente diseñado para ello, el cual se ha obtenido de Thingiverse [15] (figura 15), una comunidad en la que los miembros comparten sus diseños para que estos sean accesibles al resto del mundo. Figura 14. Pololu QTR-8RC [14] 22 Figura 15. Diseño 3D del soporte QTR-8RC [15] Gracias a la impresión 3D se ha conseguido añadir una parte específica y personalizada a nuestro chasis, lo que es una clara ventaja de la fabricación aditiva y de la digitalización de la fabricación. El esquema que sigue el QTR-8RC se muestra en la figura 16. Además de los fototransistores, el array tiene un LED infrarrojo para cada sensor. Cada par LED- fototransistor tiene su propia entrada/salida digital, gracias a los circuitos con condensadores [14]. Esto mejora la sensibilidad del sensor y nos evita utilizar un conversor de analógico a digital. El pin LEDON es el encargado de encender o apagar los LEDs. Si está en valor alto o desconectado (se fuerza alto internamente), los LEDs están encendidos, mientras que, si tiene valor bajo, los LEDs están en valor bajo y el sensor no tiene lectura de la reflectancia de la superficie. Este pin se puede utilizar para ahorrar energía cuando no se 23 está analizando la superficie, así como regular el consumo configurando el pin como salida PWM [11]. La conexión entre la Raspberry Pi y el Pololu QTR-8RC ha sido de la siguiente manera. El pin 39 se ha utilizado como tierra (GND), y el pin 2 ha suministrado los 5V de Vcc. Para los sensores 1-8 se han utilizado, respectivamente, los pines GPIO 20, 16, 26, 19, 7, 8, 11 y 25. El pin GPIO 21 se ha conectado a LEDON. Estas conexiones se han realizado con cables jumper hembra-hembra, situando el array a unos 4mm de la superficie, para que puedan trabar de manera óptima. Para que estos sensores funcionen correctamente, es necesario inicializarlos. Para ello, la primera vez se han configurado los pines de los sensores como salidas digitales, y se les ha asignado el valor alto. Después de un breve tiempo se han cambiado los pines a entradas digitales (alta impedancia), funcionando ya de manera correcta todos los sensores, devolviendo valor 1 si la superficie bajo ese sensor es negra, y un 0 si la superficie es blanca. También se ha construido un circuito, utilizando para ello un trozo de mantel blanco de aproximadamente 1m² de tamaño, sobre el que se ha marcado un circuito cerrado utilizando cinta adhesiva negra, dispuesta en rectas y curvas. Figura 16. Diagrama esquemático del Pololu QTR-8RC [14] 24 Respecto a la programación, se ha creado un nuevo programa de Scratch. Lo primero que se ha hecho ha sido copiar en el escenario los bloques de movimientos de los motores (con su respectiva inicialización) utilizados en el robot con sensor de distancia, cambiando las condiciones de inicio de los respectivos bloques. En lugar de utilizar las flechas, se ha utilizado el comando al recibir, creando los identificadores avanza, atrás, giro_izquierda y giro_derecha para los respectivos movimientos. Este comando funciona como complemento del enviar a todos, ya que cuando envías uno de los mensajes (avanza, atrás, etc.) el bloque se ejecuta. Sobre el Sprite se ha llevado a cabo el resto del programa. En primer lugar, se han inicializado el servidor GPIO y los correspondientes pines, indicando si eran entradas o salidas y, si eran salidas, si tenían valor alto y bajo. A continuación, se han creado unas variables denominadas sensor1, sensor2, … una para cada sensor, y se le ha asignado con el bloque fijar su correspondiente pin GPIO usando un bucle infinito para mantener actualizados los valores. Además, el valor de estas variables siempre se mostrará en la pantalla de Scratch. De esta manera ha sido más sencillo identificar en cada momento el valor de cada sensor y desarrollar la programación. Finalmente, se ha creado la parte principal del programa, la encargada de controlar el funcionamiento del robot seguidor de líneas, reflejada en la figura 17. En función del sensor o sensores que se encontrasen sobre la superficie oscura en cada momento, el vehículo actúa de una manera u otra. Si detecta la línea con los sensores centrales, el programa manda la orden de avanzar utilizando el comando enviar a todos “avanzar” y esperar para que el programa continúe una vez la acción se haya desarrollado completamente. Si la detecta con los sensores intermedios, manda la señal de giro para el lado adecuado para orientar el vehículo hacia la línea y luego avanza. Mientras que, si la detecta con uno de los sensores de los extremos, solamente gira. Esta programación se ha probado con diferentes variantes para observar los cambios en el comportamiento del robot. 25 Figura 17. Parte principal del programa del seguidor de líneas Adicionalmente se han añadido a esta parte del programa las posibilidades de que el vehículo esté en el aire o sobre una superficie negra entera (más de 4 sensores con valor 1) en cuyo caso el vehículo no se mueve; o el caso de que el vehículo se haya salido de la línea del circuito (en una curva cerrada, por ejemplo), cuando todos los sensores detectan superficie blanca (valor 0), teniendo que girar hasta encontrar de nuevo la línea. Para evitar que el vehículo cambie de sentido al buscar la línea, se ha creado una variable llamada lado_array, que indicaen qué lado se encuentra el último sensor que ha detectado la línea, determinando así el sentido de giro del vehículo. 26 Esta segunda etapa del proyecto aporta al alumno una mayor destreza en el manejo de Scratch, pudiendo crear programas más complejos con nuevos comandos. Además, el alumno aprende el funcionamiento y configuración de los sensores infrarrojos y es capaz de diseñar soluciones variadas para los problemas que enfrenta. 3.3. Vehículo Ackermann La última etapa del curso de robótica ha consistido en el montaje de otro chasis de vehículo robot, pero en este caso un vehículo con dirección (Ackermann). Esto ha permitido enseñar el funcionamiento de los servomotores en la robótica, pudiendo además utilizar este chasis para cualquiera de los dos anteriores diseños. El principio de Ackermann determina que la rueda exterior debe formar un ángulo menor con la extensión del eje trasero que la rueda interior (figura 18). Si esto no fuera así y el vehículo no cumpliera el principio de Ackermann, se produciría inestabilidad y un desgaste excesivo de los neumáticos, ya que las dos ruedas delanteras girarían el mismo ángulo, pero estarían girando respecto a puntos distintos [16]. Para conseguir este funcionamiento, se han buscado chasis que ofrezcan esta característica a un coste reducido y que permitan acoplar la Raspberry y los demás sensores necesarios. Se han planteado dos opciones: comprar un chasis o imprimir uno. Figura 18. Esquema principio de Ackermann [16] 27 En primer lugar, está el kit de chasis compuesto por la base, dos motores DC para las ruedas traseras, 4 ruedas, y un servomotor para controlar las ruedas delanteras. Este kit incluye, como se muestra en la figura 19, un soporte para 4 baterías AA, que serán necesarias para alimentar a los motores. Sobre este chasis se pueden montar tanto el sensor ultrasónico como el infrarrojo del sigue-líneas. Además, se colocarán la Raspberry Pi, el controlador de motores DRV 8835 y la batería que alimenta a la Raspberry. La dificultad añadida radica en que ahora el movimiento de giro es más complejo, al tener un servomotor que hace la función de volante, y puede girar diferentes ángulos. Las ruedas traseras funcionarán de manera similar a como lo hicieron en los primeros niveles de este curso de robótica, dirigidas por el controlador de motores, y moviéndose siempre en este caso simultáneamente, bien hacia delante o hacia detrás. El servomotor utilizado es el Futaba S300. Tiene 3 cables de salida: el amarillo o blanco, correspondiente a la señal, irá conectado a un pin GPIO configurado como salida PWM, que será el encargado de indicar el ángulo a girar; el rojo que va a conectado a 5V, y el negro o marrón que se corresponde con la tierra (GND). Figura 19. Chasis del vehículo con servomotor. 28 Para su programación en Scratch, se dispone de un comando para el control de servomotores: servo + pin del servo + % + [-100…100] en función de la posición del servo que se considera alcanzar. Por ejemplo, servo15%0, indica que el servo, cuyo pin PWM es el 15, está en la posición 0, siendo 0 la posición neutra del servo [13]. Este comando se utiliza, como la gran mayoría en este proyecto, dentro del bloque enviar a todos. Para poder controlar el ángulo se ha desarrollado un pequeño programa, reflejado en la figura 20. En primer lugar, se ha creado una variable ángulo, la cual se inicializa siempre en el valor 0. Esta variable se va incrementando o reduciendo en valores de 10 con las teclas derecha e izquierda, respectivamente. Finalmente, para cada caso del ángulo deseado entre las posiciones -30 y 30 (las que permite el montaje del chasis), se manda la señal al servomotor de colocarse en esa posición. Figura 20. Código del servomotor en Scratch 29 Para el avance y retroceso del vehículo se han utilizado los mismos bloques que en la primera parte de este curso de robótica educativa, controlados con las flechas arriba y abajo, respectivamente. Con esto ya somos capaces de controlar el movimiento del vehículo de forma remota. Finalmente, se pueden añadir el sensor ultrasónico o el del seguidor de líneas, junto con su correspondiente código del programa de Scratch. En el caso de este proyecto, se han utilizado el sensor ultrasónico y el zumbador, indicando mediante pitidos la proximidad de objetos respecto a la parte delantera del vehículo. Como opción alternativa se ha llevado a cabo la impresión de un chasis en 3D. La impresión 3D, además de las facilidades y posibilidades que proporciona este proceso de fabricación, ofrece numerosas ventajas en el campo de la educación: fomentan la creatividad, así como la capacidad de resolución de problemas, ya que pueden transformar en objetos reales las ideas de los alumnos; capta el interés de los estudiantes, ya que estos pueden aprender de una manera más práctica y ver el resultado de sus diseños; y facilita la labor del profesor, entre otras cosas [17]. Figura 21. Montaje del chasis 3D por parte de un alumno 30 El chasis elegido es un diseño disponible en Thingiverse [18], que se muestra en la figura 21. A pesar de que este chasis se ha diseñado para llevar una placa de Arduino, también se puede montar una Raspberry Pi sobre él. Si bien es cierto que, al disponer de la posibilidad de usar impresoras 3D, la impresión 3D ha sido más barata que comprar un kit de chasis completo, al precio de esta opción habría que añadir la compra del resto de componentes, los cuales no se pueden imprimir, además de la incertidumbre de si se podrán conseguir en el plazo de tiempo marcado. Debido a esto, se decidió comprar el kit de chasis citado en primer lugar, y de manera paralela, comenzar la impresión y montaje de este chasis 3D. El programa para este chasis sería similar al utilizado para el chasis comprado, ya que el funcionamiento tanto de los motores traseros como del servomotor es similar en ambos chasis. 31 4. RESULTADOS DEL CURSO Para comprobar la adecuación de este curso de robótica educativa, se ha realizado una prueba en 3 alumnos de Secundaria, de 2º, 3º y 4º curso. Esta prueba ha consistido en 4 sesiones de unas 2 horas de duración, en las que se han explicado en primer lugar las nociones básicas de cada etapa del proyecto, y en la que finalmente los alumnos han realizado el montaje de los componentes y la programación en Scratch, siendo corregidos sus errores y comentando las diferentes posibilidades elegidas. Al principio de la primera sesión se ha llevado a cabo una breve en cuesta de conocimientos previos anónima, en la que se pedía a los alumnos que valoraran del 1 al 5 distintos aspectos de su formación en destrezas tecnológicas, siendo uno muy poco y 5 mucho, además de otras preguntas sobre sus expectativas sobre el curso, quedando reflejadas en la tabla 3. TABLA 3. RESULTADOS DE LA ENCUESTA PREVIA AL CURSO Encuesta 1 2 3 Conocimientos en electrónica 2 2 2 Tiempo dedicado en clase a la electrónica 4 4 3 Conocimientos en programación 1 3 1 Tiempo dedicado en clase a la programación 2 4 2 ¿Te gustaría estudiar algo relacionado con la ingeniería o las tecnologías? Sí Sí Sí ¿Qué esperas de este curso? Aprender las bases de programación Aprender sobre programación y electrónica Aprender a programar 32 ¿Sabes de la existencia del algún curso similar a este? No No No A continuación, se han explicado los comandos básicos de Scratch, haciendo especial hincapié en la función enviar a todos, y el funcionamiento de los pines GPIO como entradas o salidas digitales y el PWM, con breves ejemplos ilustrativos. Finalmente, se ha creado el circuito del sensor ultrasónico y el zumbador y se ha añadido la cámara, creando la parte del programa correspondiente a estos componentes y comprobando su correcto funcionamiento. En la segundasesión, se ha explicado el funcionamiento de los controles DC, así como estos se manejan gracias al controlador de motores; y se ha llevado a cabo el montaje y programación de los mismos. Finalmente, se ha hecho el montaje completo con lo desarrollado en la primera sesión, terminando así la primera parte del proyecto, creando tanto el programa del vehículo dirigido como el del autónomo. En la tercera sesión se ha llevado a cabo el montaje y programación del robot sigue- líneas. Para motivarlos a esforzarse al máximo, se ha enfocado como una competición entre todos, en la que el ganador será aquel cuyo programa haga que el robot tarde menos en dar una vuelta al circuito. En primer lugar, se ha explicado el funcionamiento del sensor infrarrojo y se han dado nociones básicas sobre el código a desarrollar, dando libertad a cada uno de desarrollar su programa de la manera que se haya considerado más adecuada. En la cuarta y última sesión, se ha explicado el funcionamiento del servomotor, así como los comandos necesarios para su programación en Scratch. Finalmente, se ha pedido a los alumnos que montaran en sensor ultrasónico y el zumbador en el chasis con el servo, y que lo programaran para un funcionamiento a control remoto desde el ordenador, en el que fuera posible controlar el ángulo de giro del vehículo. Tras terminar todas las sesiones, se ha realizado una segunda encuesta de evaluación, anónima también, en la que se han recogido las valoraciones y opiniones respecto a los conocimientos adquiridos y al propio curso de robótica educativa realizado. Estas respuestas quedan recogidas en la tabla 4. 33 TABLA 4. ENCUESTA FINAL CURSO ROBÓTICA Encuesta 1 2 3 Valora lo que has aprendido en electrónica 4 3 4 Valora lo aprendido en programación 4 4 4 Valora la adecuación del curso de robótica a tu nivel académico (1 muy fácil, 3 perfecto, 5 muy difícil) 3 4 4 ¿Te apuntarías a otro curso similar? Sí Sí Sí ¿Han aumentado tus ganas de estudiar algo relacionado con tecnologías? Sí Sí Sí ¿Qué es lo que más te ha gustado del curso? Aprender a usar el detector infrarrojo Hacer el seguidor de líneas Programar en Scratch 34 5. PLANIFICACIÓN Y ENTORNO SOCIO-ECONÓMICO 5.1. Planificación La planificación de este proyecto a sido determinante para poder realizarlo de manera satisfactoria y eficiente. Aunque en un primer momento se consideró la posibilidad de presentar el proyecto en la convocatoria de julio, siempre se consideró la convocatoria de septiembre como la más adecuada para poder compaginar las asignaturas pendientes con el proyecto, eligiendo finalmente esta opción. De esta manera, se realizó una planificación la cual seguir, mostrada en la figura 22, siendo esta flexible con los imprevistos que pudieran surgir y con el resto de actividades del curso. Durante el desarrollo del proyecto se han encontrado dificultades que han puesto en peligro el cumplimiento del calendario marcado. Entre ellas destacan los largos periodos de espera de algunos componentes, de hasta 4 semanas, los parones por exámenes y otros problemas relacionados con problemas con el hardware y el software que paralizaron durante un tiempo el desarrollo del proyecto. Estos problemas se han solucionado gracias a una correcta distribución de tareas, identificando qué se podía empezar en cada momento y dando prioridad a las tareas que Figura 22. Planificación del proyecto hecha con Tom's Planner 35 más tarde podían requerir un parón (necesidad de un nuevo componente, dudas en el programa, …), evitando así retrasos innecesarios. 5.2. Entorno socioeconómico Dentro de esta sección se analizarán los gastos de cada fase y el presupuesto total, así como impacto que el proyecto o su explotación puedan tener económicamente, en la sociedad y en el medioambiente. 5.2.1. Presupuesto En cada fase del proyecto se han producido una serie de gastos que quedan reflejados en la siguiente lista. • Fase inicial: en esta etapa solo hemos tenido el gasto en luz del ordenador. Las horas empleadas estimadas han sido 50h. • Partes del proyecto con el chasis de 2 ruedas. En este caso, hay que contabilizar el chasis, la Raspberry Pi, la cámara, la batería, las pilas, los cables, tornillos, el sensor de distancia, el sensor de infrarrojos, el zumbador, la protoboard, y la energía consumida tanto por la Raspberry Pi como por el ordenador durante las 100 horas estimadas para esta fase. También hay que añadir el coste de las piezas impresas en 3D para el soporte. • Partes del proyecto con el chasis con el servomotor. En este caso hay que añadir el coste del kit del chasis con servomotor, por un lado, y el coste de impresión en 3D del otro chasis, más sus tornillos y rodamientos, por otro. Si bien es cierto que de estas dos opciones se podía haber elegido solo una para abaratar costes, para el presupuesto se tendrán en cuenta las 2. Para el consumo de energía del ordenador y la Raspberry se estipularán 75 horas. • Para el curso de robótica educativa simplemente se contabilizan 25 horas de consumo de ordenador y Raspberry, incluyendo las horas con alumnos como la preparación de las sesiones. • Finalmente, para el desarrollo de la memoria y la presentación se han empleado 100 horas, utilizando para ello solo el ordenador. 36 Dentro de estos gastos, hay muchos materiales que son reutilizables en las distintas etapas, como la Raspberry Pi, la batería, o los cables. Además, hay que añadir los costes de mano de obra, considerada en 20€/h, y los correspondientes a la amortización del ordenador utilizado, que se ha considerado en 0,1. Todos los gastos quedan recogidos en la tabla 5. En cuanto a la impresora 3D, se han valorado tanto el material, amortización de máquinas y tiempo de trabajo empleado en imprimir las piezas en 50€. El consumo del ordenador se aproxima a 90W, y el de la Raspberry a 1,8W, dando 31,5kWh y 0,36kWh respectivamente, en total 31,86kWh. TABLA 5. PRESUPUESTO Cantidad Coste Total Horas de trabajo 350 20€/h 7000€ Amortización del ordenador 0,1 700€ 70€ Raspberry Pi 1 35€ 35€ Chasis robot 2 motores 1 9,68 9,68 Chasis robot con servo 1 15,36€ 15,36€ Impresión 3D 50€ 50€ Cámara para Raspberry Pi 1 27,90€ 27,90€ Batería POWERADD 1 19,99€ 19,99€ Pilas AA 4 1,50€/4uds 1,50€ Controlador de motores 2 9,90€ 19,80€ Rodamientos 2 lotes 7,11€ + 8,80€ 15,91€ Cables 3 lotes 1,9 + 11,5 + 11,5 24,90€ 37 Tornillos 1 kit de surtido 27,50€ 27,50€ Sensor ultrasónico 1 2,40€ 2,40€ Sensor infrarrojo 1 8,95€ 8,95€ Zumbador 1 0,25€ 0,25€ Protoboard 1 6,99€/6uds 1,17€ Resistencias 3 0,20€ 0,60€ Electricidad 31,86kWh 0,139€/kWh 4,43€ SUBTOTAL 7335,34€ IVA 21% 1540,42€ TOTAL 8,875,76€ 5.2.2. Impacto socio - económico El impacto que este proyecto puede tener ha sido analizado desde distintos puntos de vista: económico, social y ético. Por un lado, el impacto económico sería bastante negativo. El coste total de 8,875€, hace complicado recuperar la inversión, al menos a corto plazo. El el curso, a modo de actividad extracurricular, se podría cobrar a unos 50€/alumno. Considerando que la inversión en material se podría amortizar con el tiempo, a largo plazo se podría recuperar la inversión con un número elevado de alumnos. Por otro lado, en el entorno social, este curso ofrecería la posibilidad de una mayor formación de los más jóvenes en programación y robótica, lo que les ayudaría en un futuro profesional ligado a las tecnologías. Este aspecto es especialmente destacable en las zonas más rurales, donde el acceso a la formación en estas destrezas es más complicado, reduciendo así las desigualdades que esto genera. 38 En cuanto al entorno ético, en este curso se fomentarían valores como el esfuerzo, la inclusión o el trabajo en equipo, lo que contribuiría a laeducación en valores de los alumnos. 39 6. CONCLUSIONES 6.1. Análisis de resultados Para una completa valoración de los resultados del curso de robótica educativa y del proyecto en general, se han llevado a cabo diferentes formas de evaluación. En cuanto al curso de robótica educativa, los resultados se pueden valorar en el desempeño de los alumnos, los conocimientos que han adquirido en el curso, y su desempeño durante el mismo. Estos indicadores se han intentado conseguir, entre otras maneras, con las encuestas de evaluación. Estas breves preguntas pretenden recoger el sentir de los alumnos respecto al curso, con el objetivo de utilizar estas opiniones para mejorar el curso de robótica de cara al futuro, adaptarlo a los diferentes niveles e incluso poder decidir futuras expansiones. Analizando los resultados de estas encuestas, el curso ha resultado satisfactorio para todos los alumnos, por lo que se considera un éxito la prueba realizada en esa pequeña muestra de tres alumnos. En la parte respectiva al proyecto, la mejor manera de conocer si los resultados son los esperados es mirar el cumplimiento de los objetivos marcados al principio del proyecto: • Se ha conseguido crear un curso de robótica educativa, en el que a lo largo de diferentes etapas se han explicado los conceptos de electrónica y programación necesarios para la realización del curso, teniendo estas etapas un trasfondo global y de unidad, guardando una estrecha relación entre todas ellas, y siendo complementarias unas de otras. • Si bien el presupuesto es muy elevado, el coste de la materia prima es relativamente barato. El uso de técnicas como la impresión 3D, así como la reutilización de componentes en diferentes proyectos, lo hace más accesible económicamente. • El nivel del curso se ha adaptado a los alumnos, teniendo en cuenta sus diferencias en cuanto a conocimientos previos y capacidades, dando una atención personalizada a cada uno con el objetivo de un máximo aprovechamiento del curso. También se ha valorado su opinión con las encuestas de evaluación anteriormente mencionadas. 40 Teniendo en cuenta todo esto, se puede decir que se han cumplido de una manera aceptable los objetivos marcados para este proyecto. 6.2. Valoración personal En el aspecto personal, este proyecto ha servido para completar mi formación académica en habilidades como la búsqueda de información y la expresión escrita, entre otras. Por otro lado, ha aumentado mis conocimientos en el campo de los microprocesadores, especialmente sobre la Raspberry Pi, así como en la variedad de periféricos que hay, y los softwares disponibles, entre los que he descubierto las numerosas posibilidades que ofrece Scratch, especialmente en aquellas personas que se están iniciando en la programación. Finalmente, he aprendido mucho de la experiencia del curso de robótica, poniéndome del lado del profesor en esta ocasión, y descubriendo el trabajo que esto requiere y la recompensa que se obtiene al ver el resultado en los alumnos. Poniendo todo en conjunto, estoy satisfecho con el TFG realizado, tanto con la temática elegida como con el desempeño durante el proyecto. 6.3. Futuras líneas de desarrollo Este curso de robótica educativa se podría ampliar por diferentes vías, las cuales permitirían un mayor aprovechamiento de los recursos utilizados y llevarían a los alumnos a profundizar más en los conceptos aprendidos. Entre estas posibles líneas de desarrollo futuro, se encuentran: • Trabajar con la interacción entre varios vehículos inteligentes, y no sólo de un vehículo con su entorno. Esto provocaría un entorno más cambiante e impredecible, a la vez que una situación más parecida a la realidad. • Avanzar en el uso de la cámara de la Raspberry Pi, como en aplicaciones de visión artificial capaces de identificar los objetos del entorno. Esta vía de desarrollo sería complicada de llevar a cabo en Scratch, por lo que correspondería a un nivel de programación superior al del curso de robótica realizado. 41 • Añadir diferentes sensores y periféricos, así como utilizar otros chasis que permitan expandir los horizontes de posibles aplicaciones y movimientos del robot, reduciendo sus limitaciones. 42 7. BIBLIOGRAFÍA [1] McKinsey Global Institute, "Jobs lost, jobs gained: workforce transitions in a time of automation", 2017. [2] Ministerio de Educación y Formación Profesional, "Programación, robótica y pensamiento computacional en el aula", 2018. [3] Informe jurídico cámaras on board. Agencia española de protección de datos, 2016. Disponible en: https://www.aepd.es/media/informes/informe-juridico-rgpd-camaras-on- board.pdf. [4] C. González Hernando, "Qué beneficios que aporta la robótica a los niños", Guiainfantil.com, 2019. [En línea]. Disponible en: https://www.guiainfantil.com/articulos/educacion/aprendizaje/que-beneficios-que- aporta-la-robotica-a-los-ninos/. [Acceso: 11 de mayo de 2019]. [5]"Zowi, el robot de Clan", Zowi.bq.com, 2019. [En línea]. Disponible en: http://zowi.bq.com/es/. [Acceso: 11 de mayo de 2019]. [6] "Ideas para aplicar la robótica en Secundaria", Innovando en Educación, 2017. [En línea]. Disponible en: http://www.innovandoeneducacion.es/ideas-aplicar-la-robotica- secundaria/. [Acceso: 11 de mayo de 2019]. [7]"Cursos de Robótica para Secundaria | Robótica Educativa Logix5", Logix5.com, 2019. [En línea]. Disponible en: https://www.logix5.com/roboticaeducativa/services- item/cursos-de-robotica-para-secundaria/. [Acceso: 11 de mayo de 2019]. [8] Y. FM, "Qué es Arduino, cómo funciona y qué puedes hacer con uno", Xataka.com, 2018. [En línea]. Disponible en: https://www.xataka.com/basics/que-arduino-como- funciona-que-puedes-hacer-uno. [Acceso: 18 de mayo de 2019]. [9] A. Pascual, "Dos millones de razones para saber exactamente qué es Raspberry Pi", El Confidencial, 2013. [10] "Setting up your Raspberry Pi", 2019. [En línea]. Disponible en: https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up. [Acceso: 15 de junio de 2019]. https://www.aepd.es/media/informes/informe-juridico-rgpd-camaras-on-board.pdf https://www.aepd.es/media/informes/informe-juridico-rgpd-camaras-on-board.pdf https://www.guiainfantil.com/articulos/educacion/aprendizaje/que-beneficios-que-aporta-la-robotica-a-los-ninos/ https://www.guiainfantil.com/articulos/educacion/aprendizaje/que-beneficios-que-aporta-la-robotica-a-los-ninos/ http://zowi.bq.com/es/ http://www.innovandoeneducacion.es/ideas-aplicar-la-robotica-secundaria/ http://www.innovandoeneducacion.es/ideas-aplicar-la-robotica-secundaria/ https://www.logix5.com/roboticaeducativa/services-item/cursos-de-robotica-para-secundaria/ https://www.logix5.com/roboticaeducativa/services-item/cursos-de-robotica-para-secundaria/ https://www.xataka.com/basics/que-arduino-como-funciona-que-puedes-hacer-uno https://www.xataka.com/basics/que-arduino-como-funciona-que-puedes-hacer-uno https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up 43 [11] M. Abellán, "¿Qué es GPIO? - Control de GPIO con Python en Raspberry Pi", Pogramo Ergo Sum, 2019. [En línea]. Disponible en: https://www.programoergosum.com/cursos-online/raspberry-pi/238-control-de-gpio- con-python-en-raspberry-pi/que-es-gpio. [Acceso: 20 de junio de 2019]. [12] "Pololu DRV8835 Dual Motor Driver Kit for Raspberry Pi", Pololu.com, 2019. [En línea]. Disponible en: https://www.pololu.com/product/2753. [Acceso: 20 de junio de 2019]. [13] "GPIO in Scratch 1.4 - Raspberry Pi Documentation", Raspberrypi.org, 2019. [En línea]. Disponible en: https://www.raspberrypi.org/documentation/usage/gpio/scratch1/README.md. [Acceso: 21 de junio de 2019]. [14] QTR-8A and QTR-8RC Reflectance Sensor Array User's Guide. 2014, p. Pololu Corporation. [En línea]. Disponible en: https://www.pololu.com/docs/pdf/0J12/QTR- 8x.pdf. [15]"QTR-8A (RC) line sensorbracket for robots", Thingiverse.com, 2019. [En línea]. Disponible en: https://www.thingiverse.com/thing:30516. [Acceso: 1 de julio de 2019]. [16] lestrat, "Técnica: Dirección – Principio de Ackermann", Decarreteres.com, 2015. [En línea]. Disponible en: https://decarreteres.com/2015/12/20/condicion-ackermann/. [Acceso: 3 de julio 2019]. [17] "Los beneficios de las impresoras 3D en la enseñanza", Mundo Digital. [En línea]. Disponible en: http://www.mundodigital.net/los-beneficios-de-las-impresoras-3d-en-la- ensenan. [18] "4WD RC Smart Car Chassis for Arduino (or ESP)", Thingiverse.com, 2019. [En línea]. Disponible en: https://www.thingiverse.com/thing:2575467. [Acceso: 27 de julio de 2019]. https://www.programoergosum.com/cursos-online/raspberry-pi/238-control-de-gpio-con-python-en-raspberry-pi/que-es-gpio https://www.programoergosum.com/cursos-online/raspberry-pi/238-control-de-gpio-con-python-en-raspberry-pi/que-es-gpio https://www.programoergosum.com/cursos-online/raspberry-pi/238-control-de-gpio-con-python-en-raspberry-pi/que-es-gpio https://www.pololu.com/product/2753 https://www.pololu.com/product/2753 https://www.raspberrypi.org/documentation/usage/gpio/scratch1/README.md https://www.raspberrypi.org/documentation/usage/gpio/scratch1/README.md https://www.pololu.com/docs/pdf/0J12/QTR-8x.pdf https://www.pololu.com/docs/pdf/0J12/QTR-8x.pdf https://www.pololu.com/docs/pdf/0J12/QTR-8x.pdf https://www.pololu.com/docs/pdf/0J12/QTR-8x.pdf https://www.thingiverse.com/thing:30516 https://www.thingiverse.com/thing:30516 https://decarreteres.com/2015/12/20/condicion-ackermann/ https://decarreteres.com/2015/12/20/condicion-ackermann/ http://www.mundodigital.net/los-beneficios-de-las-impresoras-3d-en-la-ensenan http://www.mundodigital.net/los-beneficios-de-las-impresoras-3d-en-la-ensenan http://www.mundodigital.net/los-beneficios-de-las-impresoras-3d-en-la-ensenan http://www.mundodigital.net/los-beneficios-de-las-impresoras-3d-en-la-ensenan https://www.thingiverse.com/thing:2575467 https://www.thingiverse.com/thing:2575467
Compartir