Mundarija:

Halloween uchun qo'rqinchli qovoq shakarlamalar mashinasi: 5 qadam
Halloween uchun qo'rqinchli qovoq shakarlamalar mashinasi: 5 qadam

Video: Halloween uchun qo'rqinchli qovoq shakarlamalar mashinasi: 5 qadam

Video: Halloween uchun qo'rqinchli qovoq shakarlamalar mashinasi: 5 qadam
Video: Арабистондаги "Halloween" байрами | Макка соя остида 2024, Iyul
Anonim
Image
Image

Hammaga salom! Xollowin muborak !! Biz qovoq fonarini qurdik, u kimdir yoniga kelganda musiqa chaladi va konfet tupuradi.

1 -qadam: Ushbu loyihada ishlatilgan narsalar

Ushbu loyihada ishlatiladigan narsalar
Ushbu loyihada ishlatiladigan narsalar
Ushbu loyihada ishlatiladigan narsalar
Ushbu loyihada ishlatiladigan narsalar

Uskuna komponentlari

  • Arduino UNO / Seeeduino V4.2
  • Asosiy qalqon V2
  • Grove - PIR harakat sensori
  • Grove - MP3 v2.0
  • Grove - suv o'tkazmaydigan WS2813 RGB LED tasmasi - 60 LED/m - 1m
  • EMax 12g ES08MD yuqori sezgir servo

Dasturiy ta'minot va onlayn xizmatlar

Arduino IDE

2 -qadam: hikoya

Hikoya
Hikoya
Hikoya
Hikoya
Hikoya
Hikoya

Halloween yaqinlashmoqda, qovoq chiroqlari juda muhim. Biz Seeeduino -dan foydalanamiz va PIR Motion Sensor oshqovoq fonarini qurdi, kimdir yoniga kelsa, u musiqa chaladi va konfet tupuradi.

Mexanik tuzilish

** 1 -qadam: ** Shirinliklar va qovoq sotib oling, qovoq orqasida teshik qazing, shunda biz Seeeduino -ni qo'yamiz.

** 2 -qadam: ** Bunday qutini kesib oling va uni qovoqning og'ziga mahkamlang.

** 3 -sozlash: ** Qo'lni servo dvigatelga o'rnating. Qovoq ichidagi servo dvigatelni tuzatish uchun biz bankani ushlagich sifatida ishlatamiz.

** 4 -qadam: ** Servo dvigatel qo'li ko'tarilganda, qutidagi shakarlamalar qovoqning og'zidan tupurilishiga ishonch hosil qiling.

3 -qadam: Uskuna ulanishi

** 1 -qadam: ** SD -kartaning bir qismiga MP3 nomli papkani yarating, unga mp3 faylni nusxa ko'chiring, 0001.mp3 deb nomlang. Karnayni 3,5 mm port orqali MP3 Grove -ga ulang va MP3 Grove -ni Base Shield -dagi D2 portiga ulang.

** 2 -qadam: ** PIR Motion Sensor Grove -ni Base Shield -ning D4 portiga ulang va NeoPixel tasmasini Base Shield -ning D5 portiga ulang.

** 3 -qadam: ** Servo Grove -ni Base Shield -ning raqamli 9 -piniga ulang, shuning uchun bizga DuPont liniyalaridan foydalanish kerak bo'lishi mumkin.

** 4 -qadam: ** Base Shield -ni Seeeduino -ga ulang.

** 5 -qadam: ** Dasturni Seeeduino -ga yuklab olish uchun biz kompyuterga ulanish uchun USB kabelidan foydalanamiz. Yuklab olingandan so'ng, biz faqat qovoq ichidagi quvvat kabelidan foydalanishimiz mumkin.

4 -qadam: dasturiy ta'minot

** 1 -qadam: ** Kutubxonalarni o'rnating

Yaxshi ta'sir qilish uchun biz FreeRTOS deb nomlangan operatsion tizimdan foydalanamiz, uni shu erdan yuklab olish mumkin.

Bundan tashqari, ushbu loyihaga quyidagi kutubxonalar kerak bo'ladi, ularni yuklab oling va o'rnating:

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

Yoki MP3 Grove -dan foydalanish uchun MP3.h -ni loyiha papkasiga qo'shishingiz mumkin.

** 2 -qadam: ** Dasturni tuzing va yuklang

*OGOHLANTIRISH: Marko MAX_BRIGHTNESS NeoPixel -ning maksimal yorqinligini nazorat qiladi, quvvat sarfini kamaytirish uchun uning yorqinligini kamaytiradi.

Agar siz ilgari Seeeduino -da operatsion tizimni ishlatmagan bo'lsangiz, dasturni tushunish qiyin bo'lishi mumkin, keyingi maqolada bu oddiy bo'ladi.

O'rnatish () usulida biz Serial, MP3 Grove va Servo Dvigatelni odatdagidek ishga tushirdik va semafora deb nomlanadigan variantni yaratdik, siz uni bayroq o'zgaruvchisi sifatida ko'rishingiz mumkin, u kimdir keladimi yoki yo'qligini bildiradi.

vSemaphoreCreateBinary (xPIRBinarySemaphore);

Keyin biz 3 ta vazifani yaratdik, ular birgalikda yugurishi mumkin. Ammo o'sha paytdagi ustuvorliklar bir xil bo'lmasligi mumkin.

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

Semafor tekshirilgandan va vazifalar to'g'ri boshlanganidan so'ng, vTaskSetartScheduler () usuli FreeRTOS -ni ishga tushiradi.

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

{ uchun (;;); } vTaskStartScheduler ();

FreeRTOS -da ishlatiladigan loop () usuli. Qolganlari oddiy, vFadingLEDsTask vazifasi o'zgaruvchan rangli LED va vScanPIRTask vazifalarini har doim PIR harakat sensori pinini o'chiradi. PIR Motion Sensor kimdir kelayotganini sezganda, u bayroqni o'rnatadi, keyin vHandlePIRTask vazifasi ishlay boshlaydi. VHandlePIRTask vazifasining ustuvorligi 2 bo'lgani uchun, u ishlayotganda qolgan ikkita vazifa to'xtatiladi.

Quyidagi qo'ng'iroqlar bayroqni o'rnatish yoki tiklash uchun ishlatiladi.

xSemaphoreGive (xPIRBinarySemaphore);

xSemaphoreTake (xPIRBinarySemaphore, portMAX_DELAY);

5 -qadam: operatsiya

Karnayni, Seeeduino va Grovesni qovoq chiroqqa qo'ying va uni yoqing. Endi siz kimdir uning oldiga kelishini kutishingiz mumkin, hiyla yoki muomala:-).

Halloween oshqovoq nuri bosish orqali videoni tekshiring. (https://www.youtube.com/embed/CFjuWXOIUN4)

Tavsiya: