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.
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')
oSoundEvent('quiet')
.microbit.microphone.was_event(event)
: dondeevent
es un evento sonoro comoSoundEvent.LOUD
oSoundEvent.QUIET
. Retornatrue
si el sonido se ha escuchado al menos una vez desde la última llamada, en caso contrariofalse
.was_event()
también borra el historial de eventos de sonido antes de retornar.microbit.microphone.is_event(event)
: dondeevent
es un evento sonoro comoSoundEvent.LOUD
oSoundEvent.QUIET
. Retornatrue
si el evento sonoro es el más reciente desde la última llamada, en caso contrariofalse
. 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)
: dondeevent
es un evento sonoro comoSoundEvent.LOUD
oSoundEvent.QUIET
.value
es el umbral en el rango 0-255. Por ejemploset_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:
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