1 00:00:28,589 --> 00:00:35,090 Este proyecto representa la culminación del aprendizaje progresivo en la programación y montaje de robots móviles con Arduino. 2 00:00:35,909 --> 00:00:41,549 El reto consiste en que el robot, gracias a dos sensores de infrarrojos digitales instalados en su base, 3 00:00:41,990 --> 00:00:46,590 sea capaz de detectar líneas negras sobre una superficie blanca y seguirlas de forma autónoma. 4 00:00:47,810 --> 00:00:52,969 Durante cinco sesiones, el alumnado aplicará conceptos clave como la lectura digital de sensores, 5 00:00:52,969 --> 00:00:58,270 las estructuras condicionales, el control de motores y la toma de decisiones en tiempo real. 6 00:00:58,590 --> 00:01:07,310 El desarrollo progresivo de este proyecto permitirá pasar de pruebas individuales de los sensores hasta la integración total de un comportamiento reactivo real. 7 00:01:08,189 --> 00:01:17,329 Además, se profundiza en estrategias de navegación básicas que simulan sistemas reales de automatización en la industria, como líneas de montaje o robots logísticos. 8 00:01:18,530 --> 00:01:19,129 Objetivos 9 00:01:19,129 --> 00:01:25,569 Comprender el principio de funcionamiento de sensores infrarrojos digitales para la detección de contraste. 10 00:01:25,569 --> 00:01:32,469 Interpretar correctamente señales digitales leídas desde sensores conectados a pines digitales de la placa Arduino 11 00:01:32,469 --> 00:01:37,890 Programar el comportamiento condicional del robot en función de las señales recibidas 12 00:01:37,890 --> 00:01:43,450 Construir un comportamiento siguelíneas robusto y ajustado a trayectorias reales 13 00:01:43,450 --> 00:01:49,129 Desarrollar una estructura física adecuada para mantener el contacto óptico con el suelo 14 00:01:50,069 --> 00:01:54,170 Promover el análisis y ajuste del código para mejorar la precisión del sistema 15 00:01:54,170 --> 00:02:02,209 competencias competencia digital programación de robots lectura de sensores desarrollo de 16 00:02:02,209 --> 00:02:08,330 comportamiento autónomo competencia matemática y tecnológica comprensión de la lógica binaria 17 00:02:08,330 --> 00:02:14,750 toma de decisiones mediante condicionales competencia en aprender a aprender mejora 18 00:02:14,750 --> 00:02:21,409 iterativa prueba error auto evaluación de resultados sentido de la iniciativa desarrollo 19 00:02:21,409 --> 00:02:27,669 de estrategias propias para seguir trayectorias. Conciencia en sostenibilidad, comprensión de cómo 20 00:02:27,669 --> 00:02:38,099 la automatización puede optimizar procesos en la vida real. En esta primera sesión, los estudiantes 21 00:02:38,099 --> 00:02:43,900 montan la estructura completa del robot. Este montaje incluye la base móvil, las ruedas, 22 00:02:44,180 --> 00:02:50,379 los motores y, sobre todo, la correcta ubicación de los dos sensores de infrarrojos. Se presta 23 00:02:50,379 --> 00:02:55,020 especial atención a que los sensores queden paralelos al suelo, con una separación adecuada 24 00:02:55,020 --> 00:02:59,620 entre ellos que permita detectar con claridad el contraste de una línea negra sobre una superficie 25 00:02:59,620 --> 00:03:07,060 blanca. Además del montaje mecánico, se realiza el cableado de los sensores, señal, VCC y GND, 26 00:03:07,520 --> 00:03:12,460 conectándolos correctamente a los pines digitales y a la alimentación de la placa Arduino Uno R4 27 00:03:12,460 --> 00:03:18,180 Wi-Fi. Al finalizar la sesión, se comprueba que los motores giran correctamente y que los 28 00:03:18,180 --> 00:06:59,279 sensores emiten señal digital al detectar diferentes colores en el suelo. Esta sesión 29 00:06:59,279 --> 00:07:04,459 permite al alumnado reforzar la comprensión del montaje físico de un sistema electrónico real y 30 00:07:04,459 --> 00:07:14,230 adquirir habilidades prácticas fundamentales en proyectos de robótica educativa. Una vez que el 31 00:07:14,230 --> 00:07:20,189 robot está montado, se inicia la sesión con la lectura de los sensores de línea. Estos sensores 32 00:07:20,189 --> 00:07:26,189 digitales nos dan una lectura de 1-0 dependiendo del color que detectan en el suelo. El alumnado 33 00:07:26,189 --> 00:07:31,189 aprende a utilizar el monitor serie para comprobar estas lecturas, observando cómo varían al pasar 34 00:07:31,189 --> 00:07:37,069 de una superficie blanca a una línea negra. También se explican conceptos como el comportamiento 35 00:07:37,069 --> 00:07:42,149 de la luz infrarroja, el contraste, y cómo el robot puede diferenciar entre zonas a partir 36 00:07:42,149 --> 00:07:47,709 de estos valores. Se realizan varias pruebas colocando el robot en diferentes posiciones 37 00:07:47,709 --> 00:07:51,910 sobre el campo de pruebas para verificar que la lectura de ambos sensores es estable y 38 00:07:51,910 --> 00:07:57,189 fiable. En el programa de la sesión 2 se define la lectura de dos sensores digitales 39 00:07:57,189 --> 00:08:03,569 conectados a pines digitales del Arduino, típicamente de 2 y de 3. Primero, en la función 40 00:08:03,569 --> 00:08:08,069 Setup, configuramos los pines como entradas mediante pin Mode y abrimos el puerto serie 41 00:08:08,069 --> 00:08:15,290 con serial Behin 9600. Luego, en la función Loop, realizamos una lectura de los sensores 42 00:08:15,290 --> 00:08:21,209 utilizando Digital Read y almacenamos los resultados en variables. Cada lectura se imprime 43 00:08:21,209 --> 00:08:26,430 por el monitor serie usando Serial, Print y Serial, Print LN, para poder comprobar que 44 00:08:26,430 --> 00:08:32,470 valor genera cada sensor cuando detecta blanco o negro. Este programa es esencial para entender 45 00:08:32,470 --> 00:08:38,429 si nuestros sensores están bien colocados, conectados y funcionando correctamente. Permite 46 00:08:38,429 --> 00:08:42,950 además calibrar el comportamiento de lectura antes de pasar a la programación reactiva del robot. 47 00:08:55,490 --> 00:09:00,830 En esta sesión, se programa el primer comportamiento reactivo del robot, avanzar mientras no detecte 48 00:09:00,830 --> 00:09:06,210 una línea negra y detenerse en cuanto uno de los sensores lo haga. Se explica cómo usar 49 00:09:06,210 --> 00:09:11,129 estructuras condicionales simples para ejecutar esta acción, y se realizan pruebas colocando 50 00:09:11,129 --> 00:09:16,470 una línea negra en el trayecto del robot. El alumnado debe ajustar los valores de lectura 51 00:09:16,470 --> 00:09:22,470 y comprobar que el robot responde con precisión. Esta acción simula una parada ante un obstáculo 52 00:09:22,470 --> 00:09:28,409 o una zona de seguridad. Este programa utiliza condicionales IF para determinar si los sensores 53 00:09:28,409 --> 00:09:34,370 detectan una línea negra. Si ambos sensores detectan blanco, el robot avanza gracias al 54 00:09:34,370 --> 00:09:38,830 envío de señales a los pines del controlador de motores, haciendo que las ruedas giren hacia 55 00:09:38,830 --> 00:09:43,769 adelante. En el momento en que cualquiera de los sensores detecta una línea negra, 56 00:09:44,090 --> 00:09:49,309 el programa activa los pines que detienen ambos motores. Esto se consigue escribiendo 57 00:09:49,309 --> 00:09:54,870 un estado logo desconectando los pines de dirección. El objetivo de este programa es 58 00:09:54,870 --> 00:09:59,269 enseñar cómo los sensores pueden controlar directamente el movimiento del robot dependiendo 59 00:09:59,269 --> 00:10:09,279 del entorno. En esta sesión se programa al robot para que explore un área delimitada por líneas 60 00:10:09,279 --> 00:10:14,919 negras. Se define un comportamiento que permita al robot desplazarse mientras ambos sensores 61 00:10:14,919 --> 00:10:20,980 detecten blanco, pero que reaccione rápidamente cuando uno de los sensores detecte negro. La 62 00:10:20,980 --> 00:10:26,539 reacción consiste en girar o retroceder para mantenerse dentro del perímetro. El alumnado 63 00:10:26,539 --> 00:10:31,259 prueba distintos movimientos de evasión al tocar el borde y trabaja en la estabilidad del sistema 64 00:10:31,259 --> 00:10:36,840 mediante la revisión de los tiempos y ajustes del código. Es una excelente oportunidad para 65 00:10:36,840 --> 00:10:41,360 entender cómo los sensores pueden ayudar a un robot a tomar decisiones que le mantengan dentro 66 00:10:41,360 --> 00:10:48,500 de un área segura o delimitada. En esta ocasión el código se vuelve más sofisticado. El robot 67 00:10:48,500 --> 00:10:54,299 sigue avanzando mientras ambos sensores detecten blanco. Pero cuando uno de los sensores detecta 68 00:10:54,299 --> 00:10:59,320 negro, el robot ejecuta un comportamiento de evasión. Si el sensor izquierdo detecta negro, 69 00:10:59,320 --> 00:11:06,320 el robot gira hacia la derecha, si es el derecho, gira a la izquierda. Estos movimientos se programan 70 00:11:06,320 --> 00:11:12,240 con pequeñas pausas y controlando la dirección de los motores. Se aplican funciones auxiliares 71 00:11:12,240 --> 00:11:16,820 como girar derecha o girar izquierda y se trabajan las transiciones suaves entre un 72 00:11:16,820 --> 00:11:21,240 comportamiento y otro para mantener al robot dentro de un espacio delimitado por líneas negras. 73 00:11:26,460 --> 00:11:30,679 La última sesión del proyecto consiste en implementar el comportamiento completo de 74 00:11:30,679 --> 00:11:36,639 sigue líneas. Aquí el alumnado debe hacer que el robot se mantenga sobre una línea negra avanzando 75 00:11:36,639 --> 00:11:42,940 de forma continua, corrigiendo su trayectoria si se desvía. Se analiza cómo reaccionar cuando uno 76 00:11:42,940 --> 00:11:49,340 u otro sensor detecta blanco, ajustando el giro de las ruedas. Este desafío requiere un alto grado 77 00:11:49,340 --> 00:11:53,779 de precisión tanto en la lectura como en la actuación y representa el cierre ideal para un 78 00:11:53,779 --> 00:11:59,659 proyecto de navegación autónoma. En el programa final se implementa un algoritmo sigue líneas. 79 00:12:00,679 --> 00:12:04,899 El código evalúa todas las combinaciones posibles de lectura de los dos sensores. 80 00:12:06,159 --> 00:12:09,539 Cuando ambos sensores detectan negro, el robot avanza recto. 81 00:12:10,720 --> 00:12:15,860 Si uno detecta blanco, el robot corrige girando hacia el lado opuesto para volver a centrar la línea. 82 00:12:17,159 --> 00:12:21,019 Esto se consigue variando el tiempo de activación de los motores o sus direcciones. 83 00:12:21,980 --> 00:12:29,059 Además, se introducen condiciones que permiten al robot recuperar la línea si la pierde, aplicando giros compensatorios. 84 00:12:29,059 --> 00:12:36,240 El código se estructura en bloques muy claros y el uso de funciones ayuda a mantener la limpieza y legibilidad del programa. 85 00:12:37,399 --> 00:12:42,220 Es un excelente ejemplo de programación reactiva y del uso de sensores en robótica educativa. 86 00:12:43,500 --> 00:12:44,639 Criterios de evaluación 87 00:12:44,639 --> 00:12:49,159 Comprende y aplica correctamente el montaje físico de sensores. 88 00:12:50,460 --> 00:12:54,159 Lee adecuadamente señales digitales y las interpreta con sentido lógico. 89 00:12:54,159 --> 00:12:59,259 Programa el robot para comportarse de forma reactiva ante estímulos del entorno 90 00:12:59,259 --> 00:13:03,620 Implementa estrategias de navegación y corrección con precisión 91 00:13:03,620 --> 00:13:09,039 Ajusta y mejora el código en función de los resultados obtenidos en pruebas reales