विषयसूची:

रास्पबेरी पाई लेजर स्कैनर: 9 कदम (चित्रों के साथ)
रास्पबेरी पाई लेजर स्कैनर: 9 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पाई लेजर स्कैनर: 9 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पाई लेजर स्कैनर: 9 कदम (चित्रों के साथ)
वीडियो: vestige skin formula 9 products full information part 1. why and how to use #vestigeskinformula9 2024, जुलाई
Anonim
Image
Image
रास्पबेरी पाई लेजर स्कैनर
रास्पबेरी पाई लेजर स्कैनर

लेज़र स्कैनर एक रास्पबेरी पाई एम्बेडेड सिस्टम डिवाइस है जो 3D प्रिंटिंग का उपयोग करके पुनरुत्पादन के लिए वस्तुओं को.obj जाल फ़ाइलों में डिजिटाइज़ करने में सक्षम है। डिवाइस कंप्यूटर विज़न करने के लिए एक लाइन लेजर और एक एकीकृत PiCam का उपयोग करके ऐसा करता है। लेज़र को लेज़र से ४५ डिग्री तिरछा रखा जाता है और वस्तु के एक ऊर्ध्वाधर टुकड़े पर एक चमकदार लाल रेखा प्रोजेक्ट करता है। मेश स्लाइस देने के लिए कैमरा केंद्र से स्लाइस की दूरी का पता लगाता है। वस्तु को घूर्णन ट्रे पर घुमाया जाता है और प्रक्रिया तब तक दोहराई जाती है जब तक कि पूरी वस्तु स्कैन नहीं हो जाती। जेनरेट की गई.obj फ़ाइल अंततः उपयोगकर्ता को ईमेल की जाती है, जिससे सिस्टम पूरी तरह से स्टैंडअलोन और एम्बेडेड हो जाता है।

यह निर्देशयोग्य डिवाइस कैसे बनाया गया था, कुछ परिणाम और भविष्य के चरणों के माध्यम से चलेगा।

चरण 1: प्रेरणा

प्रेरणा
प्रेरणा
प्रेरणा
प्रेरणा

एक उत्साही निर्माता के रूप में, मैं कई वर्षों से 3डी प्रिंटिंग और ठोस मॉडलिंग कर रहा हूं। मैंने सीएनसी राउटर से लेकर लेजर कटर से लेकर 3 डी प्रिंटर तक कई अलग-अलग प्रोटोटाइप टूल के साथ काम किया है। एक उपकरण जिसे मेरे स्थानीय निर्माताओं ने अभी तक खरीदा है वह एक 3D स्कैनर है - और मैं आपको बता सकता हूं कि क्यों।

सस्ता वाले (कुछ सौ डॉलर) अविश्वसनीय थे, सही परिस्थितियों की आवश्यकता थी, और फिर भी बहुत खराब परिणाम उत्पन्न हुए। महंगे थे … ठीक है, महंगे, कई हजार डॉलर तक, इसके कार्य को कई मामलों में इसके लायक नहीं बनाते हैं। उसके ऊपर, अधिक से अधिक बार, मैं माप लेने का विकल्प चुनता हूं और एक स्कैन से उत्पन्न सतह जाल से निपटने के बजाय खरोंच से एक मॉडल डिजाइन करता हूं।

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

कुछ शोध करने के बाद, मैंने देखा कि कई 3D स्कैनर ने एक घूर्णन मंच का उपयोग किया और फिर एक घूर्णन मॉडल बनाने के लिए केंद्र से दूरी को मापने के लिए विभिन्न प्रकार के विभिन्न सेंसर का उपयोग किया। इनमें से कई काइनेक्ट के समान दोहरे कैमरों का उपयोग करते थे। मैं अंततः Yscanner पर ठोकर खाई जो एक कम रिज़ॉल्यूशन वाला स्कैनर है जो एक लेज़र का उपयोग करता है। सादगी और व्यवहार्यता को देखते हुए, यह लेज़र तकनीक, जिसमें केंद्र से दूरी मापने के लिए एक कैमरे के सापेक्ष एक लेज़र को चमकाया जाता है, एक स्पष्ट मार्ग की तरह दिखता है।

चरण 2: उपकरण और पुर्जे

भाग:

  • रास्पबेरी पाई $35.00
  • रास्पबेरी पाई कैमरा V2 $30.00
  • एल ई डी, प्रतिरोधी और तार
  • 3डी प्रिंटिंग फिलामेंट
  • 12x12x0.125 लकड़ी की चादरें
  • M3 हार्डवेयर
  • स्टेपर मोटर - $14
  • लाइन लेजर - $8
  • LN298 स्टेपर मोटर ड्राइवर - $2.65
  • धातु पुशबटन - $ 5

उपकरण:

  • सोल्डरिंग आयरन
  • लेजर कटर
  • थ्री डी प्रिण्टर
  • पेंचकस
  • चिमटा

चरण 3: उच्च स्तरीय डिजाइन

उच्च स्तरीय डिजाइन
उच्च स्तरीय डिजाइन
उच्च स्तरीय डिजाइन
उच्च स्तरीय डिजाइन

इस डिजाइन में केंद्रीय घटक लाइन लेजर है जो वस्तुओं के लंबवत टुकड़े पर प्रोजेक्ट करता है। इस प्रक्षेपण को पिकामेरा पर कैद किया जा सकता है, इसके परिप्रेक्ष्य को ठीक किया जा सकता है, और फिर छवि प्रसंस्करण से पहले फ़िल्टर किया जा सकता है। छवि प्रसंस्करण में, वस्तु के केंद्र से रेखा के प्रत्येक खंड के बीच की दूरी को एकत्र किया जा सकता है। रेडियल निर्देशांक में, यह चित्र r और z दोनों घटकों को प्राप्त करेगा। तीसरा आयाम,, तब वस्तु को एक नए स्लाइस में घुमाकर प्राप्त किया जाता है। इस अवधारणा को पहले चित्र में दिखाया गया है।

ऊपर वर्णित क्रियाओं को करने के लिए, मैंने हमारी केंद्रीय कंप्यूटिंग इकाई के रूप में रास्पबेरी पाई का उपयोग किया। मैंने एक स्टेपर मोटर और एक मोटर ड्राइवर को पाई से जोड़ा, जो बाहरी 5V आपूर्ति द्वारा संचालित है और Pi के GPIO पिन द्वारा नियंत्रित है। पाई पर 3.3 V लाइन पर एक लाइन लेजर लगाया गया था और Pi पर कैमरा इनपुट से एक PiCam जुड़ा हुआ था। अंत में, एक साधारण पुल डाउन बटन स्थापित किया गया था और उपयोगकर्ता को यह इंगित करने के लिए एक स्थिति एलईडी थी कि सिस्टम किस स्थिति में है। पूरे सिस्टम को सिस्टम ब्लॉक आरेख में सारांशित किया गया है।

शुरुआत से ही, इलेक्ट्रॉनिक्स को टी-स्लॉट्स और एम3 हार्डवेयर के साथ एक लेजर कट बॉक्स में रखने की योजना थी। इलेक्ट्रॉनिक्स को नीचे के डिब्बे में दृष्टि से छिपाया जाएगा और एक ढक्कन घूर्णन ट्रे पर ऑब्जेक्ट प्लेसमेंट तक आसान पहुंच की अनुमति देगा। सिस्टम में लीक होने वाले प्रकाश की मात्रा को कम करने के लिए यह ढक्कन आवश्यक है, क्योंकि यह बाहरी प्रकाश अंतिम स्कैन में शोर उत्पन्न कर सकता है।

चरण 4: हार्डवेयर

हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर

जैसा कि ऊपर देखा गया है, इससे पहले कि मैं लेजर कटिंग या 3डी प्रिंटिंग शुरू करता, मैंने अपने डिजाइन का विस्तृत 3डी मॉडल बनाने के लिए ऑटोडेस्क फ्यूजन 360 का उपयोग किया। एक सिंहावलोकन के रूप में, डिवाइस लेजर कट टिका के साथ ढक्कन वाला एक साधारण बॉक्स है। डिवाइस की दो मुख्य परतें होती हैं: इलेक्ट्रॉनिक्स बेड और मुख्य बेड, जिसमें दो परतों के बीच तारों को चलाने के लिए छेद होते हैं।

हमारे बॉक्स का अधिकांश भाग लेज़र कटर के साथ निर्मित किया गया था, जिसमें फ्यूजन 360 में डिजाइन तैयार किए गए थे और एपिलॉग ज़िंग 40 डब्ल्यू लेजर कटर पर काटे गए थे। हमारे डिजाइन ऊपर दिए गए आंकड़ों में दिखाए गए हैं। ऊपर से बायीं ओर बढ़ते हुए, टुकड़े मुख्य बिस्तर, इलेक्ट्रॉनिक्स बिस्तर, ढक्कन के लिए दो टुकड़े, पिछला टुकड़ा, सामने का टुकड़ा और दो तरफ के टुकड़े हैं। मुख्य बिस्तर में, तीन मुख्य कटआउट हैं: एक स्टेपर मोटर को माउंट करने के लिए, एक लेज़र से तारों को रूट करने के लिए, और एक PiCam की चौड़ी केबल को रूट करने के लिए। बिस्तर के टुकड़े में पाई, ब्रेडबोर्ड और मोटर चालक को सुरक्षित करने के लिए बढ़ते छेद हैं और स्टेपर मोटर तक पहुंचने के लिए एक बड़ा कटआउट है। ऊपर देखे गए त्रिकोणीय टुकड़े को बनाने के लिए ढक्कन के टुकड़े एक साथ स्नैप करते हैं और काज एक साधारण एक्सट्रूज़न है जो साइड बोर्ड के छेद के व्यास की चौड़ाई है। बैक पीस और साइड पीस में से एक में साइड में स्लॉट होते हैं ताकि Pi (HDMI, USB, इथरनेट, पावर) के पोर्ट्स को आसानी से एक्सेस किया जा सके। सामने एक साधारण टुकड़ा है जिसे मैंने अंततः बटन और एलईडी को माउंट करने के लिए एक हैंड ड्रिल के साथ छेद बनाया। जैसा कि सभी टुकड़ों पर देखा गया है, हमारे हिस्से टी-जोड़ों और स्लॉट का उपयोग करके एम 3 हार्डवेयर द्वारा एक साथ रखे जाते हैं। यह लेजर कटे हुए टुकड़ों को ऑर्थोगोनली और सुरक्षित रूप से रखने की एक विधि है। टुकड़ों के पंख अन्य टुकड़ों के स्लॉट के साथ पंक्तिबद्ध होते हैं और किनारों पर टी-आकार का कट एक एम 3 नट को बिना कताई के जाम करने के लिए जगह देता है। यह हमें असेंबली पूरी तरह से स्थायी होने के बिना टुकड़ों को एक साथ बहुत कम विग्गल रूम के साथ लॉक करने के लिए एम 3 स्क्रू का उपयोग करने की अनुमति देता है।

मैंने अपने अधिकांश टुकड़ों को इसकी गति और सहजता के कारण लेजर कटर से करना चुना। हालाँकि, मुझे अभी भी उनके 3D ज्यामिति के कारण कुछ टुकड़ों को 3D प्रिंट करना था जो कटर पर बनाना अधिक कठिन होगा। पहला टुकड़ा लाइन लेजर होल्डर था। इस टुकड़े को मुख्य बिस्तर पर कैमरे की दृष्टि से 45 डिग्री पर रखा जाना था और इसमें एक छेद होना था जिससे कि लेजर आराम से घर्षण फिट हो सके। मुझे मोटर माउंट भी बनाना पड़ा क्योंकि मोटर का शाफ्ट इतना लंबा था। माउंट घर्षण लेजर कट के टुकड़ों में फिट हो गया और विमान को नीचे कर दिया जिससे मोटर इस तरह से जुड़ी हुई थी कि घूर्णन मंच मुख्य बिस्तर के साथ फ्लश हो गया था।

चरण 5: इलेक्ट्रॉनिक्स

इलेक्ट्रानिक्स
इलेक्ट्रानिक्स

इस परियोजना का वायरिंग हार्डवेयर बहुत सरल था क्योंकि 3डी स्कैनर के लिए बहुत अधिक बाह्य उपकरणों की आवश्यकता नहीं होती थी। पाई से कनेक्ट करने के लिए एक मोटर, बटन, एलईडी, लेजर और कैमरा की आवश्यकता होती है। जैसा कि दिखाया गया है, मैंने पिनों की सुरक्षा के लिए हमारे द्वारा उपयोग किए जाने वाले प्रत्येक पिन के साथ श्रृंखला में प्रतिरोधों को जोड़ना सुनिश्चित किया। एक GPIO पिन स्थिति LED को नियंत्रित करने के लिए समर्पित था, जो डिवाइस के उपयोग के लिए तैयार होने पर प्रकाश करेगा और डिवाइस के संचालन के दौरान PWM के साथ पल्स करेगा। एक और GPIO पिन एक पुल-अप बटन से जुड़ा था, जब बटन दबाया नहीं गया था तब उच्च और बटन दबाए जाने पर कम दर्ज किया गया था। अंत में, मैंने स्टेपर मोटर चलाने के लिए चार GPIO पिन समर्पित किए।

चूंकि हमारी मोटर को गति के नियंत्रण की आवश्यकता के बिना केवल एक निश्चित सीमा तक कदम उठाना पड़ता था, इसलिए हमने एक सरल स्टेपर मोटर ड्राइवर (L298N) का विकल्प चुना, जो मोटर के इनपुट में फीड करने के लिए बस नियंत्रण लाइनों को ऊपर उठाता है। स्टेपर मोटर्स को बहुत निम्न स्तर पर कैसे संचालित किया जाए, यह जानने के लिए, हमने L298N डेटा शीट और Arduino लाइब्रेरी दोनों का उल्लेख किया। स्टेपर मोटर में एक चुंबकीय कोर होता है जिसमें बारी-बारी से ध्रुवीयता की उँगलियाँ होती हैं। चार तारों को दो विद्युत चुम्बकों को नियंत्रित करने के लिए लपेटा जाता है जो मोटर में हर दूसरे विरोधी उंगली को शक्ति प्रदान करते हैं। इस प्रकार, उंगलियों की ध्रुवीयता को बदलकर, हम स्टेपर को एक कदम आगे बढ़ाने में सक्षम होते हैं। हार्डवेयर स्तर से स्टेपर्स कैसे काम करते हैं, इस ज्ञान के साथ, हम स्टेपर्स को अधिक आसानी से नियंत्रित करने में सक्षम थे। हमने पाई के बजाय प्रयोगशाला में 5V बिजली की आपूर्ति से अपनी स्टेपर मोटर को बंद करने का विकल्प चुना, क्योंकि इसका अधिकतम वर्तमान ड्रॉ लगभग 0.8 A है, जो कि Pi की आपूर्ति से अधिक है।

चरण 6: सॉफ्टवेयर

सॉफ्टवेयर
सॉफ्टवेयर
सॉफ्टवेयर
सॉफ्टवेयर
सॉफ्टवेयर
सॉफ्टवेयर
सॉफ्टवेयर
सॉफ्टवेयर

इस परियोजना के लिए सॉफ्टवेयर को चार मुख्य घटकों में विभाजित किया जा सकता है जो एक साथ इंटरैक्ट करते हैं: इमेज प्रोसेसिंग, मोटर कंट्रोल, मेश क्रिएशन और एंबेडेड फंक्शन।

सॉफ्टवेयर के सारांश के रूप में, हम पहले आंकड़े को देख सकते हैं। जैसे ही सिस्टम बूट होता है,.bashrc स्वचालित रूप से पाई में लॉग इन करता है और हमारे पायथन कोड को चलाना शुरू कर देता है। सिस्टम स्टेटस लाइट को रोशनी देता है ताकि उपयोगकर्ता को पता चल सके कि इसे सही तरीके से बूट किया गया है और बटन प्रेस की प्रतीक्षा करता है। उपयोगकर्ता तब आइटम को स्कैन करने के लिए रख सकता है और ढक्कन को बंद कर सकता है। बटन दबाने के बाद, एलईडी पल्स उपयोगकर्ता को यह बताने के लिए कि डिवाइस काम कर रहा है। डिवाइस इमेज प्रोसेसिंग और मोटर नियंत्रण के बीच तब तक लूप करेगा जब तक कि पूर्ण रोटेशन पूरा नहीं हो जाता और सभी ऑब्जेक्ट डेटा एकत्र नहीं हो जाते। अंत में, जाल बनाया जाता है और फ़ाइल को एक पूर्व-चयनित ईमेल पर ईमेल किया जाता है। यह चक्र को फिर से शुरू करता है और मशीन एक बटन के प्रेस पर एक और स्कैन करने के लिए तैयार है।

मूर्ति प्रोद्योगिकी

लागू की गई पहली चीज़ छवि में संग्रहीत जानकारी को एक ऐसे रूप में निकालने के लिए कैप्चर की गई छवि को संसाधित कर रही थी जिसका उपयोग अंतरिक्ष में बिंदुओं की एक सरणी बनाने के लिए किया जा सकता था। ऐसा करने के लिए, मैंने प्लेटफ़ॉर्म पर ऑब्जेक्ट की एक तस्वीर लेने के साथ-साथ बॉक्स के पीछे चमकने वाले लेजर द्वारा बनाए गए सभी पृष्ठभूमि शोर और फैलाव के साथ शुरू किया। इस तस्वीर के कच्चे रूप में दो मुख्य समस्याएं थीं। सबसे पहले, वस्तु को एक ऊंचे दृष्टिकोण से एक कोण पर देखा गया और दूसरा, बहुत अधिक पृष्ठभूमि शोर था। पहली चीज़ जो मुझे करने की ज़रूरत थी वह थी इस व्यूइंग एंगल का हिसाब क्योंकि फोटो का उपयोग करने से हम एक सुसंगत वस्तु की ऊँचाई निर्धारित नहीं कर पाएंगे। जैसा कि दूसरे आंकड़े में देखा गया है, उल्टा "एल" आकार की ऊंचाई सुसंगत है; हालांकि एक तरफ दूसरे की तुलना में लंबा होने के कारण वे दर्शकों के निकटतम किनारे पर अलग-अलग ऊंचाई रखते हैं।

इसे ठीक करने के लिए, मुझे छवि में कार्यक्षेत्र को समलम्बाकार आकार से एक आयत में बदलना पड़ा जो पहले था। ऐसा करने के लिए, मैंने इस लिंक द्वारा प्रदान किए गए कोड का उपयोग किया, जो एक छवि और चार अंक दिए जाने पर, चार बिंदुओं के बीच की छवि को क्रॉप करता है और परिप्रेक्ष्य की क्षतिपूर्ति के लिए क्रॉप की गई छवि को बदल देता है। यह परिवर्तन चार बिंदुओं का उपयोग एक समलम्बाकार प्रकार के आकार के बजाय एक आयत बनाने के लिए करता है जैसा कि तीसरे आंकड़े में देखा गया है।

अगली समस्या जिसे हल करने की आवश्यकता थी, वह थी बाहरी प्रकाश के रूप में पृष्ठभूमि का शोर और लेजर द्वारा ही प्रकाश का परावर्तन। ऐसा करने के लिए मैंने OpenCV के inRange() फ़ंक्शन का उपयोग करके प्रकाश को फ़िल्टर किया। मैंने केवल एक निश्चित स्तर पर लाल बत्ती लेने के लिए सीमा निर्धारित की है। सही मान प्राप्त करने के लिए, मैंने एक उदार थ्रेशोल्ड के साथ शुरुआत की और थ्रेशोल्ड स्तर को तब तक बढ़ाता रहा जब तक कि एकमात्र प्रकाश नहीं उठाया जा रहा था, स्कैन की जा रही वस्तु पर लेजर लाइट थी। एक बार जब मेरे पास यह छवि थी, तो मुझे प्रत्येक पंक्ति में सबसे चमकीला पिक्सेल मिला प्रति पंक्ति एक पिक्सेल की एक पंक्ति प्राप्त करें जो कि लेज़र लाइन के बाईं ओर सबसे बाईं ओर है। प्रत्येक पिक्सेल को तब 3D स्थान में एक शीर्ष में परिवर्तित किया गया था और एक सरणी में संग्रहीत किया गया था, जैसा कि जाल निर्माण अनुभाग में वर्णित है। इन चरणों के परिणाम चौथे चित्र में देखे जा सकते हैं।

मोटर नियंत्रण

ऑब्जेक्ट का टुकड़ा प्राप्त करने के लिए एक छवि को सफलतापूर्वक संसाधित करने में सक्षम होने के बाद, मुझे एक अलग कोण के साथ एक नई तस्वीर लेने के लिए ऑब्जेक्ट को घुमाने में सक्षम होना चाहिए। ऐसा करने के लिए, मैंने प्लेटफ़ॉर्म के नीचे स्टेपर मोटर को नियंत्रित किया, जिस पर स्कैन की जा रही वस्तु बैठती है। मैंने मोटर की स्थिति को ट्रैक करने के लिए एक चर बनाकर और चार मोटर इनपुट में से प्रत्येक को टॉगल करके माइक्रोस्टेपिंग करके हमारे स्टेपिंग फ़ंक्शन की नींव बनाई।

मेष निर्माणसभी संसाधित छवियों से एक जाल बनाने के लिए, मुझे पहले संसाधित छवि में प्रत्येक सफेद पिक्सेल को 3 डी अंतरिक्ष में एक शीर्ष में बदलना पड़ा। चूंकि मैं बेलनाकार समरूपता के साथ वस्तु के अलग-अलग स्लाइस एकत्र कर रहा हूं, इसलिए बेलनाकार निर्देशांक एकत्र करना शुरू करना समझ में आया। यह समझ में आता है क्योंकि चित्र की ऊंचाई z- अक्ष का प्रतिनिधित्व कर सकती है, घूर्णन तालिका के केंद्र से दूरी R- अक्ष का प्रतिनिधित्व कर सकती है, और स्टेपर मोटर का रोटेशन थीटा-अक्ष का प्रतिनिधित्व कर सकता है। हालाँकि, क्योंकि मैंने अपना डेटा बेलनाकार निर्देशांक में संग्रहीत किया था, इसलिए मुझे इनमें से प्रत्येक कोने को कार्टेशियन निर्देशांक में बदलना पड़ा।

एक बार जब ये कोने बन गए, तो उन्हें एक सूची में संग्रहीत किया गया और कहा गया कि सूची को दूसरी सूची में संग्रहीत किया गया था जिसमें कैप्चर की गई प्रत्येक छवि के लिए बनाई गई शीर्ष सूचियाँ थीं। एक बार जब सभी छवियों को संसाधित किया गया और शिखर में परिवर्तित किया गया, तो मुझे उन शिखरों का चयन करना पड़ा जिन्हें मैं वास्तव में अंतिम जाल में प्रदर्शित करना चाहता था। मैं चाहता था कि शीर्ष शीर्ष और निचला शीर्ष शामिल किया जाए और फिर संकल्प के आधार पर मैंने प्रत्येक छवि के लिए उपयोग करने के लिए समान रूप से दूरी की संख्या को चुना। चूंकि सभी शीर्ष सूचियां समान लंबाई की नहीं थीं, इसलिए मुझे सबसे छोटी संख्या वाली सूची को ढूंढकर और अन्य सभी सूचियों से शीर्षों को हटाकर, जब तक कि वे सभी समान न हों, मुझे उन्हें भी बाहर करना पड़ा। बनाई गई शीर्ष सूचियों के साथ मैं अब सक्षम था एक जाल बनाएँ। मैंने अपने जाल को.obj फ़ाइल मानक द्वारा प्रारूपित करना चुना क्योंकि यह सरल और 3D प्रिंट करने योग्य है।

एंबेडेड फंक्शन

डिवाइस के काम करने के बाद, मैंने इसे पूर्ण एम्बेडेड कार्यक्षमता जोड़कर पॉलिश किया। इसका मतलब है कि कीबोर्ड, माउस और मॉनिटर को हटाना, और इसे वायरलेस तरीके से हमें प्रोसेसिंग खत्म करने के बाद.obj फाइल भेजना। शुरू करने के लिए, मैंने स्वचालित रूप से लॉग इन करने और स्टार्टअप पर मुख्य पायथन प्रोग्राम लॉन्च करने के लिए.bashrc कोड बदल दिया। यह sudo raspi-config का उपयोग करके और "कंसोल ऑटोलॉगिन" का चयन करके और "sudo python /home/pi/finalProject/FINAL.py" लाइन को /home/pi/.bashrc में जोड़कर किया गया था। इसके अलावा, मैं भी उपयोगकर्ता इनपुट और आउटपुट के लिए एक बटन और स्थिति एलईडी जोड़ा गया। बटन उपयोगकर्ता को डिवाइस को स्कैनिंग शुरू करने के बारे में बताएगा और एलईडी उपयोगकर्ता को मशीन की स्थिति बताएगा। यदि एलईडी चालू है, तो डिवाइस एक नया स्कैन शुरू करने के लिए तैयार है। यदि एलईडी स्पंदन कर रही है, तो डिवाइस वर्तमान में स्कैन कर रहा है। यदि एलईडी कार्यालय है, तो एक सॉफ्टवेयर त्रुटि है, सिस्टम को पुनरारंभ करने के लिए कॉल करना। अंत में, मैंने डिवाइस को ईमेल पर.obj फ़ाइल भेजने के लिए सक्षम किया। यह smtplib और ईमेल पुस्तकालयों का उपयोग करके किया गया था। ईमेल भेजने की इस क्षमता ने हमें कई अलग-अलग प्लेटफार्मों पर उपयोग करने के लिए उत्पादित फ़ाइल को उपयोगकर्ता तक पहुंचाने का एक बहुत ही सुविधाजनक और वायरलेस तरीका दिया।

चरण 7: एकीकरण

एकीकरण
एकीकरण

डिवाइस के विभिन्न टुकड़ों के निर्माण के बाद, मैंने इसे एक साथ इकट्ठा किया। उपरोक्त आंकड़ा क्रम में दिखाता है:

(ए) बाहर इकट्ठा बॉक्स

(बी) कैमरा और लेजर के साथ अंदर इकट्ठा बॉक्स

(सी) इलेक्ट्रॉनिक्स बिस्तर के अंदर का दृश्य

(डी) पीआई बंदरगाहों और 5 वी मोटर इनपुट तक पहुंच के साथ पीआई के पीछे

(ई) डिवाइस के सामने एलईडी रिंग और स्टेटस लाइट के साथ पुश बटन

चरण 8: परिणाम

परिणाम
परिणाम
परिणाम
परिणाम
परिणाम
परिणाम
परिणाम
परिणाम

लेज़र ३डी स्कैनर अच्छी सटीकता के साथ वस्तुओं को स्कैन करने में सक्षम था। ऑब्जेक्ट की विशेषताएं अलग और पहचानने योग्य हैं और रिपेटियर जैसे स्लाइसिंग सॉफ़्टवेयर का उपयोग करके भागों को 3 डी प्रिंट करना बहुत आसान था। ऊपर दिए गए आंकड़े लकड़ी के टुकड़े और एक रबर डकी के कुछ नमूना स्कैन दिखाते हैं।

हमारे सबसे बड़े निष्कर्षों और सफलताओं में से एक जो मैंने परीक्षण के दौरान पाया, वह डिवाइस की स्थिरता थी। एक ही ऑब्जेक्ट के कई परीक्षणों के दौरान, स्कैनर एक.obj फ़ाइल बनाने में सक्षम था जो हर बार बहुत समान थी, भले ही हमने ऑब्जेक्ट के स्थान को थोड़ा बदल दिया हो। जैसा कि तीन अलग-अलग स्कैन में देखा गया है, वे सभी बहुत समान दिखते हैं, समान विवरण और समान मात्रा में विवरण कैप्चर करते हैं। मैं कुल मिलाकर हमारे सिस्टम की निरंतरता और मजबूती से बहुत प्रभावित था।

जिन चरों को मैं वास्तव में ट्यून करने में सक्षम था उनमें से एक स्कैन का संकल्प है। क्योंकि स्टेपर में 400 कदम हैं, मैं चुन सकता हूं कि प्रत्येक ΔΘ कोणीय संकल्प को निर्धारित करने के लिए कितना बड़ा है। डिफ़ॉल्ट रूप से, मेरे पास 20 पुनरावृत्तियों के लिए कोणीय संकल्प सेट है, जिसका अर्थ है कि प्रत्येक फ्रेम, मोटर 20 चरणों (400/20 = 20) से घूमता है। इसे मुख्य रूप से समय के हित में चुना गया था - इस तरह एक स्कैन को पूरा करने में लगभग 45 सेकंड लगते हैं। हालांकि, अगर मैं एक उच्च गुणवत्ता वाला स्कैन चाहता हूं, तो मैं सभी तरह से पुनरावृत्तियों की संख्या को 400 तक बढ़ा सकता हूं। इससे मॉडल के निर्माण के लिए कई और अंक मिलते हैं, जिससे अधिक विस्तृत स्कैन होता है। कोणीय रिज़ॉल्यूशन के अलावा, मैं लंबवत रिज़ॉल्यूशन को भी समायोजित कर सकता हूं, या लेजर स्लाइस के साथ मैं कितने अलग-अलग बिंदुओं को चुन सकता हूं। समय में समान रुचि के लिए, मेरे पास यह डिफ़ॉल्ट सेट 20 है लेकिन मैं इसे बेहतर परिणामों के लिए बढ़ा सकता हूं। कोणीय संकल्प और स्थानिक संकल्प के इन मापदंडों के साथ खेलने में, मैं अंतिम आंकड़े में नीचे विभिन्न स्कैन के परिणामों को संकलित करने में सक्षम था। प्रत्येक लेबल को इस तरह स्वरूपित किया जाता है कि यह कोणीय रिज़ॉल्यूशन x स्थानिक रिज़ॉल्यूशन हो। जैसा कि डिफ़ॉल्ट स्कैनिंग सेटिंग्स में देखा गया है, बतख की विशेषताएं पहचानने योग्य हैं लेकिन विस्तृत नहीं हैं। हालांकि, जैसे-जैसे मैं संकल्प बढ़ाता हूं, बतख पर आंखें, चोंच, पूंछ और पंखों सहित व्यक्तिगत सटीक विशेषताएं दिखाई देने लगती हैं। उच्चतम रिज़ॉल्यूशन वाली छवि को स्कैन करने में लगभग 5 मिनट का समय लगा। एक प्राप्त करने योग्य संकल्प के इस उच्च को देखना एक बहुत बड़ी सफलता थी।

सीमाओं

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

अगला कदम

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

चरण 9: संसाधन

मैंने कोड, प्रिंटिंग के लिए एसटीएल फाइलें, और परियोजना की संपूर्णता के लिए डीएक्सएफ फाइलों को काटने के लिए शामिल किया है।

रास्पबेरी पाई प्रतियोगिता 2020
रास्पबेरी पाई प्रतियोगिता 2020
रास्पबेरी पाई प्रतियोगिता 2020
रास्पबेरी पाई प्रतियोगिता 2020

रास्पबेरी पाई प्रतियोगिता 2020 में प्रथम पुरस्कार

सिफारिश की: