विषयसूची:

टेक्स्ट टू स्पीच ARMbasic संचालित UChip और अन्य ARMbasic संचालित SBC पर क्लिक करें: 3 चरण
टेक्स्ट टू स्पीच ARMbasic संचालित UChip और अन्य ARMbasic संचालित SBC पर क्लिक करें: 3 चरण

वीडियो: टेक्स्ट टू स्पीच ARMbasic संचालित UChip और अन्य ARMbasic संचालित SBC पर क्लिक करें: 3 चरण

वीडियो: टेक्स्ट टू स्पीच ARMbasic संचालित UChip और अन्य ARMbasic संचालित SBC पर क्लिक करें: 3 चरण
वीडियो: अमेरिकी सेना के अंदर 50 घंटे 2024, नवंबर
Anonim
टेक्स्ट टू स्पीच ARMbasic संचालित UChip, और अन्य ARMbasic संचालित SBC पर क्लिक करें
टेक्स्ट टू स्पीच ARMbasic संचालित UChip, और अन्य ARMbasic संचालित SBC पर क्लिक करें
टेक्स्ट टू स्पीच ARMbasic संचालित UChip, और अन्य ARMbasic संचालित SBC पर क्लिक करें
टेक्स्ट टू स्पीच ARMbasic संचालित UChip, और अन्य ARMbasic संचालित SBC पर क्लिक करें
टेक्स्ट टू स्पीच ARMbasic संचालित UChip, और अन्य ARMbasic संचालित SBCs पर क्लिक करें
टेक्स्ट टू स्पीच ARMbasic संचालित UChip, और अन्य ARMbasic संचालित SBCs पर क्लिक करें

परिचय: शुभ दिन। मेरा नाम टॉड है। मैं एक एयरोस्पेस और रक्षा पेशेवर हूं जो दिल से थोड़ा सा गीक भी है।

प्रेरणा: डायल-अप बीबीएस, 8-बिट माइक्रोकंट्रोलर, कायप्रो/कमोडोर/टैंडी/टीआई-९९४ए पर्सनल कंप्यूटर के युग से सम्मानित, जब रेडियो शेक स्टोर बहुतायत से थे (अच्छे पुराने दिन), मेरी पहली शौक एम्बेडेड परियोजनाओं में से एक थी एक MEK6800D2 मोटोरोला माइक्रोप्रोसेसर ट्रेनिंग किट के साथ काम करना, जिसे मैंने MSU EE लैब में को-ऑप के रूप में काम करते हुए खरीदा था (दक्षिणी लोअर MI में अपना हाई स्कूल इलेक्ट्रॉनिक्स VoTech प्रशिक्षण पूरा करने के बाद)। उस परियोजना में MEK6800D2 पर रेडियो झोंपड़ी SP0256 NARRATOR™ स्पीच प्रोसेसर का प्रोटोटाइप बनाना शामिल था, इसे वायरिंग करना और इसे छद्म भाषण उत्सर्जित करने के लिए 6800 प्रोग्रामिंग करना (जिन्होंने SP0256 आधारित HW के साथ काम किया है, वे जानते हैं कि मैं वास्तव में क्या कह रहा हूं)) इसने आश्चर्यजनक रूप से काम किया और मैंने एम्बेडेड माइक्रोकंट्रोलर और असेंबली में अपने दांत काटने के रास्ते को आगे बढ़ाया। हाई स्कूल के बाद, जीवन रास्ते में आ गया, सैन्य, युद्ध, पति-पत्नी, बच्चे, नागरिक क्षेत्र में प्रवेश करना, करियर शुरू करना, आदि सभी ने मेरे शौक को एक पश्चिमी संस्कृति में जीवन के प्रयासों को आगे बढ़ाने के पक्ष में जोड़ा (यहाँ अमेरिका में)।

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

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

एक और दशक तेजी से आगे बढ़ें और … मैं वापस आ गया हूं और, गुड लॉर्ड विलिंग, उम्मीद है कि इस अवधि के लिए (जब तक कि मैं उस लौकिक गंदगी की झपकी नहीं लेता और डेज़ी को नीचे से ऊपर धकेलना शुरू नहीं करता)। तो हम यहाँ हैं। वाह - Arduino (वह अजीब शब्द क्या है?) ने बाजार में तहलका मचा दिया था। निर्माता ?? वे क्या बकवास कर रहे हैं?! …:) कोरिडियम कॉर्प (एआरएमबेसिक और एआरएम-आधारित माइक्रोकंट्रोलर देव बोर्ड के मालिक) में मेरे दोस्त दृढ़ और सच्चे बने रहे। अब, नियंत्रकों की LPC2xxx श्रृंखला के बजाय, ARM की यह नई (मेरे लिए) इकाई है, और Cortex M0/M3/M4, और Arduino, और … वाह! संस्कृति काफी बदल गई है, और कई मायनों में। पीप दूरस्थ रूप से और वास्तव में, विश्व स्तर पर सहयोग कर रहे हैं। हार्डवेयर आश्चर्यजनक रूप से तेज़ और शक्तिशाली हो रहा है, और ARMbasic, सिलिकॉन के कई अलग-अलग परिवारों में रोजगार के साथ परिपक्व और दृढ़ता से कठोर हो गया है, यह मेरे और कई अन्य लोगों के लिए सुंदरता की बात है।

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

आपूर्ति

  • माइक्रोइलेक्ट्रॉनिका टेक्स्ट टू स्पीच क्लिक में एप्सों एस1वी30120 - मॉड्यूल का टीटीएस एएसआईसी शामिल है।
  • 1 ईए एआरएमबेसिक टारगेट, टीटीएस होस्ट की भूमिका को पूरा करना
  • 1 बार यूनो ब्रेकआउट शील्ड (या प्रोटोटाइपिंग ब्रेड बोर्ड, या…)
  • 1 ईए स्पीकर, या स्पीकर का एक सेट पीसी डेस्कटॉप संचालित स्पीकर का सुझाव देता है जिसमें 1/8" टीआरएस प्लग होता है
  • 1 लॉट प्रोटोटाइप वायर, सोल्डर, फ्लक्स, विक, सोल्डरिंग आयरन, हेडर, आईसी सॉकेट और इसी तरह के सामान।
  • 1 लॉट एंबेडेड देव टूल्स डीएमएम, लॉजिक प्रोब, लॉजिक एनालाइज़र, स्कोप, आदि - नए टीटीएस होस्ट एमसीयू के लिए

चरण 1: हार्डवेयर इंटरकनेक्ट

हार्डवेयर इंटरकनेक्ट
हार्डवेयर इंटरकनेक्ट
हार्डवेयर इंटरकनेक्ट
हार्डवेयर इंटरकनेक्ट
हार्डवेयर इंटरकनेक्ट
हार्डवेयर इंटरकनेक्ट

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

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

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

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

चरण 2: प्रोग्रामिंग और परीक्षण

प्रोग्रामिंग और परीक्षण
प्रोग्रामिंग और परीक्षण
प्रोग्रामिंग और परीक्षण
प्रोग्रामिंग और परीक्षण
प्रोग्रामिंग और परीक्षण
प्रोग्रामिंग और परीक्षण

एक बार हार्डवेयर बन जाने के बाद, यह सत्यापित करने के लिए कि वायरिंग अच्छी है, एक पूर्ण रिंग-आउट होने की आवश्यकता होगी। फिर, मैं हमेशा पावर और ग्राउंड चेक करता हूं। यह न केवल यह सुनिश्चित करता है कि पावर और ग्राउंड वहीं हैं जहां उन्हें होना चाहिए, लेकिन अन्य किसी भी टर्मिनेशन में पावर/ग्राउंड नहीं होना चाहिए। इस तरह की एक छोटी परियोजना पर यह एक कठिन काम नहीं है, लेकिन बड़े सिस्टम-ऑफ-सिस्टम के साथ, यह वास्तव में एक कठिन कदम होने के बावजूद, यह सुनिश्चित करने के लिए बिल्कुल जरूरी है कि कोई उप-असेंबली या कनेक्टेड सिस्टम एक मूर्खतापूर्ण गलती से बाहर नहीं निकलता है। पकड़ा जा सकता था और पकड़ा जाना चाहिए था। मैं आम तौर पर कम से कम सामान संलग्न करता हूं ताकि बोर्ड पर बिजली उत्पन्न हो और फिर सब-असेंबली, चिप्स इत्यादि में प्लगिंग से पहले बिजली और जमीन के लिए प्रत्येक पिन/समाप्ति की जांच करें, यह सुनिश्चित कर लें कि बिजली उचित स्तर की है (गैर-5वी-सहिष्णु डिवाइस/आईओ, 1v8 और 3v3 आवश्यकताओं, आदि को ध्यान में रखते हुए) और वह जमीन है जहां इसकी आवश्यकता है और केवल जहां इसकी आवश्यकता है। मैंने एक विमान में विफलताओं का एक झरना देखा है, जो लोग उचित पूर्व-कनेक्ट जांच करने में विफल रहे हैं। एक मामले में, इसने $१००,००० से अधिक एलआरयू निकाले - किसी परियोजना के प्रभारी होने के लिए एक मजेदार समय नहीं है और इसे एक पल में बग़ल में जाना है क्योंकि किसी ने प्रक्रिया को शॉर्ट-सर्किट कर दिया है। एक और चीज जिसका मैं दोषी हूं, वह है थकाऊ 'आस-पास की जांच' करना - यह सुनिश्चित करना कि संपर्क/समाप्ति आसन्न संपर्कों/समाप्ति के लिए कम नहीं हैं। यह महत्वपूर्ण हो जाता है यदि कोई समाक्षीय असेंबलियों, बहु-कंडक्टर / परिरक्षित हार्नेस आदि से निपट रहा है। ठीक है, मैं साबुन बॉक्स से बाहर हूं …

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

ARMbasic स्रोत कोड यहाँ से डाउनलोड किया जा सकता है - एक फ़ोरम पोस्ट जिसमें अतिरिक्त विवरण हैं। कोरिडियम ने इन प्रयासों पर एक ब्लॉग पोस्ट किया, जिसे आप यहां क्लिक करके प्राप्त कर सकते हैं।

चरण 3: अन्य ARMbasic लक्ष्यों और विभिन्न विचारों के लिए स्रोत को संशोधित करना।

अन्य एआरएमबेसिक लक्ष्यों के लिए स्रोत को संशोधित करना, और विभिन्न संगीत।
अन्य एआरएमबेसिक लक्ष्यों के लिए स्रोत को संशोधित करना, और विभिन्न संगीत।
अन्य एआरएमबेसिक लक्ष्यों के लिए स्रोत को संशोधित करना, और विभिन्न संगीत।
अन्य एआरएमबेसिक लक्ष्यों के लिए स्रोत को संशोधित करना, और विभिन्न संगीत।
अन्य एआरएमबेसिक लक्ष्यों के लिए स्रोत को संशोधित करना, और विभिन्न संगीत।
अन्य एआरएमबेसिक लक्ष्यों के लिए स्रोत को संशोधित करना, और विभिन्न संगीत।
अन्य एआरएमबेसिक लक्ष्यों के लिए स्रोत को संशोधित करना, और विभिन्न संगीत।
अन्य एआरएमबेसिक लक्ष्यों के लिए स्रोत को संशोधित करना, और विभिन्न संगीत।

मैं आपको अन्य ARMbasic लक्ष्यों के साथ काम करने के लिए स्रोत कोड को संशोधित करने के लिए आवश्यक कदमों के बारे में नहीं बताऊंगा, यह इंगित करने के अलावा कि मैं स्रोत कोड टिप्पणियों की एक बहुतायत में ऐसा करने के बारे में बताता हूं। कृपया tts.bas फ़ाइल को खोलने के लिए समय निकालें और पढ़ें कि यदि आप कोड को किसी अन्य ARMbasic-संचालित नियंत्रक में पोर्ट करना चुनते हैं तो किन परिवर्तनों की आवश्यकता है।

यहां संलग्न कुछ छवियां हैं जिन्हें मैंने इसे काम करने के देव चक्र के दौरान लिया था।

सीख सीखी:

  1. यदि आपके पास अप्रयुक्त इनपुट के साथ एक लॉजिक एनालाइज़र है और आपके पास अतिरिक्त लक्ष्य आईओ हैं जो काम के लिए उपयोग नहीं किए जा रहे हैं, तो उन आईओ को डिबगिंग टूल के रूप में उपयोग करने से डरो मत - कोड में विभिन्न बिंदुओं पर एक आईओ के एक विगलिंग को छिड़कना हो सकता है नासमझ समय के मुद्दों (यानी बिट-बैंगेड सीरियल कॉम को प्रभावित करने वाले व्यवधान) की पहचान करने के लिए, और समग्र रूप से आपके प्रयासों की बेहतर समझ हासिल करने के लिए, अपेक्षित रूप से काम नहीं कर रहा है और क्या काम नहीं कर रहा है, इसे ट्रैक करने में एक बड़ी मदद।
  2. सभी एआरएम नियंत्रक समान नहीं हैं। यह स्पष्ट है। हालाँकि, मुझे LPC1765 Coridium SuperPRO पर प्रारंभिक देव करके थोड़ा सा मिला। अंत में, जिसने इसे एक बुरा विकल्प बना दिया वह यह है कि इस एआरएम कोर के कार्यान्वयन ने स्मृति के लिए गैर-शब्द-संरेखित पहुंच की अनुमति दी। सी कोड को एआरएमबेसिक पर पोर्ट करते समय, चीजें बहुत आसानी से चली गईं जब तक कि मैंने इसे एसएएमडी 21 लक्ष्य के साथ उपयोग करने की कोशिश नहीं की - सभी नरक ढीले हो गए और बफर भरने, झंडे में हेरफेर करने, एआरएमबासिक संस्करण के साथ काम करते समय अनियंत्रित पहुंच के कारण चीजें विश्वास से परे हो गईं। मैं जिन संरचनाओं/संघों के साथ आया, आदि। यह एक दर्दनाक सबक था। टेक अवे: यदि कोई पोर्टेबल कोड चाहता है, तो सबसे अधिक प्रतिबंधात्मक उम्मीदवार लक्ष्य पर देव, बस यह सुनिश्चित करने के लिए कि किसी को परियोजना के पीछे के अंत में नाटक का सामना नहीं करना पड़ता है, जब कोई व्यक्ति के फल को नियोजित करने के लिए सबसे अधिक उत्साहित होता है उनके प्रयास..:)
  3. C कोड को ARMbasic में पोर्ट करना असंभव नहीं है। यह प्रयास मोटे तौर पर एक विशाल पोर्टिंग प्रशिक्षण विकास था। यदि किसी को मेरे द्वारा तैयार किए गए ARMbasic कोड के साथ मूल C स्रोतों की तुलना करने में समय लगता है, तो किसी को कुछ विचारों के साथ आने में सक्षम होना चाहिए कि उन चीजों को कैसे लागू किया जाए जो ARMbasic के मूल डिजाइन (यानी संरचनाएं) का हिस्सा नहीं हो सकती हैं।
  4. प्रबंधनीय विखंडू में इस तरह की चीजों को संभालें। डिफ़ॉल्ट रूप से, मैं वह हूं जो नियमित रूप से संतुष्टि देखना पसंद करता हूं। इन पोर्टिंग और देव प्रयासों जैसे प्रयास एक रात में पूरा करने में सक्षम होने की संभावना नहीं है। यथार्थवादी लक्ष्य निर्धारित करें और उसी की ओर काम करें, 'बड़ी तस्वीर' से अभिभूत न होने का प्रयास करें।
  5. इस प्रयास में एक तर्क विश्लेषक महत्वपूर्ण था। हां, मेरे पास निम्न-मध्य-श्रेणी डीएस-लॉजिक + इकाई है, लेकिन मैं जोरदार ढंग से कह सकता हूं कि अमेज़ोनिया से एक सस्ता $ 12.50 24 मेगाहर्ट्ज बैंडविड्थ एलए पर्याप्त से अधिक होगा। युगल जो सिग्रोक के पल्सव्यू (फ्री) (प्रोटोकॉल डिकोडिंग करता है) के साथ और एक के पास एक बहुत ही मजबूत प्रणाली होगी जो कि इस परियोजना के साथ मैंने जो प्रयास किया है, जैसे परिदृश्यों की एक विशाल भीड़ में काम करना चाहिए। एक इकाई प्राप्त करना सुनिश्चित करें जिसमें परीक्षण क्लिप हों, या परीक्षण क्लिप को अलग से ऑर्डर करें, क्योंकि वे बेहद (ट्रम्पफेल्डियन कैसे) फायदेमंद हैं।
  6. एक साधारण तर्क जांच भी एक बहुत ही उपयोगी उपकरण है। कार्यक्षेत्र के अवलोकन चित्र पर आप छवि के निचले दाएं कोने में एक प्राचीन आर्चर (रेडियो झोंपड़ी) तर्क जांच को देखेंगे। मुझे यह जानकर वास्तव में आश्चर्य हुआ कि एक अच्छी तरह से सुसज्जित प्रयोगशाला के साथ भी ऐसा कुछ दैनिक आधार पर कितना उपयोगी है।

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

ध्यान रखें और हैकिंग का मज़ा लें!

-मेगाहर्ट्ज

सिफारिश की: