Агуулгын хүснэгт:

Halloween -д зориулсан аймшигтай хулуу чихрийн машин: 5 алхам
Halloween -д зориулсан аймшигтай хулуу чихрийн машин: 5 алхам

Видео: Halloween -д зориулсан аймшигтай хулуу чихрийн машин: 5 алхам

Видео: Halloween -д зориулсан аймшигтай хулуу чихрийн машин: 5 алхам
Видео: Заброшенное городское кафе и жилой дом в Бельгии – замороженные во времени! 2024, Арваннэгдүгээр
Anonim
Image
Image

Бүгдээрээ сайн байцгаана уу! Холловины баярын мэнд !! Бид хулуу дэнлүү барьсан бөгөөд хэн нэгэн түүн дээр ирэхэд хөгжим тоглож, чихэр нулимдаг.

Алхам 1: Энэхүү төсөлд ашигласан зүйлс

Энэ төсөлд ашигласан зүйлс
Энэ төсөлд ашигласан зүйлс
Энэ төсөлд ашигласан зүйлс
Энэ төсөлд ашигласан зүйлс

Тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүд

  • Arduino UNO / Seeeduino V4.2
  • Үндсэн бамбай V2
  • Grove - PIR хөдөлгөөн мэдрэгч
  • Grove - MP3 v2.0
  • Grove - WS2813 RGB LED зурвас ус нэвтрүүлдэггүй - 60 LED/м - 1м
  • EMax 12g ES08MD өндөр мэдрэмжтэй servo

Програм хангамж, онлайн үйлчилгээ

Arduino IDE

Алхам 2: Түүх

Түүх
Түүх
Түүх
Түүх
Түүх
Түүх

Halloween ирж байна, хулуу дэнлүү зайлшгүй шаардлагатай. Бид Seeeduino болон PIR Motion Senser -ийг ашиглан хулууны дэнлүү барьсан бөгөөд хэн нэгэн түүн дээр ирэхэд хөгжим тоглож, чихэр нулимах болно.

Механик бүтэц

** 1 -р алхам: ** Чихэр, хулуу худалдаж аваад хулууны ард нүх ухаж, бид Seeeduino -ийг тавина.

** 2 -р алхам: ** Ийм хайрцгийг хайчилж аваад хулууны аманд засаарай.

** Тохиргоо 3: ** Серво хөдөлгүүрт гараа холбоно уу. Хулууны доторх servo моторыг засахын тулд бид лаазыг эзэмшигч болгон ашигладаг.

** Алхам 4: ** Серво хөдөлгүүрийн гар дээшээ эргэхэд хайрцган дахь чихэр хулууны амнаас нулимах эсэхийг шалгаарай.

Алхам 3: Тоног төхөөрөмжийн холболт

** 1 -р алхам: ** MP3 нэртэй хавтасыг SD картанд хийж, mp3 файлыг хуулж, 0001.mp3 гэж нэрлэнэ үү. MP3 Grove -ийн чанга яригчийг 3.5 мм -ийн портоор холбож, MP3 Grove -ийг Base Shield дээрх D2 порт руу холбоно уу.

** Алхам 2: ** PIR Motion Sensor Grove -ийг Base Shield -ийн D4 порт руу холбож, NeoPixel зурвасыг Base Shield -ийн D5 порт руу холбоно уу.

** Алхам 3: ** Servo Grove -ийг Base Shield -ийн дижитал зүү 9 -тэй холбоно уу, ингэснээр бид DuPont шугамыг ашиглах шаардлагатай болж магадгүй юм.

** Алхам 4: ** Base Shield -ийг Seeeduino руу залгаарай.

** Алхам 5: ** Seeeduino програмыг татаж авахын тулд бид USB кабель ашиглан компьютерт холбогддог. Татаж авсны дараа бид зөвхөн хулуу дотор цахилгаан кабель ашиглаж болно.

Алхам 4: Програм хангамжийн програмчлал

** Алхам 1: ** Номын санг суулгах

Илүү сайн нөлөө үзүүлэхийн тулд бид FreeRTOS нэртэй үйлдлийн системийг ашигладаг бөгөөд үүнийг эндээс татаж авах боломжтой.

Нэмж дурдахад энэ төсөлд дараах номын сан хэрэгтэй, татаж аваад суулгаарай:

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

Эсвэл MP3 Grove ашиглахын тулд MP3.h -ийг төслийн хавтсанд оруулахад л болно.

** Алхам 2: ** Хөтөлбөрийг бүтээж, байршуулна уу

*МЭДЭГДЭЛ: Marco MAX_BRIGHTNESS нь NeoPixel -ийн хамгийн их тод байдлыг хянаж, гэрэлтүүлгийг багасгаж цахилгаан зарцуулалтыг бууруулдаг.

Хэрэв та өмнө нь Seeeduino дээр үйлдлийн систем ашиглаагүй бол програмыг ойлгоход хэцүү байж магадгүй, дараах нийтлэл нь үүнийг хялбарчлах болно.

Setup () аргаар бид Serial, MP3 Grove, Servo Motor -ийг хэвийн эхлүүлж, семафор гэж нэрлэдэг хувилбарыг үүсгэсэн бөгөөд үүнийг хэн нэгэн ирэх эсэхийг ирэхэд ашигладаг тугны хувьсагч гэж үзэж болно.

vSemaphoreCreateBinary (xPIRBinarySemaphore);

Дараа нь бид 3 даалгавар үүсгэсэн, тэд хамтдаа гүйж чадна. Гэхдээ тэр үеийн тэргүүлэх чиглэлүүд ижил биш байж магадгүй юм.

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

Семафор болон даалгавруудыг зөв эхлүүлсний дараа vTaskSetartScheduler () арга нь FreeRTOS -ийг бүхэлд нь эхлүүлнэ.

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

{for (;;); } vTaskStartScheduler ();

FreeRTOS -д ашигладаг loop () аргыг ашигладаг. Бусад нь энгийн, vFadingLEDsTask даалгавар нь хувьсах өнгөний LED болон vScanPIRTask даалгаврыг PIR Motion Sensor -ийн зүүг байнга скан хийдэг. PIR Motion Sensor нь хэн нэгэн ирж байгааг илрүүлэхэд тугийг байрлуулж, дараа нь vHandlePIRTask даалгавар ажиллаж эхэлдэг. VHandlePIRTask даалгаврын тэргүүлэх ач холбогдол нь 2 тул ажиллаж байх үед үлдсэн хоёр ажлыг зогсоох болно.

Дараах дуудлага нь туг тохируулах эсвэл дахин тохируулахад хэрэглэгддэг.

xSemaphoreGive (xPIRBinarySemaphore);

xSemaphoreTake (xPIRBinarySemaphore, portMAX_DELAY);

Алхам 5: Үйл ажиллагаа

Чанга яригч, Seeeduino, Groves нарыг хулууны дэнлүүнд оруулаад асаагаарай. Одоо та хэн нэгэн ирэхийг хүлээж болно, заль мэх эсвэл эмчил:-).

Halloween хулууны гэрэл дээр дарж видеог үзээрэй. (https://www.youtube.com/embed/CFjuWXOIUN4)

Зөвлөмж болгож буй: