miércoles, 15 de junio de 2022

BBC micro:bit Brújula con termómetro e índice de luz solar


¿Qué es BBC micro:bit?

En los albores del 2012, la BBC brindó una iniciativa como parte de un programa de alfabetización informática llamado BBC micro:bit 

Se define como una computadora de bolsillo programable con una pantalla de 25 diodos LED y diversos sensores y actuadores, todo ello permite programarlo fácilmente e interactuar con él. La última versión dispone de capacidades de comunicación y reproducción y detección de sonido.

Sobre micro:bit hay sobrada información en Internet para aprender de forma autodidacta, y, a mi juicio, es una estupenda herramienta para iniciar en la programación en las escuelas.

Como es habitual, en este blog os ofrezco mi experiencia, y en este caso es una brújula que indica el Norte con una N en el display de LEDs de micro:bit, pero también lo hace de forma acústica; el Este, el Sur y el Oeste (W) lo indica sólo en el display, pero no emite señal acústica alguna.     

También, pulsando el actuador A podemos determinar nuestra posición en grados; pulsando en el actuador B dispondremos de la temperatura en grados centígrados y el título y el autor del proyecto; finalmente, pulsando A+B aparecerá una agradable sonrisa en el display si el índice solar es normal, pero nos advertirá, si es más alto, del riesgo de quemadura solar con la coletilla "Beware of the sun".

 

En el siguiente enlace podéis ver el código de bloques y descargar el archivo .hex, pero aquí os dejo el de bloques en dos imágenes:

Primero creamos una variable numérica llamada "rumbo" donde alojamos el valor del sensor magnético:

Ahora el código de bloques:

Aquí también os dejo el código en Python:

# Python code
#
rumbo = 0

def on_forever():
  global rumbo
  rumbo = input.compass_heading()
  if rumbo < 5 or rumbo > 355:
    basic.show_string("N")
    pins.analog_set_pitch_pin(AnalogPin.P0)
    pins.analog_pitch(1000, 100)
    basic.clear_screen()
  if rumbo < 185 and rumbo > 175:
    basic.show_string("S")
    basic.clear_screen()
  if rumbo < 95 and rumbo > 85:
    basic.show_string("E")
    basic.clear_screen()
  if rumbo < 275 and rumbo > 265:
    basic.show_string("W")
    basic.clear_screen()
basic.forever(on_forever)

def on_button_pressed_a():
  basic.show_number(rumbo)
  basic.show_leds("""
    # # . . .
    # # . . .
    . . . . .
    . . . . .
    . . . . .
    """)
  basic.clear_screen()
input.on_button_pressed(Button.A, on_button_pressed_a)

def on_button_pressed_b():
  basic.show_number(input.temperature())
  basic.show_leds("""
    # # . . .
    # # # # #
    . . # . .
    . . # . .
    . . # # #
    """)
  basic.pause(1000)
  basic.clear_screen()
  basic.show_string("Compass by Nasi")
input.on_button_pressed(Button.B, on_button_pressed_b)

def on_button_pressed_ab():
  if input.light_level() <= 128:
    basic.show_icon(IconNames.Happy)
    basic.clear_screen()
  if input.light_level() > 128:
    basic.show_string("Beware of the sun")
input.on_button_pressed(Button.AB, on_button_pressed_ab)

 

Los actuadores los ubicamos en el siguiente esquema:

Entre la patilla 0 y GND conectamos un transductor piezoeléctrico para reproducir un sonido; en las nuevas versiones de micro:bit ya viene incorporado en la tarjeta.

En el siguiente vídeo podemos ver como comenzar a usar esta tarjeta:


Disfruté mucho con esta experiencia de micro:bit, y espero que pueda serviles esta entrada para valorar el potencial didáctico de este recurso.


No hay comentarios:

Publicar un comentario