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
Fuente: Captura de pantalla mBlock. Programa: el autor.
¿y si ponemos de velocidad 200 en run forward, qué pasaría?
Problemas: No funciona bien, se salta la línea
Esto es debido a que desde que mBot comunica a nuestro ordenador que ha detectado una línea negra, y por lo tanto el ordenador lo procesa, y manda la orden de dar marcha atrás y dar la vuelta... mBot ya se ha pasado de raya ... :(
Sobre todo en equipos viejos.
Solución: CARGA EL PROGRAMA EN EL MBOT, NO TRABAJES EN VIVO
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
Nota: Para calibrar, se ha utilizando el Panda que diga la distancia que lee (Instruccion Decir...). Está realizado el programa con mBlock3. Con mBlock5 no se puede usar la instrucción Decir.. en el dispositivo mBot sino en el sprite u objeto Panda, y utilizando variables globales. Esto lo veremos más adelante cómo se hace con mBlock5.
Fuente: Captura de pantalla mBlock. Programa: el autor.
Intenta cogerlo !!! (por delante claro)
Matriz Led
Con este simpática matriz, tenemos mucho juego:
Enviar un dibujo
Las instrucciones de la matriz led están aquí
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 sonria. Es decir, si pongo la mano delante sale una cara sonriente.
Solución
Nota: Para calibrar, se ha utilizando el Panda que diga la distancia que lee (Instruccion Decir...). Está realizado el programa con mBlock3. Con mBlock5 no se puede usar la instrucción Decir.. en el dispositivo mBot sino en el sprite u objeto Panda, y utilizando variables globales. Esto lo veremos más adelante cómo se hace con mBlock5.
Qué simpático ¿no?
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:
Nota: Aquí se trabaja con el concepto de variables: Ves a Data&Blocks y crea una variable x
¿y si hacemos este programa?¿cómo sale las letras CATEDU?
Puedes probar con este mensaje sofisticado
Enviar la hora
Pfff.... este curso es largo ¿qué hora es? que nos lo diga:
Fuente de las imágenes: Capturas de pantalla mBlock. Programas: el autor.
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