विषयसूची:
- चरण 1: वीडियो
- चरण 2: भागों और सामग्री
- चरण 3: वायरिंग - SAA1099
- चरण 4: वायरिंग - टीटीएल ऑसीलेटर
- चरण 5: वायरिंग - Iref और चिप इंटरफ़ेस
- चरण 6: वायरिंग - ध्वनि घटक
- चरण 7: वायरिंग - ऑडियो जैक
- चरण 8: वायरिंग - पावर टू ब्रेडबोर्ड
- चरण 9: वायरिंग - डेटा लाइन्स
- चरण 10: वैकल्पिक एलईडी
- चरण 11: कोड
- चरण 12: इसका परीक्षण करें
- चरण 13: अपनी खुद की मिडी फाइलों का उपयोग करना - रूपांतरण कार्यक्रम
- चरण 14: मिडी फाइलों को परिवर्तित करना
- चरण 15: अपनी परिवर्तित MIDI फ़ाइल का उपयोग करना
- चरण 16: फिन
वीडियो: Arduino के साथ रेट्रो साउंड चिप - SAA1099: 16 कदम (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
इस निर्देशयोग्य में, मैं आपको दिखा रहा हूँ कि एक पुराने ध्वनि संश्लेषण चिप के साथ एक Arduino Uno का उपयोग कैसे किया जाता है, वर्गाकार लहराती अच्छाई में मिडी फ़ाइलों को चलाने के लिए!
यदि आप इस परियोजना के कार्यों का एक त्वरित अवलोकन चाहते हैं, तो उपरोक्त वीडियो देखें। अन्यथा, जारी रखें!
चरण 1: वीडियो
यदि आप अपने सभी निर्देशों को स्पष्ट, संक्षिप्त वीडियो में पसंद करते हैं, तो हमने आपको कवर कर लिया है!
हम में से बाकी लोगों के लिए, आप कुछ और विवरण और लिखित निर्देशों के लिए जारी रख सकते हैं।
चरण 2: भागों और सामग्री
इसके लिए आपको इन चीजों की जरूरत पड़ेगी:
(लिंक ईबे आइटम के लिए हैं)
- एक Arduino (ऊनो, नैनो, लियोनार्डो, वे सभी काम करना चाहिए)
- कम से कम एक मध्यम आकार का ब्रेडबोर्ड
- SAA1099 स्टीरियो साउंड जेनरेटर चिप
- ब्रेडबोर्ड जम्पर तार (वैकल्पिक रूप से, मुझे डुपॉन्ट महिला से महिला जंपर्स का उपयोग करना पसंद है, जिसमें 20 मिमी हेडर पिन या तो अंत में डाले जाते हैं- अधिक मजबूत)
- 8 मेगाहर्ट्ज टीटीएल ऑसीलेटर (ज़्वेइगेल्ट द्वारा प्रदान किया गया अलीएक्सप्रेस लिंक)
- स्टीरियो (या मोनो) ऑडियो जैक
- 2 x 1K रेसिस्टर्स (100 का लॉट)
- 1 x 10K रोकनेवाला (50 का लॉट)
- 2 x 100pF कैपेसिटर
- (वैकल्पिक) कुछ एलईडी, कम से कम 1 (कोई भी रंग, यहां एक डॉलर के लिए 100 मिश्रित रंग हैं!)
प्रदान किए गए लिंक का उपयोग करते हुए, शिपिंग सहित कुल लागत $23.25 है। बेशक, इसमें से अधिकांश दुनिया भर में आधे रास्ते से आता है, इसलिए शिपिंग में आमतौर पर लगभग एक महीने का समय लगता है। यदि आप तेजी से शिपिंग चाहते हैं, तो आपको शायद थोड़ा अधिक भुगतान करना होगा।
चरण 3: वायरिंग - SAA1099
यदि स्कीमैटिक्स आपकी चीज हैं, तो आप यहां जाएं! हममें से बाकी लोग या तो कदम दर कदम आगे बढ़ सकते हैं, या वीडियो देख सकते हैं।
- SAA1099 को ब्रेडबोर्ड के अंत में रखें, जिसमें चिप पर पायदान अंत की ओर हो।
- अब, शक्ति। SAA1099 पर VDD (पिन 18) सत्ता में जाता है, फिर VSS (पिन 9) को जमीन पर पिन करता है।
- इसके बाद, सीएस (पिन 2) और जमीन के बीच एक तार लगाएं, ताकि इसे नीचे की ओर खींचा जा सके
मैं डेटाशीट पर एक नज़र डालने की भी सिफारिश करूंगा, जिसे मैंने संलग्न किया है।
चरण 4: वायरिंग - टीटीएल ऑसीलेटर
- हम TTL ऑसिलेटर को ब्रेडबोर्ड के बगल में ब्रेडबोर्ड पर रखेंगे, ताकि क्लॉक आउटपुट पिन SAA1099 (पिन 8) पर क्लॉक इनपुट के सबसे करीब हो।
- आप आगे बढ़ सकते हैं और बिजली और जमीन को टीटीएल थरथरानवाला से जोड़ सकते हैं। (मैंने अपने वीडियो में बाद तक इंतजार किया, इसलिए मेरे पास कोई तस्वीर नहीं है)। ऊपर दी गई तस्वीर से पता चलता है कि कौन से पिन कौन से हैं।
चरण 5: वायरिंग - Iref और चिप इंटरफ़ेस
- Iref (पिन 6) और 5V के बीच 10K रोकनेवाला कनेक्ट करें।
- SAA1099 पर डिजिटल पिन 8 को WR (पिन 1) से कनेक्ट करें।
- SAA1099 पर डिजिटल पिन 9 को A0 (पिन 3) से कनेक्ट करें।
चरण 6: वायरिंग - ध्वनि घटक
- OUTR (पिन 4) और GND. के बीच एक 100pF संधारित्र कनेक्ट करें
- OUTR (पिन 4) और 5V. के बीच एक 1K रोकनेवाला कनेक्ट करें
- हम OUTL के लिए भी यही काम करेंगे (पिन 5)
- OUTL (पिन 5) और GND. के बीच एक 100pF संधारित्र कनेक्ट करें
- OUTL (पिन 5) और 5V. के बीच एक 1K रोकनेवाला कनेक्ट करें
ध्यान दें! सुनिश्चित करें कि प्रतिरोधों/संधारित्रों में से कोई भी तार स्पर्श नहीं कर रहा है, अन्यथा सामान काम नहीं करेगा, और संभावित रूप से आपके चेहरे पर उड़ सकता है।
चरण 7: वायरिंग - ऑडियो जैक
- ब्रेडबोर्ड पर 5V और एक खाली पंक्ति के बीच एक छोटा जम्पर तार कनेक्ट करें।
- अपना ऑडियो जैक रखें, ताकि 5V से जम्पर ऑडियो जैक पर "स्लीव" पिन से जुड़ जाए
- SAA1099 पर क्रमशः L और R (या ऑडियो पिन, यदि आपके पास मोनो जैक है) को OUTL (पिन 5) और OUTR (पिन 4) पिन से कनेक्ट करें।
ध्यान दें! मोनो ऑडियो जैक पर, यह वास्तव में कोई फर्क नहीं पड़ता कि क्या जाता है, जब तक कि एक पिन 5V से जुड़ता है, और एक OUTL या OUTR से। यह ठीक ही लगेगा। जब तक ऐसा नहीं होता है, उस स्थिति में आप अपनी वायरिंग को दोबारा जांचना चाहेंगे।
चरण 8: वायरिंग - पावर टू ब्रेडबोर्ड
- जम्पर तारों का उपयोग करके ब्रेडबोर्ड पावर बस के दोनों किनारों को एक दूसरे से कनेक्ट करें।
- Arduino पर एक तरफ 5V और GND पिन से कनेक्ट करें, यह सुनिश्चित करते हुए कि आपने तारों को कहीं भी नहीं मिलाया है। यदि आपने किया, तो जादू का धुआं निकल सकता है।
चरण 9: वायरिंग - डेटा लाइन्स
क्रम में SAA1099 पर D0 से D7 को Arduino पर D0 (पिन 10) से D7 (पिन 17) से कनेक्ट करें।
मुझे लगता है कि ड्यूपॉन्ट महिला-महिला जम्पर तार, दोनों छोर में 15-20 मिमी हेडर पिन के साथ, पुरुष-पुरुष ड्यूपॉन्ट तारों की तुलना में बहुत बेहतर काम करते हैं। साथ ही आप उन्हें महिला-महिला, या पुरुष-महिला के रूप में भी उपयोग कर सकते हैं। दोनों ईबे पर बड़ी मात्रा में आसानी से मिल जाते हैं, थोड़ी मात्रा में बदलाव के लिए। आकांक्षी Arduino के दीवाने के लिए एक अच्छा क्रिसमस उपहार!
चरण 10: वैकल्पिक एलईडी
मैं यहां कदम दर कदम आगे नहीं बढ़ूंगा कि यहां सब कुछ कैसे बनाया जाए, लेकिन एलईडी जोड़ने के लिए कई अच्छी जगहें हैं। सबसे पहले, मैंने WR (पिन 1) और GND के बीच एक 3 मिमी लाल एलईडी कनेक्ट की, हर बार यह दिखाने के लिए कि Arduino SAA1099 को एक कमांड भेजता है।
मैंने पहले भी एल ई डी को डेटा लाइनों से जोड़ा है, जो आपको प्रत्येक पंक्ति पर वास्तविक बाइनरी डेटा देखने की अनुमति देता है। मैंने अपने "Arduino और SAA1099 - Fireflies" वीडियो में इस सेटअप का उपयोग किया, साथ ही साथ 6 और एलईडी और कुछ अतिरिक्त कोड प्रत्येक चैनल के लिए प्रत्येक एलईडी को सक्रिय करने के लिए प्रकाश डाला।
जितने अधिक एल ई डी, उतने ही अच्छे लगते हैं!
चरण 11: कोड
अब जब आपने सर्किट बना लिया है, तो डबल चेक कनेक्शन पर जाएं! आप अपने महंगे आर्डिनो और साउंडचिप को उड़ा नहीं देना चाहते हैं! (यदि आप करते हैं, ठीक है। यह मेरा व्यवसाय नहीं है)
यह मानते हुए कि आप समझदार हैं और आपने सब कुछ चेक कर लिया है, हम इसकी प्रोग्रामिंग शुरू कर सकते हैं।
- पुस्तकालय https://github.com/Bobcatmodder/SAATunes पर है
- आप SAATunes.zip फ़ाइल चाहते हैं, इसलिए आगे बढ़ें और उसे डाउनलोड करें।
- अब, Arduino IDE खोलें।
- "स्केच" के अंतर्गत, "लाइब्रेरी शामिल करें" पर क्लिक करें ".zip लाइब्रेरी जोड़ें"
- जहां भी आपने SAATunes लाइब्रेरी डाउनलोड की है, वहां नेविगेट करें। (मुझे परवाह नहीं है अगर यह आपका डेस्कटॉप, डाउनलोड, या (शर्मनाक कुछ डालें) फ़ोल्डर था- बस इसे ढूंढें)
- इसे चुनें, और "ओपन" पर क्लिक करें
- यह आपको बताना चाहिए कि इसे आपके पुस्तकालयों में जोड़ा गया है।
चरण 12: इसका परीक्षण करें
- उदाहरण SAATunes प्रोग्राम खोलें, "फ़ाइल", "उदाहरण", "SAATunes", "SAATunes-Uno" के अंतर्गत।
- अपने Arduino को कंप्यूटर में, और किसी प्रकार के स्पीकर में प्लग करें।
- प्रोग्राम को Arduino पर अपलोड करें।
आपको एक खोई हुई पेनी पर एक तार, फिर बीथोवेन का क्रोध सुनना चाहिए। यदि शास्त्रीय आपकी चीज नहीं है, तो डरें नहीं, क्योंकि हम जल्द ही सीखेंगे कि इसके साथ अपनी पसंद की MIDI फ़ाइलों का उपयोग कैसे करें।
अगर आपको कुछ सुनाई न दे, तो कुछ चीज़ें जांचें: सबसे पहले, क्या आपका स्पीकर चालू है? इसे पूरी तरह से ऊपर कर दें। फिर, क्या वास्तव में आर्डिनो चालू है? क्या प्रोग्राम सही तरीके से अपलोड हुआ? योजनाबद्ध और डेटाशीट के साथ सभी तारों की जांच करें, फिर पुनः प्रयास करें।
चरण 13: अपनी खुद की मिडी फाइलों का उपयोग करना - रूपांतरण कार्यक्रम
बीथोवेन के अलावा कुछ और करने के लिए तैयार हैं? बहुत अच्छा, यहाँ तुम जाओ।
MIDI फ़ाइलों को C++ Bytestreams में बदलने के लिए, हमें लेन शुस्टेक के एक प्रोग्राम की आवश्यकता होगी। वह पुस्तकालय का निर्माता है जिसे मैंने अपना कोड बंद कर दिया है, और मेरी लाइब्रेरी उसी बाइटस्ट्रीम प्रारूप का उपयोग करती है जो वह करता है।
- आप कार्यक्रम को https://github.com/LenShustek/miditones. पर देख सकते हैं
- आप जो प्रोग्राम चाहते हैं वह "miditones.exe" है। आगे बढ़ो और इसे डाउनलोड करो।
चरण 14: मिडी फाइलों को परिवर्तित करना
चेतावनी! यहाँ आस्की ड्रेगन हो! आपको वीडियो देखने में आसानी हो सकती है, जहां आप ठीक वही देख सकते हैं जिसके बारे में मैं बात कर रहा हूं। यदि आप प्रवेश करने की हिम्मत करते हैं, तो जारी रखें!
MIDI से Bytestream कनवर्ज़न प्रोग्राम का उपयोग करने के लिए, आपको एक कमांड प्रॉम्प्ट विंडो खोलनी होगी। क्षमा करें मैक और लिनक्स उपयोगकर्ता, आपको एक समाधान खोजना पड़ सकता है।
- स्टार्ट मेन्यू खोलें, और "सीएमडी" टाइप करें, फिर एंटर दबाएं।
- अब हम थोड़ा MS-DOS जादू सीखेंगे। "CD" कमांड का उपयोग करके, जहाँ भी आपने "miditones.exe" फ़ाइल डाउनलोड की है, वहाँ नेविगेट करें। ज्यादातर मामलों के लिए, कमांड "सीडी डाउनलोड" होंगे।
- "मिडिटोन" टाइप करके "miditones.exe" प्रोग्राम चलाएँ। यह आपको सबसे सामान्य कमांड दिखाने वाली एक सहायता सूची दिखानी चाहिए।
अब, हमें कनवर्ट करने के लिए एक MIDI फ़ाइल की आवश्यकता है। इंटरवेब पर कहीं एक खोजें, अधिमानतः बिना टक्कर या किसी विशेष प्रभाव के अलावा insturments/वेग के। (यदि आप नहीं जानते कि वे क्या हैं, तो चिंता न करें, आप ठीक हो जाएंगे)
- अपनी MIDI फ़ाइल को उसी स्थान पर डाउनलोड करें जहाँ आपके पास "मिडिटोन" प्रोग्राम है।
- अब, कमांड प्रॉम्प्ट विंडो का उपयोग करते हुए, "miditones -d -v [filename]" टाइप करें ([filename] को अपनी MIDI फ़ाइल के नाम से बदलें)।
- मिडिटोन उसी फ़ोल्डर में सी ++ बाइटस्ट्रीम के साथ एक. C फ़ाइल उत्पन्न करेगा, जिसका नाम MIDI फ़ाइल के समान होगा।
चरण 15: अपनी परिवर्तित MIDI फ़ाइल का उपयोग करना
अब जब आपने अपनी MIDI फ़ाइल को रूपांतरित कर लिया है, तो चलिए इसे arduino को छोटे बाइट्स में फीड करते हैं!
- यह मानते हुए कि आपके पास पहले से ही SAATunes-Uno उदाहरण खुला है, चलिए आगे बढ़ते हैं और कुछ और "सेव" करते हैं, ताकि हम इसे संपादित कर सकें।
- एक बार जब आप इसे सहेज लेते हैं, तो ऊपरी दाएं कोने में छोटे "नीचे तीर" आइकन पर क्लिक करें।
- "नया टैब" पर क्लिक करें, और इसे "[नाम]। एच" नाम दें ([नाम] को अपने मिडी गीत के नाम से बदलें, या जो भी आप चाहते हैं)
- अब, उस. C फ़ाइल को खोलें जिसे पहले बनाया गया था। इसे खोलने के लिए आप नोटपैड का इस्तेमाल कर सकते हैं।
- सब कुछ चुनने के लिए CNTRL/A का उपयोग करें, और फिर इसे कॉपी करें।
- इसे arduino संपादक में अपने नए "[name].h" टैब में पेस्ट करें।
यहाँ सब कुछ ठीक है, तो चलिए कार्यक्रम पर वापस आते हैं।
- पता लगाएं कि यह कहां कहता है "#include "RagePenny.h"", और इसे नीचे एक नई लाइन पर कॉपी/पेस्ट करें।
- "RagePenny.h" को जो भी आपने अपनी नई फ़ाइल का नाम दिया है, उसे बदलें।
- अब, इसके सामने दो फॉरवर्ड स्लैश (//) जोड़कर "#include "RagePenny.h" कमेंट करें।
- कार्यक्रम अपलोड करें!
यदि सब कुछ ठीक रहा, तो इसे आपकी अपनी MIDI फ़ाइल चलानी चाहिए। यदि नहीं, तो सुनिश्चित करें कि नए टैब के नाम और "#include "RagePenny.h"" में आपके द्वारा बदले गए नाम समान हैं। अन्य चरणों की जाँच करें, और सुनिश्चित करें कि आपने सब कुछ ठीक किया है। कुछ मिडी फाइलें काम नहीं करतीं, लेकिन वे दुर्लभ हैं।
चरण 16: फिन
उम्मीद है कि आपके साथ सब कुछ ठीक हो गया है, और आप नई जिंदगी को देखते हुए एक प्राचीन तकनीक पर MIDI फाइलों को जाम कर रहे हैं!
हालाँकि, यदि आप नहीं हैं, तो हार न मानें! मेरे तरीके से एक टिप्पणी भेजें, और मुझे मदद करने में खुशी होगी। बेशक, मुझे टिप्पणियों में सुझाव देने के लिए स्वतंत्र महसूस करें।
हैप्पी चिपट्यून्स!
सिफारिश की:
100W एलईडी चिप के साथ पोर्टेबल इंडोर लाइट: 26 कदम (चित्रों के साथ)
100W एलईडी चिप के साथ पोर्टेबल इंडोर लाइट: इस निर्देश योग्य / वीडियो में मैं आपको दिखाऊंगा कि कैसे मैंने 100W एलईडी चिप के साथ पोर्टेबल इनडोर लाइट बनाई जो एक पुराने लैपटॉप से 19V 90W बिजली की आपूर्ति के साथ संचालित है। अद्यतन 2 (अंतिम): एलईडी के आसपास का तापमान (37C स्थिर @85W एक 20C कमरे में 30 मिनट के बाद)
DIY ब्लूटूथ हेडसेट (बीके८०००एल चिप) ३डी प्रिंटेड: ६ कदम (चित्रों के साथ)
DIY ब्लूटूथ हेडसेट (BK8000L Chip) 3D Printed: नमस्ते! यहाँ मैं आपको दिखाना चाहता हूँ कि आप अपना वायरलेस ब्लूटूथ हेडसेट कैसे बना सकते हैं। इस परियोजना को करने के लिए मेरी प्रेरणा यह तथ्य है कि बहुत सारे खराब ब्लूटूथ हेडसेट हैं जिन्हें मैंने हाल ही में खरीदा है, इसलिए अपना खुद का करके मैं ट्वीक कर सकता हूं और विकसित कर सकता हूं
रास्पबेरी पीआई, रेट्रो पाई और होममेड केस के साथ रेट्रो-गेमिंग मशीन: 17 कदम (चित्रों के साथ)
रास्पबेरी पीआई, रेट्रोपी और होममेड केस के साथ रेट्रो-गेमिंग मशीन: कुछ समय पहले मुझे रास्पबेरी पाई के लिए रेट्रोपी नामक एक लिनक्स वितरण मिला। मुझे तुरंत पता चला कि यह एक महान कार्यान्वयन के साथ एक अच्छा विचार है। अनावश्यक सुविधाओं के बिना एक-उद्देश्य रेट्रो-गेमिंग सिस्टम। बहुत खूब। इसके तुरंत बाद, मैंने फैसला किया
चिप से किस्से: LM1875 ऑडियो एम्पलीफायर: 8 कदम (चित्रों के साथ)
चिप से किस्से: LM1875 ऑडियो एम्पलीफायर: आई लव मी कुछ चिप एम्प्स - शुद्ध ऑडियो पावर के छोटे पैकेज। केवल कुछ बाहरी घटकों के साथ, एक स्वच्छ बिजली की आपूर्ति और कुछ भारी हीटसिंकिंग के साथ आप वास्तव में हाई-फाई गुणवत्ता वाली ध्वनि प्राप्त कर सकते हैं जो प्रतिद्वंद्वी जटिल, असतत ट्रांजिस्टर डिजाइन हैं। मैं एक एल में चला गया
ब्रेडबोर्ड पर स्टैंडअलोन Arduino / ATMega चिप: 8 कदम (चित्रों के साथ)
ब्रेडबोर्ड पर स्टैंडअलोन Arduino / ATMega चिप: यदि आप मेरे जैसे हैं, तो मुझे अपना Arduino मिला और मेरी पहली चिप पर अंतिम प्रोग्रामिंग करने के बाद, मैं इसे अपने Arduino Duemilanove से खींचना चाहता था और इसे अपने सर्किट पर रखना चाहता था। यह भविष्य की परियोजनाओं के लिए मेरे Arduino को भी मुक्त कर देगा। समस्या