Sadržaj:

Strašna mašina za slatkiše od bundeve za Noć vještica: 5 koraka
Strašna mašina za slatkiše od bundeve za Noć vještica: 5 koraka

Video: Strašna mašina za slatkiše od bundeve za Noć vještica: 5 koraka

Video: Strašna mašina za slatkiše od bundeve za Noć vještica: 5 koraka
Video: Perlice - Vještica 2024, Juli
Anonim
Image
Image

Zdravo svima! Happy Holloween !! Napravili smo fenjer od bundeve koji će puštati muziku i pljuvati slatkiše kad mu neko priđe.

Korak 1: Stvari koje se koriste u ovom projektu

Stvari koje se koriste u ovom projektu
Stvari koje se koriste u ovom projektu
Stvari koje se koriste u ovom projektu
Stvari koje se koriste u ovom projektu

Hardverske komponente

  • Arduino UNO / Seeeduino V4.2
  • Base Shield V2
  • Grove - PIR senzor pokreta
  • Grove - MP3 v2.0
  • Grove - WS2813 RGB LED traka Vodootporna - 60 LED/m - 1m
  • EMax 12g ES08MD visoko osjetljiv servo

Softverske aplikacije i mrežne usluge

Arduino IDE

Korak 2: Priča

Priča
Priča
Priča
Priča
Priča
Priča

Noć vještica dolazi, fenjeri od bundeve su neophodni. Koristimo Seeeduino i PIR Motion Senser koji je napravio lampion od bundeve, kad mu neko priđe, pustit će muziku i pljunuti bombone.

Mehanička struktura

** Korak 1: ** Kupite bombone i bundevu, iskopajte rupu iza bundeve kako bismo na nju stavili Seeeduino.

** Korak 2: ** Ovako izrežite kutiju i pričvrstite je na usta bundeve.

** Korak 3: ** Montirajte ruku na servo motor. Za pričvršćivanje servo motora unutar bundeve koristimo limenku kao držač.

** Korak 4: ** Pobrinite se da se, kad se ruka servo motora pojavi, bomboni u kutiji ispljunu iz usta bundeve.

Korak 3: Povezivanje hardvera

** Korak 1: ** Napravite fasciklu pod nazivom MP3 na komadu SD kartice, kopirajte u nju mp3 datoteku, dajte joj ime 0001.mp3. Spojite zvučnik na MP3 Grove preko priključka od 3,5 mm, a MP3 Grove u priključak D2 na Base Shieldu.

** Korak 2: ** Spojite PIR senzor kretanja Grove na D4 port Base Shield -a i povežite NeoPixel traku na D5 port Base Shield -a.

** Korak 3: ** Spojite Servo Grove na digitalni pin 9 Base Shield -a, pa ćemo možda morati koristiti DuPont linije.

** Korak 4: ** priključite Base Shield na Seeeduino.

** Korak 5: ** Za preuzimanje programa u Seeeduino koristimo USB kabel za povezivanje s računarom. Nakon preuzimanja, možemo koristiti samo kabel za napajanje unutar bundeve.

Korak 4: Programiranje softvera

** Korak 1: ** Instalirajte biblioteke

Za bolji učinak koristimo operativni sistem pod nazivom FreeRTOS, koji se može preuzeti odavde.

Osim toga, ovom projektu su potrebne sljedeće biblioteke, preuzmite ih i instalirajte:

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

Ili možete jednostavno uključiti MP3.h u fasciklu projekta da biste koristili MP3 Grove.

** Korak 2: ** Napravite i otpremite program

*OBAVIJEST: Marco MAX_BRIGHTNESS kontrolira maksimalnu svjetlinu NeoPixela, smanji svjetlinu za smanjenje potrošnje energije.*

Možda je teško razumjeti program ako prije niste koristili operativni sistem na Seeeduinu, sljedeći članak će to učiniti jednostavno.

U metodi setup () normalno smo inicijalizirali Serial, MP3 Grove i Servo Motor i stvorili varijablu koju nazivamo semafor, možete je smatrati oznakom varijable koja se koristi za označavanje da li netko dolazi ili ne.

vSemaphoreCreateBinary (xPIRBinarySemaphore);

Zatim smo stvorili 3 zadatka, koji se mogu izvoditi zajedno. Ali tada prioriteti možda neće biti isti.

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

Nakon provjere da su semafor i zadaci pravilno inicijalizirani, metoda vTaskSetartScheduler () pokreće cijeli FreeRTOS.

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

{za (;;); } vTaskStartScheduler ();

Nerver metode loop () koji se koristi u FreeRTOS -u. Ostalo je jednostavno, vFadingLEDsTask zadatak bledi LED promjenjive boje i vScanPIRTask skenira PIR senzor pokreta cijelo vrijeme. Kada PIR senzor pokreta otkrije da netko dolazi, postavlja zastavicu, a zatim se pokreće zadatak vHandlePIRTask. Budući da je prioritet zadatka vHandlePIRTask 2, kada je pokrenut, druga dva preostala zadatka će biti obustavljena.

Sljedeći pozivi se koriste za postavljanje ili poništavanje zastavice.

xSemaphoreGive (xPIRBinarySemaphore);

xSemaphoreTake (xPIRBinarySemaphore, portMAX_DELAY);

Korak 5: Operacija

Stavite zvučnik, Seeeduino i Groves unutar fenjera od bundeve i uključite ga. Sada možete čekati da neko dođe, izigrajte ili počastite:-).

Videozapis provjerite klikom na svjetlo bundeve za Noć vještica. (https://www.youtube.com/embed/CFjuWXOIUN4)

Preporučuje se: