فهرست مطالب:
- تدارکات
- مرحله 1: اتصالات سخت افزاری
- مرحله 2: برنامه نویسی و آزمایش
- مرحله 3: تغییر منبع برای سایر اهداف ARMbasic و انواع مختلف
تصویری: متن به گفتار بر روی UChip دارای ARMbasic Powered و سایر SBC های دارای قابلیت ARMbasic کلیک کنید: 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
مقدمه: روز بخیر اسم من تاد است. من یک متخصص هوا و فضا و دفاعی هستم که در قلب خود نیز کمی گیک است.
الهام: از دوران dial-up BBS ، میکروکنترلرهای 8 بیتی ، رایانه های شخصی Kaypro/Commodore/Tandy/TI-994A ، زمانی که فروشگاههای Radio Shack فراوان بودند (روزهای خوب اوله) ، یکی از اولین پروژه های سرگرمی من این بود کار با کیت آموزش ریزپردازنده موتورولا MEK6800D2 ، که در حین کار در آزمایشگاههای MSU EE خریداری کرده بودم (پس از اتمام آموزش الکترونیک دبیرستان VoTech در Southern LI MI). آن پروژه شامل نمونه سازی اولیه من Radio Shack SP0256 NARRATOR ™ SPEECH PROCESSOR روی MEK6800D2 ، سیم کشی آن و برنامه ریزی 6800 بود تا بتواند شبه گفتار را منتشر کند (کسانی که با SP0256 HW کار کرده اند دقیقاً می دانند که من به چه چیزی اشاره می کنم) این فوق العاده کار کرد و من در مسیر برش دندان های خود در میکروکنترلرهای جاسازی شده و مونتاژ پیشرفت کردم. بعد از دبیرستان ، زندگی مانع شد ، نظامی ، جنگی ، همسران ، فرزندان ، ورود به بخش مدنی ، شروع شغل و غیره همه به تفریح من کمک کردند تا تلاش های زندگی در فرهنگ غربی را دنبال کنم (اینجا در ایالات متحده)
بیست سال را پشت سر بگذارید و به زمان اجتناب ناپذیری برسید که بچه ها در حال بالغ شدن هستند تا جایی که من و عروس حواس ما را پرت می کنند ، قبض وام مسکن/وسایل نقلیه/کالج به آرامی پرداخت می شود ، درآمد با پیشرفت ها بهتر می شود و من به اندازه کافی یدک دارم وقتی به نقطه ای رسیدم که بتوانم تمرکز مجدد خود را روی برخی تلاشهای خودخواهانه آغاز کنم ، دوباره به سراغ برنامه سرگرمی الکترونیک رفتم. به هر حال ، با توجه به نسب و سابقه ام ، من محیطی را پیدا کردم که به سرعت با آن ارتباط برقرار کردم - ARMbasic - BASIC اولین عشق من بود و این نه تنها با برنامه نویسی ، بلکه با سخت افزارهایی که بسیار بیشتر کار می کردند مناسب بود. بسیار قدرتمندتر از آنچه دهه ها قبل از آن شروع کرده بودم ، و به این ترتیب سفر آغاز شد.
این در حدود 2006-2009 بود. سپس ، به دلایلی که از کنترل ما خارج است ، زندگی تغییر کرد (همانطور که در آن سالها برای بسیاری از افراد تغییر کرده بود). سرگرمی ها کنار گذاشته شد - تمرکز بر یک شغل جدید ، بازیابی از مشکلات مالی (به شدت در حوزه املاک و مستغلات بود و ما آن را با شورت کوتاه انتخاب کردیم و جوانان تازه به نقطه ای رسیده بودند که بودجه کالج ضروری بود). اساساً ، مشکلات زندگی و جهان اول (ما واقعاً برکت داریم ، با توجه به چالش ها و زحماتی که مردم سایر نقاط جهان به طور روزانه با آن دست و پنجه نرم می کنند) خود را نشان داد و … سرگرمی کنار گذاشته شد. من در سال 2011-2012 به طور مختصر از آن استفاده کردم-سپس با تغییر شغل دیگری روبرو شدم-سرگرمی دوباره کنار گذاشته شد.
یک دهه دیگر به سرعت جلو بروید و … من برگشتم و ، خداوند متعال ، امیدوارم تا مدت زمان طولانی (تا زمانی که آن چرت زدن ضرب المثل خاکی را انجام ندهم و شروع به هل دادن گل مروارید از پایین کنم). بنابراین ، ما اینجا هستیم. وای - آردوینو (آن کلمه عجیب چیست؟) به بازار هجوم آورده بود. سازندگان ؟؟ اینها چه لعنتی هستند ؟! …:) دوستان من در Coridium Corp (صاحبان تخته های توسعه دهنده ARMbasic و مبتنی بر ARM) ثابت قدم و صادق بودند. اکنون ، به جای سری کنترلرهای LPC2xxx ، این موجودیت جدید (برای من) ARM و Cortex M0/M3/M4 و Arduino و… WOW وجود دارد. این فرهنگ تا حدودی تغییر کرده است و به طرزی بسیار عالی. Peeps از راه دور و در واقع در سطح جهانی همکاری می کنند. سخت افزار به طرز شگفت انگیزی سریع و قدرتمند می شود و ARMbasic ، پس از بالغ شدن و استحکام ثابت در کار با خانواده های مختلف سیلیکون ، برای من و بسیاری دیگر بسیار زیبا است.
بنابراین ، با ساختن یک داستان کوتاه بسیار طولانی ، اخیراً با کلیک TTS توسط MikroElectronika برخورد کردم و احساس کردم یک نوستالژی شستشو روی من جریان دارد. اگر یک نفر به صورت دقیقه ای سفارش داده بود ، و روزهای بعد مضطرب بود تا اینکه واحد به دست آمد. از این رو داستان شروع می شود…
تدارکات
- 1 ea MikroElectronika Text to Speech Click ، شامل Epson S1V30120 - TTS ASIC ماژول
- 1 ea ARMbasic Target ، ایفای نقش میزبان TTS
- 1 ea Uno Breakout Shield (یا نمونه اولیه تخته نان ، یا…)
- 1 بلندگوی ea یا مجموعه ای از بلندگوها نشان می دهد که بلندگوهای رومیزی با رایانه 1/8 اینچی روی آن نصب شده است
- 1 قطعه نمونه اولیه سیم ، لحیم کاری ، شار ، فتیله ، آهن لحیم کاری ، هدر ، سوکت IC و موارد مشابه..
- 1 لات Embedded Dev Tools DMM ، Logic Probe ، Logic Analyzer ، Scope و غیره - برای MCU های TTS میزبان جدید
مرحله 1: اتصالات سخت افزاری
برای تکرار این مورد با استفاده از یک هدف ARMbasic در یک عامل Uno یا با ItCa uChip ، به احتمال زیاد با استفاده از یک سپر نمونه سازی ، همانطور که در تصاویر بالا (پیوند آمازون ساده) انجام داده ام ، بهترین کار ممکن است انجام شود.
برخی سیم پیچ خورده سیم پیچیده شده را می بینند و می پرسند چرا-رد سر و صدا در حالت معمول ، پاسخ ساده ای است. بله ، ما در اینجا با سیگنال های متوازن سروکار نداریم ، اما من متوجه شدم که نمی تواند صدمه ای وارد کند؟
این یک طراحی بسیار خوش خیم است. چاپها در اینجا به صورت گرافیک پیوست شده است (AutoCAD 2D چیزی است که من بیشتر به آن عادت دارم - ده ها سال در کار روزانه با آن کار کرده ام - هنوز دندانهای KiCAD خود را برش می دهم و این یک تلاش بسیار ساده بود منحنی یادگیری را به عنوان اولین پروژه در KiCAD توجیه کنید). به هر حال ، من سوکت uChip را مستقیماً روی سپر نصب کردم تا هنگام استفاده از uChip به عنوان میزبان ، مورد استفاده مستقل را فعال کنم. من یک JST برای تغذیه آن از طریق باتری ، در صورت تمایل به انجام این کار ، اضافه کردم ، و چون چند مورد اضافی دارم ، یک Adafruit SWD Breakout را به کار گرفتم تا بتوانم در صورت نیاز ، از پروب Debug Segger J-Link EDU خود استفاده کنم. چنین نشد ، اما من SWD i'face را برای استفاده در پروژه های آینده روی آن نگه می دارم.
Castellated به این معناست که لبه های PCB را به گونه ای پایین بریزید که سوراخ های آبکاری شده به نیم سیلندر کاهش یابد و لحیم کاری را بر روی یک PCB حمل - در این حالت تخته شکست سپر - امکان پذیر می کند. من تصمیم گرفتم این کار را انجام دهم ، زیرا قسمت های تخت پنل پشتی سپر کاملاً با فاصله ردیف ها بین دو ردیف سرصفحه در SWD BOB مطابقت نداشت. یک فایل مسطح شکسته شد و 5 دقیقه پرونده تشکیل شد و مشکل حل شد.
مرحله 2: برنامه نویسی و آزمایش
هنگامی که سخت افزار ساخته شد ، باید یک زنگ کامل برای تأیید صحت سیم کشی وجود داشته باشد. سپس ، من همیشه یک بررسی Power و Grounds انجام می دهم. این نه تنها تضمین می کند که Power و Ground در جایی هستند که باید باشند ، بلکه هیچ پایانی دیگری که نباید در آن قدرت/قدرت داشته باشد ، وجود ندارد. این کار در پروژه کوچکی مانند این یک کار خسته کننده نیست ، اما در مورد سیستم های بزرگتر سیستم ، در حالی که در واقع یک مرحله خسته کننده است ، کاملاً ضروری است تا اطمینان حاصل شود که هیچ زیر مجموعه یا سیستم متصل به اشتباه احمقانه حذف نمی شود. می توانست و باید گرفتار می شد من معمولاً حداقل کالاها را به هم وصل می کنم تا قدرت روی صفحه تولید شود و سپس قبل از اتصال به زیر مجموعه ها ، تراشه ها و غیره ، قبل از اتصال به زیر مجموعه ها ، تراشه ها و غیره ، هر پین/پایانه را برای برق و زمین بررسی می کنم و مطمئن می شوم که قدرت در سطح مناسب است. (با توجه به وسایل غیرقابل تحمل 5V/الزامات IO ، 1v8 و 3v3 و غیره) و آن زمین در جایی است که باید باشد و فقط در جایی که باید باشد. من شاهد شکست های متعددی در هواپیما از سوی افرادی هستم که نتوانسته اند بررسی های پیش از اتصال مناسب را انجام دهند. در یک مورد ، بیش از 100 هزار دلار LRU گرفته شد - زمان سرگرم کننده ای نبود که مسئولیت یک پروژه را بر عهده بگیرید و آن را در یک لحظه به طرف دیگر برسانید ، زیرا شخصی این روند را مختصر کرد. یکی دیگر از مواردی که من در آن مجرم هستم انجام خسته کننده "بررسی مجاورت" است - اطمینان حاصل کنید که مخاطبین/خاتمه ها به مخاطبین/خاتمه های مجاور کوتاه نمی شوند. اگر کسی با مجموعه های کواکسیال ، مهارهای چند رسانایی/محافظ و غیره سروکار داشته باشد ، بسیار مهم است ، خوب ، من از جعبه صابون خارج شده ام …
پس از اطمینان از ایمنی ، همه چیز را متصل کنید ، آن را روشن کنید و سپس برنامه نویسی TTS Host (ARMbasic Target MCU) را شروع کنید ، درست مانند بسیاری از اهداف MCU تعبیه شده. من یک ویدئو ضبط کردم که برنامه نویسی و استفاده ساده از TTS Click را نشان می دهد. شما می توانید آن را در اینجا مشاهده کنید.
کد منبع ARMbasic را می توانید از اینجا بارگیری کنید - یک پست انجمن که دارای جزئیات اضافی است. Coridium یک پست وبلاگ در مورد این تلاش ها انجام داد ، که می توانید با کلیک کردن اینجا به آن برسید.
مرحله 3: تغییر منبع برای سایر اهداف ARMbasic و انواع مختلف
من با مراحل مورد نیاز برای تغییر کد منبع برای کار با سایر اهداف ARMbasic ، به غیر از این که نشان دهم که من در مورد این کار در فراوانی نظرات کد منبع در آن صحبت کرده ام ، مشورت نمی کنم. لطفاً برای بازکردن فایل tts.bas وقت بگذارید و بخوانید که در صورت انتخاب کد برای انتقال به کنترلر دیگر ARMbasic ، چه تغییراتی لازم است.
پیوست برخی از تصاویری است که من در چرخه توسعه برای به کار انداختن آن گرفته ام.
درسهای آموخته شده:
- اگر از تجزیه و تحلیل منطقی با ورودی های بلااستفاده استفاده می کنید و IO های هدف اضافی برای کار مورد استفاده شما وجود ندارد ، نگران نباشید از این IO ها به عنوان ابزار اشکال زدایی استفاده کنید - پاشیدن تکان دادن IO در نقاط مختلف کد می تواند باشد کمک بزرگی در ردیابی آنچه هست و نیست مطابق انتظار ، برای شناسایی مسائل زمانبندی مسخره (یعنی وقفه هایی که بر روی سریال های کمی تپنده سریال تأثیر می گذارد) ، و به طور کلی درک بهتری از تلاش های شما به طور کلی.
- همه کنترلرهای ARM یکسان نیستند. این بدیهی است. با این حال ، من با انجام dev اولیه در LPC1765 Coridium SuperPRO کمی خرج کردم. در نگاه اجمالی ، آنچه این انتخاب بد را بدل کرده این است که پیاده سازی این هسته ARM امکان دسترسی بدون حافظه با کلمات به حافظه را فراهم می آورد. هنگام انتقال کد C به ARMbasic ، همه چیز بسیار روان پیش رفت تا زمانی که سعی کردم از آن با هدف SAMD21 استفاده کنم - همه چیز از بین رفت و همه چیز به دلیل دسترسی نامتعادل هنگام پر کردن بافرها ، دستکاری پرچم ها ، کار با نسخه ARMbasic ، از بین رفت. ساختارها/اتحادیه هایی که من به آنها رسیدم و غیره این یک درس دردناک بود. نکته اینجاست: اگر کسی می خواهد کد قابل حمل ، dev را در محدود کننده ترین هدف نامزد داشته باشد ، فقط برای اطمینان از این که در پایان پروژه با نمایشی روبرو نمی شود ، در حالی که به احتمال زیاد از نتایج آن بسیار هیجان زده است. تلاش آنها..:)
- انتقال کد C به ARMbasic غیرممکن است. این تلاش عمدتا یک تکامل غول پیکر آموزش بود. اگر کسی وقت بگذارد تا منابع C اصلی را با کد ARMbasic که من ایجاد کرده ام مقایسه کند ، باید بتواند ایده هایی در مورد نحوه اجرای مواردی که ممکن است بخشی از طراحی اصلی ARMbasic (مانند ساختارها) نباشند ارائه دهد.
- با مواردی از این قبیل در قطعات قابل کنترل برخورد کنید. به طور پیش فرض ، من کسی هستم که دوست دارم لذت را به طور منظم ببینم. تلاشی مانند این حمل و نقل و تلاش dev به احتمال زیاد چیزی نیست که بتوان در یک شب به انجام رساند. اهداف واقع بینانه تعیین کنید و در جهت همان کار کنید ، سعی کنید غرق "تصویر بزرگ" نشوید.
- تجزیه و تحلیل منطق در این تلاش بسیار مهم بود. بله ، من یک واحد میان رده پایین+ DS-Logic دارم ، اما می توانم با قاطعیت اعلام کنم که قیمت 12.50 دلار ارزان پهنای باند 24 مگاهرتز LA از آمازونیا بیش از حد کافی است. با Sigrok's PulseView (رایگان) (رمزگشایی پروتکل را انجام می دهد) و یک سیستم بسیار قوی خواهید داشت که باید در بسیاری از سناریوها مانند آنچه که من سعی کردم با این پروژه انجام دهم ، کار کند. مطمئن شوید که واحدی دارید که دارای کلیپ های آزمایشی است ، یا کلیپ های آزمایشی را جداگانه سفارش دهید ، زیرا بسیار مفید هستند (چقدر Trumpfeldian).
- یک کاوشگر منطقی ساده نیز یک ابزار بسیار مفید است. در تصویر نمای کلی فضای کار ، یک کاوشگر منطقی Archer (Radio Shack) در گوشه سمت راست پایین تصویر مشاهده می کنید. من واقعاً شگفت زده شدم که متوجه شدم چنین چیزی حتی در آزمایشگاه مجهز روزانه چقدر مفید است.
ممکن است قبلاً در این مورد به آنها پیوند داده باشم ، اما به خاطر نمی آورم و خیلی تنبل هستم. در اینجا یک پست وبلاگ وجود دارد که دارای ویدئویی از ماژول TTS در حال اجرا (Itaca uChip میزبان آن زمان در آن زمان) و پست ARMbasic Forum است که در آن می توانید کد منبع حمل شده ARMbasic را بارگیری کنید.
مراقب باشید و از هک کردن لذت ببرید!
-مگاهرتز
توصیه شده:
روی Brick Switch for Makey Makey کلیک کنید: 4 مرحله (همراه با تصاویر)
روی Brick Switch for Makey Makey کلیک کنید: این سوئیچ چاپ سه بعدی به کاربر اجازه می دهد Makey Makey را به & quot؛ اسلاید انگشت & quot؛ برای & quot؛ کلیک کنید & quot؛ در بازی یا می تواند فلش راست/چپ برای حرکت در ارائه ها باشد. افزودن پایه های ترمینال راست و چپ برای
تبدیل متن به گفتار آردوینو با استفاده از LM386 - پروژه صحبت کردن آردوینو - کتابخانه تاکی آردوینو: 5 مرحله
تبدیل متن به گفتار آردوینو با استفاده از LM386 | پروژه صحبت کردن آردوینو | کتابخانه Talkie Arduino: سلام بچه ها ، در بسیاری از پروژه ها ما به arduino نیاز داریم که چیزی شبیه به ساعت صحبت کردن یا گفتن برخی اطلاعات در این دستورالعمل را با استفاده از Arduino به گفتار تبدیل کنیم
معرفی "دئودورینو" - آردوینو با کنترل مادون قرمز در یک چوب خوشبو کننده خالی. روی عکس اول کلیک کنید: 7 مرحله
معرفی "دئودورینو" - آردوینو با کنترل مادون قرمز در یک چوب خوشبو کننده خالی. روی عکس اول کلیک کنید: اکنون به جزئیات بروید
Arduino TTS (متن به گفتار): 3 مرحله (همراه با تصاویر)
Arduino TTS (Text to Speech): سلام بچه ها امروز در این آموزش به شما آموزش می دهم که چگونه Arduino خود را بدون هیچ ماژول خارجی صحبت کنید. در اینجا می توانیم از آن در پروژه های متعددی مانند دماسنج صحبت ، روبات ها و بسیاری دیگر استفاده کنیم. بنابراین بدون اتلاف وقت زیاد ، بیایید این پروژه را شروع کنیم
یک دستگاه فلش یکبار مصرف دوربین خارجی را روی سایر اجسام نصب کنید .: 4 مرحله
یک دستگاه فلش یکبار مصرف دوربین خارجی را بر روی سایر اشیاء نصب کنید: ممکن است برخی از شما با کارهای جالب زیادی که می توانید با برد مدار دوربین یکبار مصرف انجام دهید آشنا باشید. یکی از این موارد ، نصب فلش لوله به صورت خارجی از برد مدار ، ممکن است برای شما مشکل ساز باشد. دلیل مشکلات شما