Բովանդակություն:
- Քայլ 1: Հավաքեք նյութեր
- Քայլ 2: Շղթաների պատրաստում
- Քայլ 3: Ձեռնոցի ձևավորում
- Քայլ 4: Sոդում
- Քայլ 5: Կոդավորում
- Քայլ 6: Փոփոխություններ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Այս կիբերասերը ճիշտ պահին ճիշտ քայլ կատարելու մասին է:
Լույսերը գնում են ձեր թևից (արմունկ) դեպի ձեր ձեռքը, և երբ լույսերը հասնում են ձեր ձեռքին, դուք պետք է ձեր մատները սեղմեք մինի ֆոտոցելի վրա:
Եթե ճիշտ պահին ձեռքը սեղմեք մինի ֆոտոէլեկտրակայանի վրա, լուսադիոդները կանաչում են: Եթե ոչ, ապա led- ները դառնում են կարմիր:
Քայլ 1: Հավաքեք նյութեր
- Ձեռնոց
- Գործվածք `ձեռնոցն ավելի երկար դարձնելու համար
- WS2812B LED ժապավեն
- Լարերը
- Արդուինո
- Մինի ֆոտոշարք
Քայլ 2: Շղթաների պատրաստում
Նախ միացրեք led ժապավենը arduino- ին: Դուք կարող եք դա անել `միացնելով +5v- ն 5v- ին arduino- ի վրա: The Din- ը պետք է միացված լինի arduino- ում, իսկ GND- ը `arduino- ի GND- ին:
Դուք նաև պետք է միացնեք մինի լուսաբջիջը arduino- ին `led ժապավենից 5v լարին միանալու միջոցով և arduino- ի PIN 6 -ին մետաղալարով միացվող նույն աղբյուրից: Մինի ֆոտոէլեկտրակայանի մյուս կողմը պետք է միացված լինի GND մետաղալարին `առաջնորդվող ժապավենից
Քայլ 3: Ձեռնոցի ձևավորում
Ձեռնոցը պետք է ունենա ճիշտ չափս, որը կհամապատասխանի led շերտերին: Առաջատարները պետք է հավասարեցվեն, որպեսզի ավելի հաճելի լինի նայելը:
Այս խաղի համար դուք պետք է օգտագործեք ձեր թևը և ցանկանում եք, որ կարողանաք ազատ տեղաշարժվել: Դա կարելի է գիտակցել ՝ արդուինոն ձեռնոցի վրա դնելով: Ես օգտագործել եմ velcro- ն որպես ամրացնող սարք `արդուինոն ձեռնոցին կպցնելու համար: Այնուհետև ավելի շատ կայունություն հաստատելու համար կարող եք պարան տեղադրել ձեռնոցի և արդուինոյի շուրջը:
Մինի ֆոտոխցիկը կարված է ձեռնոցի ներսում, այնպես որ այն կմնա տեղում:
Ի վերջո, դուք պետք է թաքցնեք լարերը, որպեսզի այն ավելի լավ տեսք ունենա: Դա կարելի է անել հյուսվածքով, որը կարված կլինի լարերի վերևում:
Քայլ 4: Sոդում
Այժմ դուք կարող եք միացման լարերը միացումից ապահով դարձնել զոդման միջոցով:
Քայլ 5: Կոդավորում
// NeoPixel շերտի փորձարկման հիմնական ծրագիր:
// NEOPIXEL ԼԱՎԱԳՈՅՆ ԳՈՐՈՆԵՈԹՅՈՆՆԵՐ ամենահուսալի աշխատանքի համար. // - ՆԱԽԱԵԼ ՄԵԿԱՈՄԱՆ ՄԵԿՆԱԲԱՆՈԹՅՈՆԸ միկրոկառավարիչի տախտակի և առաջին պիքսելների միջև: //-NeoPixel շերտի DATA-IN- ը պետք է անցնի 300-500 OHM RESISTOR- ով: // - ԽՈՍԵԼ NeoPixels- ը Ո LԻ Շրջանի վրա միացնելուց: Եթե պետք է, ՄԻՇՏ // միացրեք GROUND (-) նախ, ապա +, ապա տվյալները: //-3.3V միկրոկոնտրոլեր 5V սնուցվող NeoPixel ժապավենով օգտագործելիս, // տվյալների գծի ՏՐԱՄԱԲԱՆԱԿԱՆ ՓՈՓՈԽՈԹՅՈՆԸ ԽՈՐՀՐԴԱՎԱՐՈԹՅՈՆ Է: // (Բաց թողնել դրանք կարող են լավ աշխատել ձեր աշխատասեղանին, բայց կարող է ձախողվել դաշտում)
#ներառել #ifdef _AVR_ #ներառել // Պահանջվում է 16 ՄՀց Adafruit մանրուք #endif
// Arduino- ի ո՞ր քորոցը միացված է NeoPixels- ին: // Կտրուկի կամ Gemma- ի վրա մենք առաջարկում ենք փոխել այն 1: #սահմանել LED_PIN 6
// Քանի՞ NeoPixel է կցված Arduino- ին: #սահմանեք LED_COUNT 60
// Հայտարարեք մեր NeoPixel շերտի օբյեկտը ՝ Adafruit_NeoPixel շերտը (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t գույն = շերտ. Գույն (127, 127, 127); // Սպիտակ գույն, լռելյայն bool- ի համար սեղմված է Corrrectly = false; // Փաստարկ 1 = NeoPixel շերտի պիքսելների քանակը // Փաստարկ 2 = Arduino փին համարը (շատերը վավեր են) // Փաստարկ 3 = Պիքսել տիպի դրոշներ, անհրաժեշտության դեպքում ավելացնել միասին. // NEO_KHZ800 800 ԿՀց բիթստրիմ WS2812 LEDs) // NEO_KHZ400 400 KHz (դասական «v1» (ոչ v2) FLORA պիքսելներ, WS2811 վարորդներ) // NEO_GRB պիքսելները միացված են GRB բիթստրիմի համար (NeoPixel ապրանքների մեծ մասը) // NEO_RGB պիքսելները միացված են RGB բիթստրիմի համար (v1 FLORA պիքսել), ոչ v2) // NEO_RGBW պիքսելները միացված են RGBW bitstream- ի համար (NeoPixel RGBW արտադրանք)
// setup () գործառույթը-գործարկում է մեկ անգամ գործարկման ժամանակ ------------------------------------
void setup () {// Այս տողերը հատուկ աջակցում են Adafruit Trinket 5V 16 ՄՀց հաճախականությանը: // boardանկացած այլ տախտակ, կարող եք հեռացնել այս հատվածը (բայց դրանից հեռանալը ոչ մի վնաս չի պատճառի). #endif // Trinket- ի հատուկ ծածկագրի ՎԵՐ END:
pinMode (A0, INPUT); strip.begin (); // ՍՆԱՆԵԼ NeoPixel շերտի օբյեկտ (ՊԱՐՏԱԴԻՐ) strip.show (); // Անջատեք բոլոր պիքսելները ASAP strip.setBrightness (10); // BRIGHTNESS- ը սահմանել մոտ 1/5 (առավելագույնը = 255)}
// loop () գործառույթը-անընդհատ աշխատում է այնքան ժամանակ, քանի դեռ տախտակը միացված է ---------------
void loop () {clickedCorrectly = theaterChaseOne (գույն); if (սեղմված է ճիշտ) {color = strip. Color (0, 255, 0); } else {color = strip. Color (255, 0, 0); }}
// Մեր որոշ գործառույթներ ՝ անիմացիոն էֆեկտներ ստեղծելու համար -----------------
// Թատրոն-մարկի ոճով հետապնդող լույսեր: Անցեք գույնով (32-բիթանոց արժեք, // a la շերտ. Գույն (r, g, b), ինչպես նշվեց վերևում) և հետաձգման ժամանակ (ms) // շրջանակների միջև: bool theaterChaseOne (uint32_t գույն) {bool ճիշտ = կեղծ; bool clickedWrong = false; for (int index = 0; index 800) {// value light sensor if (index <16) {// 2 leds before end, then you can click color = strip. Color (255, 0, 0); // կարմիր գույնի leds սեղմված Սխալ = ճշմարիտ; // սխալ սեղմված, ապա լուսադիոդները կարմիր են դառնում} else if (! clickedWrong) {// եթե սխալ չէ color = strip. Color (0, 255, 0); // կանաչ գույնը տանում է ճիշտ = ճշմարիտ; // ճիշտ սեղմված, ապա լուսադիոդները կանաչում են}} strip.clear (); strip.setPixelColor (17 - ինդեքս, գույն); // առաջին շարքի լուսարձակներ strip.setPixelColor (18 + ինդեքս, գույն); // երկրորդ շարքի լուսարձակներ strip.setPixelColor (53 - ինդեքս, գույն); // երրորդ շարքի լուսարձակներ strip.show (); ուշացում (300); } վերադարձը ճիշտ է; }
Քայլ 6: Փոփոխություններ
Որոշ փոփոխություններ կատարեցի: Նախ ես թաքցրի arduino- ն, որպեսզի ավելի հարմար լինի օգտագործել «Rythm hand» - ը, և երկրորդ ՝ ես մի փոքր փոխեցի ծածկագիրը: Ես փոխեցի ծածկագիրը այնպես, որ ճիշտ պահին սեղմելիս գույնը դառնում է կանաչ, և LEDS- ն ավելի արագ է շարժվում: Դրանով LED Swill- ը դառնում է 10% ավելի արագ, քան նախկինում: Սա ավելի հետաքրքիր է դարձնում խաղը
Ահա այսպիսին է կոդը այժմ.
// NeoPixel շերտի փորձարկման հիմնական ծրագիր: // NEOPIXEL ԼԱՎԱԳՈՅՆ ԳՈՐՈՆԵՈԹՅՈՆՆԵՐ ամենահուսալի աշխատանքի համար. // - նվազագույնի հասցնել լարերի երկարությունը միկրոկառավարիչի տախտակի և առաջին պիքսելների միջև: //-NeoPixel շերտի DATA-IN- ը պետք է անցնի 300-500 OHM RESISTOR- ով: // - ԽՈՍԵԼ NeoPixels- ը Ո LԻ Շրջանի վրա միացնելուց: Եթե պետք է, ՄԻՇՏ // միացրեք GROUND (-) նախ, ապա +, ապա տվյալները: //-3.3V միկրոկոնտրոլեր 5V սնուցվող NeoPixel ժապավենով օգտագործելիս, // տվյալների գծի ՏՐԱՄԱԲԱՆԱԿԱՆ ՓՈՓՈԽՈԹՅՈՆԸ ԽՈՐՀՐԴԱՎԱՐՈԹՅՈՆ Է: // (Դրանք բաց թողնելը կարող է նորմալ աշխատել ձեր աշխատասեղանին, բայց կարող է ձախողվել դաշտում) #ներառել #ifdef _AVR_ #ներառել // Պահանջվում է 16 ՄՀց հաճախականությամբ Adafruit Trinket #endif // Arduino- ի ո՞ր քորոցը միացված է NeoPixels- ին: // Կտրուկի կամ Gemma- ի վրա մենք առաջարկում ենք այն փոխել 1 -ով: #սահմանել LED_PIN 6 // Քանի՞ NeoPixel է կցված Arduino- ին: #սահմանեք LED_COUNT 60 // Հայտարարեք մեր NeoPixel շերտի օբյեկտը ՝ Adafruit_NeoPixel ժապավենը (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t գույն = շերտ. Գույն (127, 127, 127); // Սպիտակ գույն, լռելյայն bool- ի համար սեղմված է Corrrectly = false; int ինդեքս = 0; int միջակայք = 300; int արդյունք = 0; անստորագիր երկար նախորդներ = millis (); // Փաստարկ 1 = NeoPixel շերտի պիքսելների քանակը // Փաստարկ 2 = Arduino փին համարը (շատերը վավեր են) // Փաստարկ 3 = Պիքսել տիպի դրոշներ, անհրաժեշտության դեպքում ավելացնել միասին. // NEO_KHZ800 800 ԿՀց բիթստրիմ WS2812 LED) // NEO_KHZ400 400 ԿՀց (դասական «v1» (ոչ v2) FLORA պիքսել, WS2811 վարորդ) // NEO_GRB պիքսելները միացված են GRB բիթստրիմի համար (NeoPixel- ի ապրանքների մեծ մասը) // NEO_RGB պիքսելները միացված են RGB բիթստրիմի համար (v1 FLORA պիքսել), ոչ v2) // NEO_RGBW պիքսելները միացված են RGBW bitstream- ի համար (NeoPixel RGBW արտադրանք) // setup () գործառույթ-գործարկում է մեկ անգամ գործարկման ժամանակ -------------------- ------------ void setup () {// Այս տողերը հատուկ աջակցում են Adafruit Trinket 5V 16 ՄՀց հաճախականությանը: // boardանկացած այլ տախտակ, կարող եք հեռացնել այս հատվածը (բայց դրանից հեռանալը ոչ մի վնաս չի պատճառի). #endif // Trinket- ի հատուկ ծածկագրի ՎԵՐ END: Serial.begin (9600); իսկ (! Սերիա) {; // սպասեք սերիական նավահանգստի միացմանը: Անհրաժեշտ է միայն մայրենի USB պորտի համար} pinMode (A0, INPUT); strip.begin (); // ՍՆԱՆԵԼ NeoPixel շերտի օբյեկտ (ՊԱՐՏԱԴԻՐ) strip.show (); // Անջատեք բոլոր պիքսելները ASAP strip.setBrightness (10); // BRIGHTNESS- ը սահմանել մոտ 1/5 (max = 255)} // loop () գործառույթը-անընդհատ աշխատում է այնքան ժամանակ, քանի դեռ տախտակը միացված է --------------- void loop () {անստորագիր երկար ընթացիկ Ms = millis (); // Ստանալով ընթացիկ ժամանակը int արժեքը = analogRead (A0); // Ընթերցում ընթացիկ լույսի սենսորը, եթե (արժեքը> 900 && արդյունք == 0) {// Եթե սենսորը սեղմված է և դեռ ոչ մի արդյունք չի գրանցվել, միացրեք արդյունքի գրավումը, եթե (ինդեքս = ընդմիջում) {// Ստուգեք, արդյոք ընթացիկ հանգույցը գերազանցում է նախորդ Մ = ընթացիկ միջակայքը; // Նոր միջակայքը սահմանել ընթացիկ ժամանակի + միջակայքի ինդեքս + = 1; // Տեղադրեք led- ները մեկ քայլ առաջ օղակի մեջ, եթե (ինդեքս> 17) {// Միացրեք հանգույցի մշակման ինդեքսի վերջը = 0; եթե (արդյունք == 2) {// resultիշտ արդյունքի միջակայքում = (int) max ((միջակայք * 0.95), 50); // Արագացնել 10%-ով, մինչև 50ms ընդմիջում/ գույն = շերտ. Գույն (0, 255, 0); // Առաջարկները սահմանեք կանաչ} else if (արդյունք == 1) {// Սխալ արդյունքի միջակայքում = 300; // Վերականգնել ինտերվալի գույնը = շերտ. Գույն (255, 0, 0); // Տեղադրեք լուսարձակները կարմիր} else {// Ոչ մի արդյունքի վրա գրավված գույն = շերտ. Գունավոր (255, 0, 0); // Առաջարկները սահմանեք կարմիր} արդյունք = 0; // Վերականգնել արդյունքը հաջորդ հանգույցի համար} theaterChaseOne (գույն, ինդեքս); // Լուսավորեք լուսարձակները ցուցադրման համար: }} // Մեր սեփական որոշ գործառույթներ `անիմացիոն էֆեկտներ ստեղծելու համար ----------------- // Թատրոն-շերտի ոճով հետապնդող լույսեր: Անցեք գույնով (32-բիթանոց արժեք, // a la շերտ. Գույն (r, g, b), ինչպես նշվեց վերևում) և հետաձգման ժամանակ (ms) // շրջանակների միջև: void theaterChaseOne (uint32_t գույն, int ինդեքս) {strip.clear (); strip.setPixelColor (17 - ինդեքս, գույն); // առաջին տող LED լույսեր strip.setPixelColor (18 + ինդեքս, գույն); // երկրորդ շարքի լուսարձակներ strip.setPixelColor (53 - ինդեքս, գույն); // երրորդ շարքի լուսարձակներ strip.show (); }
Խորհուրդ ենք տալիս:
Ավտոմատ ձեռքի ախտահանիչ `8 քայլ
Ձեռքերի ավտոմատ ախտահանող միջոց. COVID-19 համաճարակը դարձել է այն, ինչը հասարակությունը շատ հաճախ է լսել 2020 թվականի ընթացքում: Յուրաքանչյուր քաղաքացի, ով լսում է «COVID-19» բառը, անմիջապես կմտածի «վտանգավոր», «մահացու», «մաքուր մնա» բառի մասին: », Եվ այլ բառեր: Այս COVID-19- ն ունի նաև
DIY Ավտոմատ ձեռքի ախտահանիչ դիսպենսեր `6 քայլ
DIY Ավտոմատ ձեռքի ախտահանիչ դիսպենսեր. Այս նախագծում մենք կկառուցենք ձեռքի ախտահանիչ դիսպենսեր: Այս նախագիծը կօգտագործի Arduino, ուլտրաձայնային տվիչ, ջրի պոմպ և ձեռքի ախտահանող միջոց: Ուլտրաձայնային սենսորն օգտագործվում է ախտահանիչ մեքենայի վարդակից ներքևում գտնվող ձեռքերի առկայությունը ստուգելու համար:
Ռոբոտի ձեռքի կառավարում TLV493D- ով, Joystick And, Arduino- ով ՝ 3 քայլ
Robot Arm- ը TLV493D, Joystick And, Arduino- ով. Ձեր ռոբոտի այլընտրանքային վերահսկիչ `TLV493D սենսորով, մագնիսական տվիչ` 3 աստիճանի ազատությամբ (x, y, z) դրանցով կարող եք վերահսկել ձեր նոր նախագծերը ձեր I2C հաղորդակցության միջոցով: միկրոկառավարիչներ և էլեկտրոնային տախտակ, որոնք Bast P
Մարդ-համակարգիչ ինտերֆեյս. Ձեռքի բռնակ (արտադրված է Կիրիգամիի կողմից) Ձեռքի շարժման միջոցով `օգտագործելով ԷՄԳ. 7 քայլ
Մարդ-համակարգիչ ինտերֆեյս. Ձեռքի բռնակ (ֆիրմա Կիրիգամիի կողմից) Ձեռքի շարժման միջոցով EMG- ի միջոցով. Այսպիսով, սա իմ առաջին փորձն էր մարդ-համակարգիչ ինտերֆեյսի մեջ: Ես բռնել եմ իմ դաստակի շարժման մկանների ակտիվացման ազդանշանները `օգտագործելով ԷՄԳ սենսոր, մշակել այն պիթոնի և արդուինոյի միջոցով և գործարկեց օրիգամիի վրա հիմնված բռնիչը
Քննադատական ձեռքի լվացման քայլ ուսուցման մեքենա. 5 քայլ
Քննադատական ձեռքի լվացման քայլ ուսուցման մեքենա. Սա մեքենա է, որը հիշեցնում է օգտագործողին այն քայլերի մասին, երբ նա պետք է լվանա իր ձեռքերը: Այս մեքենայի նպատակն է օգնել մարդկանց հասկանալ, թե ինչպես են իրենց ձեռքերը ճիշտ լվանում արդյունավետ կերպով: Համաճարակի կամ համաճարակի կանխարգելման շրջանում