Բովանդակություն:
Video: Cyclone LED Արկադային խաղ. 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս նախագծի նպատակն էր ստեղծել պարզ խաղ Arduino- ի միջոցով, որը կլինի ինտերակտիվ և զվարճալի երեխաների համար: Հիշում եմ, որ «clիկլոն» արկադային խաղը երիտասարդ տարիքում իմ ամենասիրած արկադային խաղերից էր, ուստի որոշեցի կրկնօրինակել այն: Սա շատ պարզ նախագիծ է, որը բաղկացած է Arduino- ից, առանձին հասցեավորվող LED- ների շարքից և սեղմիչ կոճակից:
Խաղի նպատակն է դադարեցնել հեծանվավազքի լույսը, երբ այն հասնի նշված (կարմիր) LED- ին: Հաջողության դեպքում դժվարության մակարդակը կբարձրանա: Եթե անհաջող է, լուսային ցիկլը կվերսկսվի ընթացիկ դժվարության մակարդակով:
Այս հրահանգը հսկայական ռեսուրս էր իմ կոդավորման առանցքի համար:
Քայլ 1: Հավաքեք պաշարները
-
Հիմնական բաղադրիչներ.
- Arduino (ես օգտագործել եմ UNO)
- Անհատապես հասցեավորվող LED- ների շարք (ես օգտագործել եմ հղումը)
- Կտտացրեք կոճակը (ես օգտագործեցի հղումը)
- Տպագիր տպատախտակ (PCB) կամ տախտակ
-
Էլեկտրաէներգիայի մատակարարում (ես օգտագործել եմ երկու առանձին սնուցման աղբյուր, կարող եք մեկից ազատվել, եթե ստեղծագործ եք)
- 5V 3A LED- ների համար
- 9V 1A Arduino- ի համար
-
Շրջանակ:
- Էլեկտրոնիկայի բնակարան (ես փոփոխեցի փայտե լամպի հարմարանքը Goodwill- ից)
- LED պատյան (ես փոխեցի ձեր ստանդարտ պատի ժամացույցը և հորատեցի անցքեր `օգտագործելով րոպեի նույնացուցիչները որպես անցքի նշաններ: Հնարավորության դեպքում օգտագործեք փայտյա ժամացույց` հորատումը հեշտացնելու համար):
- Կոճակի բնակարան (ես օգտագործել եմ արմունկով PVC խողովակ)
-
Գործիքներ / Այլ նյութեր.
- Պահեստային էլեկտրագծեր ձեր միացման համար
- 10K (անջատիչի համար քաշվող դիմադրություն) և 470 օհմ (LED- ների վրա տվյալների հաղորդալարի համար) դիմադրիչներ
- Հորատեք ձեր LED- ները տեղադրելու համար անցքեր ստեղծելու և լարերի միջով անցնելու համար անհրաժեշտ բոլոր անցքեր կատարելու համար
- Circuitոդման երկաթ `ձեր սխեման PCB- ին զոդելու համար
- Տաք սոսինձ ատրճանակ `LED- ները ամրացնելու համար
- Velcro կամ շրջանակը միասին ապահովելու որոշ միջոցներ
- Լարերը անցնելու համար անցքերն ընտրովի են
Քայլ 2: Վերբեռնեք ծածկագիրը
Համոզվեք, որ ներբեռնում և ավելացնում եք «FastLED» գրադարանը
Կոդի միջուկը (դատարկ հանգույց) բաղկացած է երկու վիճակից ՝ սեղմիչ կոճակը բարձր (Վերջ խաղ) և սեղմ կոճակը ցածր (Խաղում): Երբ օգտվողը սեղմում է կոճակը, LED հասցեն, որի վրա լույսը անջատված էր, համեմատվում է կենտրոնական LED- ի հասցեի հետ: Եթե դրանք նույնը չեն, բոլոր լույսերը երկու անգամ կարմիր են բռնկվում և ընթացիկ մակարդակը վերսկսվում է: Եթե դրանք նույնն են, ցիլոնը (FastLED գրադարանի սցենար) աշխատում է երկու անգամ, դժվարության մակարդակը բարձրանում է, և նվագարկումը վերսկսվում է: Երբ խաղացողը հաղթում է վերջին մակարդակին, գլանն աշխատում է ութերորդ անգամ և խաղը վերսկսվում է 1 -ին մակարդակում:
// clիկլոնային խաղ
#ներառել «FastLED.h» // մինչև 50 #սահմանել NUM_LEDS 40 #սահմանել CENTER_LED 21 #սահմանել ՏՎՅԱԼՆԵՐԸ 7 #սահմանել LED_TYPE WS2811 #սահմանել ԳՈLՅՆ_ՊԱՀԱՆՈ RԹՅՈ RՆ RGB // տիրույթ 0-64 #սահմանել Պայծառություն 50 // Բարդության մակարդակների սահմանում #սահմանում EASY 1 #սահմանել ՄԻEDՆՈՐԴ 2 #սահմանել HARD 3 #սահմանել ON_SPEED 4 #սահմանել SONIC_SPEED 5 #սահմանել ROCKET_SPEED 6 #սահմանել LIGHT_SPEED 7 #սահմանել MISSION_IMPOSSIBLE 8 // Սկսելու դժվարությունը դժվարության մեջ = 1; // Սահմանել leds CRGB leds- ի զանգվածը [NUM_LEDS]; // Արդյո՞ք խաղացողը հաղթեց այս տուրում: Այս պիտակը օգտագործվում է դժվարության պարամետրերի համար: bool wonThisRound = կեղծ; // Հեծանվավազքի լույսի մեկնարկային վայրը int LED հասցե = 0; // Արդյո՞ք խաղն աշխատում է: bool Playing = true; // Արդյո՞ք սա առաջին հաղթանակն է: bool CycleEnded = ճշմարիտ; // Կոճակի մանրամասները const int buttonPin = 9; int կոճակ Պետություն = 0; // Նախաստորագրեք led գրադարանի և arduino գործառույթների void setup () {FastLED.addLeds (leds, NUM_LEDS); FastLED.setBrightness (BRIGHTNESS); pinMode (buttonPin, INPUT); Serial.begin (9600); } // Միսը և կարտոֆիլը // Երկու ռեժիմ. եթե (buttonState == HIGH) {Խաղում = կեղծ; // Օգտվողը սեղմել է կոճակը, և LED- ը կանգ է առել հաղթող հասցեում: համար (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Սև; } leds [CENTER_LED] = CRGB:: Կարմիր; leds [LEDaddress] = CRGB:: Կանաչ; FastLED.show (); եթե (CycleEnded = true) {int diff = abs (CENTER_LED - LED հասցե); // Գտնում է լուսավորված լուսադիոդի և կենտրոնի միջև հեռավորությունը, եթե (diff == 0) {wonThisRound = true; // Խաղացողը հաջողությամբ հաղթեց մակարդակին, եթե (դժվարություն! = MISSION_IMPOSSIBLE) {for (int i = 0; i <2; i ++) {cylon (); }} if (դժվարություն == MISSION_IMPOSSIBLE) {for (int i = 0; i <8; i ++) {cylon (); } դժվարություն = 0; } افزایشԴժվարություն (); wonThisRound = կեղծ; } else {հետաձգում (1000); համար (int i = 0; i <2; i ++) {flash (); }} CycleEnded = կեղծ; } LED հասցե = 0; ուշացում (250); buttonState = digitalRead (buttonPin); եթե (buttonState == LOW) {Խաղում = ճշմարիտ; }} // PLAYING if (Խաղում) {for (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Սև; // Անջատում է բոլոր leds} leds [CENTER_LED] = CRGB:: Red; // Կենտրոնի գույնը սահմանում է կանաչ լեդերի [LEDaddress] = CRGB:: Green; // Հեծանիվներով առաջնորդվող գույնը կարմիր է դնում FastLED.show (); // Նախագծում է լուսադիոդային LED հասցե ++; // Լույսի ցիկլը միաժամանակ սահմանում է մեկ led- ի դեպքում, եթե (LEDaddress == NUM_LEDS) {LEDaddress = 0; } ուշացում (getTime (դժվարություն)); buttonState = digitalRead (buttonPin); եթե (buttonState == HIGH) {Խաղում = կեղծ; CycleEnded = ճշմարիտ; }}} // Մակարդակի պարամետրեր int getTime (int diff) // Վերադարձնում է led- ի շարժման ժամանակի հետաձգումը `ըստ դժվարության {int timeValue = 0; switch (diff) {case EASY: timeValue = 100; ընդմիջում; գործ ՄԻEDԵՆ: timeValue = 80; ընդմիջում; գործ HARD: timeValue = 60; ընդմիջում; գործ ON_SPEED: timeValue = 40; ընդմիջում; գործ SONIC_SPEED: timeValue = 30; ընդմիջում; գործ ROCKET_SPEED: timeValue = 20; ընդմիջում; գործ LIGHT_SPEED: timeValue = 13; ընդմիջում; գործ MISSION_IMPOSSIBLE: timeValue = 7; } return timeValue; // Վերադարձնել հետաձգման գումարը} // Հաղթող դժվարությունը մեծացնում է պարամետրերը void افزایش Դժվարություն () {if (դժվարություն! = MISSION_IMPOSSIBLE && wonThisRound) {դժվարություն ++; }} // Lost LED Showույց տալ դատարկ լուսարձակը () {fill_solid (leds, NUM_LEDS, CRGB:: Red); FastLED.show (); ուշացում (500); fill_solid (leds, NUM_LEDS, CRGB:: Սև); FastLED.show (); ուշացում (500); } // Հաղթեց LED Showուցադրել void fadeall () {for (int i = 0; i <NUM_LEDS; i ++) {leds .nscale8 (250); }} դատարկ գլան () {ստատիկ uint8_t երանգ = 0; Serial.print ("x"); // Առաջին հերթին սահեցրեք led- ը մեկ ուղղությամբ (int i = 0; i = 0; i--) համար {/: // Showույց տվեք ledles FastLED.show (); // այժմ, երբ մենք ցույց տվեցինք led- երը, i'th led- ը վերափոխեք սևի // leds = CRGB:: Black; fadeall (); // Մի փոքր սպասեք, նախքան շրջվելը և նորից դա հետաձգել (10); }}
Քայլ 3: Տեղադրեք Fixture- ում
Այս բաժնում չեմ պատրաստվում մանրամասնել: Այս մասով զբաղվելու հազար տարբեր եղանակներ կան, և ես կարծում եմ, որ դուք պետք է ստեղծագործեք, որպեսզի այն տեսնի, թե ինչպես է ձեզ դուր գալիս: Ասածս այն է, որ ժամացույցը բավականին հարմար էր օգտագործել LED- ները տեղադրելու համար, քանի որ այն ուներ րոպեային ցուցիչներ, որոնք ես կարողացա օգտագործել որպես հորատման նշաններ: Բացի այդ, ապակե ծածկը նույնպես թույլ է տալիս օգտագործել սա որպես սեղան:
Velcro- ն շատ օգտակար էր նաև էլեկտրոնիկայի պատյանների լուսատուին ամրացնելու համար: Ես նաև Velcro օգտագործեցի Arduino- ում: Սա շատ հարմար դարձրեց Arduino- ն դուրս հանելու համար, եթե ես երբևէ ցանկանամ փոփոխել կոդը:
Խորհուրդ ենք տալիս:
POING! - Arduino Արկադային խաղ: 3 քայլ
POING! - Arduino Արկադային խաղ. հավաքածու Elegoo Inc- ից: Ամբողջական բացահայտում
Arduino Cyclone Արկադային խաղ. 6 քայլ
Arduino Cyclone Արկադային խաղ. Թարթող շողշողացող լույսեր: Արդուինո! Խաղ! Էլ ինչ պետք է ասել: Այս խաղը հիմնված է Cyclone արկադային խաղի վրա, որտեղ խաղացողը փորձում է կանգնեցնել մի պտույտով պտտվող պտույտ ՝ որոշակի տեղում
Խելացի բասկետբոլի արկադային խաղ ՝ Evive- Arduino- ի ներդրված հարթակի օգնությամբ միավորների հաշվարկով, 13 քայլ
Խելացի բասկետբոլի արկադային խաղ ՝ Evive- Arduino ներդրված հարթակի միջոցով ՝ միավորների հաշվարկի օղակների միջոցով. Այն բոլոր խաղերից ամենազվարճալիը արկադային խաղերն են: Այսպիսով, մենք մտածեցինք, թե ինչու դա չպատրաստել ինքներս մեր տանը: Եվ ահա մենք ՝ ամենազվարճալի DIY խաղն եք, որ երբևէ խաղացել եք ՝ DIY Արկադային բասկետբոլի խաղ: Ոչ միայն այս
Հելոուին ձիարշավ Արկադային խաղ. 6 քայլ
Հելոուին ձիարշավների Արկադային խաղ. Այս տարի մենք որոշեցինք ձիարշավների արկադային խաղ պատրաստել Հելոուինի համար: Մեզ ոգեշնչեց մեխանիկական տարբերակը, որը կոչվում է Roll-a-Ball ձիարշավ: Մեր նպատակն էր ուղիղ վերահսկողությամբ խաղ կազմակերպել `գրավելու լայն շրջանակի խաղացողներին: Հիմնված է
Arduino LED լազերային արկադային խաղ. 3 քայլ (նկարներով)
Arduino LED լազերային արկադային խաղ. Այս ուսանելի ծրագրում ես ցույց կտամ, թե ինչպես պատրաստել լազերային արկադային խաղ `օգտագործելով LED և լուսային տվիչներ: Կոդը ներառված է, և այն կառուցելու համար շատ մասեր պետք չեն: Ես ձեզ չեմ ասի, թե ինչպես եմ կառուցում գործը, դուք ինքներդ պետք է դա անեք: T