• 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(`
            # # . # #
            # # . # #
            . . . . .
            # . . . #
            . # # # .
            `)
    })
    
  • Mi Vespa

    Grifo del vespino

    En esta entrada intentaré ilustrar el funcionamiento del grifo del vespino. Concretamente el primer modelo de 1968. Se trata de un grifo de gran tamaño que posee un filtro interior y la peculiaridad como otros ciclomotores de la época de incluir una posición de (A) abierto, (C) cerrado y (R) reserva.

    Aquí os dejo una galería de imágenes con el despiece completo del grifo. Este no es el único modelo de grifo de la marca, pero si el primero que se montó.

  • Mi Tiempo

    Feliz Navidad

    Es el momento perfecto para reflexionar sobre el año que se va, agradecer por las bendiciones recibidas y abrir nuestros corazones a la alegría y la bondad que nos rodea. Las fiestas nos brindan la oportunidad de reunirnos con seres queridos, compartir risas, crear recuerdos inolvidables y apreciar la belleza de la vida. ¡Feliz Navidad a todos!

  • Mi Tiempo

    Descifrando el Universo de SQL y Transact-SQL

    En el vasto mundo de la tecnología, las bases de datos juegan un papel crucial en el almacenamiento y gestión eficiente de la información. En este contexto, el lenguaje SQL (Structured Query Language) emerge como el lenguaje universal que permite interactuar con bases de datos relacionales. Además, dentro del universo SQL, se destaca Transact-SQL (T-SQL), una extensión específica desarrollada por Microsoft. En esta entrada de blog, exploraremos las complejidades y las maravillas que nos ofrece este fascinante lenguaje.

    SQL es un lenguaje estandarizado diseñado para administrar y manipular datos en bases de datos relacionales. Su sintaxis simple pero poderosa permite realizar diversas operaciones, desde consultas básicas hasta complejas transacciones.

    Esta estructura elemental permite recuperar información específica de una base de datos, siendo la piedra angular de cualquier aplicación que dependa de almacenar y recuperar datos de manera eficiente. Dentro del vasto panorama de SQL, Transact-SQL (T-SQL) se destaca como una extensión propietaria de Microsoft SQL Server. Desarrollado para mejorar y extender las capacidades estándar de SQL, T-SQL añade funcionalidades que permiten realizar tareas más avanzadas y específicas.

    Los procedimientos almacenados son solo una de las numerosas características de T-SQL que facilitan la gestión de bases de datos, proporcionando una mayor modularidad y eficiencia en el código. A medida que las aplicaciones y sistemas evolucionan, surgen desafíos en la gestión de datos. T-SQL aborda estos desafíos mediante la implementación de características avanzadas, como transacciones, control de concurrencia y manejo de errores.

    Las transacciones garantizan la integridad de los datos al ejecutar varias operaciones como una unidad atómica, asegurando que todas se completen con éxito o que ninguna se realice. En el corazón de cualquier sistema de gestión de bases de datos efectivo y eficiente yace el conocimiento profundo de SQL y sus extensiones como Transact-SQL. Ya sea para manipular datos básicos o para enfrentar desafíos más complejos, comprender estos lenguajes es esencial para cualquier profesional de la tecnología de la información.

    En esta entrada, hemos explorado brevemente la importancia de SQL como lenguaje fundamental y hemos sumergido nuestros dedos en las aguas más profundas de Transact-SQL, la respuesta de Microsoft para las demandas avanzadas de gestión de bases de datos.

    Si quieres aprender mas sobre el código SQL visita el sitio de microsoft, https://www.microsoft.com › es-es › sql-server