Cuprins:

Mașină de bomboane înfricoșătoare de dovleac pentru Halloween: 5 pași
Mașină de bomboane înfricoșătoare de dovleac pentru Halloween: 5 pași

Video: Mașină de bomboane înfricoșătoare de dovleac pentru Halloween: 5 pași

Video: Mașină de bomboane înfricoșătoare de dovleac pentru Halloween: 5 pași
Video: Cum scrii când începi un caiet nou 2024, Iulie
Anonim
Image
Image

Bună tuturor! Fericit Holloween !! Am construit un felinar de dovleac care va cânta muzică și va scuipa bomboane când cineva se apropie de el.

Pasul 1: Lucruri utilizate în acest proiect

Lucruri utilizate în acest proiect
Lucruri utilizate în acest proiect
Lucruri utilizate în acest proiect
Lucruri utilizate în acest proiect

Componente hardware

  • Arduino UNO / Seeeduino V4.2
  • Scutul de bază V2
  • Grove - Senzor de mișcare PIR
  • Grove - MP3 v2.0
  • Grove - WS2813 RGB LED Strip Waterproof - 60 LED / m - 1m
  • Servomax EMax 12g ES08MD high Sensitive

Aplicații software și servicii online

IDE Arduino

Pasul 2: Poveste

Poveste
Poveste
Poveste
Poveste
Poveste
Poveste

Halloween vine, felinarele cu dovleac sunt esențiale. Folosim Seeeduino și PIR Motion Senser a construit un felinar de dovleac, când cineva se apropie de el, va reda muzică și va scuipa bomboane.

Structura mecanică

** Pasul 1: ** Cumpărați niște bomboane și un dovleac, săpați o gaură în spatele dovleacului, astfel încât să-l putem pune pe Seeeduino.

** Pasul 2: ** Tăiați o cutie ca aceasta și fixați-o pe gura dovleacului.

** Setp 3: ** Montați un braț pe servomotor. Pentru a fixa un servomotor în interiorul dovleacului, folosim o cutie ca suport.

** Pasul 4: ** Asigurați-vă că atunci când brațul servomotorului se ridică, bomboanele din cutie vor fi scuipate din gura dovleacului.

Pasul 3: Conexiune hardware

** Pasul 1: ** Creați un folder numit MP3 într-o bucată de card SD, copiați un fișier mp3 pe acesta, denumiți-l 0001.mp3. Conectați un difuzor la MP3 Grove prin portul de 3,5 mm și conectați MP3 Grove la portul D2 de pe Base Shield.

** Pasul 2: ** Conectați senzorul de mișcare PIR Grove la portul D4 al bazei Shield și conectați banda NeoPixel la portul D5 al bazei Shield.

** Pasul 3: ** Conectați Servo Grove la pinul digital 9 al lui Base Shield, deci este posibil să trebuiască să folosim liniile DuPont.

** Pasul 4: ** conectați Scutul de bază la Seeeduino.

** Pasul 5: ** Pentru a descărca programul pe Seeeduino, folosim un cablu USB pentru a ne conecta la computer. După descărcare, putem folosi doar un cablu de alimentare în interiorul dovleacului.

Pasul 4: Programare software

** Pasul 1: ** Instalați bibliotecile

Pentru un efect mai bun, folosim un sistem de operare numit FreeRTOS, acesta poate fi descărcat de aici.

În plus, acest proiect are nevoie de următoarele biblioteci, descărcați-le și instalați-le:

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

Sau puteți include pur și simplu MP3.h în folderul proiectului pentru a utiliza MP3 Grove.

** Pasul 2: ** Construiți și încărcați programul

* AVIZ: Marco MAX_BRIGHTNESS controlează luminozitatea maximă a NeoPixel, reduce luminozitatea acestuia pentru a reduce consumul de energie. *

Poate fi greu de înțeles programul dacă nu ați folosit sistemul de operare pe Seeeduino înainte, următorul articol îl va face simplu.

În metoda setup (), am inițializat Serial, MP3 Grove și Servo Motor în mod normal și am creat o variabilă pe care o numim semafor, o puteți considera ca o variabilă de semnalizare care a folosit pentru a indica dacă vine sau nu cineva.

vSemaphoreCreateBinary (xPIRBinarySemaphore);

Apoi am creat 3 sarcini, acestea pot rula împreună. Dar prioritățile de atunci s-ar putea să nu fie aceleași.

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);

După verificarea semaforului și sarcinile sunt inițializate corect, metoda vTaskSetartScheduler () pornește întregul FreeRTOS.

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

{ pentru (;;); } vTaskStartScheduler ();

Metoda loop () nerver utilizată în FreeRTOS. Acum restul este simplu, sarcina vFadingLEDsTask se estompează LED-ul Variable Color și vScanPIRTask scanează pinul senzorului de mișcare PIR tot timpul. Când senzorul de mișcare PIR detectează că vine cineva, acesta setează semnalizatorul, apoi începe să ruleze sarcina vHandlePIRTask. Deoarece prioritatea sarcinii vHandlePIRTask este 2, atunci când rulează, alte două sarcini rămase vor fi suspendate.

Următoarele apeluri sunt utilizate pentru a seta sau a reseta un semnalizator.

xSemaphoreGive (xPIRBinarySemaphore);

xSemaphoreTake (xPIRBinarySemaphore, portMAX_DELAY);

Pasul 5: Operațiune

Puneți difuzorul, Seeeduino și Groves în interiorul felinarului de dovleac și porniți-l. Acum puteți aștepta ca cineva să vină la el, Trick or Treat:-).

Verificați videoclipul făcând clic pe lumina de dovleac de Halloween. (https://www.youtube.com/embed/CFjuWXOIUN4)

Recomandat: