Spisu treści:

Straszna maszyna do cukierków dyniowych na Halloween: 5 kroków
Straszna maszyna do cukierków dyniowych na Halloween: 5 kroków

Wideo: Straszna maszyna do cukierków dyniowych na Halloween: 5 kroków

Wideo: Straszna maszyna do cukierków dyniowych na Halloween: 5 kroków
Wideo: GŁUPIA SPRAWA ALE....#shorts 2024, Grudzień
Anonim
Image
Image

Cześć wszystkim! Szczęśliwy Holloween!! Zbudowaliśmy latarnię z dyni, która będzie odtwarzać muzykę i pluć cukierkami, gdy ktoś do niej podejdzie.

Krok 1: Rzeczy użyte w tym projekcie

Rzeczy użyte w tym projekcie
Rzeczy użyte w tym projekcie
Rzeczy użyte w tym projekcie
Rzeczy użyte w tym projekcie

Komponenty sprzętowe

  • Arduino UNO / Seeeduino V4.2
  • Tarcza podstawowa V2
  • Grove - czujnik ruchu PIR
  • Grove – MP3 v2.0
  • Grove - Taśma LED RGB WS2813 Wodoodporna - 60 LED/m - 1m
  • EMax 12g ES08MD o wysokiej czułości serwo

Aplikacje i usługi online

IDE Arduino

Krok 2: Historia

Fabuła
Fabuła
Fabuła
Fabuła
Fabuła
Fabuła

Zbliża się Halloween, lampiony dyniowe są niezbędne. Używamy Seeeduino i PIR Motion Senser zbudowaliśmy lampion dyniowy, gdy ktoś do niego podejdzie, odtworzy muzykę i wypluwa cukierki.

Struktura mechaniczna

**Krok 1: **Kup trochę cukierków i dyni, wykop dziurę za dynią, abyśmy mogli włożyć do niej Seeeduino.

**Krok 2: **Wytnij pudełko w ten sposób i przymocuj je do ust dyni.

**Setp 3: **Zamontuj ramię do serwomotoru. Do zamocowania serwomotoru wewnątrz dyni używamy puszki jako uchwytu.

**Krok 4: **Upewnij się, że gdy ramię siłownika podniesie się, cukierki w pudełku zostaną wyplute z pyska dyni.

Krok 3: Połączenie sprzętowe

**Krok 1: **Utwórz folder o nazwie MP3 na karcie SD, skopiuj do niego plik mp3 i nazwij go 0001.mp3. Podłącz głośnik do gniazda MP3 Grove przez port 3,5 mm, a MP3 Grove do portu D2 na osłonie podstawy.

**Krok 2: **Podłącz Grove czujnika ruchu PIR do portu D4 osłony podstawy i podłącz pasek NeoPixel do portu D5 osłony podstawy.

**Krok 3: **Podłącz Servo Grove do cyfrowego styku 9 Base Shield, więc może być konieczne użycie linii DuPont.

**Krok 4: **Podłącz osłonę bazową do Seeeduino.

**Krok 5: **W celu pobrania programu do Seeeduino używamy kabla USB do połączenia z komputerem. Po pobraniu możemy użyć tylko kabla zasilającego wewnątrz dyni.

Krok 4: Programowanie oprogramowania

**Krok 1: **Zainstaluj biblioteki

Dla lepszego efektu korzystamy z systemu operacyjnego o nazwie FreeRTOS, można go pobrać stąd.

Poza tym ten projekt wymaga następujących bibliotek, pobierz je i zainstaluj:

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

Możesz też po prostu dołączyć plik MP3.h do folderu projektu, aby użyć MP3 Grove.

**Krok 2: **Zbuduj i prześlij program

*UWAGA: Marco MAX_BRIGHTNESS kontroluje maksymalną jasność NeoPixel, zmniejsza jasność, aby zmniejszyć zużycie energii.*

Zrozumienie programu może być trudne, jeśli wcześniej nie używałeś systemu operacyjnego na Seeeduino, poniższy artykuł ułatwi to.

W metodzie setup() normalnie zainicjalizowaliśmy Serial, MP3 Grove i Servo Motor i utworzyliśmy zmienną, którą nazywamy semaforem, można ją uznać za zmienną flagową, która wskazuje, czy ktoś przychodzi, czy nie.

vSemaphoreCreateBinary(xPIRBinarySemafor);

Następnie stworzyliśmy 3 zadania, które można uruchomić razem. Ale wtedy priorytety mogą nie być takie same.

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

Po sprawdzeniu semafora i poprawnej inicjalizacji zadań, metoda vTaskSetartScheduler() uruchamia cały FreeRTOS.

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

{ dla (;;); } vTaskStartScheduler();

Metoda loop() nerwr używana we FreeRTOS. Teraz reszta jest prosta, zadanie vFadingLEDsTask gasnące Variable Color LED i vScanPIRTask skanują pin czujnika ruchu PIR przez cały czas. Gdy PIR Motion Sensor wykryje, że ktoś nadchodzi, ustawia flagę, a następnie uruchamia się zadanie vHandlePIRTask. Ponieważ priorytet zadania vHandlePIRTask wynosi 2, gdy jest uruchomione, pozostałe dwa zadania zostaną zawieszone.

Następujące wywołania służą do ustawiania lub resetowania flagi.

xSemaphoreGive(xPIRBinarySemafor);

xSemaphoreTake(xPIRBinarySemaphore, portMAX_DELAY);

Krok 5: Operacja

Umieść głośnik, Seeeduino i Grovesa w dyniowej latarni i włącz ją. Teraz możesz czekać, że ktoś do niego przyjdzie, Cukierek albo psikus:-).

Sprawdź wideo, klikając Światło dyni Halloween. (https://www.youtube.com/embed/CFjuWXOIUN4)

Zalecana: