विषयसूची:

स्क्रैप से निर्मित पिपबॉय: 26 कदम (चित्रों के साथ)
स्क्रैप से निर्मित पिपबॉय: 26 कदम (चित्रों के साथ)

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

वीडियो: स्क्रैप से निर्मित पिपबॉय: 26 कदम (चित्रों के साथ)
वीडियो: How we made a real working Pip-Boy 2000 Part 3 of 3 2024, जुलाई
Anonim
Image
Image
पिपबॉय के दिल का निर्माण
पिपबॉय के दिल का निर्माण

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

परियोजना के लिए मेरे लक्ष्य थे:

  • काम करना था - यानी वास्तव में एक ऐसा डिस्प्ले होना चाहिए जो सामान करता हो
  • मैं चाहता था कि इसमें अलग-अलग स्क्रीन का चयन करने के लिए "डायल" हो क्योंकि फॉलआउट में यूआई के एक प्रतिष्ठित हिस्से के रूप में वह हमेशा मेरे लिए खड़ा था
  • गैरेज में या मेरे कार्यालय में मेरे पास पहले से मौजूद सामान का उपयोग करके पूरे निर्माण को पूरा किया जाना था (यह पूरी तरह से हासिल नहीं हुआ था, लेकिन मैं करीब पहुंच गया - इसमें से 90% से ऊपर आइटम या सामान जो मैंने पहले से ही बिछाया था)
  • पहनने योग्य होने की आवश्यकता

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

आपूर्ति

आपूर्ति

  • चौड़ा बोर पाइप (जैसे नाली के पाइप का एक टुकड़ा)
  • स्क्रैप प्लास्टिक (शरीर बनाने और सजावटी उद्देश्यों के लिए दोनों)
  • छोटा कंटेनर
  • फोम फर्श मैट
  • रास्पबेरी पाई
  • 3.5" डिस्प्ले
  • KY040 रोटरी एनकोडर
  • 3x एलईडी
  • 2x पुश बटन
  • पावर बैंक
  • तारों
  • पेंच, गोंद, पेंट, भराव आदि

उपकरण

  • Dremel
  • कटर और सैंडिंग अटैचमेंट के साथ मल्टी-टूल
  • ड्रिल
  • फ़ाइलें
  • सोल्डरिंग आयरन
  • गर्म गोंद वाली बंदूक
  • स्क्रू ड्राइवर
  • तेज चाकू
  • देखा

चरण 1: पिपबॉय के दिल का निर्माण

पिपबॉय के दिल का निर्माण
पिपबॉय के दिल का निर्माण

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

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

इस बिंदु पर यह भी ध्यान देने योग्य है, कि बाद में निर्माण में मैं इस सेटअप के साथ प्रदर्शन के मुद्दों में भाग गया - मुख्य रूप से पीआई और डिस्प्ले के बीच इंटरफेस पर रीफ्रेश दर, मैं इसे बाद में बिल्ड में जाऊंगा लेकिन अगर मैं ऐसा फिर से किया मैं यहां विभिन्न हार्डवेयर पर विचार कर सकता हूं।

इसके लिए यहां कुछ उपयोगी लिंक दिए गए हैं:

www.raspberrypi.org/forums/viewtopic.php?t…

www.raspberrypi.org/forums/viewtopic.php?t…

www.raspberrypi.org/forums/viewtopic.php?f…

learn.sparkfun.com/tutorials/serial-periph…

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

चरण 2: कार्डबोर्ड प्रोटोटाइप

कार्डबोर्ड प्रोटोटाइप
कार्डबोर्ड प्रोटोटाइप
कार्डबोर्ड प्रोटोटाइप
कार्डबोर्ड प्रोटोटाइप
कार्डबोर्ड प्रोटोटाइप
कार्डबोर्ड प्रोटोटाइप

मुझे कुछ पुराने गटरिंग/पाइप मिले जिनका उपयोग मैं शरीर के लिए कर सकता था, लेकिन मुझे वास्तविक स्क्रीन क्षेत्र और नियंत्रण कक्ष के लिए एक डिज़ाइन के साथ आने की आवश्यकता थी। इसके लिए मैंने सिर्फ कार्डबोर्ड मॉक अप बनाए और उन्हें पाइप से ठीक करने के लिए मास्किंग टेप का इस्तेमाल किया। पहला एक साधारण "बॉक्स" था लेकिन यह बहुत आसान लगा, इसलिए मैंने स्क्रीन क्षेत्र को और अधिक रोचक बनाने के लिए इसे संशोधित किया और एक अलग नियंत्रण कक्ष क्षेत्र जोड़ा। यह कमोबेश अंतिम डिजाइन बन गया (जैसा कि आप देखेंगे, कुछ बदलाव थे, लेकिन इसके करीब)।

चरण 3: प्रोटोटाइप से टेम्पलेट तक

प्रोटोटाइप से टेम्पलेट तक
प्रोटोटाइप से टेम्पलेट तक
प्रोटोटाइप से टेम्पलेट तक
प्रोटोटाइप से टेम्पलेट तक
प्रोटोटाइप से टेम्पलेट तक
प्रोटोटाइप से टेम्पलेट तक

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

चरण 4: स्क्रीन और पाई के लिए केस जोड़ें

स्क्रीन और पाई के लिए केस जोड़ें
स्क्रीन और पाई के लिए केस जोड़ें
स्क्रीन और पाई के लिए केस जोड़ें
स्क्रीन और पाई के लिए केस जोड़ें

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

चरण 5: नियंत्रण कक्ष के लिए दोहराएं

नियंत्रण कक्ष के लिए दोहराएं
नियंत्रण कक्ष के लिए दोहराएं
नियंत्रण कक्ष के लिए दोहराएं
नियंत्रण कक्ष के लिए दोहराएं
नियंत्रण कक्ष के लिए दोहराएं
नियंत्रण कक्ष के लिए दोहराएं

इसके बाद, मैंने कंट्रोल पैनल हाउसिंग बनाने के लिए बिल्कुल वैसा ही टेम्प्लेट ट्रांसपोज़िंग, कटिंग और ग्लूइंग किया।

चरण 6: पाइप को काटें

पाइप को काटें
पाइप को काटें

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

चरण 7: बेज़ेल

फलक के
फलक के
फलक के
फलक के

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

चरण 8: बैटरी परीक्षण

बैटरी टेस्ट
बैटरी टेस्ट
बैटरी टेस्ट
बैटरी टेस्ट
बैटरी टेस्ट
बैटरी टेस्ट

इस बिंदु पर, मैंने अपना मन बदल दिया कि कैसे इस रन को एक मुख्य आपूर्ति किए गए USB से स्वतंत्र रूप से बनाया जाए। मैंने विभिन्न बैटरियों का परीक्षण किया और पाया कि रास्पबेरी पाई + डिस्प्ले ने वास्तव में उतनी शक्ति नहीं खींची और यह मेरे छोटे बैटरी पैक (एक व्यापार शो से एक फ्रीबी) पर भी पूरी तरह से खुश था। यह वास्तव में भाग्यशाली था क्योंकि पैक पूरी तरह से बिल्ड के अंदर एक गैप में फिट हो गया (फोटो बाद में)। अब हम अस्थायी रूप से मुख्य शरीर के घटकों को एक साथ टेप कर सकते हैं, और इसका पहला परीक्षण मेरी बांह पर संचालित कर सकते हैं!

चरण 9: परीक्षण फिट

परीक्षण फिट
परीक्षण फिट
परीक्षण फिट
परीक्षण फिट
परीक्षण फिट
परीक्षण फिट

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

चरण 10: नियंत्रण और विवरण जोड़ें

नियंत्रण और विवरण जोड़ें
नियंत्रण और विवरण जोड़ें
नियंत्रण और विवरण जोड़ें
नियंत्रण और विवरण जोड़ें
नियंत्रण और विवरण जोड़ें
नियंत्रण और विवरण जोड़ें

मैं एक गेज बनाने के लिए लाल/पीली/हरी एलईडी की एक श्रृंखला चाहता था, साथ ही एक रोटरी डायल और कम से कम 2 पुश बटन। ये सभी कंट्रोल पैनल सेक्शन में फिट किए गए थे - बस सभी सही छेदों को ड्रिल करने का मामला। मैंने शरीर और नियंत्रण कक्ष में विवरण और अधिक रुचि जोड़ने के लिए स्क्रैप प्लास्टिक घटकों (मूल रूप से किट बैशिंग) के छोटे टुकड़े जोड़ना शुरू कर दिया।

चरण 11: बेज़ल पुनर्निर्माण नंबर 3

बेज़ल पुनर्निर्माण नंबर 3
बेज़ल पुनर्निर्माण नंबर 3
बेज़ल पुनर्निर्माण नंबर 3
बेज़ल पुनर्निर्माण नंबर 3
बेज़ल पुनर्निर्माण नंबर 3
बेज़ल पुनर्निर्माण नंबर 3

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

चरण 12: इलेक्ट्रॉनिक्स का प्रोटोटाइप बनाना

इलेक्ट्रॉनिक्स का प्रोटोटाइप
इलेक्ट्रॉनिक्स का प्रोटोटाइप
इलेक्ट्रॉनिक्स का प्रोटोटाइप
इलेक्ट्रॉनिक्स का प्रोटोटाइप

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

यहां डिजाइन काफी सीधा है, हमारे पास है;

  1. रोटरी एन्कोडर - यह क्लिक दिशा और पुश बटन से निपटने के लिए जीपीआईओ पिन के ग्राउंड और गुच्छा का उपयोग करता है।
  2. पुश बटनों की जोड़ी, ये केवल एक GPIO पिन प्रत्येक और एक सामान्य आधार का उपयोग करते हैं
  3. 3 एलईडी, प्रत्येक एक इनलाइन रोकनेवाला के साथ उन्हें पॉपिंग रोकने के लिए, सभी एक आम जमीन पर जा रहे हैं, लेकिन एक व्यक्तिगत जीपीआईओ पिन के साथ प्रत्येक को व्यक्तिगत रूप से संबोधित किया जा सकता है।

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

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

रोटरी एनकोडर के बारे में एक नोट। मैंने GPIO के उच्च/निम्न परिवर्तनों को ट्रैक करने और इन्हें रोटरी स्थितियों में मैप करने के लिए अपनी रोटरी एनकोडर स्टेट मशीन लिखने में बहुत समय बिताया। मुझे यहां मिली-जुली सफलता मिली, मैंने इसे "अधिकांश" मामलों के लिए काम किया, लेकिन इससे निपटने के लिए हमेशा किनारे के मामले और (डी) बाउंसिंग आदि होते हैं। तैयार पुस्तकालय का उपयोग करना बहुत आसान है और पाइथन के लिए स्थापित करने के लिए उपलब्ध इनके लिए एक बढ़िया है। मैंने अंत में इसका इस्तेमाल किया क्योंकि इसने मुझे उम्र के डिबगिंग मुद्दों पर खर्च करने के बजाय इमारत के मज़ेदार हिस्से पर ध्यान केंद्रित करने की अनुमति दी। उसके लिए सभी विवरण स्रोत कोड में शामिल हैं।

यदि आप रास्पबेरी पाई, जीपीआईओ और इलेक्ट्रॉनिक्स के लिए नए हैं, तो मैं निम्नलिखित ट्यूटोरियल की अत्यधिक अनुशंसा करता हूं जो आपको उपरोक्त लेआउट को करने के लिए आवश्यक हर चीज के माध्यम से चलते हैं;

projects.raspberrypi.org/hi/projects/physi…

thepihut.com/blogs/raspberry-pi-tutorials/…

चरण 13: इलेक्ट्रॉनिक्स को शरीर में स्थानांतरित करना

इलेक्ट्रॉनिक्स को शरीर में स्थानांतरित करना
इलेक्ट्रॉनिक्स को शरीर में स्थानांतरित करना
इलेक्ट्रॉनिक्स को शरीर में स्थानांतरित करना
इलेक्ट्रॉनिक्स को शरीर में स्थानांतरित करना
इलेक्ट्रॉनिक्स को शरीर में स्थानांतरित करना
इलेक्ट्रॉनिक्स को शरीर में स्थानांतरित करना

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

बटनों के लिए मैंने कुछ विस्तार तारों पर टांका लगाया और सिरों को इन्सुलेट करने के लिए वायर रैप का इस्तेमाल किया, इससे मुझे शरीर से इन्हें इकट्ठा करने और अलग करने की अनुमति मिली (जैसे परीक्षण के लिए, फिर पेंटिंग आदि)। रोटरी एनकोडर में पहले से ही पिन थे जो डुपोंट कनेक्टर को स्वीकार कर सकते थे, इसलिए मुझे बस कुछ तारों को सही लंबाई बनाने की आवश्यकता थी।

एलईडी ने थोड़ा और काम किया - इसके लिए, मैंने एलईडी को माउंट करने के लिए एक हटाने योग्य पैनल बनाने के लिए मेरे पास (फिट करने के लिए कट) थोड़ा स्क्रैप प्लास्टिक का उपयोग करने का फैसला किया। फिर मैंने उन्हें गर्म जगह पर चिपका दिया और प्रतिरोधों और तारों को मिला दिया। इसने एक निष्कासन इकाई बना दी जिसे मैं फिट कर सकता था और हटा सकता था और पेंटिंग और परिष्करण को आसान बना सकता था।

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

फिर मैंने पाई के माध्यम से तारों को खिलाने और GPIO से जुड़ने के लिए कंटेनर में विभिन्न छेदों को काट दिया। इस डिज़ाइन ने मुझे ज़रूरत पड़ने पर सब कुछ पूरा करने की अनुमति दी (कुछ ऐसा जो मैंने कई बार किया जब मैं निर्माण को अंतिम रूप दे रहा था)।

चरण 14: फ़िट को ठीक करना

फ़िट ट्यूनिंग फ़िट
फ़िट ट्यूनिंग फ़िट
फ़िट ट्यूनिंग फ़िट
फ़िट ट्यूनिंग फ़िट

इस बिंदु पर मैं कुछ "फिट" मुद्दों में भाग गया। सबसे पहले तारों के लिए डुपॉन्ट कनेक्टर्स के उपयोग का मतलब था कि उन्हें पिन पर फिट करने के लिए डिस्प्ले हैट के साथ फिट होना मुश्किल था क्योंकि पर्याप्त ऊंचाई निकासी नहीं थी। मैंने इसे खरीदकर हल किया (यह वास्तव में इस परियोजना के लिए खरीदी गई कुछ चीजों में से एक है) एक छोटा GPIO पिन एक्सटेंडर ताकि मैं डिस्प्ले टोपी को ऊंचा रख सकूं और डुपॉन्ट कनेक्टर का उपयोग करके शेष GPIO पिन तक पहुंचने के लिए जगह छोड़ सकूं।

मैंने कंटेनर के अंदर कुछ साइड पैडिंग बनाने के लिए फोम फ्लोर मैट के कुछ छोटे टुकड़े भी काट दिए, इससे पाई + डिस्प्ले को सही जगह पर बैठने और इसे इधर-उधर जाने से रोकने में मदद मिली।

चरण 15: रोटरी एनकोडर को रेट्रो करें

रोटरी एनकोडर को रेट्रो करें
रोटरी एनकोडर को रेट्रो करें

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

चरण 16: आंतरिक अस्तर

आतंरिक रेशायें
आतंरिक रेशायें
आतंरिक रेशायें
आतंरिक रेशायें

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

चरण 17: विवरण जोड़ना

विवरण जोड़ना
विवरण जोड़ना
विवरण जोड़ना
विवरण जोड़ना

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

चरण 18: पेंटिंग और फिनिशिंग बॉडी बिल्ड

पेंटिंग और फिनिशिंग बॉडी बिल्ड
पेंटिंग और फिनिशिंग बॉडी बिल्ड
पेंटिंग और फिनिशिंग बॉडी बिल्ड
पेंटिंग और फिनिशिंग बॉडी बिल्ड
पेंटिंग और फिनिशिंग बॉडी बिल्ड
पेंटिंग और फिनिशिंग बॉडी बिल्ड

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

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

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

चरण 19: कोडिंग

कोडन
कोडन

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

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

यूआई कोड के लिए मेरा डिज़ाइन यथोचित रूप से सीधा है, एक मुख्य पायथन स्क्रिप्ट है जो डिस्प्ले सेट करती है, GPIO को कॉन्फ़िगर करती है, स्क्रीन लोड करती है और एक अनंत अपडेट लूप में प्रवेश करती है, उपयोगकर्ता की घटनाओं की प्रतीक्षा कर रही है और आवश्यकतानुसार डिस्प्ले को अपडेट कर रही है। इसके अलावा, विभिन्न समर्थन स्क्रिप्ट हैं जो समय से पहले UI स्क्रीन उत्पन्न करने में मदद करती हैं।

मुख्य पुस्तकालयों का इस्तेमाल किया:

  • pygame: मैं इसे यूआई चलाने के लिए इंजन के रूप में उपयोग करता हूं क्योंकि इससे मुझे मनमाना ग्राफिक्स खींचने, छवियों में हेरफेर करने, फोंट, पूर्ण स्क्रीन पर जाने आदि की अनुमति मिलती है।
  • pyky040: यह रोटरी डायल के लिए हैंडलिंग प्रदान करता है और मुझे बहुत समय बचाता है (इसे जारी करने के लिए राफेल यांसी को बहुत धन्यवाद।
  • RPi. GPIO: अच्छी तरह से GPIO ड्राइविंग के लिए, मैंने यहां कुछ विकल्पों के साथ खिलवाड़ किया, लेकिन इसने मुझे लचीलेपन का सही स्तर दिया, विशेष रूप से रोटरी एनकोडर आदि को चलाने के लिए 3.3v के रूप में एक अतिरिक्त GPIO का उपयोग करने जैसी चीजों के साथ।
  • शोर: पर्लिन शोर उत्पन्न करने के लिए, मुझे रेडियो स्क्रीन के लिए एक यादृच्छिक तरंग बनाने की अनुमति देने के लिए जो अधिक प्राकृतिक दिखता है
  • कतार: रोटरी एन्कोडर से घटनाओं के समय और एलसीडी डिस्प्ले की (बहुत) धीमी ताज़ा दर के साथ मैं एक निराशाजनक बग में भाग गया। अंत में जिस तरह से मैंने इसे हल किया वह रोटरी एन्कोडर से इनबाउंड घटनाओं को एन-क्यू करना था और स्क्रीन रीफ्रेश होने पर उन्हें एक बार में चुनना था।
  • ओएस, एसआईएस, थ्रेडिंग, समय: सभी मानक पायथन कार्यों के लिए उपयोग किए जाते हैं

स्क्रीन हैंडलिंग के डिजाइन पर एक नोट। स्क्रीन को कोड के भीतर नामों की सूची के रूप में परिभाषित किया गया है। सूची में प्रत्येक प्रविष्टि में या तो एक पीएनजी या एक txt फ़ाइल (या दोनों) से जुड़ी हो सकती है, कोड से जुड़े लिनक्स निर्देशिका संरचना में फ़ाइलों की तलाश के बाद कोड प्रत्येक स्क्रीन के लिए कैश बनाता है।

उन फ़ाइलों की सामग्री कहीं और (हाथ से या अन्य लिपियों द्वारा) उत्पन्न की जाती है, जिसके आउटपुट को-p.webp

ऐसे अजीब अपवाद हैं जहां कुछ चीजों को कोडित किया जाता है - जैसे कि यादृच्छिक रेडियो स्क्रीन के लिए तरंग जो वास्तविक समय में गणना की जाती है और एनिमेटेड होती है।

यदि एक सादृश्य मदद करता है, तो UI डिज़ाइन को एक अत्यंत कच्चे और सरल वेब ब्राउज़र के रूप में सोचें - प्रत्येक "स्क्रीन" वास्तव में एक साधारण वेबपेज की तरह है जिसमें केवल एक png, एक txt फ़ाइल या दोनों का संयोजन हो सकता है। उनमें से सामग्री स्वतंत्र हैं और केवल यूआई द्वारा खींची जाती हैं जैसे ब्राउज़र एक वेबपेज खींचता है।

यहाँ मुख्य पुस्तकालयों के लिंक दिए गए हैं जिनका मैंने यहाँ उपयोग किया है:

www.pygame.org/news

pypi.org/project/pyky040/

pypi.org/project/noise/

चरण 20: आँकड़े स्क्रीन

आँकड़े स्क्रीन
आँकड़े स्क्रीन

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

चरण 21: इन्वेंटरी स्क्रीन

इन्वेंटरी स्क्रीन
इन्वेंटरी स्क्रीन

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

चरण 22: मानचित्र स्क्रीन

मानचित्र स्क्रीन
मानचित्र स्क्रीन

यह स्क्रीन काम करने के लिए अधिक जटिल स्क्रीनों में से एक थी। रास्पबेरी पाई 0 एक जीपीएस मॉड्यूल के साथ नहीं आता है, लेकिन मैं मानचित्र को कुछ वैधता बनाना चाहता था जहां पीआई था। इसका मेरा समाधान एक अलग स्क्रिप्ट है जो पीआई आईपी पता खींचती है, अनुमानित स्थान देखने के लिए https://ipinfo.io का उपयोग करती है। JSON प्रतिक्रिया कैप्चर की जाती है और फिर मैं निर्देशांक परिवर्तित करता हूं ताकि मैं लगभग स्थान के लिए एक opentreetmap.org टाइल नीचे खींच सकूं।

टाइलें कई रंगों में नीचे आती हैं, लेकिन मैं पिपबॉय के रंगरूप से मेल खाने के लिए एक हरे रंग की छवि चाहता था और मुझे बिल्कुल वैसा ही नहीं मिला, इसलिए मैंने रंगों को फिर से तैयार करने के लिए पायथन में एक हरे रंग का फिल्टर लिखा। ओपनस्ट्रीटमैप टाइल का और फिर नई छवि को एक पीएनजी फ़ाइल में कैश करें।

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

चरण 23: डेटा स्क्रीन

डेटा स्क्रीन
डेटा स्क्रीन

यह सिर्फ एक परीक्षण कार्ड है (एक अन्य पायथन लिपि द्वारा उत्पन्न और एक पीएनजी फ़ाइल में आउटपुट) जो आकार/लेआउट का परीक्षण करने में सहायता के लिए प्रदर्शित होता है। मैंने इसे छोड़ दिया क्योंकि यह अभी भी यह सत्यापित करने के लिए उपयोगी है कि स्क्रीन का मज़ाक उड़ाते समय मुझे कितनी अचल संपत्ति के साथ खेलना है।

चरण 24: रेडियो स्क्रीन

रेडियो स्क्रीन
रेडियो स्क्रीन

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

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

चरण 25: अंतिम विचार

Image
Image
अंतिम विचार
अंतिम विचार

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

यदि आप ऐसा कुछ करने के लिए तैयार हैं, तो मुझे परिणाम देखना अच्छा लगेगा और यदि आपके कोई प्रश्न हैं तो कृपया बेझिझक संपर्क करें और मैं किसी भी चरण में और जानकारी जोड़ने का प्रयास करूंगा जहां आप मदद करना चाहते हैं।

चरण 26: गीथूब पर कोड खोलें

गीथूब पर कोड ओपन
गीथूब पर कोड ओपन

मैं अंततः जीथब पर कोड खोलने के लिए तैयार हो गया। यह इस लिंक पर उपलब्ध है:

सिफारिश की: