विषयसूची:

ध्वनि के साथ शराब के गिलास चकनाचूर !: 10 कदम (चित्रों के साथ)
ध्वनि के साथ शराब के गिलास चकनाचूर !: 10 कदम (चित्रों के साथ)
Anonim
Image
Image

हैलो और स्वागत है!

यहाँ परियोजना का एक पूर्ण डेमो है!

स्पीकर अपनी ट्यूब के किनारे पर लगभग 130 डीबी पर सबसे ऊपर है, इसलिए श्रवण सुरक्षा निश्चित रूप से आवश्यक है!

इस परियोजना के लिए विचार इस प्रकार है:

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

बटन नियंत्रण और संचालन:

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

- ऊपर दाईं ओर एक चालू/बंद स्विच है। यह पूरे सर्किट को बिजली चालू या बंद कर देता है।

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

- नीचे दाईं ओर स्पीकर आउटपुट बटन है। दबाए जाने पर स्पीकर उस फ़्रीक्वेंसी को आउटपुट करना शुरू कर देता है जिसे उसने पहले कैप्चर किया था।

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

तो, खुद को तैयार करें और…

चलो रोबोट बनाते हैं!

चरण 1: सामग्री, उपकरण और उपकरण

सामग्री, उपकरण और उपकरण
सामग्री, उपकरण और उपकरण
सामग्री, उपकरण और उपकरण
सामग्री, उपकरण और उपकरण

क्योंकि इस परियोजना को ठीक उसी तरह करने की आवश्यकता नहीं है जैसा मैंने किया था, मैं एक 'आवश्यक' सूची और सामग्री की एक 'वैकल्पिक' सूची शामिल करूंगा, जो इस पर निर्भर करता है कि आप कितना निर्माण करना चाहते हैं! वैकल्पिक भाग में स्पीकर और इलेक्ट्रॉनिक्स के लिए 3डी प्रिंटिंग हाउसिंग शामिल होगी।

आवश्यक:

सामग्री:

  • वाइन ग्लास - कोई भी ठीक है, मैं सद्भावना के पास गया और सस्ता पाया, जितना पतला बेहतर होगा
  • तार (विभिन्न रंग सहायक होंगे, मैंने 12 गेज का उपयोग किया है)
  • 6S 22.2v लाइपो बैटरी (आपको वास्तव में उच्च mAh की आवश्यकता नहीं है, मैंने 1300 का उपयोग किया है):

    hobbyking.com/en_us/turnigy-1300mah-6s-35c…

  • किसी प्रकार का बैटरी कनेक्टर। यदि आपने ऊपर वाले का उपयोग किया है, तो वह एक XT60 है:https://www.amazon.com/YXQ-10XT-60-Female-Connecto…
  • संपीड़न चालक अध्यक्ष - आपको उच्च संवेदनशीलता रेटिंग (~ 100 डीबी) के साथ कुछ चाहिए:

    www.amazon.com/dp/B075K3P2CL/ref=psdc_1098…

  • Arduino- संगत माइक्रोफ़ोन:

    www.amazon.com/Electret-Microphone-Amplifi…

  • Arduino (गैर-सोल्डरिंग के लिए ऊनो या सोल्डरिंग के लिए नैनो):

    www.amazon.com/ELEGOO-Arduino-ATmega328P-W…

  • रोटरी कोडित्र:

    www.amazon.com/Encoder-15%C3%9716-5-Arduin…

  • किसी प्रकार का ON/OFF स्विच भी उपयोगी है (मैंने इनका उपयोग किया है):

    www.amazon.com/Encoder-15%C3%9716-5-Arduin…

  • दबाकर लगाया जाने वाला बटन:

    www.adafruit.com/product/1009

  • कम से कम 60W का एम्पलीफायर:

    www.amazon.com/KKmoon-TPA3118-Digital-Ampl…

  • Arduino को पावर देने के लिए 5v BEC:

    www.amazon.com/Servo-Helicopter-Airplane-R…

औजार और उपकरण:

  • हियरिंग प्रोटेक्शन - मजाक नहीं, यह आदमी लगभग 130 डीबी पर सबसे ऊपर है, जिससे तुरंत नुकसान हो सकता है
  • सोल्डरिंग आयरन
  • मिलाप
  • वायर स्ट्रिपर्स
  • सैंड पेपर
  • गर्म गोंद वाली बंदूक

आवश्यक नहीं:

निम्नलिखित केवल तभी आवश्यक है जब आप भी अपने प्रोजेक्ट के लिए पूर्ण 3D प्रिंटेड आवास बनाना चाहते हैं

सामग्री:

  • बुलेट कनेक्टर्स:https://www.amazon.com/Blulu-Banana-Connector-Repl…
  • वायर हीट हटना:https://www.amazon.com/gp/product/B07F6GSN2J/ref=s…
  • बहुत सारे ABS फिलामेंट - मैंने यह नहीं मापा कि मैंने कितना उपयोग किया, लेकिन दो ~ 24hr प्रिंट और एक ~ 8hr प्रिंट हैं
  • M3 स्क्रू और बोल्ट का वर्गीकरण - तकनीकी रूप से आप शायद किसी भी आकार का उपयोग कर सकते हैं यदि आप इसके लिए छेद ड्रिल करना चाहते हैं। लेकिन मैंने डिजाइन को एम3 स्क्रू को ध्यान में रखकर बनाया है।

औजार और उपकरण:

  • 3D प्रिंटर - मैंने अल्टिमेकर 2. का उपयोग किया है
  • एक ड्रेमेल तब भी उपयोगी होता है जब प्रिंटर आपके हिस्से पर कुछ अवशेष छोड़ देता है।

चरण 2: टेस्ट सर्किट बनाएं

टेस्ट सर्किट बनाएँ
टेस्ट सर्किट बनाएँ
टेस्ट सर्किट बनाएँ
टेस्ट सर्किट बनाएँ
टेस्ट सर्किट बनाएँ
टेस्ट सर्किट बनाएँ

आगे हम सबसे अधिक संभावना जम्पर तारों और ब्रेडबोर्ड का उपयोग करके सर्किट का निर्माण करना चाहते हैं!

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

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

सर्किट पर:

Arduino को पावर देने के लिए, USB केबल का उपयोग करके इसे अपने कंप्यूटर में प्लग करें। यदि कुछ स्पष्ट नहीं है, तो मैं नीचे प्रत्येक भाग के बारे में विस्तार से बताने जा रहा हूँ।

आइए बिजली की आपूर्ति से शुरू करें:

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

सकारात्मक अंत तब स्विच से एम्पलीफायर बोर्ड में जाता है।

बैटरी के नकारात्मक सिरे को स्विच से गुजरने की आवश्यकता नहीं है। यह सीधे एम्प के पावर-एंड पर जा सकता है।

अगला, एम्पलीफायर बोर्ड:

एम्पलीफायर बोर्ड में पिन के चार सेट होते हैं, प्रत्येक सेट में दो थ्रूओल होते हैं। मैं इस बोर्ड की 'म्यूट' सुविधा का उपयोग नहीं कर रहा हूं, इसलिए बेझिझक इसके बारे में चिंता न करें। मैंने पहले ही ऊपर वर्णित किया है कि पावर + और पावर - को बैटरी से सीधे 22.2v मिलना चाहिए। आउटपुट के लिए, आपको इसे सीधे कंप्रेशन ड्राइवर के लीड्स से जोड़ना चाहिए। इससे कोई फर्क नहीं पड़ता कि कौन सी लीड किस पिन पर जाती है, लेकिन कभी-कभी उन्हें इधर-उधर करने से आपको बेहतर साउंड क्वालिटी मिलती है। अंत में, इनपुट + और इनपुट - Arduino पर पिन 10 और 9 पर जाएं, फिर से, ऑर्डर जरूरी नहीं है।

माइक्रोफ़ोन:

माइक्रोफोन सुपर सरल है। Vcc को arduino से 5v मिलता है, GND Arduino पर GND में जाता है, और OUT Arduino पर A0 पिन पर जाता है।

बटन:

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

www.instructables.com/id/Arduino-Button-wi…

माइक्रोफ़ोन से पढ़ने वाला बटन पिन 6 से जुड़ा होगा और जो बटन वास्तव में स्पीकर को ध्वनि उत्पन्न करने के लिए कहता है वह पिन 5 पर होता है। दोनों बटनों पर अन्य पिन GND से जुड़े होते हैं।

रोटरी कोडित्र:

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

इसके लिए वायरिंग इस प्रकार है: GND से Arduino GND, + से Arduino +5v, SW से पिन 4, DT से पिन 3, CLK से पिन 2

यदि आप रोटरी एनकोडर के काम करने के तरीके के बारे में अधिक जानकारी चाहते हैं, तो इस लिंक को देखें:

howtomechatronics.com/tutorials/arduino/ro…

और यह सर्किट के लिए है!

चरण 3: टेस्ट कोड

टेस्ट कोड
टेस्ट कोड

अब आपके Arduino पर कुछ कोड अपलोड करने का समय आ गया है

आप मेरे रेपो को GitHub पर डाउनलोड कर सकते हैं जिसमें वे सभी फ़ाइलें हैं जिनकी आपको आवश्यकता होगी:

या, मैंने इस चरण के नीचे केवल GlassGun.ino फ़ाइल अपलोड की है

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

मैं इन सभी का उपयोग कर रहा हूं:

  • लिंक्डलिस्ट -
  • टोनएसी -
  • रोटरी -

उनमें से प्रत्येक के पास निर्देश हैं कि आपकी Arduino निर्देशिका में कैसे स्थापित किया जाए। यदि आपको Arduino लाइब्रेरी के बारे में अधिक जानकारी चाहिए, तो इस लिंक को देखें:

www.arduino.cc/en/Guide/Libraries

यह ध्वज उपयोगकर्ता को सीरियल लाइन के स्क्रीन प्रिंटआउट को आसानी से बंद या चालू करने की अनुमति देता है:

// डिबग फ्लैग

बूलियन प्रिंटडिबग = सच;

यह वेरिएबल्स को इनिशियलाइज़ करता है जिनका उपयोग फ़्रीक्वेंसी को कैप्चर करने के लिए किया जाता है और जो सबसे अधिक दिखाई देता है उसे वापस करता है:

// फ़्रीक्वेंसी कैप्चरलिंक्डलिस्ट फ़्रीकडाटा; लिंक्डलिस्ट NOT_DATA; इंट मोडहोल्ड; इंट मोडकाउंट = 1; इंट मोडसबकाउंट = 1; बूलियन गॉटडाटा = झूठा; बूलियन बैडडाटा = सच;

यह स्पीकर को आउटपुट के लिए मान सेट करता है। freqModifier वह है जिसे हम रोटरी एनकोडर ट्यूनिंग के आधार पर आउटपुट में जोड़ते या घटाते हैं। modeValue वह है जो माइक्रोफ़ोन से रिकॉर्डिंग रखता है। अंतिम आउटपुट सिर्फ मोडवैल्यू + freqModifier है।

// आवृत्ति उत्सर्जक

int freqModifier = 0; इंट मोडवैल्यू;

लाइब्रेरी का उपयोग करके रोटरी एनकोडर सेट करता है:

// रोटरी एनकोडर के माध्यम से ट्यूनिंग

इंट वैल; #एनकोडर को परिभाषित करेंबटनपिन 4 #एनकोडर को परिभाषित करेंपिनए 2 #एनकोडर को परिभाषित करेंपिनबी 3 रोटरी आर = रोटरी (एनकोडरपिनए, एनकोडरपिनबी);

उन पिनों को परिभाषित करता है जिनसे बटन जुड़े होते हैं:

// माइक्रोफोन और स्पीकर को ट्रिगर करने के लिए बटन

#स्पीकर परिभाषित करेंबटन 5 #माइक्रोफ़ोन परिभाषित करेंबटन 6

यह मान बताता है कि रिकॉर्ड की गई आवृत्ति असाधारण रूप से उच्च या निम्न है:

// क्लिपिंग संकेतक चर

बूलियन कतरन = 0;

आवृत्ति की रिकॉर्डिंग में प्रयुक्त:

// डेटा भंडारण चर

बाइट न्यूडाटा = 0; बाइट prevData = 0;

दोलनों के आधार पर आवृत्ति संख्या की वास्तविक गणना में प्रयुक्त होता है:

// आवृत्ति चर

अहस्ताक्षरित इंट टाइमर = 0; // अहस्ताक्षरित इंट अवधि की लहर की अवधि की गणना करता है; इंट आवृत्ति;

अब, कोड के वास्तविक निकाय पर:

यहां, हम परीक्षण सर्किट चरण में पहले बताए अनुसार बटन दबाते समय प्रतिरोधक का उपयोग न करने के लिए माइक्रोफ़ोन और स्पीकर बटन सेट करते हैं (अधिक जानकारी: https://www.instructables.com/id/Arduino-Button-wi…) I रीसेट माइकइंटरप्ट को भी कॉल करें, जो बहुत अलग समय अवधि में ए0 पिन को सुनने के लिए पिन की कुछ निम्न-स्तरीय सेटिंग करता है। इन मूल्यों से आवृत्ति कैसे प्राप्त करें, इसके बारे में मार्गदर्शन करने के लिए मैंने इस निर्देश का उपयोग किया:

www.instructables.com/id/Arduino-Frequency…

शून्य सेटअप () {पिनमोड (13, आउटपुट); // एलईडी संकेतक पिन पिनमोड (माइक्रोफोनबटन, INPUT_PULLUP); // माइक्रोफ़ोन पिन पिनमोड (स्पीकरबटन, INPUT_PULLUP); अगर (प्रिंटडिबग) {Serial.begin (९६००); } रीसेट माइकइंटरप्ट (); } शून्य रीसेट माइकइंटरप्ट () {क्ली ();//डायबल इंटरप्ट्स // एनालॉग पिन का निरंतर नमूना सेट करें 0 // स्पष्ट एडीसीएसआरए और एडीसीएसआरबी रजिस्टर एडीसीएसआरए = 0; एडीसीएसआरबी = 0; ADMUX |= (1 << REFS0); // सेट संदर्भ वोल्टेज ADMUX |= (1 << ADLAR); // बाईं ओर ADC मान संरेखित करें- इसलिए हम ADCH रजिस्टर से केवल ADCSRA से उच्चतम 8 बिट्स पढ़ सकते हैं |= (1 << ADPS2) | (1 << ADPS0); // 32 प्रीस्केलर के साथ एडीसी घड़ी सेट करें- 16mHz/32=500kHz ADCSRA |= (1 << ADATE); // स्वचालित ट्रिगर ADCSRA सक्षम करें |= (1 << ADIE); // माप पूर्ण होने पर इंटरप्ट सक्षम करें ADCSRA |= (1 << ADEN); // एडीसी एडीसीएसआरए सक्षम करें |= (1 << एडीएससी); // एडीसी माप शुरू करें सेई (); // इंटरप्ट्स को सक्षम करें } आईएसआर (एडीसी_वेक्ट) {// जब नया एडीसी मूल्य तैयार है prevData = newData; // पिछले मूल्य को स्टोर करें newData = ADCH; // A0 से मूल्य प्राप्त करें अगर (prevData = 127){// अगर मिडपॉइंट अवधि = टाइमर बढ़ाना और पार करना;//अवधि टाइमर = 0 प्राप्त करें;//टाइमर रीसेट करें} अगर (newData == 0 || newData == 1023){// यदि क्लिपिंग PORTB |= B00100000;/ /सेट पिन 13 हाई- क्लिपिंग इंडिकेटर एलईडी क्लिपिंग चालू करें = 1;//वर्तमान में क्लिपिंग} टाइमर++;//इंक्रीमेंट टाइमर 38.5kHz की दर से}

मुझे लगता है कि यहां अधिकांश कोड काफी सरल है, और बहुत पठनीय होना चाहिए, लेकिन मैं कुछ अधिक भ्रमित करने वाले क्षेत्रों पर प्रकाश डालूंगा:

यह हिस्सा ज्यादातर रोटरी लाइब्रेरी से आता है। यह केवल इतना कह रहा है कि यदि आप दक्षिणावर्त चले गए हैं, तो freqModifer को एक से बढ़ा दें, यदि आप ऊपर नहीं गए हैं, तो आप नीचे चले गए होंगे, इसलिए freqModifier को एक-एक करके नीचे ले जाएं।

अहस्ताक्षरित चार परिणाम = r.process (); // देखें कि क्या रोटरी एनकोडर स्थानांतरित हो गया है

अगर (परिणाम) {फर्स्टहोल्ड = सत्य; अगर (परिणाम == DIR_CW) freqModifier++; // यदि हम दक्षिणावर्त चलते हैं, तो वृद्धि करें, अन्यथा, कम करें freqModifier--; अगर (freqModifier 50) freqModifier = 50; अगर (प्रिंटडिबग) {सीरियल.प्रिंट ("फ्रीकमॉड:"); Serial.println (freqModifier); } }

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

शून्य getMode () {बूलियन doAdd = true // "खराब मान" प्राप्त करने के लिए पहला बटन प्रेस छोटा होना चाहिए या वे मान जिन्हें हम जानते हैं कि वे खराब हैं // यह "खराब डेटा" और "अच्छा डेटा" की रिकॉर्डिंग के बीच वैकल्पिक है यदि (badData) { अगर (प्रिंटडिबग) सीरियल.प्रिंट्लन ("खराब डेटा:"); के लिए (int j = 0; j <freqData.size (); j++) { के लिए (int i = 0; i < NOT_DATA.size (); i++) { if (freqData.get(j) == NOT_DATA.get(i)) {doAdd = false; टूटना; } } अगर (doAdd) { NOT_DATA.add(freqData.get(j)); } doAdd = सच; } अगर (प्रिंटडिबग) {Serial.println ("-----"); for (int i = 0; i < NOT_DATA.size (); i++) { Serial.println(NOT_DATA.get(i)); } सीरियल.प्रिंट्लन ("----------"); } }

यहां हम "अच्छे डेटा" के माध्यम से लूप कर रहे हैं और उन सभी को निकाल रहे हैं जो "पहले से खराब डेटा" से मेल खाते हैं।

जब भी हम सूची से एक तत्व को हटाते हैं, तो हमें अपने बाहरी लूप (j--) में एक कदम पीछे जाना होगा क्योंकि अन्यथा हम मूल्यों को छोड़ देंगे।

अन्यथा {

अगर (प्रिंटडिबग) Serial.println ("खराब डेटा नहीं:"); के लिए (int j = 0; j <freqData.size (); j++) { के लिए (int i = 0; i < NOT_DATA.size (); i++) { if (freqData.get(j) == NOT_DATA.get(i)) {अगर (प्रिंटडिबग) {सीरियल.प्रिंट ("हटाया गया:"); Serial.println(freqData.get(j)); } freqData.remove(j); जे--; टूटना; } } } freqData.sort(minToMax); मोडहोल्ड = freqData.get (0); मोडवैल्यू = मोडहोल्ड; के लिए (int i = 0; i modeSubCount) {modeSubCount = modeCount; मोडवैल्यू = मोडहोल्ड; } मोडकाउंट = 1; मोडहोल्ड = freqData.get(i); } } मोडकाउंट = 1; मोडसबकाउंट = 1; अगर (प्रिंटडिबग) {Serial.println ("---------"); Serial.println (मोडवैल्यू); सीरियल.प्रिंट्लन ("---------------"); } NOT_DATA.clear(); } अगर (बैडडाटा) बैडडाटा = झूठा; और बैडडाटा = सच; freqData.clear (); }

चरण 4: अपना माइक्रोफ़ोन ट्यून करें

अपना माइक्रोफ़ोन ट्यून करें
अपना माइक्रोफ़ोन ट्यून करें
अपना माइक्रोफ़ोन ट्यून करें
अपना माइक्रोफ़ोन ट्यून करें

यह शायद मेरे लिए सबसे कठिन चरणों में से एक था, क्योंकि मैं इसे सही आउटपुट आवृत्ति उत्पन्न करने के लिए कोड को संपादित करने के संयोजन के साथ कर रहा था।

क्योंकि Arduino नकारात्मक वोल्टेज (ध्वनि तरंगों की तरह) नहीं पढ़ सकता है, माइक्रोफ़ोन में निर्मित सर्किट सब कुछ एक सकारात्मक वोल्टेज में परिवर्तित कर देता है। कुछ मिलीवोल्ट सकारात्मक और कुछ मिलीवोल्ट नकारात्मक के बजाय, सर्किट इसे सकारात्मक 5v और 0v में बदलने की कोशिश करता है। हालाँकि, यह वास्तव में यह नहीं जान सकता है कि आपका स्रोत ऑडियो कितना तेज़ है। इसे ठीक करने के लिए, वे सर्किट में एक छोटा पोटेंशियोमीटर (पेंच) जोड़ते हैं।

इससे आप अपने माइक्रोफ़ोन को वाइन ग्लास के ऑडियो स्तर पर 'ट्यून' कर सकते हैं।

तो, आप वास्तव में इसे कैसे प्राप्त करते हैं?

ठीक है, आप USB केबल के माध्यम से अपने Arduino को अपने कंप्यूटर से जोड़ सकते हैं, Arduino Editor के शीर्ष दाईं ओर आइकन पर क्लिक करके सीरियल मॉनिटर को खोल सकते हैं।

बॉड दर को 9600 पर सेट करें।

फिर जब आप अपना कोड Arduino पर अपलोड करते हैं, तो आपको उस नई विंडो में आने वाले सभी "प्रिंटडिबग" संदेशों को देखना चाहिए।

वास्तव में आपके माइक्रोफ़ोन को सही ढंग से ट्यून करने के लिए, मैं आपके फ़ोन पर एक ऐप प्राप्त करने की सलाह दूंगा जो आवृत्तियों में पढ़ता है (जैसे यह वाला) और वास्तव में पता करें कि आपके ग्लास की सही आवृत्ति क्या है। ऐप को खोलकर ग्लास को टिंग करें, सही फ़्रीक्वेंसी ढूंढें, फिर अपने माइक्रोफ़ोन को तब तक ट्यून करना शुरू करें जब तक कि आपको काफी सुसंगत परिणाम न मिलें।

तो, प्रक्रिया है:

  1. स्पेक्ट्रोमीटर ऐप के साथ ग्लास को टिंग करें और देखें कि वास्तविक अनुनाद आवृत्ति क्या है
  2. अपने सर्किट पर वायर्ड अप माइक्रोफ़ोन बटन को जल्दी से दबाकर 'खराब डेटा' रिकॉर्ड करें
  3. अपने सर्किट पर माइक्रोफ़ोन बटन को ग्लास के पास वास्तविक माइक्रोफ़ोन के साथ दबाए रखें और ग्लास को स्क्रूड्राइवर या किसी चीज़ से टिंग करें
  4. सीरियल मॉनीटर पर आउटपुट देखें और देखें कि क्या यह वास्तविक आवृत्ति मान के करीब है
  5. माइक्रोफ़ोन पर पोटेंशियोमीटर स्क्रू को थोड़ा समायोजित करें, और दोहराएं

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

चरण 5: कुछ गिलास तोड़ो

कुछ गिलास तोड़ो!
कुछ गिलास तोड़ो!
कुछ गिलास तोड़ो!
कुछ गिलास तोड़ो!

पुराने गिलास को तोड़ने का समय आ गया है!

सबसे पहले, सुनिश्चित करें कि आप कान की सुरक्षा कर रहे हैं!

कांच को तोड़ने के लिए सब कुछ ठीक करने के लिए एक कला है।

  1. आपको वाइन ग्लास के रिम को रेत करना होगा
  2. आपको आवृत्ति सही प्राप्त करने की आवश्यकता है
  3. आपको कोण सही करने की आवश्यकता है
  4. आपको यह सुनिश्चित करने की ज़रूरत है कि आपका वाइन ग्लास हिलने में कीमती कंपन ऊर्जा नहीं खो रहा है

तो, मुझे ऐसा करने का सबसे अच्छा तरीका यह है:

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

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

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

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

इसके साथ खेलने में कुछ समय बिताएं और स्तरों को ठीक करने का प्रयास करें, और सुनिश्चित करें कि आपने इसे रिकॉर्ड किया है ताकि आप अपने सभी दोस्तों को दिखा सकें!

चरण 6: (वैकल्पिक) मिलाप

(वैकल्पिक) मिलाप
(वैकल्पिक) मिलाप
(वैकल्पिक) मिलाप
(वैकल्पिक) मिलाप
(वैकल्पिक) मिलाप
(वैकल्पिक) मिलाप

तो, आपने सब कुछ बनाने का फैसला कर लिया है? ठीक, आपके लिए अच्छा है! मुझे निश्चित रूप से इसे करने में मज़ा आया!

खैर, पहले चीज़ें पहले। सर्किट मूल रूप से समान है, बस कुछ सूक्ष्म अंतर हैं।

  1. आप सीधे स्पीकर के लीड्स पर सोल्डरिंग करेंगे
  2. आप स्पीकर में बुलेट कनेक्टर जोड़ रहे होंगे
  3. आप Arduino Nano को पावर देने के लिए BEC जोड़ेंगे

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

हमारी बैटरी का सकारात्मक अंत सबसे पहले स्विच, बीईसी में जाता है। यह Arduino को शक्ति प्रदान करने के लिए हमारे वोल्टेज को 22.2v से घटाकर 5v कर देता है। बैटरी का सकारात्मक छोर हमारे एम्पलीफायर के पावर+ सिरे पर भी जाता है। यह 22.2v सीधे एम्प को प्रदान करता है।

BEC लो वोल्टेज एंड Arduino पर + से +5v तक जाता है, और - Arduino पर GND तक।

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

इसके अलावा, आप विशेष रूप से किसी भी चीज़ के लिए सोल्डरिंग नहीं करेंगे। आप हवा में बस सोल्डर की तरह हैं, यह एक ऐसी तकनीक है जिसे मैं "एयर सोल्डरिंग" कहता हूं, शुरुआत में हैंग होना मुश्किल है, लेकिन आपको थोड़ी देर बाद इसकी आदत हो जाती है।

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

चरण 7: (वैकल्पिक) आवास प्रिंट करें

(वैकल्पिक) प्रिंट हाउसिंग
(वैकल्पिक) प्रिंट हाउसिंग
(वैकल्पिक) प्रिंट हाउसिंग
(वैकल्पिक) प्रिंट हाउसिंग
(वैकल्पिक) प्रिंट हाउसिंग
(वैकल्पिक) प्रिंट हाउसिंग
(वैकल्पिक) प्रिंट हाउसिंग
(वैकल्पिक) प्रिंट हाउसिंग

इस प्रोजेक्ट के साथ प्रिंट करने के लिए तीन फाइलें हैं:

  1. अगला भाग जिसमें स्पीकर और माइक्रोफ़ोन होता है
  2. मध्य बिट जिसमें सभी इलेक्ट्रॉनिक्स, बटन और बैटरी हैं
  3. बैटरी कवर

सभी पुर्जे एक साथ जॉर्जिया टेक के अल्टिमेकर 2 पर लगभग 48-घंटे के प्रिंट हैं। सुनिश्चित करें कि आप समर्थन के साथ प्रिंट करते हैं, क्योंकि इस प्रिंट पर कुछ बड़े ओवरहैंग हैं।

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

चरण 8: (वैकल्पिक) पेंट - अतिरिक्त ठंडक के लिए

(वैकल्पिक) पेंट - अतिरिक्त ठंडक के लिए
(वैकल्पिक) पेंट - अतिरिक्त ठंडक के लिए
(वैकल्पिक) पेंट - अतिरिक्त ठंडक के लिए
(वैकल्पिक) पेंट - अतिरिक्त ठंडक के लिए
(वैकल्पिक) पेंट - अतिरिक्त ठंडक के लिए
(वैकल्पिक) पेंट - अतिरिक्त ठंडक के लिए

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

चरण 9: (वैकल्पिक) इकट्ठा

(वैकल्पिक) इकट्ठा
(वैकल्पिक) इकट्ठा
(वैकल्पिक) इकट्ठा
(वैकल्पिक) इकट्ठा
(वैकल्पिक) इकट्ठा
(वैकल्पिक) इकट्ठा

अब जब सभी भाग मुद्रित हो गए हैं, मिलाप ठोस है, और कोड काम कर रहा है, तो यह सब एक साथ एक ही स्थान पर रखने का समय है।

मैंने पाया कि दीवार के खिलाफ अरुडिनो को बग़ल में रखना सबसे आसान था, फिर एम्पलीफायर बोर्ड नीचे की तरफ सपाट बैठ सकता था।

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

रोटरी एनकोडर का अपना पेंच होता है, इसलिए आप इसे केवल ऊपर से उस नट से कस सकते हैं जो इसे प्रदान करता है।

पावर स्विच को ऊपर से स्लॉट किया जाना चाहिए। इसे अंदर लाने के लिए थोड़ा जोर लगाना पड़ सकता है, लेकिन स्लॉट में आने के बाद इसे अच्छी तरह से फिट होना चाहिए।

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

बैटरी को ट्रे के पिछले हिस्से में अच्छी तरह से फिट होना चाहिए, लेकिन मुझे इसमें फिट होने में कोई समस्या नहीं थी।

मैंने यह भी पाया कि बैटरी कवर होल के दोनों आकारों पर एम3 स्क्रू लगाना, इसे बिना नट के बिल्कुल भी रखने के लिए पर्याप्त था। मैं मूल रूप से एक बहुत लंबा पेंच प्राप्त करने की योजना बना रहा था जो दूसरे छेद के माध्यम से और बाहर चला गया, लेकिन मैं एक ऑनलाइन नहीं खोजना चाहता था, और अखरोट-कम पेंच ठीक काम कर रहा था।

चरण 10: (वैकल्पिक) कांच को फिर से तोड़ें

Image
Image

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

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

हालांकि एक गंभीर नोट पर, मेरी छोटी परियोजना के निर्माण के लिए समय निकालने के लिए धन्यवाद। यदि आपके पास कोई प्रतिक्रिया या सुधार है जो आप मुझे करना चाहते हैं, तो मुझे बताएं! मैं सुनने के लिए नीचे से अधिक हूँ!

और एक आखिरी बार…

चलो रोबोट बनाते हैं!

ऑडियो प्रतियोगिता 2018
ऑडियो प्रतियोगिता 2018

ऑडियो प्रतियोगिता 2018 में उपविजेता

सिफारिश की: