Inhaltsverzeichnis:

Gruselige Kürbis-Süßigkeiten-Maschine für Halloween - Gunook
Gruselige Kürbis-Süßigkeiten-Maschine für Halloween - Gunook

Video: Gruselige Kürbis-Süßigkeiten-Maschine für Halloween - Gunook

Video: Gruselige Kürbis-Süßigkeiten-Maschine für Halloween - Gunook
Video: 🎃 Kürbis schnitzen + Halloween Ideen für Anfänger! Franks Shed DIY 2024, November
Anonim
Image
Image

Hallo zusammen! Fröhliches Holloween!! Wir haben eine Kürbislaterne gebaut, die Musik spielt und Bonbons spuckt, wenn jemand darauf kommt.

Schritt 1: Dinge, die in diesem Projekt verwendet werden

In diesem Projekt verwendete Dinge
In diesem Projekt verwendete Dinge
In diesem Projekt verwendete Dinge
In diesem Projekt verwendete Dinge

Hardware-Komponenten

  • Arduino UNO / Seeeduino V4.2
  • Basisschild V2
  • Grove - PIR-Bewegungssensor
  • Grove - MP3 v2.0
  • Grove - WS2813 RGB LED-Streifen Wasserdicht - 60 LED/m - 1m
  • EMax 12g ES08MD hochempfindliches Servo

Software-Apps und Online-Dienste

Arduino-IDE

Schritt 2: Geschichte

Geschichte
Geschichte
Geschichte
Geschichte
Geschichte
Geschichte

Halloween steht vor der Tür, Kürbislaternen sind unverzichtbar. Wir verwenden Seeeduino und PIR Motion Senser baute eine Kürbislaterne, wenn jemand darauf zukommt, spielt sie Musik und spuckt Bonbons.

Mechanischer Aufbau

**Schritt 1: **Kaufe Bonbons und einen Kürbis, grabe ein Loch hinter dem Kürbis, damit wir Seeeduino hineinlegen können.

**Schritt 2: **Schneiden Sie eine Schachtel wie diese aus und befestigen Sie sie am Kürbismund.

**Setp 3: **Montieren Sie einen Arm am Servomotor. Um einen Servomotor im Kürbis zu befestigen, verwenden wir eine Dose als Halterung.

**Schritt 4: **Stellen Sie sicher, dass die Süßigkeiten in der Schachtel aus dem Mund des Kürbisses ausgespuckt werden, wenn der Servomotorarm nach oben dreht.

Schritt 3: Hardware-Verbindung

**Schritt 1: **Erstellen Sie einen Ordner namens MP3 auf einer SD-Karte, kopieren Sie eine MP3-Datei dorthin und nennen Sie sie 0001.mp3. Verbinden Sie einen Lautsprecher über den 3,5-mm-Port mit MP3 Grove und verbinden Sie MP3 Grove mit Port D2 am Base Shield.

**Schritt 2: ** Verbinden Sie den PIR-Bewegungssensor Grove mit dem D4-Port von Base Shield und verbinden Sie den NeoPixel-Streifen mit dem D5-Port von Base Shield.

** Schritt 3: ** Verbinden Sie Servo Grove mit dem digitalen Pin 9 des Base Shield, sodass wir möglicherweise die DuPont-Leitungen verwenden müssen.

**Schritt 4: **Basisschild an Seeeduino anschließen.

**Schritt 5: **Um das Programm auf Seeeduino herunterzuladen, verwenden wir ein USB-Kabel, um es mit dem Computer zu verbinden. Nach dem Herunterladen können wir nur ein Stromkabel im Kürbis verwenden.

Schritt 4: Softwareprogrammierung

**Schritt 1: **Bibliotheken installieren

Für eine bessere Wirkung verwenden wir ein Betriebssystem namens FreeRTOS, das hier heruntergeladen werden kann.

Außerdem benötigt dieses Projekt die folgenden Bibliotheken, laden Sie sie herunter und installieren Sie sie:

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

Oder Sie fügen MP3.h einfach in den Projektordner ein, um MP3 Grove zu verwenden.

**Schritt 2: **Programm erstellen und hochladen

*HINWEIS: Marco MAX_BRIGHTNESS steuert die maximale Helligkeit von NeoPixel, reduziert die Helligkeit, um den Stromverbrauch zu reduzieren.*

Es kann schwierig sein, das Programm zu verstehen, wenn Sie noch kein Betriebssystem auf Seeeduino verwendet haben, der folgende Artikel macht es einfach.

In der setup()-Methode haben wir Serial, MP3 Grove und Servo Motor normal initialisiert und eine Variable erstellt, die wir Semaphore nennen. Sie können sie als Flag-Variable betrachten, die anzeigt, ob jemand kommt oder nicht.

vSemaphoreCreateBinary(xPIRBinarySemaphore);

Dann haben wir 3 Aufgaben erstellt, die zusammen ausgeführt werden können. Aber die Prioritäten von damals sind möglicherweise nicht dieselben.

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

Nachdem überprüft wurde, dass Semaphore und Aufgaben korrekt initialisiert wurden, startet die Methode vTaskSetartScheduler() das gesamte FreeRTOS.

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

{ zum (;;); } vTaskStartScheduler();

Die loop()-Methode nerver, die in FreeRTOS verwendet wird. Jetzt ist der Rest einfach, vFadingLEDsTask-Task blendet LED mit variabler Farbe aus und vScanPIRTask-Task scannt ständig den Pin des PIR-Bewegungssensors. Wenn der PIR-Bewegungssensor erkennt, dass jemand kommt, setzt er das Flag und die vHandlePIRTask-Aufgabe wird ausgeführt. Da die Priorität der vHandlePIRTask-Aufgabe 2 ist, werden bei ihrer Ausführung die beiden anderen verbleibenden Aufgaben angehalten.

Folgende Aufrufe werden verwendet, um ein Flag zu setzen oder zurückzusetzen.

xSemaphoreGive(xPIRBinarySemaphore);

xSemaphoreTake(xPIRBinarySemaphore, portMAX_DELAY);

Schritt 5: Betrieb

Setzen Sie den Lautsprecher, Seeeduino und Groves in die Kürbislaterne und schalten Sie sie ein. Jetzt können Sie warten, dass jemand dazu kommt, Trick or Treat:-).

Überprüfen Sie das Video, indem Sie auf Halloween-Kürbislicht klicken. (https://www.youtube.com/embed/CFjuWXOIUN4)

Empfohlen: