विषयसूची:

मूड प्रोजेक्टर (जीएसआर के साथ हैक की गई फिलिप्स ह्यू लाइट) टीएफसीडी: 7 कदम (चित्रों के साथ)
मूड प्रोजेक्टर (जीएसआर के साथ हैक की गई फिलिप्स ह्यू लाइट) टीएफसीडी: 7 कदम (चित्रों के साथ)

वीडियो: मूड प्रोजेक्टर (जीएसआर के साथ हैक की गई फिलिप्स ह्यू लाइट) टीएफसीडी: 7 कदम (चित्रों के साथ)

वीडियो: मूड प्रोजेक्टर (जीएसआर के साथ हैक की गई फिलिप्स ह्यू लाइट) टीएफसीडी: 7 कदम (चित्रों के साथ)
वीडियो: What are Lumens in Bulb in hindi | How we measure brightness in lumen | Electrical interviewquestion 2024, जुलाई
Anonim
Image
Image
ह्यू लाइट के अलावा ले लो
ह्यू लाइट के अलावा ले लो

लौरा अहस्मान और माईके वेबर द्वारा

उद्देश्य: कम मूड और तनाव आधुनिक तेज-तर्रार जीवन का एक बड़ा हिस्सा हैं। यह भी कुछ ऐसा है जो बाहर से अदृश्य है। क्या होगा अगर हम एक उत्पाद के साथ अपने तनाव के स्तर को नेत्रहीन और ध्वनिक रूप से प्रोजेक्ट करने में सक्षम थे, यह दिखाने में सक्षम होने के लिए कि आप कैसा महसूस करते हैं। इससे इन समस्याओं के बारे में संवाद करने में आसानी होगी। आपके तनाव के स्तर पर प्रतिक्रिया प्राप्त करने के समय आपकी अपनी प्रतिक्रिया भी अधिक पर्याप्त हो सकती है।

जीएसआर, या गैल्वेनिक त्वचा प्रतिरोध, एक उपयोगकर्ता की उंगलियों पर लिया गया माप, तनाव का एक बहुत अच्छा भविष्यवक्ता साबित होता है। चूंकि हाथ में पसीने की ग्रंथियां ज्यादातर तनाव (न केवल शारीरिक व्यायाम) पर प्रतिक्रिया करती हैं, तनाव के बढ़े हुए स्तर एक उच्च चालकता उत्पन्न करते हैं। इस परियोजना में इस चर का उपयोग किया जाता है।

विचार: क्या होगा यदि हम जल्दी से तनाव या मनोदशा का पता लगा सकें और रंगीन रोशनी और संगीत के साथ इसका प्रतिनिधित्व कर सकें? एक जीएसआर प्रणाली ऐसा कर सकती है। इस निर्देशयोग्य में, हम ऐसा करने के लिए एक Arduino आधारित प्रणाली बनाएंगे! Arduino Software और Processing Software दोनों द्वारा संचालित, यह त्वचा के चालन मूल्यों को एक निश्चित रंग प्रकाश और एक निश्चित प्रकार के संगीत में अनुवाद करेगा।

आपको किस चीज़ की जरूरत है?

  • Arduino Uno
  • तारों
  • फिलिप्स ह्यू लाइट (लिविंग कलर्स)
  • तीन 100 ओम प्रतिरोधक (RGB LED के लिए)
  • एक 100 KOhm रोकनेवाला (GSR सेंसर के लिए)
  • चालकता सेंसर के रूप में कार्य करने के लिए कुछ, जैसे एल्यूमीनियम पन्नी
  • अरुडिनो सॉफ्टवेयर
  • प्रोसेसिंग सॉफ्टवेयर (हमने v2.2.1 का उपयोग किया, नए वाले क्रैश हो जाते हैं)
  • सॉलिडवर्क्स, आवास डिजाइन करने के लिए (वैकल्पिक)
  • सीएनसी मिल तक पहुंच (वैकल्पिक)
  • ग्रीन मॉडलिंग फोम (ईपीएस)
  • ब्रेडबोर्ड (वैकल्पिक, मिलाप भी कर सकता है)

चरण 1: ह्यू लाइट को अलग करें

यह कदम आसान है, बस कुछ बल (या एक स्क्रूड्राइवर) का उपयोग करें, प्रकाश को खो दें और क्रैक करें। कुछ स्नैप कनेक्शन उत्पाद को एक साथ रखते हैं, इसलिए इसे अलग करना आसान है।

अब, शीर्ष में प्रकाश को खराब कर दिया जा सकता है और बाकी इलेक्ट्रॉनिक्स से डिस्कनेक्ट किया जा सकता है। हमें केवल प्रकाश और आवास के शीर्ष की आवश्यकता होगी। बचाओ या टॉस करो, यह आप पर निर्भर है!

चरण 2: हार्डवेयर तैयार करना

हार्डवेयर तैयार करना
हार्डवेयर तैयार करना
हार्डवेयर तैयार करना
हार्डवेयर तैयार करना
हार्डवेयर तैयार करना
हार्डवेयर तैयार करना
हार्डवेयर तैयार करना
हार्डवेयर तैयार करना

इस परियोजना के लिए, हमने अवतार को सुंदर और तेज बनाने के लिए फिलिप्स ह्यू लाइट का इस्तेमाल किया। हालाँकि आप एक नियमित RGB LED का भी उपयोग कर सकते हैं, जैसा कि ब्रेडबोर्ड के साथ चित्र में दिखाया गया है।

RGB LED को संचालित करने के लिए, पिन को Arduino के तीन अलग-अलग PWM पोर्ट से कनेक्ट करें (संकेत ba a ~)। इस कनेक्शन के लिए 100Ohm रेसिस्टर्स का इस्तेमाल करें। सबसे लंबे पिन को Arduino के 5V आउटपुट से कनेक्ट करें। यह देखने के लिए कि कौन सा पिन किस रंग से मेल खाता है, इस चरण की अंतिम छवि देखें।

ह्यू लाइट के लिए, वही कदम चलते हैं। निर्दिष्ट स्लॉट में तारों को टांका लगाकर एलईडी आसानी से Arduino से जुड़ा है, इस चरण में तीसरी तस्वीर देखें। स्लॉट में एक आर, एक जी और एक बी होता है, जो दर्शाता है कि किस तार को जाना चाहिए। इसमें क्रमशः Arduino के 5V और Arduino के ग्राउंड से जुड़े होने के लिए एक + और a - स्लॉट भी है। एक बार जब आप एलईडी को जोड़ देते हैं, तो आप आवास में वापस पेंच कर सकते हैं।

एल्युमिनियम फॉयल से बने जीएसआर सेंसर को हुक करने के लिए (या टीलाइट्स के उन एल्यूमियम कंटेनरों का उपयोग करें, जो थोड़े अच्छे लगते हैं), सोल्डर या उन्हें एक तार से टेप करें और एक को 5 वी से कनेक्ट करें। दूसरे को 100KOhm के रेसिस्टर और 0, 1mF (समानांतर) के कैपेसिटर से कनेक्ट करें, जिसे तब जमीन से और Arduino पर A1 स्लॉट से जोड़ा जाना चाहिए। यह स्ट्रेसलेवल का आउटपुट देगा, जिसे बाद में हल्के रंग और संगीत के लिए इनपुट के रूप में उपयोग किया जाएगा। हमने सेंसर को लैंप से चिपका दिया है, इसलिए यह आपके तनाव को मापते समय पकड़ने के लिए एक अच्छा उत्पाद बन जाता है। हालांकि सावधान रहें कि सेंसर स्पर्श नहीं कर रहे हैं!

आखिरी तस्वीर दिखाती है कि यह बिना ब्रेडबोर्ड के कैसे किया जा सकता है।

चरण 3: तनाव के स्तर को मापना

तनाव के स्तर को मापना
तनाव के स्तर को मापना

केवल इन होममेड सेंसर के साथ तनाव के स्तर को मापने से निश्चित रूप से सटीक माप नहीं मिलेगा कि आप वास्तव में कितने तनावग्रस्त हैं। हालाँकि, जब सही अंशांकित किया जाता है, तो यह एक सन्निकटन दे सकता है।

GSR स्तरों को मापने के लिए, हम Arduino वातावरण में निम्नलिखित कोड का उपयोग करेंगे। कम उतार-चढ़ाव वाले माप के लिए, प्रत्येक 10 रीडिंग में एक औसत लिया जाता है।

कॉन्स्ट इंट numReadings = 10; इंट रीडिंग [संख्या रीडिंग]; // A1 इंट इंडेक्स से इनपुट = 0; // वर्तमान पढ़ने का सूचकांक int कुल = 0; // चल रहा कुल अहस्ताक्षरित लंबा औसत = 0; // औसत

इंट इनपुटपिन = ए1;

शून्य सेटअपजीएसआर ()

{// सभी रीडिंग को 0 पर सेट करें:

के लिए (int i = 0; i < numReadings; i++) रीडिंग = 0; }

अहस्ताक्षरित लंबी रनजीएसआर () {

कुल = कुल - रीडिंग [सूचकांक]; // जीएसआर सेंसर रीडिंग [इंडेक्स] = एनालॉगरेड (इनपुटपिन) से पढ़ें; // कुल कुल = कुल + रीडिंग [सूचकांक] में नई रीडिंग जोड़ें; // सरणी सूचकांक की अगली स्थिति = सूचकांक + 1;

// सरणी का परीक्षण अंत

अगर (इंडेक्स> = numReadings) // और इंडेक्स पर शुरू करें = 0;

// औसत क्या है

औसत = कुल / संख्या रीडिंग; // इसे कंप्यूटर पर भेजें क्योंकि ASCII अंक औसत वापसी करते हैं;

}

दूसरे टैब में (चीजों को व्यवस्थित रखने के लिए), हम माप पर प्रतिक्रिया करने के लिए कोड बनाएंगे, अगला चरण देखें!

चरण 4: रोशनी का प्रबंधन

रोशनी का प्रबंधन
रोशनी का प्रबंधन
रोशनी का प्रबंधन
रोशनी का प्रबंधन
रोशनी का प्रबंधन
रोशनी का प्रबंधन

रोशनी का प्रबंधन करने के लिए, हमें पहले मापों को जांचना होगा। सीरियल मॉनिटर खोलकर जांचें कि आपके माप के लिए ऊपरी सीमा क्या है। हमारे लिए माप 150 (जब हमने वास्तव में आराम करने की कोशिश की) और 300 (जब हमने तनावग्रस्त होने के लिए वास्तव में कठिन प्रयास किया) के बीच में कुछ थे।

फिर, तय करें कि किस रंग को किस तनाव स्तर का प्रतिनिधित्व करना चाहिए। हमने इसे बनाया ताकि:

1. कम तनाव स्तर: सफेद रोशनी, बढ़ते तनाव के साथ हरे रंग की रोशनी में बदलना

2. मध्यम तनाव स्तर: हरे रंग की रोशनी, बढ़ते तनाव के साथ नीली रोशनी में बदलना

3. उच्च तनाव स्तर: नीली रोशनी, बढ़ते तनाव के साथ लाल रंग में बदलना

निम्नलिखित कोड का उपयोग माप को संसाधित करने और उन्हें एलईडी को भेजने के लिए मूल्यों में बदलने के लिए किया गया था:

// मास्टर #डिबग 0 परिभाषित करें

// जीएसआर = ए1

इंट जीएसआरवैल = 0; // सेंसर से इनपुट को स्टोर करने के लिए वेरिएबल

// जैसा कि बताया गया है, पल्स-चौड़ाई मॉडुलन (पीडब्लूएम) पिन का उपयोग करें

इंट रेडपिन = 9; // लाल एलईडी, डिजिटल पिन 9 int grnPin = 9 से जुड़ा; // ग्रीन एलईडी, डिजिटल पिन से जुड़ा 10 इंट ब्लूपिन = 5; // ब्लू एलईडी, डिजिटल पिन से जुड़ा 11

// कार्यक्रम चर

इंट रेडवैल = 0; // पिन को भेजने के लिए मूल्यों को संग्रहीत करने के लिए चर int grnVal = 0; इंट ब्लूवैल = 0;

अहस्ताक्षरित लंबा जीएसआर = 0;

व्यर्थ व्यवस्था()

{पिनमोड (ब्लूपिन, आउटपुट); पिनमोड (grnPin, OUTPUT); पिनमोड (रेडपिन, आउटपुट); पिनमोड (ए 1, इनपुट);

सीरियल.बेगिन (९६००);

सेटअपजीएसआर (); }

शून्य लूप ()

{जीएसआरवैल = जीएसआर; if (gsrVal <150) // gsr रेंज का सबसे निचला तिहाई (0-149) { gsr = (gsrVal /10) * 17; // 0-255 redVal = gsrVal को सामान्य करें; // पूर्ण grnVal = gsrVal के लिए बंद; // ग्रीन ऑफ ऑफ से फुल ब्लूवैल = gsrVal; // ब्लू ऑफ टू फुलस्ट्रिंग साउंडए = "ए"; सीरियल.प्रिंट्लन (साउंडए); // ऑपरेटिंग संगीत में बाद में उपयोग के लिए } और अगर (gsrVal <250) // gsr रेंज का मध्य तीसरा (150-249) { gsrVal = ((gsrVal-250) /10) * 17; // 0-255 रेडवैल = 1 को सामान्य करें; // लाल बंद grnVal = gsrVal; // ग्रीन से फुल टू ऑफ ब्लूवैल = 256 - gsrVal; // नीला से पूर्ण स्ट्रिंग साउंडबी = "बी"; सीरियल.प्रिंट्लन (साउंडबी); } और // जीएसआर रेंज का ऊपरी तिहाई (250-300) { gsrVal = ((gsrVal-301) /10) * 17; // 0-255 redVal = gsrVal को सामान्य करें; // लाल से पूर्ण grnVal = 1 तक; // ग्रीन ऑफ टू फुल ब्लूवैल = 256 - gsrVal; // ब्लू से फुल टू ऑफ स्ट्रिंग साउंडसी = "सी"; सीरियल.प्रिंट्लन (साउंडसी); }

एनालॉगवर्इट (रेडपिन, रेडवैल); // एलईडी पिन एनालॉग्राइट (grnPin, grnVal) के लिए मान लिखें; एनालॉगवर्इट (ब्लूपिन, ब्लूवैल); जीएसआर = रनजीएसआर (); देरी (100); }

तो अब एलईडी आपके तनाव के स्तर पर प्रतिक्रिया कर रही है, आइए अगले चरण में, अपने मूड का प्रतिनिधित्व करने के लिए कुछ संगीत जोड़ें।

चरण 5: संगीत का प्रबंधन

संगीत का प्रबंधन
संगीत का प्रबंधन

हमने निम्नलिखित संगीत के साथ 3 तनाव स्तरों का प्रतिनिधित्व करना चुना:

1. निम्न स्तर (ए): गायन कटोरे और पक्षियों की चहकती, एक बहुत ही हल्की ध्वनि

2. मध्यम स्तर (बी): एक उदास पियानो, थोड़ी अधिक भारी ध्वनि

3. उच्च तनाव स्तर (सी): एक गड़गड़ाहट तूफान, एक अंधेरा ध्वनि (हालांकि काफी आराम से)

कोड प्रोसेसिंग में लिखा गया है, एक सॉफ्टवेयर जो Arduino के सॉफ़्टवेयर फीडबैक भाग को प्रदान करता है:

आयात प्रसंस्करण.धारावाहिक.*;आयात ddf.minim.*;

न्यूनतम न्यूनतम;

ऑडियोप्लेयर खिलाड़ी;

इंट एलएफ = 10; // ASCII में लाइनफीड

स्ट्रिंग myString = अशक्त; सीरियल मायपोर्ट; // सीरियल पोर्ट इंट सेंसरवैल्यू = 0;

व्यर्थ व्यवस्था() {

// सभी उपलब्ध सीरियल पोर्ट को सूचीबद्ध करें PrintArray(Serial.list ()); // जिस पोर्ट का आप उपयोग कर रहे हैं उसे उसी दर पर खोलें जैसे Arduino myPort = new Serial(this, Serial.list()[2], 9600); myPort.clear (); // स्पष्ट माप myString = myPort.readStringUntil(lf); मायस्ट्रिंग = शून्य; // हम इसे मिनिम को पास करते हैं ताकि यह फाइलों को लोड कर सके मिनिम = नया मिनिम (यह); खिलाड़ी = नया ऑडियोप्लेयर [3]; // यहां ऑडियो फ़ाइल का नाम बदलें और इसे लाइब्रेरी प्लेयर्स में जोड़ें [0] = minim.loadFile("Singing-bowls-and-birds-chirping-sleep-music.mp3"); प्लेयर्स [1] = मिनिम.लोडफाइल ("मेलानकोलिक-पियानो-म्यूजिक.एमपी३"); प्लेयर्स[2] = मिनिम.लोडफाइल ("स्टॉर्म-साउंड.एमपी३"); }

शून्य ड्रा () {

// जांचें कि क्या कोई नया मान है जबकि (myPort.उपलब्ध ()> 0) {// डेटा को myString myString = myPort.readString () में संग्रहीत करें; // जांचें कि क्या हमारे पास वास्तव में कुछ है अगर (myString! = null) {myString = myString.trim (); // जांचें कि क्या कुछ है अगर (myString.length ()> 0) {println (myString); कोशिश करें { sensorValue = Integer.parseInt (myString); } पकड़ (अपवाद ई) { } अगर (myString.equals("A")) // देखें कि यह किस तनाव स्तर को माप रहा है {खिलाड़ी [0]। प्ले (); // संगीत के अनुसार खेलें} और {खिलाड़ी [0]। रोकें (); // अगर यह कम तनाव के स्तर को नहीं माप रहा है, तो उसके अनुसार गाना न बजाएं} अगर (myString.equals("B")) {खिलाड़ी[1]।प्ले (); } और {खिलाड़ी [1]। रोकें (); } अगर (myString.equals("C")) {खिलाड़ी[2].प्ले (); } और {खिलाड़ी [2]। रोकें (); } } } } }

इस कोड को हमारे लैपटॉप स्पीकर पर स्ट्रेसलेवल के अनुसार संगीत चलाना चाहिए।

चरण 6: अवतार डिजाइन करें

Image
Image
अवतार डिजाइन करें
अवतार डिजाइन करें

हमने फिलिप्स ह्यू लाइट के ऊपरी हिस्से का इस्तेमाल किया, लेकिन एक ग्रीनफोम नीचे cnc'd किया। सॉलिडवर्क्सफाइल यहां है, लेकिन दीपक को स्वयं मापना और अपने स्वाद के लिए कुछ डिजाइन करना भी मजेदार हो सकता है!

हमने एसडब्ल्यू में एक अंडरलेयर के रूप में दीपक के शीर्ष की एक तस्वीर का उपयोग किया, यह सुनिश्चित करने के लिए कि नीचे का आकार शीर्ष के वक्र का अनुसरण करता है (पहली तस्वीर देखें)।

मॉडल को cnc'd करने के लिए, इसे एक STL फ़ाइल के रूप में सहेजें और अपना स्थानीय मिलर (उदाहरण के लिए uni पर) खोजें।

चरण 7: स्रोत

यदि आप इस विषय पर अधिक जानकारी चाहते हैं, या तनाव को मापने के लिए अधिक विस्तृत कोड देखना चाहते हैं, तो निम्नलिखित वेबसाइट और प्रोजेक्ट देखें:

  • प्रसंस्करण में ऑडियोफ़ाइल्स को ट्रिगर करने पर अधिक स्पष्टीकरण (जिसका हमने उपयोग किया)
  • जीएसआर पर अच्छी हैंडबुक
  • मूड प्रोजेक्टिंग के लिए कूल अलग दृष्टिकोण
  • एकाधिक सेंसर के साथ वास्तव में शांत तनाव डिटेक्टर (इस परियोजना के लिए बड़ी प्रेरणा)
  • आरजीबी एलईडी के साथ ध्वनि (तनाव के बजाय) प्रोजेक्टर
  • जीएसआर के बारे में अच्छा लेख

सिफारिश की: