• Mi Tiempo

    Primeros pasos con micro:bit y cutebot

    Sus Majestades de Oriente han dejado en casa un pequeño robot de ojos grandes y cara sonriente. Es el Cutebot que funciona con la ya famosa tarjeta micro:bit de BBC.

    La verdad es que este amigable juguete permite a los más pequeños iniciarse en la robótica. Su conexión es casi inmediata y la forma de programarlo muy fácil. Sobre todo para aquellos que están familiarizados con Scratch, ya que es programación por bloques que podemos desarrollar desde la interfaz Makecode. Es código abierto y libre, con lo que podemos encontrar multitud de información sobre su funcionalidad. También admite programación en javascript y pyton, para los más avanzados.

    Mi hijo ya se ha atrevido con ello y como conocía algo de Scratch le ha resultado muy entretenido. El robot es muy versatil y sus posibilidades para el aprendizaje muchísimas. Si además sumamos a ello las prestaciones que ya ofrece la propia tarjeta micro:bit, el entretenimiento de nuestros hijos está garantizado.

    En Reino Unido la tarjeta micro:bit ya forma parte de la enseñanza en más del 75 por ciento de los colegios del país. Lo que nos da una idea de lo util que puede resultar para aquellos profesores que quieran iniciar en la robótica a sus alumnos.

    Proyecto 1. Himno del Real Betis

    Este ha sido el primer proyecto de mi hijo, está diseñado en bloques desde el makecode para la tarjeta micro:bit.

    Proyecto 2. Sigue la línea

    Aquí el código para que nuestro robot siga una línea negra pintada en un mapa, gracias a sus sensores IR que tiene alojados en la parte inferior delantera.

    Código de los ejemplos en JavaScript

    Aquí os dejo el código completo de ambos ejemplos en JavaScript para que podais insertarlos en la aplicación de Microsoft makecode.

    input.onButtonPressed(Button.A, function () {
        for (let index = 0; index < 500; index++) {
            if (cuteBot.tracking(cuteBot.TrackingState.L_R_line)) {
                cuteBot.moveTime(cuteBot.Direction.forward, 40, 0.05)
            }
            if (cuteBot.tracking(cuteBot.TrackingState.L_unline_R_line)) {
                cuteBot.moveTime(cuteBot.Direction.right, 40, 0.05)
            }
            if (cuteBot.tracking(cuteBot.TrackingState.L_line_R_unline)) {
                cuteBot.moveTime(cuteBot.Direction.left, 40, 0.05)
            }
            if (cuteBot.tracking(cuteBot.TrackingState.L_R_unline)) {
                cuteBot.moveTime(cuteBot.Direction.forward, 20, 0.05)
            }
        }
    })
    input.onButtonPressed(Button.B, function () {
        cuteBot.colorLight(cuteBot.RGBLights.ALL, 0x00ff7c)
        basic.showLeds(`
            # # . # #
            # # . # #
            . . . . .
            # . . . #
            . # # # .
            `)
        music.play(music.stringPlayable("E E E D F F F E ", 200), music.PlaybackMode.UntilDone)
        music.play(music.stringPlayable("D D F F E D C - ", 200), music.PlaybackMode.UntilDone)
        music.play(music.stringPlayable("C D E E E D F F ", 200), music.PlaybackMode.UntilDone)
        music.play(music.stringPlayable("F E D D F F E D ", 200), music.PlaybackMode.UntilDone)
        music.play(music.stringPlayable("C - F F F E G F ", 200), music.PlaybackMode.UntilDone)
        music.play(music.stringPlayable("F G A A A G G F ", 200), music.PlaybackMode.UntilDone)
        music.play(music.stringPlayable("E - G G G F E D ", 200), music.PlaybackMode.UntilDone)
        music.play(music.stringPlayable("D D E F F E D D ", 200), music.PlaybackMode.UntilDone)
        music.play(music.stringPlayable("C - - - - - - - ", 200), music.PlaybackMode.UntilDone)
        music.play(music.stringPlayable("G G E - G G E - ", 120), music.PlaybackMode.UntilDone)
        basic.showLeds(`
            # # . # #
            # # . # #
            . . . . .
            # . . . #
            . # # # .
            `)
        basic.showLeds(`
            . . . # #
            # # . # #
            . . . . .
            # . . . #
            . # # # .
            `)
        basic.pause(1000)
        basic.showLeds(`
            # # . # #
            # # . # #
            . . . . .
            # . . . #
            . # # # .
            `)
    })