Mundarija:
- Ta'minotlar
- 1 -qadam: O'chirish sxemasini ulang
- 2 -qadam: Pimlarni o'rnatish kodi
- 3 -qadam: Joystikni sezish kodi
- 4 -qadam: Asosiy Loop muntazam kodi
- 5 -qadam: Sinab ko'rishga tayyormiz
- 6 -qadam: Prototip uchun Arduino Nano ilovasi
- 7-qadam: Sevganingizni taqdim etish uchun yakuniy paketli Whack-a-MoLED prototipi
Video: Whack-a-moLED !!: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Tinkercad loyihalari »
Bu klassik Whack-a-Mole o'yinining LED versiyasi.
To'g'ridan -to'g'ri 4 ta LEDdan tasodifiy LED tuynukdan tashqariga qaraydigan mol yonadi va o'yinchi molni urish o'rniga joystik yordamida LEDni o'chiradi!
Ta'minotlar
Arduino Uno/Nano yoki har qanday variantlar paneli
4 ta LED va mos keladigan oqim cheklovli rezistorlar.
X, Y chiqadigan joystik moduli
Faol buzzer (ixtiyoriy)
Jumper simlari.. disk raskadrovka uchun etarli!
1 -qadam: O'chirish sxemasini ulang
Arduino Uno taxtasini joystik moduliga ulang, 2 ta analog kirish pinini joystikning X Y chiqishlariga ulang.
Rezistorlar yordamida 4 ta LEDni 4 ta raqamli yoki analog chiqish piniga ulash kerak.
Raqamli chiqish piniga ulanish uchun faol Buzzer
2 -qadam: Pimlarni o'rnatish kodi
int xVal = 0, yVal = 0, lekinVal = 0, xPin = A0, yPin = A1, joyPin = 13, lekinPin = 7, dinamikPin = 9;
int leftLED = A2, rightLED = A3, topLED = A4, pastkiLED = A5;
int selectedLED = 0; // A2, A3, A4 yoki A5 biri bo'lishi mumkin
bo'sh o'rnatish () {
pinMode (xPin, INPUT);
pinMode (yPin, INPUT);
pinMod (chapda LED, Chiqish);
pinMode (o'ng LED, Chiqish);
pinMode (topLED, OUTPUT); pinMod (pastki LED, Chiqish);
pinMode (joyPin, OUTPUT);
pinMode (buzzerPin, OUTPUT);
}
3 -qadam: Joystikni sezish kodi
void joystickSenseRoutine ()
{
xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);
joyPin = mapXYtoPin (xVal, yVal, butVal);
analogWrite (tanlangan LED, 1024);
if (selectedLED! = leftLED) {analogWrite (leftLED, 0); } if (selectedLED! = rightLED) {analogWrite (rightLED, 0); }
if (selectedLED! = topLED) {analogWrite (topLED, 0); }
if (selectedLED! = bottomLED) {analogWrite (bottomLED, 0); }
agar (joyPin == tanlangan LED) // Mole Whacked
{
analogWrite (tanlangan LED, 0);
//
// MoLED -ni urish uchun musiqa/ohangni ijro etish uchun kod qo'shing !!
//
}
}
int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) va (yVal 400)) {return bottomLED; }
aks holda ((xVal> 900) va (yVal 400)) {topLED qaytaring; }
else if ((xVal 400) va (yVal <100)) {return leftLED; }
else if ((xVal 400) va (yVal> 900)) {rightLED qaytish; }
boshqa {qaytish -1; }
}
4 -qadam: Asosiy Loop muntazam kodi
void loop () {
uchun (int i = 0; i <uzunlik; i ++)
{
agar (tasodifiy (0, 100)> 90) {selectedLED = anaPinMap (tasodifiy (2, 6));}
// Bu erda o'yin musiqasi uchun kod qo'shing
// *** *** ***
//
}
int anaPinMap (int randNum) {
if (randNum == 2) {qaytarish A2; }
else if (randNum == 3) {A3 ni qaytaring; }
aks holda (randNum == 4) {A4 qaytaring; }
aks holda (randNum == 5) {A5 qaytaring; }
}
5 -qadam: Sinab ko'rishga tayyormiz
6 -qadam: Prototip uchun Arduino Nano ilovasi
Xuddi shunday dastur Arduino nano paneli bilan, diodli, rezistorli va signalli diodli maxsus taxtali va X-Y joystikli kalit bilan amalga oshirildi.
7-qadam: Sevganingizni taqdim etish uchun yakuniy paketli Whack-a-MoLED prototipi
Prototip uchun materiallar:
Oddiy karton quti (kamida 4 sm x 6 sm x 3 sm), qo'shimcha karton bo'laklari.
Shassisni yopish uchun dekorativ qog'oz (ixtiyoriy)
Ko'p maqsadli yopishtiruvchi/yopishtiruvchi
Mini non paneli (ixtiyoriy)
Arduino nano
Kichik universal PCB
Arduino nanosini quvvatlantirish uchun 9V batareya (Vin piniga ulanish).
SPDT kaliti
Qolgan materiallar (LEDlar, rezistorlar, joystik, zum, simlar) yuqoridagi 1 -qadamda tasvirlangan.
Tavsiya:
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadam dvigateli: 3 qadam
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadamli dvigatel: Siz hech qachon mini-loyihaga aylanishingiz kerak degan yomon fikrga keldingizmi? Xo'sh, men AD9833 to'g'ridan -to'g'ri raqamli sintez (DDS) moduli yordamida musiqa yaratishga qaratilgan Arduino Due uchun chizgan eskiz bilan o'ynab yurardim … va bir paytlar men o'yladim
Arduino uchun qadam tezligini boshqarish menyusi: 6 qadam
Arduino uchun qadam tezligini boshqarish menyusi: Bu SpeedStepper kutubxonasi qadam dvigatelining tezligini nazorat qilish uchun AccelStepper kutubxonasining qayta yozilishi. SpeedStepper kutubxonasi sizga belgilangan dvigatel tezligini o'zgartirishga imkon beradi, so'ngra xuddi shu algoritm yordamida yangi belgilangan tezlikka tezlashadi/sekinlashadi
Qanday qilib qadam taymerini yasash mumkin?: 3 qadam (rasmlar bilan)
Qanday qilib qadam taymerini yasash mumkin ?: Men ko'plab sport turlarida yaxshi qatnashardim: yurish, yugurish, velosiped haydash, badminton o'ynash va hokazo. Men tez orada sayohat qilishni yaxshi ko'raman. Xo'sh, qorin qornimga qarang …… Xo'sh, baribir, men mashg'ulotlarni qaytadan boshlashga qaror qildim. Qanday uskunani tayyorlashim kerak?
Arduino UNO bilan qadam motor: 3 qadam
Arduino UNO bilan qadam dvigateli: Bosqichli motorlar - bu alohida bosqichlarda harakatlanadigan shahar motorlari. Ularda "fazalar" deb nomlangan guruhlarga bo'lingan bir nechta rulon bor. Har bir fazani ketma -ket quvvatlantirganda, dvigatel birma -bir aylanadi, zinapoyali dvigatellar juda foydali
Kompyuteringizni qadam dvigateli bilan boshqaring!: 9 qadam (rasmlar bilan)
Kompyuteringizni qadam dvigateli bilan boshqaring!: Oldingi ko'rsatmalarimdan birida men sizga step motorini aylanuvchi kodlovchi sifatida qanday ishlatishni ko'rsatdim. Bu yo'riqnomada keling, undan kompyuterni boshqarish uchun qanday foydalanish kerakligini bilib olaylik. Shunday qilib, ko'p vaqt sarflamasdan, boshlaylik