El acelerómetro de la Circuit Playground Express y la Bluefruit puede detectar otros tipos de acciones además de golpes ligeros. Una de ellas es una acción de agitado. Tienes la capacidad de agitar tu tarjeta en el aire, para decirle algo. ¡Vamos a probar!

Agrega el siguiente código a tu code.py. Recuerda, si necesitas ayuda con esto, revisa aquí.

"""This example prints to the serial console when the Circuit Playground is shaken."""
from adafruit_circuitplayground import cp

while True:
    if cp.shake():
        print("Shake detected!")

Abre la consola serial y dale una buena agitada a la tarjeta. Shake detected!

Vamos a ver el código. Primero importamos cp.

Dentro de nuestro ciclo, revisamos si la tarjeta ha sido agitada con if cp.shake():. Si la tarjeta es agitada, entonces imprimimos (print) a la consola serial: Shake detected!

Nótese que hay unos paréntesis luego de cp.shake. Estos son necesarios para que la detección del agitado funcione correctamente. Sin ellos, tu código va a correr, pero no va a correr bien. ¡Asegúrate de incluirlos!

Agítalo un Poco

Vamos a agitar la tarjeta para prender el LED rojo. Agregar el siguiente código a tu code.py.

"""This example flashes the little red LED when the Circuit Playground is shaken."""
from adafruit_circuitplayground import cp

while True:
    if cp.shake(shake_threshold=20):
        print("Shake detected!")
        cp.red_led = True
    else:
        cp.red_led = False

Agita la tarjeta. ¡LED rojo!

Vamos a ver el código. Primero importamos cp.

Dentro de nuestro ciclo, revisamos si la tarjeta ha sido agitada. Sin embargo, hemos agregado algo a esta línea, un shake_threshold=20. Algunas veces puede que notes que tu tarjeta no responde cuando la agitas. O que responde con un movimiento muy ligero. Tienes la opción de modificar el umbral para que tengas que agitar la tarjeta más suave o más duro. El umbral por omisión es de 30. Bajar el umbral por omisión hace que sea más sencillo que se detecte un agitado. Bajar el umbral hace que sea más difícil de detectar ese agitado. El valor mínimo permitido es de 10. 10 es el valor cuando la tarjeta no está en movimiento. Si le pones un umbral de menos de 10, el código va a retornar que detectó un agitado incluso si la tarjeta no se está moviendo. Cambia el umbra a un número entero por encima de 10 y lo puedes ajustar a tus necesidades.

En este caso hemos incluido if cp.shake(shake_threshold=20): el cual cual baja el umbral, haciando que sea más sencillo el agitar la tarjeta. Si se detecta un agitado por encima de 20, imprimimos (print) Shake Detected!y prendemos el LED rojo. De otra forma, apagamos el LED rojo desde el bloque de else.

Trata de cambiar el umbral a 40 para ver que pasa. Eso si, si pones el umbral muy alto, el agitado nunca se va a detectar. ¡Debes jugar con estos valores para ver que funciona para ti!

This guide was first published on Jul 28, 2020. It was last updated on Jul 28, 2020.

This page (Agitado) was last updated on Oct 16, 2020.