विषयसूची:

सोनिक एलईडी फीडबैक: 7 कदम (चित्रों के साथ)
सोनिक एलईडी फीडबैक: 7 कदम (चित्रों के साथ)

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

वीडियो: सोनिक एलईडी फीडबैक: 7 कदम (चित्रों के साथ)
वीडियो: SONY LED T.V. FR8012. 2024, जुलाई
Anonim
ध्वनि एलईडी प्रतिक्रिया
ध्वनि एलईडी प्रतिक्रिया
ध्वनि एलईडी प्रतिक्रिया
ध्वनि एलईडी प्रतिक्रिया
ध्वनि एलईडी प्रतिक्रिया
ध्वनि एलईडी प्रतिक्रिया

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

मुझे प्रो-मिनिस का उपयोग करना पसंद है। वे लगभग $ 2.50 हैं, एक पूर्ण विकसित ऊनो के रूप में काम करते हैं, और हेडर स्थापित करना उन्हें बहुत लचीला बनाता है। एक सेंसर माइक्रो के रूप में उपयोग किया जाता है, आप इसे खरीदे गए सेंसर के निर्देश के बजाय 'जो चाहते हैं वह कर सकते हैं'। I2C के साथ केवल 2 तारों का उपयोग करके वे सभी एक साथ एक पंक्ति में बंधे जा सकते हैं। तो मेगा पर आगे बढ़ें मेरे पास 4 मिनी कोड की 4 अलग-अलग लाइनें एक ही समय में, केवल $ 10.00 पर चल सकती हैं। यहां मैं 595 के माध्यम से सोनिक सेंसर को पॉप करने के लिए एक मिनी का उपयोग करता हूं और रीयलटाइम एलईडी दूरी दिखाता हूं। फिर केवल 8 बिट डेटा को मदर बोर्ड के साथ साझा करें। यह मदर बोर्ड से भार हटाता है और उसका कोड बहुत सरल बनाता है।

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

चरण 1: पीसीबी बनाएं

पीसीबी बनाओ
पीसीबी बनाओ
पीसीबी बनाओ
पीसीबी बनाओ
पीसीबी बनाओ
पीसीबी बनाओ
पीसीबी बनाओ
पीसीबी बनाओ

पीसीबी बनाएं और पॉप्युलेट करें। सावधानी…मैंने सोनिक सेंसर को प्लग इन करने के लिए 4 पिन कनेक्शन पर पीसीबी पर गलती की। ECHO और TRIGGER Vcc और ग्राउंड पीसीबी में प्लग करने वाले थे। कनेक्टर्स के लिए पर्याप्त जगह नहीं है इसलिए मैंने सिर्फ पिन-आउट के साथ पीसीबी बनाया है। तो आप पीसीबी में एक वायर कनेक्टर को मिलाप कर सकते हैं और वास्तविक सोनिक सेंसर में प्लग कर सकते हैं। एल ई डी के लिए मैंने अंदर के किनारे पर पीले रंग की एलईडी लगाई और बाहर की तरफ लाल। यह आपको दूर से देखने में मदद करता है कि क्या सेंसर सही तरीके से माप रहे हैं।

यह मेरे द्वारा बनाए गए FEW 2side PCB में से एक है। मैं इसके बजाय 2 ईए सिंगल साइड और रन जंपर्स बनाऊंगा। लेकिन एलईडी डिस्प्ले पाने के लिए आपको कम से कम टॉप पीसीबी की जरूरत होती है। मैंने डाउनलोड में लेआउट को अलग कर दिया।

पीसीबी एक प्रो-मिनी के लिए है जिसमें एज हेडर के अंदर A4-A5 है। किसी भी तरह से A4-A5 को मास्टर A4-A5 से कनेक्ट करें। Vcc और ग्राउंड्स को भी न भूलें।

चरण 2: कई गलतियाँ

कई गलतियाँ
कई गलतियाँ

अब मेरी गलतियों के लिए … मैंने ट्रिगर्स को एक साथ पॉप करने की कोशिश की (सभी एक साथ बंधे हुए) और इस तरह से अच्छी तरह से काम किया लेकिन कुछ बातचीत हुई। तो अब सभी ECHOS माइक्रो (8) में जाते हैं और TRIGGERS को 595 द्वारा सेट किया जाता है। तीन और पिन (3)। एल ई डी के लिए, मल्टीप्लेक्सिंग काम नहीं करेगा। आपको प्रत्येक नेतृत्व के लिए पूर्ण समय की आवश्यकता है। इसका मतलब है कि 7 एलईडी की प्रत्येक पंक्ति का अपना 595 होना चाहिए। एक बार जब आप 595 को अपडेट कर लेते हैं तो एलईडी अगले अपडेट तक जलती रहती है। जहां मल्टीप्लेक्सिंग एलईडी केवल एक सेकंड के दसवें हिस्से के लिए रोशनी करती है। यह मेरे पाठकों में अच्छी तरह से काम करता है और इसे एक समर्पित माइक्रो की जरूरत है। 8 सोनिक सेंसर को स्कैन करने और दूरियों को मापने का समय नहीं है। मैंने कोशिश की और बहुत खराब परिणाम मिला। एलईडी को मल्टीप्लेक्स करने का मतलब पंक्ति + कॉलम का ग्रिड भी होगा और इसका मतलब है कि पीसीबी में लगभग 64+ फीड थ्रू है।

मैंने पीसीबी पर अव्यवस्था के कारण 595 में से केवल 7 आउटपुट का उपयोग किया। कुछ ही दूरी पर आप यह नहीं बता सकते कि उनकी गति में 7 या 8 लीड हैं या नहीं। आप सभी एल ई डी को एक ही रेसिस्टर से बाँधने के लिए ललचा सकते हैं और यह काम करता है, लेकिन ऐरे की चमक लाइट की मात्रा के साथ बदल जाती है। तो प्रति एलईडी एक रोकनेवाला सबसे अच्छा है। मैं सिर्फ 595 से प्यार करता हूं, लेकिन अगर वे सिर्फ वीसीसी और 0-आउट पिन को स्थानांतरित करते हैं या एक ही तरफ सभी आउटपुट के साथ 18 पिन आईसी बनाते हैं … सभी आठ आउटपुट को जोड़ना इतना आसान होगा। लेकिन तब यह 30 सेंट से कम में नहीं बिकेगा।

चरण 3: माउंट सेंसर

माउंट सेंसर
माउंट सेंसर
माउंट सेंसर
माउंट सेंसर
माउंट सेंसर
माउंट सेंसर
माउंट सेंसर
माउंट सेंसर

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

यह आपके द्वारा उपयोग किए जाने से पहले प्रत्येक पर एक त्वरित दूरी परीक्षण चलाने में भी मदद करता है। मुझे 20 के बैच में खराब रीडिंग वाला लगभग एक सेंसर मिलता है। मेरे द्वारा भुगतान की गई कीमत के लिए बुरा नहीं है।

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

कठोर तार
कठोर तार

मैंने सोचा था कि पीसी से जैक और प्लग के लिए जगह होगी

सोनिक पिन लेकिन मैं कमरे से बाहर भाग गया। इसलिए मैंने पीसीबी के सिरे को कड़ी मेहनत से तार-तार कर दिया और सिर्फ महिला जैक (8ea) के साथ इको और ट्रिगर वायर बनाए। मैंने सेंसर के 8ea Vcc और 8ea के मैदानों को एक साथ बांध दिया, जिससे उनके लिए PCB से केवल 2 कनेक्शन बन गए।

8 सेंसर और 8 595s के साथ एक uno या pro-mini इसे पावर नहीं दे सकता। इस परियोजना के हिस्से के रूप में एक 5v विनियमित स्रोत होना चाहिए। मेरे रोबोट की बैटरी से साधारण 7805 @ 1amp है। यह सभी उपकरणों के लिए सभी 5v Vcc से जुड़ा है। 7805 एक वोल्ट के बारे में गिरता है इसलिए आपको इसे खिलाने के लिए कम से कम 6.5 वोल्ट की आवश्यकता होती है। यानी 3.3v पर 2 लिथियम बैटरी। मेरे रोबोट में इस्तेमाल किए गए ड्रिल पैक से पुराने nicads हैं और 8 nicads $20 टैंक प्रकार चेसिस में विशिष्ट चीन गियर वाली 12v मोटर चलाते हैं।

चरण 5: सोनिक स्केच डाउनलोड करें

सोनिक स्केच डाउनलोड करें
सोनिक स्केच डाउनलोड करें

स्केच डाउनलोड करें और इंस्टॉल करें। बात करने के कई तरीके हैं

एक और uno लेकिन मुझे I2c पसंद है। भ्रम संबोधित कर रहा है और स्वामी/दास। जैसा कि अधिकांश सेंसर के साथ होता है (दूसरे मिनी को सेंसर के रूप में सोचें) आप सेंसर को संबोधित करते हैं और x मात्रा में बाइट्स मांगते हैं। इधर भी ऐसा ही है। दूसरे मिनी में आप x मात्रा में बाइट्स सेट करते हैं जिसे आप भेजना चाहते हैं। भ्रम यह है कि नाम मायने नहीं रखते। यदि आप नाम साझा करते हैं तो यह केवल आपको याद रखने में मदद करता है। तो स्केच में मैं सेमी में 8 ध्वनि दूरी माप भेजता हूं जैसे sendR1, sendR2, sendR3, sendR4, sendL1, sendL2, sendL3, sendL4। मास्टर को केवल 8 बाइट्स मिलते हैं यदि डेटा और आप उन बाइट्स को अपनी इच्छानुसार कॉल कर सकते हैं। मैंने उन्हें goR1, GotR2, get….. के रूप में पढ़ा। बाइट्स का भेजा गया क्रम समान है। तो बाइट ए, बी, सी….. ऐसा मत सोचो कि नाम बदलने से आपको अलग डेटा मिलेगा। और दूसरी पकड़, आप केवल वही डेटा प्राप्त कर सकते हैं जिसे भेजने के लिए कहा गया है। इसलिए यदि आप अन्य डेटा चाहते हैं तो आपको मास्टर और गुलाम दोनों को बदलना होगा।

चरण 6: संचार

संचार
संचार

आप इसे छोड़ सकते हैं यदि आप जानते हैं कि एक दूसरे से बात करने के लिए 2 Uno कैसे सेट करें। मेरे पास अंत में कुछ जानकारी है। इसे आसान बनाने के लिए मैं रोबोट बेस M1 में uno और सोनिक सेंसर को S2 कहूंगा। Vcc, ग्राउंड, A4, A5 को एक दूसरे से कनेक्ट करें।

S2 के स्केच में यह #include. से शुरू होता है

फिर भेजने के लिए 8 बाइट्स बनाएं। बाइट R1, बाइट R2, बाइट L1 आदि। Uno एक 8bit माइक्रो है इसलिए वे 'int' के बजाय 'बाइट' का उपयोग करके एक बार में 1byte भेजते हैं।

'सेटअप ()' ऐड 'वायर.बेगिन (पता)' में यह I2c को बताता है कि यह कौन सा डिवाइस है। पता आमतौर पर कोई भी संख्या होती है जिसे आप 4 - 200 के बीच पसंद करते हैं। एक बाइट का आकार। यहां मैंने 10 नंबर का इस्तेमाल किया। इसलिए इस सेंसर S2 से बात करने के लिए मास्टर को Wire.requestFrom(10, 8) पर कॉल करना होगा। यह पता 10 है और 8 कितने बाइट चाहता है। इसके अलावा 'सेटअप ()' में Wire.onRequest(isr anyName) जोड़ें। जब M1 अनुरोध को कॉल करता है तो S2 सेंसर रुकावट के साथ प्रतिक्रिया करता है। यह सिर्फ फ़ंक्शन को किसी भी नाम से कॉल करता है। तो यह anyName फ़ंक्शन बनाने की आवश्यकता है। स्केच को देखें और फ़ंक्शन देखें 'sendThis ()' यह वह जगह है जहाँ बाइट्स वास्तव में M1 को भेजे जाते हैं। बाइट अकेले जाते हैं और नाम नहीं और भेजे गए क्रम में। यह वह जगह है जहां से भेजने के लिए डेटा का आकार और मात्रा शुरू होती है। बाइट्स के इस आसान प्रारूप में भेजें और प्राप्त करें मेल खाना चाहिए। यहां 8 बाइट भेजे गए और 8 बाइट प्राप्त हुए। यहां एक नोट एक फ़ंक्शन को कॉल कर रहा है जिसके लिए () की आवश्यकता होती है। जैसे देरी (), मिली (), सीरियल.प्रिंट ()। ISR (इंटरप्ट सर्विस रूटीन) का उपयोग करते समय फ़ंक्शन को कॉल करना () को छोड़ देता है। तो Wire.onRequest(sendThis) नहीं Wire.onRequest(sendThis ())।

मुझे जो भ्रम था वह स्वामी/दास की बात थी। पहले तो मुझे लगा कि गुरु हमेशा गुरु ही होता है। लेकिन स्केच के भीतर आप अन्य माइक्रो से अनुरोध करने के लिए मास्टर/दास को स्विच कर सकते हैं या अन्य माइक्रो को भेज सकते हैं। जब तक आप ऊपर बताए गए मूल प्रारूप का पालन करते हैं। याद रखें… आप केवल वही डेटा साझा करते हैं जिसे असाइन किया गया है।

दीवार से दो दूर tid बिट्स। आईएसआर इंटरप्ट केवल स्केच लाइनों के बीच में बाधा डालता है। यदि आप 'समय या के लिए' लूप में बंद हैं, तो लूप के बाहर निकलने तक कुछ नहीं होता है। कोई बड़ी बात नहीं है क्योंकि यह कुछ माइक्रोसेकंड हो सकता है और डेटा पुराना है।

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

आसान:

इंट एक्स = ५६९६; (कोई भी मान्य int मान, अधिकतम 65k या 32k ऋणात्मक है)

बाइट हाय = एक्स >>8; (22)

बाइट लो = एक्स; (६४)

बाइट्स भेजें और दूसरे छोर पर गठबंधन करें…।

बाइट हाय = वायर.रीड ();

बाइट लो = वायर.रीड ();

इंट न्यूएक्स = (हाय <<8) + लो; (५६९६)

चरण 7: बंद करना

समापन
समापन
समापन
समापन
समापन
समापन
समापन
समापन

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

सिफारिश की: