विषयसूची:
- चरण 1: सामने की परत
- चरण 2: गाइड परत को डिजाइन करना
- चरण 3: गाइड परत का निर्माण
- चरण 4: एल ई डी तारों
- चरण 5: इलेक्ट्रॉनिक्स डिजाइन करना
- चरण 6: इलेक्ट्रॉनिक्स को तार देना
- चरण 7: प्रोग्रामिंग
- चरण 8: आवास
- चरण 9: समापन टिप्पणी
वीडियो: लंदन भूमिगत मानचित्र घड़ी: 9 कदम (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:18
2014 में, लंदन में एक ३डी प्रिंटिंग कंसल्टेंसी में इंटर्नशिप के पीछे और उनकी स्ट्रैटासिस मशीन का उपयोग करके रंगीन लिथोफेन्स के साथ एक प्रयोग के बाद, मैं अपने स्वयं के गोइंग अवे प्रेजेंट को डिजाइन करता हूं, उनके कार्यालयों के लिए स्थानीय ट्यूब लाइनों का एक रंगीन ३डी प्रिंट। मैंने इससे कुछ बनाने की ठान ली थी। 2 साल बाद 2016 में मेरे पास अपना 3D प्रिंटर था, और इसे एक घड़ी में बनाने के लिए काम करने के लिए तैयार था।
एक बच्चे के रूप में मैं हालांकि टोक्यो फ्लैश डिजिटल घड़ियाँ अब तक की सबसे बड़ी चीजें थीं, और यह तय किया कि डिजाइन के लिए प्रेरणा बिंदु होगा।
और अब यह सिर्फ 4 साल का एक छोटा सा ब्रेक है जब तक कि मैं इसे लिखने के लिए तैयार नहीं हो जाता!
जबकि सटीक निर्देशों को दोहराना मुश्किल होगा, और पिछले कुछ वर्षों में हॉबीस्ट पीसीबी निर्माण में लागत में कमी से एलईडी प्लेसमेंट के लिए मेरा सटीक तरीका अप्रचलित हो सकता है। मुझे आशा है कि साझा किए गए विचार दूसरों को पतली वस्तुओं से अजीब घड़ियां बनाने के लिए प्रेरित कर सकते हैं!
चरण 1: सामने की परत
जैसा कि परिचय में उल्लेख किया गया है, यह एक रंग 3D प्रिंट था, मेरा मानना है कि एक स्ट्रैटासिस मशीन जिसमें पाउडर बेड और बाइंडर और पिगमेंट के लिए एक संशोधित स्याही कारतूस का उपयोग किया गया था।
फ़ाइल इतिहास में खो गई है, लेकिन यह परत कुछ भी हो सकती है, एक तस्वीर या एक रंग का लिथोफेन अद्भुत काम करेगा।
यह हिस्सा 2014 में 3DS मैक्स में बनाया गया था, लेकिन आज एक छवि को चमक के आधार पर SLT में बदलने के लिए ऑनलाइन उपकरण हैं।
चरण 2: गाइड परत को डिजाइन करना
यह वह जगह है जहां हम परियोजना की जटिलता और समय पढ़ने की विधि तय करते हैं। छवियां उन 2 विचारों को दिखाती हैं जिनके साथ मैं खेल रहा था।
इन्हें इंकस्केप में डिज़ाइन में स्कैन करके और इसके पार रेखाएँ खींचकर बनाया गया था।
यह एक बहुत ही पठनीय घड़ी नहीं है, लेकिन मैंने दिन भर में भरने वाली लाइनों के विचार को प्राथमिकता दी ताकि यह डिजाइन लक्ष्य बन जाए।
एलईडी गिनती को कम करने के लिए बाइनरी काउंटिंग एक व्यवहार्य तरीका है, और यदि बाइनरी आपका जाम है, तो यह पठनीयता में सुधार करेगा, लेकिन इसने मेरे 'फिलिंग लाइन्स' के विचार को कम कर दिया, इसलिए इस परियोजना के लिए एक विकल्प नहीं था।
टोक्यो फ्लैश वॉच पर एलईडी की संख्या कम से कम करना आम बात है, लेकिन एक सेक्शन की गिनती 3 या 5 में होती है और फिर हर बार उस सेक्शन को भरने के लिए एक और फिलिंग होती है, मैंने मिनटों के लिए इस तकनीक का इस्तेमाल किया, उन्हें 60 से 20 प्लस 2 तक कम करने के लिए। सेकंड के लिए यह सटीकता के बारे में इतना चिंतित नहीं था।
चरण 3: गाइड परत का निर्माण
एलईडी के लिए इस गाइड परत के 2 उद्देश्य हैं, यह एलईडी को जगह में रखता है, और यह उनके बीच फैल को रोकता है
यह सीधे स्कैन के शीर्ष पर इंकस्केप पर एक परत के रूप में खींचा गया था जिसे मैं डिज़ाइन लेआउट के लिए उपयोग कर रहा था। मेरे प्रिंटर पर भेजने से पहले ब्लेंडर में 1 मिमी मोटाई जोड़ी गई थी।
यह सबसे कठिन प्रिंटों में से एक था जिसे मुझे अपने अल्प माकिबॉक्स ए 6 पर बनाना था, भाग को एब्स में मुद्रित किया गया था, इसलिए एक टन एसीटोन घोल का उपयोग इसे कम से कम युद्ध के साथ बिल्ड प्लेटफॉर्म से जोड़े रखने के लिए किया गया था। सौभाग्य से यह हिस्सा अंतिम उत्पाद पर नहीं देखा गया है
अंतिम छवि से पता चलता है कि यह रिक्ति की जांच करने के लिए एक दीपक तक आयोजित किया गया है।
अंत में, एक लाइन के साथ रोशनी के बीच स्पिल वास्तव में दृश्यों के लिए बेहतर हो सकता है, पढ़ने में कठिन नहीं है, यह प्रत्येक प्रकाश के छोटे किनारों पर गाइड में एक कक्ष जोड़कर प्राप्त किया जा सकता है
चरण 4: एल ई डी तारों
मुट्ठी की छवि छेद के आकार की जाँच के लिए मेरे द्वारा बनाए गए परीक्षण प्रिंट को दिखाती है, मैं एलईडी के लिए थोड़ा बल के साथ फीता में फिट होने का लक्ष्य रख रहा था, गाइड परत को बिछाते समय सही आकार को हाथ से रखा गया था।
मेरे 3D प्रिंटर की कम सहनशीलता के कारण, कुछ ढीले थे और जगह पर रहने के लिए सुपरग्लू की एक थपकी की आवश्यकता थी, जबकि अन्य बहुत तंग थे, लेकिन टांका लगाते समय एलईडी को दबाकर जगह में प्रोत्साहित किया गया था, यह वास्तव में इससे बेहतर फिट था सही आकार का छेद, जिसमें एक बार तार लगाने के बाद बाहर निकालने के लिए एक किरायेदारी थी।
वायर काउंट को कम करने के लिए एलईडी को 7 बाय 8 के मैट्रिक्स में मिलाया गया था, जिसका अर्थ है कि सभी 55 एलईडी को केवल 13 पिन द्वारा नियंत्रित किया जा सकता है, मेरे पास इनमें से प्रत्येक कनेक्शन का एक हाथ से तैयार नक्शा था जो दुर्भाग्य से खो गया है।
तामचीनी तार का उपयोग किया गया था ताकि कनेक्शन बनाने से पहले लोहे और टिनिंग के साथ एक अनुभाग को गर्म करके अनुभागों को उजागर किया जा सके।
यह प्रक्रिया बहुत समय लेने वाली थी, मैं अत्यधिक पीसीबी डिजाइन करने की सलाह दूंगा
चरण 5: इलेक्ट्रॉनिक्स डिजाइन करना
मेरी प्रारंभिक योजना RTC के साथ Arduino माइक्रोकंट्रोलर का उपयोग करने की थी, लेकिन Node MCU D1 बोर्ड पर ESP8266 का विकल्प चुना क्योंकि यह स्वचालित दिन के उजाले की बचत और वाईफ़ाई पर नियंत्रण की क्षमता के लिए अनुमति देता था।
पिन की संख्या को और कम करने के लिए, मेरे पास MAX7219 (जो 64 एलईडी तक संभाल सकता है) का उपयोग करने में सक्षम होने के लिए एल ई डी की सही संख्या थी।
इस आईसी का उपयोग आमतौर पर एलईडी 7 सेगमेंट डिस्प्ले को चलाने के लिए किया जाता है, लेकिन इसका उपयोग मेरे लिए बहुत समान था, कम से कम टिमटिमाते हुए एलईडी की एक मनमानी संख्या को प्रकाश में लाना, यहां तक कि इसमें नियंत्रणीय चमक भी है।
मैंने वायरिंग के लिए प्रोटोबार्ड का उपयोग करने का निर्णय लिया, लेकिन ईगल पार्ट प्लेसमेंट और वायरिंग को समझने में मददगार था
मैंने अपनी बोर्ड फाइलें संलग्न की हैं, लेकिन यह मेरा पहली बार ईगल (और अब तक पुराना संस्करण) का उपयोग कर रहा था, इसलिए वे केवल संदर्भ के लिए हैं
चरण 6: इलेक्ट्रॉनिक्स को तार देना
यह एक दोहराव वाला सरल कदम था, ईगल योजनाबद्ध के बाद, ईएसपी और एलईडी मैट्रिक्स के लिए हेडर का उपयोग करने से असेंबली में काफी मदद मिली।
एनोड और कैथोड एलईडी हेडर पर पिन 1 को सिल्वर शार्प के साथ चिह्नित किया गया था, उन्हें 7 अन्य 8 के बीच विभेदित किया जा सकता था।
चरण 7: प्रोग्रामिंग
चूंकि हमारा डिस्प्ले पारंपरिक मैट्रिक्स नहीं है, इसलिए मुझे यह देखने के लिए एक विधि ढूंढनी पड़ी कि कौन से बिट्स को चालू करना है, जिसे उसने एचईएक्स में मैक्स आईसी को भेजा है। सौभाग्य से मैं मुसीबत में पड़ने के लिए पर्याप्त एक्सेल जानता हूं और मुझे मार्गदर्शन करने के लिए 'हेक्स विज़ार्ड' बनाया है, हालांकि मैं जिस पैटर्न को प्रदर्शित करना चाहता था, हाथ से चेक बॉक्स सभी को रखा।
यह पुनर्मूल्यांकन के साथ आया कि मेरे घंटे, मिनट और सेकंड के लिए हेक्स को बिटवाइज़ का उपयोग करके जोड़ा जा सकता है या अधिकतम 7219 को भेजने के लिए अंतिम हेक्स कमांड का उत्पादन करने के लिए, जिसमें मैंने सेकंड में जोड़ा गया एक छोटा एनीमेशन भी शामिल है ताकि मैं सुनिश्चित कर सकूं कि बोर्ड जमे हुए नहीं था।
तो, लगभग अंत में। और एक और निर्णय के लिए समय जो बहुत अच्छा नहीं हुआ है।
ESP के लिए कोड LUA में है, आज मैं बेहतर दस्तावेज़ीकरण और मज़बूत पैकेज लाइब्रेरी के लिए arduino IDE का उपयोग करने की सलाह दूंगा, उस समय ESP समुदाय अभी भी परिपक्व हो रहा था और मैंने इस प्रोजेक्ट के लिए LUA को भाषा के रूप में चुना।
मैंने समय पढ़ने के लिए Google सर्वरों को नियमित रूप से पिंग करने का संदेहास्पद निर्णय लिया। बहाव को कम करने के लिए इसे आरटीसी की आवश्यकता होती है, यह काम करता है, लेकिन आप सही समय एपीआई का उपयोग करना बेहतर समझते हैं।
आधा सेकंड = 0 घंटा = 0 मिनट = 0 सेकंड = 0
कम तीव्रता = 0
उच्च तीव्रता = 9
स्थानीय SSID = "वाईफ़ाई"
स्थानीय SSID_PASSWORD = "पासवर्ड"
फ़ंक्शन समय () - वर्तमान समय और दिनांक प्राप्त करने के लिए इंटरनेट से कनेक्ट करें
अगर wifi.sta.getip() तो लोकल conn=net.createConnection(net. TCP, 0) conn:connect(80, "google.com")
कॉन: ऑन ("कनेक्शन", function(conn, payload) conn:send("HEAD / HTTP/1.1\r\n".. "Host: time.is\r\n".. "Accept: */*\r\n".. " उपयोगकर्ता-एजेंट: Mozilla/4.0 (संगत; esp8266 Lua;)".. "\r\n\r\n") अंत)
कॉन: ऑन ("प्राप्त करें", function(conn, payload) --print(payload) conn:close() local p=string.find(payload, "GMT") -- इंटरनेट से पेलोड में समय और तारीख स्ट्रिंग ढूंढें, टाइमज़ोन के लिए बदलें यदि p~ = शून्य तब -- घंटे, मिनट, दूसरे, दिन, महीने के घंटे = टनंबर (स्ट्रिंग.सब (पेलोड, पी-9, पी-8)) मिनट = टोनंबर (स्ट्रिंग.सब (पेलोड, पी-) से संबंधित संख्याएं निकालें। 6, p-5)) दूसरा = tonumber(string.sub(payload, p-3, p-2)) addHour() --हार्ड कोडेड BST (ब्रिटिश समर टाइम) डेलाइट सेविंग प्रिंट (घंटे, मिनट, सेकेंड) हाफ सेकेंड = (दूसरा% 6) * 2 --प्रिंट (हाफसेक) अन्य प्रिंट ("वेब अपडेट विफल!") एंड एंड --फंक्शन) - "रिसीव" इवेंट हैंडलर पर
कॉन: ऑन ("डिस्कनेक्शन", फ़ंक्शन (कॉन, पेलोड) कॉन = शून्य पेलोड = शून्य अंत) अंत प्रिंट ("अभी तक कोई वाईफाई नहीं") अंत
फ़ंक्शन borTable(a, b,…) --bitwise या टेबल एक साथ
अगर arg[1] तो b = borTable(b, unpack(arg)) एंड लोकल z = {} for i, v in ipairs(a) do table.insert(z, bit.bor(v, b)) अंत वापसी z अंत
फ़ंक्शन bxorTable(a, b,…) --bitwise या टेबल एक साथ
अगर arg[1] तो b = bxorTable(b, unpack(arg)) एंड लोकल z = {} for i, v in ipairs(a) do table.insert(z, bit.bxor(v, b)) अंत वापसी z अंत
फ़ंक्शन ऐडसेकंड ()
दूसरा = दूसरा + 1 यदि दूसरा> = 60 तो दूसरा = 0 मिनट = मिनट + 1 यदि मिनट> = 60 तो मिनट = 0 जोड़ें घंटे () अंत अंत
फ़ंक्शन ऐडहौर ()
घंटा = घंटा + 1 यदि घंटा> = 24 तो घंटा = 0 अंत यदि घंटा == 2 या घंटा == 16 तो max7219.setIntensity(lowIntensity) अंत यदि घंटा == 8 या घंटा == 18 तो max7219.setIntensity(highIntensity) एंड एंड फंक्शन अपडेट () लोकल सेकेंडगैप = 6 लोकल मिनगैप = 3 लोकल हॉरगैप = 1 लोकल सेकेंड = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x03}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x03}, { 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x03}, { 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x01, 0x03}, { 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}, { 0x00, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03 }, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}}; स्थानीय मिनट = { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00}, { 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x00}, { 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, { 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, { 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, { 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x10}, { 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x12, 0x10}, { 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x12, 0x10}, { 0x02, 0x02, 0x02, 0x02, 0x12, 0x10, 0x12, 0x }, { 0x02, 0x02, 0x02, 0x12, 0x12, 0x10, 0x12, 0x10}, { 0x02, 0x02, 0x12, 0x12, 0x12, 0x10, 0x12, 0x10}, { 0x02, 0x12, 0x12, 0x12, 0x12, 0x10, 0x12, 0x10}, { 0x12, 0x12, 0x12, 0x12, 0x12, 0x10, 0x12, 0x10}, { 0x12, 0x12, 0x12, 0x12, 0x12, 0x30, 0x12, 0x10}, { 0x12, 0x12, 0x12, 0x12, 0x32, 0x30, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x32, 0x32, 0x30, 0x12, 0x10}, {0x12, 0x12, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}, { 0x12, 0x32, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}, { 0x32, 0x32, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}}; स्थानीय होर = { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00}, { 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x00}, { 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, { 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08}, { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x08}, { 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x0C }, { 0x04, 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x08}, { 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, { 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, { 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, { 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, { 0x, 0x, 0x,, 0x0C, 0x0C, 0x0C, 0x48}, { 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x48}, { 0x0C, 0x0C, 0x0C, { 0x0C, 0x0C, 0x4C, 0x, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x48}, { 0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, { 0x0C, 0x0C, 0x4C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, { 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}}; --प्रिंट (घंटा, मिनट, सेकंड)
-- तालिका 0 से शुरू होती है, इसलिए 1 पर वर्तमान में sec[0] = nil)
max7219.write({animate(borTable(sec[1+(second/secGap)], min[1+(min/minGap)], hor[1+(hour/horGap)]))})
अंत -- समारोह
वाईफाई.सेटमोड (वाईफाई। स्टेशन)
wifi.sta.config(SSID, SSID_PASSWORD) wifi.sta.autoconnect(1)
--कॉन्फ़िगर max7219
max7219 = आवश्यकता ("max7219") max7219.setup ({numberOfModules = 1, स्लेवसेलेक्टपिन = 8, तीव्रता = उच्च तीव्रता})
--मुख्य कार्यक्रम
चेकऑनलाइन = tmr.create ()
tmr.alarm(0, १८००००, १, समय)
tmr.alarm(1, 1000, 1, addSecond)
tmr.alarm(2, 500, 1, अद्यतन)
समारोह चेतन (अभी भी)
स्थानीय फ़्रेम = { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; आधा सेकेंड = आधा सेकेंड + 1 अगर आधा सेकेंड> = 12 तो आधा सेकेंड = 0 अंत --प्रिंट (आधा सेकेंड) वापसी बीएक्सोरटेबल (फ्रेम [आधा सेकेंड + 1], अभी भी) अंत
चरण 8: आवास
अब आपका समय अपनी अविश्वसनीय शिल्प कौशल दिखाने और परियोजना को पूरा करने का है।
या तो वह या एक अमेज़ॅन पैकेज को रीसाइक्लिंग से बाहर निकालें और एक अस्थायी आवास बनाएं जो आज भी उपयोग में है।
इस दृष्टिकोण का उपयोग करने का लाभ यह था कि परियोजना की प्रत्येक परत कार्डबोर्ड की मोटाई से लगभग पूरी तरह मेल खाती थी, इसलिए एक सैंडविच को ढेर किया जा सकता था और एक साथ टेप किया जा सकता था। एक समान प्रीमियम संस्करण ऐक्रेलिक का उपयोग कर सकता है
चरण 9: समापन टिप्पणी
पढ़ने के लिए धन्यवाद, जैसा कि आप में से बहुत से लोग जानते हैं कि किसी परियोजना का दस्तावेजीकरण करना उतना ही कठिन हो सकता है जितना कि इसे बनाना। मेरे साथ बात करते हुए वीडियो के स्क्रैप हैं जो अंततः दिन के उजाले को देख सकते हैं।
इस परियोजना को बनाने और इसे लिखने के बीच के वर्षों में मुझे 3D प्रिंटिंग का उपयोग करते हुए मनमाने एलईडी डिस्प्ले के अधिक उदाहरण देखने की उम्मीद थी, लेकिन RGB स्ट्रिप्स में कमी ने ज्यादातर विकल्प की आवश्यकता को हटा दिया है।
मुझे आशा है कि यह जानकारीपूर्ण रहा है, और कृपया प्रश्न पूछें क्योंकि मैं उन अनुभागों पर अधिक विवरण देने का प्रयास करूंगा जो पूरी तरह से संतुष्ट नहीं हैं।
चियर्स
सिफारिश की:
अपने गार्मिन जीपीएस के लिए कस्टम मानचित्र बनाएं: 8 कदम (चित्रों के साथ)
अपने Garmin GPS के लिए कस्टम मानचित्र बनाएँ: यदि आपके पास लंबी पैदल यात्रा और अन्य बाहरी गतिविधियों (GPSMAP, eTrex, कोलोराडो, डकोटा, ओरेगन, और मोंटाना श्रृंखला सहित) के लिए डिज़ाइन किया गया Garmin GPS है, तो आपको ऐसा करने की ज़रूरत नहीं है उस पर पहले से लोड किए गए नंगे-हड्डियों के नक्शे के लिए व्यवस्थित करें। इ
स्मार्ट अलार्म घड़ी: रास्पबेरी पाई के साथ बनाई गई एक स्मार्ट अलार्म घड़ी: 10 कदम (चित्रों के साथ)
स्मार्ट अलार्म घड़ी: रास्पबेरी पाई के साथ बनी एक स्मार्ट अलार्म घड़ी: क्या आप कभी स्मार्ट घड़ी चाहते हैं? यदि हां, तो यह आपके लिए समाधान है!मैंने स्मार्ट अलार्म घड़ी बनाई है, यह एक ऐसी घड़ी है जिसे आप वेबसाइट के अनुसार अलार्म समय बदल सकते हैं। जब अलार्म बंद हो जाता है, तो एक ध्वनि (बजर) होगी और 2 बत्तियाँ
विश्वविद्यालय परिसर छात्र पार्किंग मानचित्र: 7 कदम (चित्रों के साथ)
विश्वविद्यालय परिसर छात्र पार्किंग मानचित्र: कई छात्र आश्चर्य करते हैं कि वे विश्वविद्यालय परिसर में कहां पार्क कर सकते हैं। इस समस्या का समाधान करने के लिए, मैंने यूटा स्टेट यूनिवर्सिटी के परिसर के मुख्य क्षेत्र का लाइट-अप पार्किंग मानचित्र बनाया। यह नक्शा छात्रों के लिए है कि वे पार्किंग के विकल्प क्या हैं, इस पर एक त्वरित नज़र डालें
भंवर घड़ी: एक इन्फिनिटी मिरर कलाई घड़ी: 10 कदम (चित्रों के साथ)
भंवर घड़ी: एक इन्फिनिटी मिरर कलाई घड़ी: इस परियोजना का लक्ष्य एक अनंत दर्पण घड़ी का पहनने योग्य संस्करण बनाना था। यह क्रमशः लाल, हरे और नीले रंग की रोशनी को घंटे, मिनट और सेकंड निर्दिष्ट करके और इन रंगों को ओवरलैप करके समय को इंगित करने के लिए अपने आरजीबी एलईडी का उपयोग करता है
लंदन अंडरग्राउंड जुबली लाइन डोर बटन हैक करना: 12 कदम (चित्रों के साथ)
लंदन अंडरग्राउंड जुबली लाइन डोर बटन हैक करना: लंदन ट्रांसपोर्ट म्यूजियम की दुकान जुबली लाइन (बाएं और दाएं दोनों उपलब्ध हैं) से डीकमीशन किए गए दरवाजे के बटन बेच रही है। यदि आप एक ऐसी परियोजना को अंजाम देने की सोच रहे हैं जिसमें एक बटन और किसी प्रकार के संकेतक प्रकाश की आवश्यकता हो, तो आप