Skip to main content

Micrófono

Página extraída de Federico Coca Guia de Trabajo de Microbit CC-BY-SA

ATENCIÓN SÓLO VÁLIDO PARA PLACAS V2

Este objeto permite acceder al micrófono integrado disponible en micro:bit V2. Se puede utilizar para responder al sonido. La entrada del micrófono se encuentra en la parte frontal de la placa junto a un LED de actividad del micrófono, que se ilumina cuando el micrófono está en uso.

microfono.png
Federico Coca Guia de Trabajo de Microbit CC-BY-SA

El micrófono puede responder a un conjunto predefinido de eventos sonoros que se basan en la amplitud y la longitud de onda del sonido. Están representados por instancias de la clase SoundEvent, accesibles a través de variables en microbit.SoundEvent:

  • microbit.SoundEvent.QUIET: Representa la transición de eventos de sonido, de fuerte (loud) a silencioso (quiet) como hablar tranquilo o música de fondo a bajo volumen.
  • microbit.SoundEvent.LOUD: Representa la transición de eventos de sonido, de silencioso (quiet) a fuerte (loud) como aplausos o hablar a gritos.

Las funciones disponibles son:

  • microbit.microphone.current_event(): Retorna el nombre del último evento sonoro grabado, SoundEvent('loud') o SoundEvent('quiet').
  • microbit.microphone.was_event(event): donde event es un evento sonoro como SoundEvent.LOUD o SoundEvent.QUIET. Retorna true si el sonido se ha escuchado al menos una vez desde la última llamada, en caso contrario falsewas_event() también borra el historial de eventos de sonido antes de retornar.
  • microbit.microphone.is_event(event): donde event es un evento sonoro como SoundEvent.LOUD o SoundEvent.QUIET. Retorna true si el evento sonoro es el más reciente desde la última llamada, en caso contrario false. No borra el historial de eventos de sonido.
  • microbit.microphone.get_events(): Retorna una tupla del historial de eventos. El más reciente aparece en último lugar. get_events() también borra el historial de eventos de sonido antes de retornar.
  • microbit.microphone.set_threshold(event, value): donde event es un evento sonoro como SoundEvent.LOUD o SoundEvent.QUIETvalue es el umbral en el rango 0-255. Por ejemplo set_threshold(SoundEvent.LOUD, 250) sólo se activará si el sonido es muy alto (>= 250).
  • microbit.microphone.sound_level(): Retorna una representación del nivel de presión sonora en el intervalo de 0 a 255.

Un ejemplo que utiliza algunas de las funciones de la API del micrófono es:

'''Prueba básica del micrófono.  
Boton A: actualizar pantalla cuando se escucha un sonido alto o bajo. 
Botón B: actualizar la pantalla cuando se escucho un sonido alto o bajo. 
Al agitarla: se muestran los últimos sonidos escuchados, para intentar esta prueba 
se hace un sonido fuerte y uno silencioso antes de agitar.'''

from microbit import *

display.clear()
sound = microphone.current_event()

while True:
    if button_a.is_pressed():
        if microphone.current_event() == SoundEvent.LOUD:
            display.show(Image.SQUARE)
            uart.write('Es Fuerte\n')
        elif microphone.current_event() == SoundEvent.QUIET:
            display.show(Image.SQUARE_SMALL)
            uart.write('Es Silencio\n')
        sleep(500)
    display.clear()
    if button_b.is_pressed():
        if microphone.was_event(SoundEvent.LOUD):
            display.show(Image.SQUARE)
            uart.write('Fue Fuerte\n')
        elif microphone.was_event(SoundEvent.QUIET):
            display.show(Image.SQUARE_SMALL)
            uart.write('Fue silencioso\n')
        else:
            display.clear()
        sleep(500)
    display.clear()
    if accelerometer.was_gesture('shake'):
        sounds = microphone.get_events()
        soundLevel = microphone.sound_level()
        print(soundLevel)
        for sound in sounds:
            if sound == SoundEvent.LOUD:
                display.show(Image.SQUARE)
            elif sound == SoundEvent.QUIET:
                display.show(Image.SQUARE_SMALL)
            else:
                display.clear()
            print(sound)
            sleep(500)

En la consola serie vemos algunos resultados:

consola_ejem_micr.png
Federico Coca Guia de Trabajo de Microbit CC-BY-SA

Página extraída de Federico Coca Guia de Trabajo de Microbit CC-BY-SA