جدول المحتويات:

تحويل النص إلى كلام انقر فوق UChip المدعوم من ARMbasic ، وتحديات SBC الأخرى التي تدعم ARMbasic: 3 خطوات
تحويل النص إلى كلام انقر فوق UChip المدعوم من ARMbasic ، وتحديات SBC الأخرى التي تدعم ARMbasic: 3 خطوات

فيديو: تحويل النص إلى كلام انقر فوق UChip المدعوم من ARMbasic ، وتحديات SBC الأخرى التي تدعم ARMbasic: 3 خطوات

فيديو: تحويل النص إلى كلام انقر فوق UChip المدعوم من ARMbasic ، وتحديات SBC الأخرى التي تدعم ARMbasic: 3 خطوات
فيديو: تفعيل ميزة تحويل النص الى كلام. او سماع الاختيار 2024, يوليو
Anonim
تحويل النص إلى كلام انقر فوق UChip المدعوم من ARMbasic ، وغيرها من تحديات بناء التشكيلة التي تدعم ARMbasic
تحويل النص إلى كلام انقر فوق UChip المدعوم من ARMbasic ، وغيرها من تحديات بناء التشكيلة التي تدعم ARMbasic
تحويل النص إلى كلام انقر فوق UChip المدعوم من ARMbasic ، وغيرها من تحديات بناء التشكيلة التي تدعم ARMbasic
تحويل النص إلى كلام انقر فوق UChip المدعوم من ARMbasic ، وغيرها من تحديات بناء التشكيلة التي تدعم ARMbasic
تحويل النص إلى كلام انقر فوق UChip المدعوم من ARMbasic ، وغيرها من تحديات بناء التشكيلة التي تدعم ARMbasic
تحويل النص إلى كلام انقر فوق UChip المدعوم من ARMbasic ، وغيرها من تحديات بناء التشكيلة التي تدعم ARMbasic

مقدمة: يوم جيد. اسمي تود. أنا متخصص في مجال الطيران والدفاع وهو أيضًا مهووس قليلاً في القلب.

الإلهام: انطلاقًا من عصر BBS للطلب الهاتفي ، والميكروكونترولر 8 بت ، وأجهزة الكمبيوتر الشخصية Kaypro / Commodore / Tandy / TI-994A ، عندما كانت متاجر Radio Shack وفيرة (الأيام الجيدة) ، كان أحد أول مشاريعي المدمجة للهوايات العمل مع MEK6800D2 Motorola Microprocessor Training Kit ، والتي اشتريتها أثناء العمل كمتعاون في مختبرات MSU EE (بعد إكمال تدريبي في High School Electronics VoTech في جنوب MI السفلى). تضمن هذا المشروع وضع النماذج الأولية لمعالج الكلام Radio Shack SP0256 NARRATOR ™ على MEK6800D2 ، وتوصيله بالأسلاك وبرمجة 6800 لجعله يصدر كلامًا زائفًا (أولئك الذين عملوا مع SP0256 القائم على HW يعرفون بالضبط ما أشير إليه). لقد عملت بشكل رائع وتقدمت في مسار قطع أسناني في وحدات التحكم الدقيقة والتجميع المدمجة. بعد المدرسة الثانوية ، دخلت الحياة في الطريق ، الجيش ، الحرب ، الأزواج ، الأطفال ، دخول القطاع المدني ، بدء مهنة ، إلخ. كل ذلك أضاف إلى ترك هوايتي على الرف لصالح متابعة مساعي الحياة في الثقافة الغربية (هنا في الولايات المتحدة).

تخطي إلى الأمام 20 عامًا ، قادمًا إلى الوقت الذي لا مفر منه حيث ينضج الأطفال إلى درجة أن أنا والعروس مشتت للانتباه ، ويتم سداد الرهن العقاري / المركبات / فواتير الكلية ببطء ، وتحسن الأرباح مع التقدم ، ولدي ما يكفي من الاحتياطيات لقد حان الوقت إلى النقطة التي يمكنني من خلالها إعادة التركيز على بعض المساعي الأنانية ، فقمت بالرجوع إلى حفلة الإلكترونيات الخاصة بالهواية. على أي حال ، نظرًا لنسلتي وتاريخي ، فقد بحثت ووجدت بيئة مطورة ارتبطت بها سريعًا - ARMbasic - كان BASIC حبي الأول وهذا يناسب فاتورة ليس فقط إعادة التأقلم مع البرمجة ، ولكن العمل مع الأجهزة التي كانت أكثر بكثير أقوى مما كنت قد بدأت به قبل عقود ، وهكذا بدأت الرحلة.

كان هذا حوالي 2006-2009. بعد ذلك ، ولأسباب خارجة عن إرادتنا ، تغيرت الحياة (كما حدث للكثيرين خلال تلك السنوات). تم تعليق الهوايات - التركيز على مهنة جديدة ، والتعافي من الصراعات المالية (كان منوطًا بشدة بمجال العقارات وأخذناها في السراويل القصيرة وكان الشباب يصلون إلى النقطة التي كان فيها تمويل الكلية أمرًا ضروريًا). في الأساس ، تجلت مشاكل الحياة والعالم الأول (نحن محظوظون حقًا ، بالنظر إلى التحديات والمتاعب التي يعاني منها الناس في أجزاء أخرى من العالم يوميًا) و … تم وضع الهواية على الرف. عدت إليها لفترة وجيزة في 2011-2012 ، ثم قوبلت بتغيير مهني آخر - تم تأجيل الهواية مرة أخرى.

سريعًا إلى الأمام عقدًا آخر و … لقد عدت ، و ، يا إلهي ، أتمنى أن أستمر طوال هذه المدة (حتى آخذ قيلولة من الأوساخ التي يضرب بها المثل وأبدأ في دفع الإقحوانات من الأسفل). لذلك نحن هنا. واو - اقتحم Arduino (ما هذه الكلمة الغريبة؟) السوق. صناع ؟؟ ما هيك هم؟! …:) ظل أصدقائي في Coridium Corp (مالكو لوحات تطوير وحدات التحكم الدقيقة القائمة على ARMbasic و ARM) صامدين وحقيقيين. الآن ، بدلاً من سلسلة وحدات التحكم LPC2xxx ، يوجد هذا الكيان الجديد (بالنسبة لي) من ARM ، و Cortex M0 / M3 / M4 ، و Arduino ، و … WOW! لقد تحولت الثقافة إلى حد ما ، وبطريقة رائعة. يتعاون Peeps عن بُعد ، وفي الواقع ، عالميًا. أصبحت الأجهزة سريعة وقوية بشكل مثير للدهشة ، و ARMbasic ، بعد أن نضجت وتصلب بثبات مع التوظيف عبر العديد من عائلات السيليكون المختلفة ، أصبح شيئًا جميلًا بالنسبة لي وللعديد من الآخرين.

لذا ، لجعل قصة قصيرة طويلة جدًا ، عثرت مؤخرًا على نقرة TTS بواسطة MikroElectronika وشعرت بغمس من الحنين إلى الماضي. طلب أحدهم في غضون دقائق ، وكان قلقًا خلال الأيام التالية حتى وصلت الوحدة في متناول اليد. ومن هنا تبدأ القصة …

اللوازم

  • 1 لكل جهاز MikroElectronika Text To Speech Click ، يحتوي على Epson S1V30120 - TTS ASIC للوحدة
  • 1 لكل هدف ARMbasic ، يؤدي دور مضيف TTS
  • 1 لكل جهاز Uno Breakout Shield (أو عمل نموذج أولي للوح الخبز ، أو …)
  • مكبر صوت واحد لكل جهاز ، أو مجموعة من مكبرات الصوت تشير إلى مكبرات صوت تعمل بالطاقة على سطح المكتب للكمبيوتر الشخصي مع قابس TRS 1/8 بوصة
  • 1 مجموعة أدوات النماذج الأولية الأسلاك ، اللحام ، التدفق ، الفتيل ، لحام الحديد ، الرؤوس ، مقابس IC وما شابه ذلك..
  • مجموعة واحدة من أدوات التطوير المضمنة DMM ، والمسبار المنطقي ، والمحلل المنطقي ، والنطاق ، وما إلى ذلك - لوحدات MCU لمضيف TTS الجديد

الخطوة 1: التوصيلات البينية للأجهزة

يربط الأجهزة
يربط الأجهزة
يربط الأجهزة
يربط الأجهزة
يربط الأجهزة
يربط الأجهزة

لتكرار هذا باستخدام هدف ARMbasic في عامل شكل Uno ، أو باستخدام Itaca uChip ، من المحتمل أن يتم تقديم الخدمة بشكل أفضل من خلال استخدام درع النماذج الأولية ، كما فعلت في الصور أعلاه (رابط أمازون عادي)

سيرى البعض السلك الملتوي معًا ويتساءل لماذا - رفض الضوضاء في الوضع الشائع هو الحل البسيط. نعم ، نحن لا نتعامل مع إشارات متوازنة هنا ، لكنني اعتقدت أنه لا يمكن أن يؤذي (؟) لذلك فعلت ذلك عندما كنت أقوم ببناء اللوحة.

إنه تصميم حميد للغاية. المطبوعات مرفقة هنا ، في شكل رسم (AutoCAD 2D هو أكثر ما اعتدت عليه - بعد أن عملت معه لعقود في وظيفتي اليومية - ما زلت أقطع أسناني KiCAD وكان هذا محاولة بسيطة للغاية تبرير منحنى التعلم كأول مشروع في KiCAD). على أي حال ، اخترت تركيب مقبس uChip مباشرة على الدرع لتمكين حالة استخدام قائمة بذاتها عند استخدام uChip كمضيف. لقد أضفت JST لتشغيله عبر البطارية ، إذا كنت أرغب في القيام بذلك ، ولأن لدي بعض الإضافات ، قمت بتقسيم Adafruit SWD Breakout لتمكينني من استخدام مسبار Segger J-Link EDU Debug ، إذا دعت الحاجة. لم يحدث ذلك ، لكني احتفظ بصيغة SWD هنا لاستخدامها مع المشاريع المستقبلية.

يعني Castellated ، في هذا السياق ، وضع حواف PCB لأسفل بحيث يتم تقليل الثقوب المطلية إلى نصف أسطوانات ، مما يتيح اللحام على PCB حامل - في هذه الحالة لوحة كسر الدرع. لقد اخترت أن أفعل ذلك لأن أجزاء العبوة المسطحة للدرع لم تتماشى تمامًا مع تباعد الصفوف بين صفي الرأس على SWD BOB. انسخ ملفًا ثابتًا و 5 دقائق من الإيداع وحل المشكلة.

الخطوة الثانية: البرمجة والاختبار

البرمجة والاختبار
البرمجة والاختبار
البرمجة والاختبار
البرمجة والاختبار
البرمجة والاختبار
البرمجة والاختبار

بمجرد أن يتم بناء الجهاز ، يجب أن يكون هناك حلقة كاملة للتحقق من أن الأسلاك جيدة. بعد ذلك ، أقوم دائمًا بإجراء فحص Power and Grounds. هذا لا يضمن فقط أن Power and Ground في المكان الذي من المفترض أن يكونا فيه ، ولكن أي من النهايات الأخرى التي لا ينبغي أن يكون لها قوة / أرضية هناك ليست كذلك. إنها ليست مهمة شاقة في مشروع صغير مثل هذا ، ولكن مع أنظمة أكبر من الأنظمة ، في حين أنها بالفعل خطوة مملة ، فهي ضرورية للغاية لضمان عدم إخراج أي تجميعات فرعية أو أنظمة متصلة من خلال خطأ سخيف كان من الممكن وينبغي القبض عليه. عادةً ما أحصل على الحد الأدنى من البضائع المرفقة بحيث يتم توليد الطاقة على اللوحة ، ثم أتحقق من كل دبوس / طرف من أجل الطاقة والأرض قبل توصيل التجميعات الفرعية والرقائق وما إلى ذلك ، مع التأكد من أن الطاقة بالمستوى المناسب (بالنظر إلى الأجهزة التي لا تتحمل 5 فولت / IO ، ومتطلبات 1v8 و 3v3 ، وما إلى ذلك) وهذه الأرضية هي المكان الذي يجب أن تكون فيه وفقط حيث يجب أن تكون. لقد شاهدت سلسلة من حالات الفشل على متن طائرة من أشخاص فشلوا في إجراء فحوصات مسبقة مناسبة. في إحدى الحالات ، استغرق الأمر أكثر من 100 ألف دولار من LRUs - ليس وقتًا ممتعًا لتكون مسؤولاً عن مشروع وجعله يمضي بشكل جانبي في لحظة لأن شخصًا ما أختصر العملية. شيء آخر أنا مذنب به هو إجراء "فحوصات جوار" مملة - التأكد من أن جهات الاتصال / الإنهاءات ليست مقصورة على جهات الاتصال / الإنهاءات المجاورة. يصبح هذا أمرًا بالغ الأهمية إذا كان المرء يتعامل مع التجميعات المحورية ، والموصلات المتعددة / الأحزمة المحمية ، وما إلى ذلك. حسنًا ، أنا خارج صندوق الصابون …

بمجرد ضمان السلامة ، قم بتوصيل الأشياء ، وقم بتشغيلها ثم انزل إلى برمجة مضيف TTS (ARMbasic Target MCU) تمامًا كما هو الحال مع العديد من أهداف MCU المضمنة. لقد سجلت مقطع فيديو يصور البرمجة والاستخدام البسيط لنقرة TTS. يمكنك مشاهدته هنا.

يمكن تنزيل الكود المصدري ARMbasic من هنا - منشور منتدى يحتوي على تفاصيل إضافية. قامت Coridium بنشر مدونة حول هذه الجهود ، والتي يمكنك الوصول إليها من خلال النقر هنا.

الخطوة 3: تعديل المصدر لأهداف ARMbasic الأخرى ، والتأملات المختلفة

تعديل مصدر أهداف ARMbasic الأخرى ، وتأملات مختلفة
تعديل مصدر أهداف ARMbasic الأخرى ، وتأملات مختلفة
تعديل مصدر أهداف ARMbasic الأخرى ، وتأملات مختلفة
تعديل مصدر أهداف ARMbasic الأخرى ، وتأملات مختلفة
تعديل مصدر أهداف ARMbasic الأخرى ، وتأملات مختلفة
تعديل مصدر أهداف ARMbasic الأخرى ، وتأملات مختلفة
تعديل مصدر أهداف ARMbasic الأخرى ، وتأملات مختلفة
تعديل مصدر أهداف ARMbasic الأخرى ، وتأملات مختلفة

لن أشرح لك الخطوات اللازمة لتعديل كود المصدر للعمل مع أهداف ARMbasic الأخرى ، بخلاف الإشارة إلى أنني قمت بذلك في الكثير من تعليقات كود المصدر. يرجى أخذ الوقت الكافي لفتح ملف tts.bas وقراءة التغييرات المطلوبة إذا اخترت نقل الكود إلى وحدة تحكم أخرى تعمل بنظام ARMbasic.

مرفق طيه بعض الصور التي التقطتها أثناء دورة التطوير لجعل هذا يعمل.

الدروس المستفادة:

  1. إذا كان لديك محلل منطقي مع مدخلات غير مستخدمة ولديك IOs مستهدفة إضافية لا يتم استخدامها للعمل الذي تقوم به ، فلا تخف من استخدام IO كأدوات تصحيح - يمكن أن يكون تذبذب IO في نقاط مختلفة في الكود مساعدة كبيرة في تعقب ما هو يعمل وما لا يعمل كما هو متوقع ، لتحديد مشكلات التوقيت الأبله (أي المقاطعات التي تؤثر على الاتصالات التسلسلية المتقطعة) ، والحصول على فهم أفضل لجهودك ككل بشكل عام.
  2. ليست كل وحدات تحكم ARM هي نفسها. و هذا واضح. ومع ذلك ، فقد حصلت على القليل من خلال القيام بالتطوير الأولي على LPC1765 Coridium SuperPRO. في الإدراك المتأخر ، ما جعل هذا اختيارًا سيئًا هو أن تنفيذ نواة ARM هذا سمح بالوصول غير المحاذاة للكلمات إلى الذاكرة. عند نقل رمز C إلى ARMbasic ، سارت الأمور بسلاسة إلى أن حاولت استخدامه مع هدف SAMD21 - فُتحت كل الجحيم وأصبحت الأشياء ممزقة بما لا يُصدق بسبب الوصول غير المحاذي عند ملء المخازن المؤقتة ، والتلاعب بالأعلام ، والعمل مع إصدار ARMbasic الهياكل / النقابات التي توصلت إليها ، إلخ. لقد كان درسًا مؤلمًا. الإزالة هنا: إذا كان المرء يرغب في الحصول على رمز محمول ، فقم بتطوير الهدف المرشح الأكثر تقييدًا ، فقط للتأكد من عدم مواجهة المرء للدراما في النهاية اللاحقة للمشروع ، عندما يكون الشخص متحمسًا للغاية لتوظيف ثمار جهودهم..:)
  3. نقل كود C إلى ARMbasic ليس مستحيلاً. كان هذا الجهد إلى حد كبير تطوراً تدريبياً عملاقًا. إذا استغرق المرء وقتًا لمقارنة مصادر C الأصلية مع كود ARMbasic الذي صنعته ، فيجب أن يكون المرء قادرًا على الخروج ببعض الأفكار حول كيفية تنفيذ الأشياء التي قد لا تكون جزءًا من تصميم ARMbasic الأساسي (أي الهياكل).
  4. تعامل مع مثل هذه الأشياء في أجزاء يمكن التحكم فيها. بشكل افتراضي ، أنا شخص أحب رؤية الإشباع بشكل منتظم. من غير المحتمل أن يكون مسعى مثل جهود التنشيط والتطوير شيئًا يمكن تحقيقه في ليلة واحدة. ضع أهدافًا واقعية واعمل على تحقيقها ، وحاول ألا تغمرها "الصورة الكبيرة".
  5. كان محلل المنطق أمرًا حاسمًا في هذا الجهد. نعم ، لدي وحدة DS-Logic + متوسطة المدى ، لكن يمكنني أن أؤكد بشكل قاطع أن عرض النطاق الترددي الرخيص 12.50 24MHz LA من Amazonia سيكون أكثر من كافٍ. أضف إلى ذلك مع PulseView الخاص بـ Sigrok (مجاني) (يقوم بفك تشفير البروتوكول) وسيكون لديك نظام قوي للغاية يجب أن يعمل في العديد من السيناريوهات مثل ما حاولت القيام به مع هذا المشروع. تأكد من الحصول على وحدة تحتوي على مقاطع اختبار ، أو اطلب مقاطع الاختبار بشكل منفصل ، لأنها مفيدة بشكل كبير (كيف ترامفليدي).
  6. المجس المنطقي البسيط هو أداة مفيدة جدًا أيضًا. في صورة النظرة العامة لمساحة العمل ، ستلاحظ مسبارًا منطقيًا قديمًا لآرتشر (راديو شاك) في الركن الأيمن السفلي من الصورة. لقد فوجئت حقًا عندما اكتشفت مدى فائدة شيء كهذا على أساس يومي ، حتى مع وجود مختبر مجهز جيدًا.

ربما أكون قد ربطت هذه الأشياء في وقت سابق في هذا ولكن لا يمكنني التذكر وأنا كسول جدًا بحيث لا يمكنني النظر. إليك منشور مدونة يحتوي على مقطع فيديو لوحدة تحويل النص إلى كلام قيد التشغيل (تستضيفها Itaca uChip في ذلك الوقت) ، ومشاركة منتدى ARMbasic حيث يمكن للمرء تنزيل شفرة مصدر ARMbasic المنقولة.

اعتني بنفسك واستمتع بوقتك بعيدًا!

-ميجاهرتز

موصى به: