Tabla de contenido:

Scary Pumpkin Candy Machine para Halloween: 5 pasos
Scary Pumpkin Candy Machine para Halloween: 5 pasos

Video: Scary Pumpkin Candy Machine para Halloween: 5 pasos

Video: Scary Pumpkin Candy Machine para Halloween: 5 pasos
Video: Scary Halloween Story For Kids - Too Much Candy by ELF Learning 2024, Noviembre
Anonim
Image
Image

¡Hola todos! Feliz Halloween !! Construimos una linterna de calabaza que reproducirá música y escupirá caramelos cuando alguien se acerque.

Paso 1: Cosas utilizadas en este proyecto

Cosas utilizadas en este proyecto
Cosas utilizadas en este proyecto
Cosas utilizadas en este proyecto
Cosas utilizadas en este proyecto

Componentes de hardware

  • Arduino UNO / Seeeduino V4.2
  • Escudo base V2
  • Grove - Sensor de movimiento PIR
  • Grove - MP3 v2.0
  • Grove - WS2813 RGB LED Strip Impermeable - 60 LED / m - 1m
  • Servo de alta sensibilidad EMax 12g ES08MD

Aplicaciones de software y servicios en línea

IDE de Arduino

Paso 2: historia

Historia
Historia
Historia
Historia
Historia
Historia

Se acerca Halloween, los faroles de calabaza son imprescindibles. Usamos Seeeduino y PIR Motion Senser construido una linterna de calabaza, cuando alguien se acerca, reproducirá música y escupirá dulces.

Estructura mecanica

** Paso 1: ** Compra unos caramelos y una calabaza, cava un agujero detrás de la calabaza para que podamos ponerle Seeeduino.

** Paso 2: ** Corta una caja como esta y fíjala en la boca de la calabaza.

** Ajuste 3: ** Monte un brazo en el servomotor. Para fijar un servomotor dentro de la calabaza, usamos una lata como soporte.

** Paso 4: ** Asegúrese de que cuando el brazo del servomotor se levante, los caramelos de la caja saldrán de la boca de la calabaza.

Paso 3: Conexión de hardware

** Paso 1: ** Cree una carpeta llamada MP3 en una tarjeta SD, copie un archivo mp3 y asígnele el nombre 0001.mp3. Conecte un altavoz a MP3 Grove a través del puerto de 3,5 mm y conecte MP3 Grove al puerto D2 en Base Shield.

** Paso 2: ** Conecte el sensor de movimiento PIR Grove al puerto D4 de Base Shield y conecte la tira NeoPixel al puerto D5 de Base Shield.

** Paso 3: ** Conecte Servo Grove al pin digital 9 de Base Shield, por lo que es posible que necesitemos usar las líneas DuPont.

** Paso 4: ** conecte Base Shield a Seeeduino.

** Paso 5: ** Para descargar el programa a Seeeduino, usamos un cable USB para conectar con la computadora. Después de la descarga, solo podemos usar un cable de alimentación dentro de la calabaza.

Paso 4: Programación de software

** Paso 1: ** Instalar bibliotecas

Para un mejor efecto, usamos un sistema operativo llamado FreeRTOS, se puede descargar desde aquí.

Además, este proyecto necesita las siguientes bibliotecas, descárgalas e instálalas:

  • Grove - MP3 v2.0
  • Adafruit NeoPixel
  • Adafruit TicoServo

O simplemente puede incluir MP3.h en la carpeta del proyecto para usar MP3 Grove.

** Paso 2: ** Cree y cargue el programa

* AVISO: Marco MAX_BRIGHTNESS controla el brillo máximo de NeoPixel, reduce el brillo del mismo para reducir el consumo de energía. *

Puede ser difícil entender el programa si no usó el sistema operativo en Seeeduino antes, el siguiente artículo lo simplificará.

En el método setup (), inicializamos Serial, MP3 Grove y Servo Motor normalmente, y creamos una variable que llamamos semáforo, puede considerarla como una variable de bandera que solía indicar si alguien viene o no.

vSemaphoreCreateBinary (xPIRBinarySemaphore);

Luego creamos 3 tareas, se pueden ejecutar juntas. Pero las prioridades de entonces pueden no ser las mismas.

s1 = xTaskCreate (vFadingLEDsTask, NULL, configMINIMAL_STACK_SIZE, NULL, 1, NULL);

s2 = xTaskCreate (vScaningPIRTask, NULL, configMINIMAL_STACK_SIZE, NULL, 1, NULL); s3 = xTaskCreate (vHandlePIRTask, NULL, configMINIMAL_STACK_SIZE, NULL, 2, NULL);

Después de verificar que el semáforo y las tareas se hayan inicializado correctamente, el método vTaskSetartScheduler () inicia FreeRTOS completo.

if (xPIRBinarySemaphore == NULL || s1! = pdPASS || s2! = pdPASS || s3! = pdPASS)

{ por (;;); } vTaskStartScheduler ();

El nerver del método loop () utilizado en FreeRTOS. Ahora el resto es simple, la tarea vFadingLEDsTask se desvanece LED de color variable y la tarea vScanPIRTask escanea el pin del sensor de movimiento PIR todo el tiempo. Cuando el sensor de movimiento PIR detecta que alguien está llegando, activa la bandera y luego comienza a ejecutarse la tarea vHandlePIRTask. Debido a que la prioridad de la tarea vHandlePIRTask es 2, cuando se esté ejecutando, se suspenderán otras dos tareas restantes.

Las siguientes llamadas se utilizan para configurar o restablecer una bandera.

xSemaphoreGive (xPIRBinarySemaphore);

xSemaphoreTake (xPIRBinarySemaphore, portMAX_DELAY);

Paso 5: Operación

Coloque el altavoz, Seeeduino y Groves dentro de la linterna de calabaza y enciéndalo. Ahora puedes esperar a que alguien venga, Truco o trato:-).

Mira el video haciendo clic en la luz de calabaza de Halloween. (https://www.youtube.com/embed/CFjuWXOIUN4)

Recomendado: