2. Listos Módulos electrónicos En esta sección vamos a aprender los módulos que están integrados en la placa: Botón Led RGB Buzzer Sensor Infrarrojos Sensor de luz Fuente : Modificado de http://makeblock.es Botón RETO Realizar un programa que salga un mensaje al apretar el botón de mBot. Solución Con mBlock5 puedes utilizar o el código de la derecha o el de la izquierda Utilizaremos la técnica VARIABLES GLOBALES, creamos una variable global MENSAJE, ver https://libros.catedu.es/books/robotica-educativa-con-mbot/page/programacion-mblock Y en el objeto oso panda Con mBlock3 era Pregunta tonta: ¿por dónde sale el mensaje? El botón es un elemento de interacción a tener en cuenta, aunque como veremos más adelante es más útil usar el teclado del PC. Siempre es típico que el primer programa en un curso de programación sea un "Hola Mundo" pero lo hemos personalizado LED RGB Los LED que hay montados en la placa permiten poner los 3 colores básicos a distintas tonalidades, desde 0 hasta 255 , que podemos mezclar RETO Realizar un programa que al apretar en el teclado.. * 'a' se encienda el rojo * 's' se encienda el verde * 'd' se encienda el azul Solución En mBlock5 lo tienes aquí https://planet.mblock.cc/project/3261360 En mBlock3 Ahora usa el teclado de tu ordenador, pulsa las teclas  a s y d ¿No funciona? Puede ser que mBot se quede enganchado con algún código anterior, y no lo tengas en modo VIVO Buzzer Este simpático zumbador nos da algo de juego, podemos cambiar la nota como la duración, vamos a probarlo: Reto Realizar una sirena, es decir, que suene un tono un segundo por ejemplo, y otro tono diferente durante otro segundo, y así sin parar. Para complicarlo más, sólo hará la sirena si pulsamos la tecla espacio . Para pararlo hay que pulsar el círculo rojo que hay al lado de la bandera. Solución En mBlock5 lo tienes aqui https://planet.mblock.cc/project/3261365 En mBlock3 Aquí podemos conseguir un tono creciente Y para los más frikis ;) ... De  http://juegosrobotica.es/musica-con-mbot/ Si alguien lo hace, por favor que lo cuelgue en el muro ! Mando a distancia y sensor IR El sensor de IR puede recibir del mando números, letras A-D, flechas y el botón configuración. Ojo: El mando no es exclusivo de un robot, es decir, los demás robots del aula reciben las misma información, lo importante es apuntar el mando a los sensores del robot y no a otro: Fuente: Tutorial de http://makeblock.es Para comprobar si tu mando funciona, es muy fácil (válido para todos los mandos, incluso el de TV) enfoca con tu móvil y aprieta a ver si se enciende la luz. La cámara de los móviles es sensible al IR Reto Vamos que puedes hacerlo bailar !! con el mando a distancia, tienes que controlar sus movimientos, flecha arriba adelante, flecha atrás retrocede.... botón central (el de la rueda dentada) que pare. Solución Con mBlock 5 se puede en vivo o cargar. Lo tienes aquí https://planet.mblock.cc/project/3263253 Con mBlock 3 sólo se puede cargar, no en vivo Sensor Luz El sensor Luz está situado al lado de los de IR, detecta la luz ambiente, pero también hemos experimentado que detecta la infrarroja, por lo que es sensible a la calefacción, y falsea su medida. Fuente: Tutorial de  http://makeblock.es Reto que el panda diga la luz que hay Vamos a creare un programa donde el objeto Panda diga la cantidad de luz que lee. La intención es ver cual es el umbral para realizar el siguiente reto En mBlock5.0 Puedes utilizar la técnica de VARIABLES GLOBALES, que es muy fácil y lo hemos visto y explicado aquí https://libros.catedu.es/books/robotica-educativa-con-mbot/page/programacion-mblock y que sería el programa como este https://libros.catedu.es/books/arduino-con-echidna-y-mblock-scratch/page/el-ldr-en-a5 pero vamos a utilizar en este caso la técnica más sofisticada BROADCAST El programa lo tienes aquí https://planet.mblock.cc/project/3263369 El programa en el dispositivo MBOT (hay que ir al + de abajo, e instalar la extensión BROADCAST) El programa en el dispositivo OSO PANDA (hay que ir al + de abajo, e instalar la extensión BROADCAST) RETO MARCHA NOCTURNA Realizar un programa que si se apaga la luz, el robot ¡¡se pone a dar vueltas!! sino, se queda quieto: Solución Utilizaremos el programa anterior para saber el UMBRAL es decir, qué valor determinamos que hay luz y no hay luz, en nuestro caso por las características del aula, lo fijamos en 500, en tu caso puede ser distinto. En mBlock5.0 lo tienes aquí https://planet.mblock.cc/project/3263444 En mBlock 3.0  Es muy espectacular hacerlo con los alumnos, se deja el aula a oscuras, se encienden todas las luces y todo baila !    No te quedes sólo con darle vueltas El pobre tiene ganas de salir de marcha por la noche: RETO Robot polilla Ya sabemos que las polillas van a la luz: Realizar un programa que si hay luz entonces que vaya recto, si no hay luz que de vueltas Solución En mBlock 5.0 lo tienes aquí https://planet.mblock.cc/project/3263452 Se ha optado por dar un poco de potencia a la otra rueda cuando no hay luz, para que de la vuelta un poco más abierta. Puedes poner simplemente la instrucción girar (a la derecha o a la izquierda) pero si hace la vuelta abierta, va mejor. En mBlock3, y de paso que nos diga el oso la luz Componentes exteriores Componentes exteriores importantes a la hora de programar y que trataremos en este curso son: Sensor de Línea  para utilizarlo por ejemplo como sigue líneas. EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL PUERTO 2. Sensor de distancia por ultrasonidos para utilizarlo por ejemplo como evita-obstáculos. EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL  PUERTO 3. Matriz de leds 8x16 para expresar símbolos y caracteres. Este componente no está en el kit standard mBot , pero sí en el que presta CATEDU . EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL  PUERTO 1. Por favor no cambies los puertos del equipo de préstamo de Catedu Fuente de las imágenes:  http://makeblock.es/ Sensor de línea El sensor de líneas está situado en la parte inferior de mBot: Fuente: Tutorial de  http://makeblock.es Y tiene los siguientes valores: 0 si detecta todo negro (en binario 00) 1 si detecta blanco derecha pero negro a la izquierda (01) 2 al revés (10) 3 si detecta los dos blancos (11) Fuente: Tutorial de  http://makeblock.es Reto, la oveja en su redil Ponemos a mBot en un recuadro blanco con el borde negro, queremos que hagas un programa que no salga nuestro robot del " redil ". Consejo: Poner velocidad baja pues si va rápido se salta la línea. Solución En mBlock 5.0 lo tienes aquí https://planet.mblock.cc/project/3263664 Fíjate que se ha puesto NINGUNO NEGRO de esta manera, en el momento que uno de los sensores detecte negro, dará la media vuelta En mBlock3.0 Si no funciona bien, se salta la línea.. no trabajes en vivo, carga el programa Sensor distancia El sensor de distancia por ultrasonidos nos devuelve por eco la  distancia en cm del objeto que se encuentra enfrente, hasta un máximo de 400 cm Fuente: Tutorial de  http://makeblock.es Reto huir Queremos que hagas un programa que si pongo la mano delante, que se vaya atrás. Por ejemplo a menos de 10cm. Solución En mblock5.0 lo tienes aquí https://planet.mblock.cc/project/3264009 Se ha utilizado una instrucción de MATRIZ LED que veremos a continuación para visualizar la distancia En mBlock 3 Para calibrar, se ha utilizando el Panda que diga la distancia que lee (Instruccion Decir... ). Está realizado el programa con mBlock3.  Fuente: Captura de pantalla mBlock. Programa: el autor. Intenta cogerlo !!! (por delante claro) via GIPHY Matriz Led Con este simpática matriz, tenemos mucho juego, podemos hacer un dibujo, texto, valores numéricos ... y si hacemos dos clicks nos permite poner el gráfico que queramos, incluso guardarlo en favoritos! Reto Realizar un programa como en anterior pero en vez de huir, que sonría. Es decir, si pongo la mano delante sale una cara sonriente. Solución En mBlock 5.0 lo tienes aquí https://planet.mblock.cc/project/3264027 En mBlock3 Qué simpático ¿no? via GIPHY También puede ser que se ponga triste si no se pone la mano ¿No funciona? Puede ser que mBot se quede enganchado con algún código anterior, la solución como siempre ACTUALIZAR FIRMWARE Podemos enviar un texto, con la instrucción show face : Esto envía en las coordenadas 0,0 la palabra CATEDU pero.... ¡¡ SALE CAT !! Claro ! no cabe!! ¿cómo lo hacemos? esto requiere más programación, hay que crear una variable X e ir ¿incrementando o decrementando la coordenada x? vamos a probar decrementando Y ahora incrementando ¿cómo salen las letras CATEDU? A pesar de que las capturas están con mBlock 3.0 con mBlock 5.0 es igual Enviar la hora .... este curso es largo ¿qué hora es? que nos lo diga: El robot no tiene reloj .. entonces ¿Quién le dice la hora? mBot lo gobierna un Arduino, por lo tanto un micro atmel128 con reloj interno, que puede utilizarse, pero no es este caso, pues es una instrucción azul que es propio de Scratch, por lo tanto del ordenador, que no puede usarse con Upload Arduino o Cargar sino EN VIVO