La Circuit Playground Bluefruit tiene un sensor de sonido situado al lado derecho de la tarjeta, encima de un símbolo de oreja impreso en la tarjeta, y debajo del botón B. Este sensor puede ser utilizado para detectar niveles de sonido.
Agregue el siguiente código a su code.py. Recuerde que si necesita ayuda, puede revisar aquí.
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries # SPDX-License-Identifier: MIT """ This example prints out sound levels using the sound sensor on a Circuit Playground Bluefruit. Try making sounds towards the board to see the values change. NOTE: This example does NOT support Circuit Playground Express. """ import time from adafruit_circuitplayground import cp while True: print("Sound level:", cp.sound_level) time.sleep(0.1)
Abra la consola serial para ver como se imprimen los niveles de sonido. ¡Trate de hacerle sonidos a su Circuit Playground para ver los valores cambiar!
Vamos a observar el código. Primero, vamos a importa a time
y a cp
.
Dentro de nuestro ciclo, imprimimos hacia la consola serial Sound level:
seguido del valor del nivel de sonido, cp.sound_level
. Luego tenemos un time.sleep(0.1)
para dar una pausa a la velocidad con que se imprime en la consola serial. Si va muy rápido, ¡es difícil de leer!
Grafiando el Nivel de Sonido
¡Vamos a observar estos valores en el trazador gráfico de Mu! Agregue el siguiente código en su code.py:
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries # SPDX-License-Identifier: MIT """ This example prints out sound levels using the sound sensor on a Circuit Playground Bluefruit. If you are using Mu, open the plotter to see the sound level plotted. Try making sounds towards the board to see the values change. NOTE: This example does NOT support Circuit Playground Express. """ import time from adafruit_circuitplayground import cp while True: print("Sound level:", cp.sound_level) print((cp.sound_level,)) time.sleep(0.1)
Este código es casi idéntico, pero hemos agregado otra línea print((cp.sound_level,))
.
Nótese que el trazador gráfico de Mu espera valores de tipo tupla para graficar. Las tuplas en Python vienen en paréntesis ()
y separados por coma. Si tienes dos valores en una tupla se vería así (1.0, 3.14)
. Ya que solo tenemos un valor, lo vamos a imprimir como (1.0,)
- note los paréntesis alrededor del número, así como una coma luego del número. Por eso los paréntesis extra y la coma en print((cp.sound_level,))
.
Haga click en el botón de Plotter en la parte superior de Mu para ver el trazador gráfico. Ahora trate de hacer sonidos hacia la tarjeta para ver como la línea del trazador sube. Trate de quedarse muy cayado para ver como la línea baja. ¡Diviértase!
Sonidos Fuertes
¿Y que pasa si quieres usar el sonido como una entrada? ¡Con la característica de loud_sound()
puedes lograrlo! Puedes usarlo para detectar aplausos, chasquitos o cualquier otro sonido lo suficientemente fuente, como una entrada.
El siguiente ejemplo prende los LEDs tipo NeoPixel cuando un sonido bastante fuerte ocurre. Agregue el siguiente código a su code.py:
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries # SPDX-License-Identifier: MIT """ This example lights up the NeoPixels on a Circuit Playground Bluefruit in response to a loud sound. Try snapping or clapping near the board to trigger the LEDs. NOTE: This example does NOT support Circuit Playground Express. """ import time from adafruit_circuitplayground import cp while True: if cp.loud_sound(): cp.pixels.fill((50, 0, 50)) time.sleep(0.2) else: cp.pixels.fill((0, 0, 0))
Trata de aplaudirle, hacerle charquidos o gritarle a tu tarjeta. ¡NeoPixeles morados!
Vamos a ver el código. Lo primero es importar a time
y a cp
.
Dentro de nuestro ciclo, comenzamos preguntando si un sonido fuerte ocurre con if cp.loud_sound()
, prenda los NeoPixeles con un morado muy ténue con cp.pixels.fill((50, 0, 50))
. Luego le agregamos un time.sleep(0.2)
para que los LEDs se puedan quedar prendidos lo suficiente para poderlos verlos. Sin eso, solamente estarían prendidos por un instante.
Luego decimos que de otro modo, apague los pixeles al configurarlos con el color (0, 0, 0)
. Sin esto, los pixeles se prenden y se quedan prendidos.
Umbral de Sonidos Fuertes
Si encuentras muy fácil o muy difícil que se dispare un sonido fuerte, puedes bajar o aumentar el umbral. loud_sound()
tiene una configuración por omisión de sound_threshold=200
. Para hacerlo más difícil de disparar, puedes aumentar el umbral. Agrega el siguiente código a tu code.py:
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries # SPDX-License-Identifier: MIT """ This example lights up the NeoPixels on a Circuit Playground Bluefruit in response to a loud sound. Try snapping or clapping near the board to trigger the LEDs. NOTE: This example does NOT support Circuit Playground Express. """ import time from adafruit_circuitplayground import cp while True: if cp.loud_sound(sound_threshold=250): cp.pixels.fill((50, 0, 50)) time.sleep(0.2) else: cp.pixels.fill((0, 0, 0))
El código es exáctamente el mismo, excepto que hemos aumentado el umbral al configurar sound_threshold=250
, haciendo que sea requerido un sonido un poco más fuerte para lograr dispararlo.
Si encuentras que es muy difícil de disparar, puedes bajar el umbral, haciendo que un sonido más delicado lo pueda disparar. Trata de configurarlo ensound_threshold=150
para ver la diferencia.
Ahora puedes usar sonido como una entrada en la Circuit Playground Bluefruit. ¡Trata de combinarlo con otros conceptos que hemos aprendido en esta guía par probar que otras cosas puedes hacer!
Page last edited January 22, 2025
Text editor powered by tinymce.