विषयसूची:
वीडियो: इन्फ्रारेड सेंसर का उपयोग करके आई मोशन ट्रैकिंग: 5 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
मैंने आंखों की गतिविधियों को समझने और एलईडी को नियंत्रित करने के लिए एक इन्फ्रारेड सेंसर का इस्तेमाल किया।
मैंने एलईडी टेप नियोपिक्सल के साथ नेत्रगोलक बनाया।
चरण 1: संविधान
मैंने आंखों पर नज़र रखने के लिए दो सेंसर QTR - 1A का इस्तेमाल किया। Arduino के साथ सेंसिंग और LED को नियंत्रित करना।
अवयव
- SparkFun Arduino Pro Mini 328 - 5V/16MHz
- Adafruit LiIon/LiPoly Backpack Add-On for Pro Trinket/ItsyBitsy
- लीपो बैटरी
- नियोपिक्सल पट्टी
- QTR-1A परावर्तन सेंसर
चरण 2: NeoPixel LED आई बॉल
NeoPixel LED टेप का उपयोग किया जाता है। एलईडी 68 यूनिट है।
एलईडी को दो तरफा टेप और वायर्ड के साथ कटोरे में तय किया गया है।
चरण 3: सेंसर यूनिट
मैंने आंखों पर नज़र रखने के लिए दो सेंसर QTR - 1A का इस्तेमाल किया। QTR-1A को एक प्लास्टिक शीट पर आंख की चौड़ाई के बारे में दूरी पर रखा जाता है।
सेंसर भाग और माइक्रोकंट्रोलर भाग क्रमशः एक क्लिप के साथ चश्मे के लिए तय किए गए थे।
चरण 4: Arduino कोड
जब परितारिका एक सेंसर के पास जाती है, तो परावर्तित प्रकाश कम हो जाता है और सेंसर का मान बढ़ जाता है। इसके विपरीत, जब परितारिका दूर जाती है, तो परावर्तित प्रकाश बढ़ता है और फोटो परावर्तक का सेंसर मूल्य कम हो जाता है।
एलईडी नेत्रगोलक की पुतली के दाएं और बाएं आंदोलन को एक सेंसर मान की वृद्धि और कमी को महसूस करता है और इसे नियंत्रित करता है। ब्लिंक करते समय, दोनों सेंसर मान कम हो जाते हैं, इसलिए यदि दो सेंसर मान एक साथ घटते हैं, तो एलईडी नेत्रगोलक की पलकें नीचे चली जाएंगी।
मैंने निम्नलिखित पुस्तकालय का उपयोग किया।
- क्यूटीआर सेंसर:
- Adafruit_NeoPixel:
#शामिल करें #शामिल करें
#परिभाषित करें NUM_SENSORS 2 // उपयोग किए गए सेंसर की संख्या# NUM_SAMPLES_PER_SENSOR 10 परिभाषित करें // औसत # परिभाषित करें EMITTER_PIN QTR_NO_EMITTER_PIN
int iniSensorValL, sensorValL;int iniSensorValR, sensorValR; #परिभाषित पिन A3 Adafruit_NeoPixel एलईडी = Adafruit_NeoPixel (68, पिन, NEO_GRB + NEO_KHZ800); इंट ब्लैकनम = 24; इंट प्यूपिलनम = 12; uint32_t रंग; इंट ब्राइटनेस = ४०; बाइट आंखों का रंग; इंट एलआर = 7; बूलियन ढक्कन = झूठा; इंट सीएनटी = 0;
// ब्लैक आई एल एंड आर एनिमेशनइंट ब्लैकएलईडी[15][24] = {{12, 32, 35, 55, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {12, 13, 31, 36, 54, 55, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {11, 13, 14, 30, 37, 53, 54, 56, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {10, 11, 14, 15, 29, 38, 52, 53, 56, 57, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {9, 10, 11, 12, 15, 16, 28, 33, 34, 39, 51, 52, 55, 56, 57, 58, 68, 68, 68, 68, 68, 68, 68, 68}, {0, 8, 9, 10, 11, 12, 13, 16, 17, 27, 32, 35, 40, 50, 51, 54, 55, 56, 57, 58, 59, 67, 68, 68}, {0, 1, 7, 8, 9, 10, 13, 14, 17, 18, 26, 31, 36, 41, 49, 50, 53, 54, 57, 58, 59, 60, 66, 67}, { 1, 2, 6, 7, 8, 9, 14, 15, 18, 19, 25, 30, 37, 42, 48, 49, 52, 53, 58, 59, 60, 61, 65, 66}, { 2, 3, 5, 6, 7, 8, 15, 16, 19, 20, 24, 29, 38, 43, 47, 48, 51, 52, 59, 60, 61, 62, 64, 65}, {3, 4, 5, 6, 7, 16, 17, 20, 21, 23, 28, 39, 44, 46, 47, 50, 51, 60, 61, 62, 63, 64, ६८, ६८}, { ४, ५, ६, १७, १८, २१, २२, २७, ४०, ४५, ४६, ४९, ५०, ६१, ६२, ६३, ६८, ६८, ६८, ६८, ६८, ६८, 68, 68}, { 4, 5, 18, 19, 26, 41, 48, 49, 62, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, { 4, 19, 20, 25, 42, 47, 48, 63, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {20, 21, 24, 43, 46, 47, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {21, 23, 44, 46, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, ६८, ६८}};
// छात्र एल एंड आर एनिमेशनइंट प्यूपिलएलईडी[15][12] = {{33, 34, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {32, 33, 34, 35, 68, 68, 68, 68, 68, 68, 68, 68}, {12, 31, 32, 33, 34, 35, 36, 55, 68, 68, 68, 68}, {12, 13, 30, 31, 32, 33, 34, 35, 36, 37, 54, 55}, {13, 14, 29, 30, 31, 32, 35, 36, 37, 38, 53, 54}, {14, 15, 28, 29, 30, 31, 36, 37, 38, 39, 52, 53}, {15, 16, 27, 28, 29, 30, 37, 38, 39, 40, 51, 52}, {16, 17, 26, 27, 28, 29, 38, 39, 40, 41, 50, 51}, {17, 18, 25, 26, 27, 28, 39, 40, 41, 42, 49, 50}, {18, 19, 24, 25, 26, 27, 40, 41, 42, 43, 48, 49}, {19, 20, 23, 24, 25, 26, 41, 42, 43, 44, 47, 48}, {20, 21, 22, 23, 24, 25, 42, 43, 44, 45, 46, 47}, {21, 22, 23, 24, 43, 44, 45, 46, 68, 68, 68, 68 }, {22, 23, 44, 45, 68, 68, 68, 68, 68, 68, 68, 68}, {22, 45, 68, 68, 68, 68, 68, 68, 68, 68, 68, ६८}};
// ब्लिंक एनिमेशनइंट पलक = 0; int पलक संख्या [8] = {0, 4, 8, 16, 24, 34, 44, 56}; int पलक एलईडी [56] = {६४, ६५, ६६, ६७, ५८, ५९, ६०, ६१, ५६, ५७, ६२, ६३, ४९, ५०, ५१, ५२, ४७, ४८, ५३, ५४, ३८, ३९, 40, 41, 46, 55, 36, 37, 42, 43, 26, 27, 28, 29, 35, 44, 24, 25, 30, 31, 15, 16, 17, 18, 34, 45, 23, 32, 13, 14, 19, 20, 6, 7, 8, 9}; QTRSensorsएनालॉग qtra((unsigned char) {0, 1}, NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN); अहस्ताक्षरित int sensorValues[NUM_SENSORS];
शून्य पलक (इंट पलक, इंट एलआर) { अगर (पलक! = 8) {// के लिए प्यूटर (uint16_t i = 0; i <led.numPixels (); i ++) {led.setPixelColor (i, एलईडी। रंग (66), 66, 66)); }
// काली आँख के लिए (uint16_t i = 0; मैंने नेतृत्व किया। सेट पिक्सेलकलर (ब्लैकएलईडी [एलआर] , रंग); }
// छात्र के लिए (uint16_t i=0; i
LED.setPixelColor(pupilLED[LR], LED. Color(0, 0, 66)); }
// पलक के लिए (int i = 0; i <पलकनम [पलक]; i ++) {led.setPixelColor (पलक एलईडी , 0); }} और अगर (पलक == 8){led.clear(); } नेतृत्व.शो ();}
व्यर्थ व्यवस्था() {
सीरियल.बेगिन (115200); नेतृत्व शुरू (); एलईडी.सेटब्राइटनेस (चमक); // प्रारंभिक चमक 40 का नेतृत्व किया। शो (); // सभी पिक्सल को 'ऑफ' कलर से इनिशियलाइज़ करें = लेड। कलर (0, 177, 55); // पुतली रंग देरी (100); qtra.read (सेंसरवैल्यू); iniSensorValL = sensorValues[0]; iniSensorValR = sensorValues[1]; पलक (पलक, LR); }
शून्य लूप () {//QTR - 1A सेंसर मूल्य qtra.read(sensorValues); सेंसरवैल = सेंसरवैल्यू [0]; सेंसरवैलआर = सेंसरवैल्यू [1];
डबल rasioL = (डबल)सेंसरवैल / iniSensorValL;
डबल अनुपात = (डबल) सेंसरवैलआर / आईएनआईसेंसरवैलआर;
सीरियल.प्रिंट (rasioL);
सीरियल.प्रिंट (""); Serial.println(rasioR);
if(rasioL> 0.985 && rasioR < 0.985){//right for(int i = LR; i <12; i++){ blink(0, i); देरी (40); एलआर = मैं; } }else if(rasioL 0.985){ // left for(int i=LR; i>2; i--){ blink(0, i); देरी (40); एलआर = मैं; } }else if(lid == false && rasioL < 0.96 && rasioR < 0.96) {// ब्लिंकिंग क्लोज फॉर (int i = 1; i 0.96 && rasioR> 0.96) {// ब्लिंकिंग ओपन फॉर (int i = 8; i > 0; i--) {ब्लिंक (i, LR); देरी (40); ढक्कन = झूठा; } }else if(lid == false && rasioL > 0.96 && rasioR > 0.96) {//सामान्य //cnt++; // पलक = 0; अगर (एलआर <= 7) {के लिए (इंट आई = एलआर; आई <= 7; आई ++) {ब्लिंक (0, आई); देरी (40); एलआर = मैं; } }else { के लिए (int i=LR; i>=7; i--){ ब्लिंक(0, i); देरी (40); एलआर = मैं; } } }
// प्रारंभिक मान ताज़ा करें यदि (cnt> 10) { iniSensorValL = sensorValL; iniSensorValR = sensorValR; सीएनटी = 0; } }
चरण 5: ऑपरेशन
बाएं और दाएं आंदोलन का पता लगाएं और सेंसर के साथ पुतली की पलक झपकाएं, और नेत्रगोलक एलईडी को नियंत्रित करें।
सिफारिश की:
Arduino और Solenoid वाल्व का उपयोग करके मोशन सेंसर वॉटर टैप - DIY: 6 चरण
Arduino और Solenoid वाल्व का उपयोग करके मोशन सेंसर वॉटर टैप - DIY: इस प्रोजेक्ट में, मैं आपको दिखाऊंगा कि सोलनॉइड वाल्व का उपयोग करके मोशन सेंसर वॉटर टैप कैसे बनाया जाता है। यह प्रोजेक्ट आपके मौजूदा मैनुअल वॉटर टैप को एक टैप में बदलने में आपकी मदद कर सकता है जिसे मोशन डिटेक्शन के आधार पर नियंत्रित किया जा सकता है। IR सेंसर इंटरफ़ेस का उपयोग करना
MPU-6000 और पार्टिकल फोटॉन का उपयोग करके मोशन ट्रैकिंग: 4 कदम
MPU-6000 और पार्टिकल फोटॉन का उपयोग करके मोशन ट्रैकिंग: MPU-6000 एक 6-एक्सिस मोशन ट्रैकिंग सेंसर है जिसमें 3-एक्सिस एक्सेलेरोमीटर और 3-एक्सिस गायरोस्कोप एम्बेडेड है। यह सेंसर 3-आयामी विमान में किसी वस्तु की सटीक स्थिति और स्थान की कुशल ट्रैकिंग करने में सक्षम है। यह नियोजित किया जा सकता है मैं
MPU-6000 और Arduino नैनो का उपयोग करके मोशन ट्रैकिंग: 4 कदम
MPU-6000 और Arduino Nano का उपयोग करके मोशन ट्रैकिंग: MPU-6000 एक 6-एक्सिस मोशन ट्रैकिंग सेंसर है जिसमें 3-एक्सिस एक्सेलेरोमीटर और 3-एक्सिस गायरोस्कोप एम्बेडेड है। यह सेंसर 3-आयामी विमान में किसी वस्तु की सटीक स्थिति और स्थान की कुशल ट्रैकिंग करने में सक्षम है। यह नियोजित किया जा सकता है मैं
MPU-6000 और रास्पबेरी पाई का उपयोग करके मोशन ट्रैकिंग: 4 कदम
MPU-6000 और रास्पबेरी पाई का उपयोग करके मोशन ट्रैकिंग: MPU-6000 एक 6-एक्सिस मोशन ट्रैकिंग सेंसर है जिसमें 3-एक्सिस एक्सेलेरोमीटर और 3-एक्सिस गायरोस्कोप एम्बेडेड है। यह सेंसर 3-आयामी विमान में किसी वस्तु की सटीक स्थिति और स्थान की कुशल ट्रैकिंग करने में सक्षम है। यह नियोजित किया जा सकता है मैं
MESH मोशन सेंसर का उपयोग करके एक लाइट को स्वचालित करें: 3 चरण (चित्रों के साथ)
MESH मोशन सेंसर का उपयोग करके एक लाइट को स्वचालित करें: क्या आप अक्सर लाइट बंद करना भूल जाते हैं? अपने घर या कमरे से बाहर निकलते समय लाइट बंद करना भूलना हमेशा संभव होता है, लेकिन MESH मोशन सेंसर के साथ, हमने आपको आसानी से मदद करने के लिए डिटेक्ट और अनडिटेक्ट फ़ंक्शंस का उपयोग करके समस्या को हल किया