विषयसूची:

ताल हाथ: ६ कदम
ताल हाथ: ६ कदम

वीडियो: ताल हाथ: ६ कदम

वीडियो: ताल हाथ: ६ कदम
वीडियो: amazing hand clapping therapy - many health benefits , healthy disease free body , stress relief 2024, जुलाई
Anonim
ताल हाथ
ताल हाथ

यह साइबरग्लोव सही समय पर सही कदम उठाने के बारे में है।

रोशनी आपके हाथ (कोहनी) से आपके हाथ तक जा रही है और जब रोशनी आपके हाथ में आती है तो आपको अपनी उंगलियों को मिनी फोटोकेल पर दबा देना होता है।

यदि आप सही समय पर अपना हाथ मिनी फोटोकेल पर दबाते हैं तो एलईडी हरी हो जाती है। यदि नहीं, तो एल ई डी लाल हो जाते हैं।

चरण 1: सामग्री एकत्र करें

  • एक दस्ताना
  • दस्तानों को लंबा करने के लिए कपड़ा
  • WS2812B एलईडी पट्टी
  • तारों
  • अरुडिनो
  • मिनी फोटोसेल

चरण 2: सर्किट बनाना

सर्किट बनाना
सर्किट बनाना
सर्किट बनाना
सर्किट बनाना

सबसे पहले एलईडी पट्टी को आर्डिनो से कनेक्ट करें। आप Arduino पर +5v को 5v से जोड़कर ऐसा कर सकते हैं। दीन को arduino पर A0 से जोड़ा जाना है और GND को arduino पर GND से जोड़ा जाना है।

आपको एलईडी स्ट्रिप से 5v तार से कनेक्ट करके और उसी स्रोत से arduino पर पिन 6 से कनेक्ट करके मिनी फोटोकेल को arduino से कनेक्ट करना होगा। मिनी फोटोकेल से दूसरी तरफ एलईडी पट्टी से जीएनडी तार से जुड़ा होना चाहिए

चरण 3: दस्ताने डिजाइन करना

दस्ताने डिजाइन करना
दस्ताने डिजाइन करना

एलईडी स्ट्रिप्स को फिट करने के लिए दस्ताने का सही आकार होना चाहिए। देखने के लिए और अधिक मनोरंजक बनाने के लिए एल ई डी को संरेखित करना होगा।

इस खेल के लिए आपको अपने हाथ का उपयोग करना होगा और आप स्वतंत्र रूप से आगे बढ़ने में सक्षम होना चाहते हैं। यह आर्डिनो को दस्ताने पर लगाकर महसूस किया जा सकता है। मैंने आर्डिनो को दस्ताने से चिपकाने के लिए एक फास्टनर के रूप में वेल्क्रो का उपयोग किया। फिर अधिक स्थिरता स्थापित करने के लिए आप दस्ताने के चारों ओर और आर्डिनो के चारों ओर एक रस्सी लगा सकते हैं।

मिनी फोटोकेल को दस्तानों के अंदर सिल दिया गया है, इसलिए यह अपनी जगह पर बना रहेगा।

अंत में आपको इसे बेहतर दिखाने के लिए तारों को छिपाना होगा। यह कपड़े के साथ किया जा सकता है जिसे तारों के ऊपर सिल दिया जाएगा।

चरण 4: सोल्डरिंग

टांकने की क्रिया
टांकने की क्रिया

अब आप सोल्डरिंग द्वारा सर्किट से कनेक्टिंग तारों को सुरक्षित बना सकते हैं।

चरण 5: कोडिंग

कोडन
कोडन
कोडन
कोडन
कोडन
कोडन

// एक बुनियादी रोजमर्रा का NeoPixel स्ट्रिप टेस्ट प्रोग्राम।

// सबसे विश्वसनीय संचालन के लिए नियोपिक्सल सर्वोत्तम अभ्यास: // - नियोपिक्सल स्ट्रिप के + और - कनेक्शन के बीच 1000 यूएफ कैपेसिटर जोड़ें। // - माइक्रोकंट्रोलर बोर्ड और पहले पिक्सेल के बीच तारों की लंबाई कम से कम करें। // - NeoPixel स्ट्रिप का DATA-IN 300-500 OHM रेसिस्टर से होकर गुजरना चाहिए। // - लाइव सर्किट पर NeoPixels को जोड़ने से बचें। यदि आपको चाहिए, हमेशा // पहले ग्राउंड (-) कनेक्ट करें, फिर +, फिर डेटा। // - 5V-संचालित NeoPixel स्ट्रिप के साथ 3.3V माइक्रोकंट्रोलर का उपयोग करते समय, // डेटा लाइन पर एक LOGIC-LEVEL CONVERTER की जोरदार अनुशंसा की जाती है। // (इन्हें छोड़ना आपके कार्यक्षेत्र पर ठीक काम कर सकता है लेकिन क्षेत्र में विफल हो सकता है)

#include #ifdef _AVR_ #include // 16 MHz एडफ्रूट ट्रिंकेट के लिए आवश्यक #endif

// Arduino पर कौन सा पिन NeoPixels से जुड़ा है? // ट्रिंकेट या जेम्मा पर हम इसे 1 में बदलने का सुझाव देते हैं: #define LED_PIN 6

// Arduino से कितने NeoPixels जुड़े हुए हैं? #परिभाषित करें LED_COUNT 60

// हमारे NeoPixel स्ट्रिप ऑब्जेक्ट की घोषणा करें: Adafruit_NeoPixel स्ट्रिप (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t रंग = पट्टी। रंग (127, 127, 127); // सफेद रंग, डिफ़ॉल्ट बूल के लिए क्लिक किया गया सही ढंग से = झूठा; // तर्क 1 = NeoPixel पट्टी में पिक्सेल की संख्या // तर्क 2 = Arduino पिन संख्या (अधिकांश मान्य हैं) // तर्क 3 = पिक्सेल प्रकार के झंडे, आवश्यकतानुसार एक साथ जोड़ें: // NEO_KHZ800 800 KHz बिटस्ट्रीम (अधिकांश NeoPixel उत्पाद w / WS2812 LED) // NEO_KHZ400 400 KHz (क्लासिक 'v1' (v2 नहीं) FLORA पिक्सल, WS2811 ड्राइवर) // NEO_GRB पिक्सेल GRB बिटस्ट्रीम (अधिकांश NeoPixel उत्पाद) के लिए वायर्ड होते हैं // NEO_RGB पिक्सेल RGB बिटस्ट्रीम (v1 FLORA पिक्सल) के लिए वायर्ड होते हैं, v2 नहीं) // NEO_RGBW पिक्सेल RGBW बिटस्ट्रीम (NeoPixel RGBW उत्पादों) के लिए वायर्ड हैं

// सेटअप () फ़ंक्शन - स्टार्टअप पर एक बार चलता है ---------------------------------

शून्य सेटअप () {// ये लाइनें विशेष रूप से एडफ्रूट ट्रिंकेट 5वी 16 मेगाहर्ट्ज का समर्थन करने के लिए हैं। // कोई अन्य बोर्ड, आप इस हिस्से को हटा सकते हैं (लेकिन इसे छोड़ने में कोई हर्ज नहीं): #if परिभाषित (_AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // ट्रिंकेट-विशिष्ट कोड का अंत।

पिनमोड (ए0, इनपुट); पट्टी। शुरू (); // NeoPixel स्ट्रिप ऑब्जेक्ट (आवश्यक) स्ट्रिप.शो () शुरू करें; // सभी पिक्सल को ASAP स्ट्रिप.सेटब्राइटनेस (10) बंद करें; // ब्राइटनेस को लगभग 1/5 (अधिकतम = 255) पर सेट करें}

// लूप () फ़ंक्शन - जब तक बोर्ड चालू रहता है तब तक बार-बार चलता है ---------------

शून्य लूप () {क्लिक किया गया सही ढंग से = थिएटरचेसऑन (रंग); अगर (सही ढंग से क्लिक किया गया) {रंग = पट्टी। रंग (0, 255, 0); } और {रंग = पट्टी। रंग (२५५, ०, ०); } }

// एनिमेटेड प्रभाव बनाने के लिए हमारे स्वयं के कुछ कार्य -----------------

// थिएटर-मार्की-शैली का पीछा करने वाली रोशनी। एक रंग में पास करें (32-बिट मान, // एक ला स्ट्रिप। रंग (आर, जी, बी) जैसा कि ऊपर बताया गया है), और फ्रेम के बीच एक विलंब समय (एमएस में) //। बूल थिएटरचेसवन (uint32_t रंग) { बूल सही = गलत; बूल क्लिक किया गया गलत = झूठा; के लिए (इंट इंडेक्स = 0; इंडेक्स 800) {// वैल्यू लाइट सेंसर अगर (इंडेक्स <16) {//2 अंत से पहले एलईडी है तो आप कलर = स्ट्रिप। कलर (255, 0, 0) पर क्लिक कर सकते हैं; // लाल रंग के एलईडी पर क्लिक किया गया गलत = सच; // गलत क्लिक किया गया तो एलईडी लाल हो गया } और अगर (! क्लिक किया गया गलत) {// अगर गलत रंग नहीं = पट्टी। रंग (0, 255, 0); // हरा रंग एलईडी सही = सच; // सही क्लिक किया गया तो एलईडी हरा हो गया}} पट्टी। स्पष्ट (); strip.setPixelColor(17 - अनुक्रमणिका, रंग); // पहली पंक्ति एलईडी लाइट्स स्ट्रिप।सेट पिक्सेलकलर (18 + इंडेक्स, कलर); // दूसरी पंक्ति एलईडी लाइट्स स्ट्रिप।सेटपिक्सेलकोलर (53 - इंडेक्स, कलर); // तीसरी पंक्ति एलईडी रोशनी पट्टी। शो (); देरी (300); } सही वापसी; }

चरण 6: परिवर्तन

परिवर्तन
परिवर्तन
परिवर्तन
परिवर्तन
परिवर्तन
परिवर्तन

मैंने कुछ बदलाव किए। सबसे पहले मैंने आर्डिनो को छुपाया ताकि "रिदम हैंड" का उपयोग करना अधिक आरामदायक हो और दूसरी बात मैंने कोड को थोड़ा सा बदल दिया। मैंने कोड बदल दिया ताकि जब आप सही समय पर दबाते हैं तो रंग हरा हो जाता है और एल ई डी तेजी से आगे बढ़ता है। ऐसा करने से LED स्वाइल पहले की तुलना में 10% तेज हो जाती है। यह खेल को और दिलचस्प बनाता है

इस तरह कोड अब है:

// एक बुनियादी रोजमर्रा का NeoPixel स्ट्रिप टेस्ट प्रोग्राम। // सबसे विश्वसनीय संचालन के लिए नियोपिक्सल सर्वोत्तम अभ्यास: // - नियोपिक्सल स्ट्रिप के + और - कनेक्शन के बीच 1000 यूएफ कैपेसिटर जोड़ें। // - माइक्रोकंट्रोलर बोर्ड और पहले पिक्सेल के बीच तारों की लंबाई कम से कम करें। // - NeoPixel स्ट्रिप का DATA-IN 300-500 OHM रेसिस्टर से होकर गुजरना चाहिए। // - लाइव सर्किट पर NeoPixels को जोड़ने से बचें। यदि आपको चाहिए, हमेशा // पहले ग्राउंड (-) कनेक्ट करें, फिर +, फिर डेटा। // - 5V-संचालित NeoPixel स्ट्रिप के साथ 3.3V माइक्रोकंट्रोलर का उपयोग करते समय, // डेटा लाइन पर एक LOGIC-LEVEL CONVERTER की जोरदार अनुशंसा की जाती है। // (इन्हें छोड़ना आपके कार्यक्षेत्र पर ठीक काम कर सकता है लेकिन क्षेत्र में विफल हो सकता है) #include #ifdef _AVR_ #include // 16 MHz Adafruit Trinket #endif के लिए आवश्यक // Arduino पर कौन सा पिन NeoPixels से जुड़ा है? // एक ट्रिंकेट या जेम्मा पर हम इसे 1 में बदलने का सुझाव देते हैं: #define LED_PIN 6 // Arduino से कितने NeoPixels जुड़े हुए हैं? #define LED_COUNT 60 // हमारे NeoPixel स्ट्रिप ऑब्जेक्ट की घोषणा करें: Adafruit_NeoPixel स्ट्रिप (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t रंग = पट्टी। रंग (127, 127, 127); // सफेद रंग, डिफ़ॉल्ट बूल के लिए क्लिक किया गया सही ढंग से = झूठा; इंट इंडेक्स = 0; इंट अंतराल = ३००; इंट परिणाम = 0; अहस्ताक्षरित लंबे पिछले एम = मिली (); // तर्क 1 = NeoPixel पट्टी में पिक्सेल की संख्या // तर्क 2 = Arduino पिन संख्या (अधिकांश मान्य हैं) // तर्क 3 = पिक्सेल प्रकार के झंडे, आवश्यकतानुसार एक साथ जोड़ें: // NEO_KHZ800 800 KHz बिटस्ट्रीम (अधिकांश NeoPixel उत्पाद w / WS2812 LED) // NEO_KHZ400 400 KHz (क्लासिक 'v1' (v2 नहीं) FLORA पिक्सल, WS2811 ड्राइवर) // NEO_GRB पिक्सेल GRB बिटस्ट्रीम (अधिकांश NeoPixel उत्पाद) के लिए वायर्ड होते हैं // NEO_RGB पिक्सेल RGB बिटस्ट्रीम (v1 FLORA पिक्सल) के लिए वायर्ड होते हैं, v2 नहीं) // NEO_RGBW पिक्सेल RGBW बिटस्ट्रीम (NeoPixel RGBW उत्पादों) के लिए वायर्ड हैं // सेटअप () फ़ंक्शन - स्टार्टअप पर एक बार चलता है ------------------------ ------------ void setup() {// ये लाइनें विशेष रूप से Adafruit Trinket 5V 16 MHz को सपोर्ट करने के लिए हैं। // कोई अन्य बोर्ड, आप इस हिस्से को हटा सकते हैं (लेकिन इसे छोड़ने में कोई हर्ज नहीं): #if परिभाषित (_AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // ट्रिंकेट-विशिष्ट कोड का अंत। सीरियल.बेगिन (९६००); जबकि (! सीरियल) {; // सीरियल पोर्ट के कनेक्ट होने की प्रतीक्षा करें। केवल देशी USB पोर्ट के लिए आवश्यक} पिनमोड (A0, INPUT); पट्टी। शुरू (); // NeoPixel स्ट्रिप ऑब्जेक्ट (आवश्यक) स्ट्रिप.शो () शुरू करें; // सभी पिक्सल को ASAP स्ट्रिप.सेटब्राइटनेस (10) बंद करें; // ब्राइटनेस को लगभग 1/5 (अधिकतम = 255) पर सेट करें} // लूप () फ़ंक्शन - जब तक बोर्ड चालू रहता है तब तक बार-बार चलता है --------------- शून्य लूप () { अहस्ताक्षरित लंबी वर्तमान एम = मिली (); // वर्तमान समय प्राप्त करना int मान = एनालॉगरेड (A0); // वर्तमान प्रकाश संवेदक को पढ़ना यदि (मान> 900 && परिणाम == 0) {// यदि सेंसर दबाया गया है और अभी तक कोई परिणाम दर्ज नहीं किया गया है, तो ट्रिगर परिणाम कैप्चर करें यदि (सूचकांक = अंतराल) {// जांचें कि क्या वर्तमान है लूप अंतराल से अधिक है पिछलाMs = currentMs; // नया अंतराल वर्तमान समय + अंतराल सूचकांक + = 1 पर सेट करें; // लीड को लूप में एक कदम आगे सेट करें यदि (इंडेक्स> 17) {// लूप हैंडलिंग इंडेक्स का ट्रिगर एंड = 0; अगर (परिणाम == 2) {// सही परिणाम अंतराल पर = (इंट) अधिकतम ((अंतराल * 0.95), 50); // 10% तक गति बढ़ाएं, 50ms अंतराल / रंग = पट्टी तक नीचे। रंग (0, 255, 0); // एलईडी को हरे रंग में सेट करें} और अगर (परिणाम == 1) {// गलत परिणाम अंतराल पर = 300; // अंतराल रंग रीसेट करें = पट्टी। रंग (255, 0, 0); // एलईडी को लाल पर सेट करें} और {// बिना किसी परिणाम के कैप्चर किया गया रंग = पट्टी। रंग (२५५, ०, ०); // एल ई डी को लाल पर सेट करें } परिणाम = 0; // अगले लूप के लिए परिणाम रीसेट करें } थिएटरचेसवन (रंग, अनुक्रमणिका); // प्रदर्शन के लिए एलईडी लाइट करें। } } // एनिमेटेड प्रभाव बनाने के लिए हमारे स्वयं के कुछ कार्य ----------------- // थिएटर-मार्की-शैली पीछा रोशनी। एक रंग में पास करें (32-बिट मान, // एक ला स्ट्रिप। रंग (आर, जी, बी) जैसा कि ऊपर बताया गया है), और फ्रेम के बीच एक विलंब समय (एमएस में) //। शून्य थिएटरचेसऑन (uint32_t रंग, इंट इंडेक्स) { स्ट्रिप। क्लियर (); strip.setPixelColor(17 - अनुक्रमणिका, रंग); // पहली पंक्ति एलईडी लाइट्स स्ट्रिप।सेट पिक्सेलकलर (18 + इंडेक्स, कलर); // दूसरी पंक्ति एलईडी लाइट्स स्ट्रिप।सेटपिक्सेलकोलर (53 - इंडेक्स, कलर); // तीसरी पंक्ति एलईडी रोशनी पट्टी। शो (); }

सिफारिश की: