سرگرمی مدارهای الکترونیک

آموزش ساخت کارت تبریک موزیکال با مموری

نوشته شده توسط اروند طباطبایی

احتمالا کارت‌ پستال تبریک و کارت‌های تولد متنوعی را تا بحال دیده‌اید که وقتی باز می‌شوند صدای ملودی ایجاد می‌کنند. در چند سال اخیر انواع جدیدی از این دستگاه وارد بازار شده است که یک نمونه موسیقی واقعی را برای ۱۲ ثانیه یا بیشتر اجرا می‌کند. من تصمیم گرفتم برای سال جدید کارتی بسازم که وقتی باز می‌شود، یک آهنگ را بطور کامل و با کیفیت بالا پخش کند. آهنگی که پخش می‌شود هر دفعه به صورت اتفاقی انتخاب گردد. این پروژه در یک جلد CD معمولی جا داده می‌شود. این پروژه به دلیل پیش بینی زمان ارسال در زمان مقرر مساله ی پیچیده‌ای است. بنابراین کل مساله این است، استفاده از مواد و ابزارهایی که به صورت آماده در خانه هست. البته این پروژه، بهترین پروژه یا کار آمدترین پروژه نیست ولی حداقل به درستی کار می‎کند. در ادامه با دیجی اسپارک همراه باشید.

اولین کار اجرای موسیقی مورد نظر است و اصلا کار جدیدی نیست. من پروژه‌هایم را که با پخش موسیقی همراه است قبلا با استفاده از میکروکنترلرهای ۸ بیتی انجام می دادم. در این مورد تنها میکرو کنترلی که من به آن دسترسی داشتم یک attiny85 بود. در ابتدا اینگونه به نظر می آمد که این کافی باشد، اما نهایتا منجر به تحمیل یک فاکتور محدود کننده شد. کد برنامه نویسی، همانطور که در بالا گفتم ساده است. یک تایمر زمانبندی شده از ۶۴ MHz PLL سیگنال PWM با فرکانس بالا که ما از آن به عنوان خروجی آنالوگ استفاده می کنیم. یک تایمر دیگر برای ایجاد clock نمونه ی ۳۲KHz استفاده شده است. در انقطاع نمونه، ما نمونه ی بعدی را از بافر چرخه ای گرفتیم و در رجیستر چرخه ی فرآیند PWM وارد کردیم. تمام این مدت، کد اصلی خواندن داده از روی SD کارت است و توقف فقط زمانی که بافر چرخه ای کامل باشد. بنابراین باز نواخته شدن موزیک تفهیم شد.

ذخیره سازی با استفاده از یک کارت میکرو SD انجام می گیرد. همچنین کتابخانه ی uFAT برای دستیابی به read-only FAT16 پایه استفاده شده است. کد تمام فایل ها با پسوند WAV را یک به یک به شمار می آورد و سپس به صورت تصادفی یکی را برای اجرا کردن انتخاب می کند. سپس لیستی از بخش های کارت را تهیه می‌کند که آن فایل را در یک آرایه ذخیره می کند (حداکثر ۸ بخش برای هر فایل پشتیبانی می شود). از هدر فایل چشم پوشی میشود، به عنوان بایت های آخرین گروه که بایت های فایل نیستند. این یک فرآیند واقعی نیست، بنابراین، از ۳۲KHz هدر فایل صرفا با طول ۲٫۲۵ms، و هر بخش از داده ی ناخواسته در پایان صرفا ۱۶ms می باشد. هیچ کدام از این دو قابل درک نیست.

ATTiny فرآیند source/sink را میتواند تنها حدود ۲۰mA روی یک قطعه GPIO انجام دهد. و از آنجایی که با ۳ ولت کار می کند (در حالی که منبع توان متشکل از ۲ باتری AAA بطور سری است)، بالاترین توانی که ما می توانیم تولید کنیم ۶۰mW می باشد که اصلا خیلی بالا نیست. در این مورد تصمیم گرفتیم تا یک آمپلی فایر اضافه کنیم. خوشبختانه سیگنال بصورت دیجیتال است و آمپلیفای کردن ساده است. تصمیم گرفتم که از یک پیکربندی full-bridge با ۴ MOSFETS و مقاومت کم برای گرفتن نوسان ولتاژ +/-۳V به اسپیکر با مقاومت سری تنها ۱۰۰-۱۵۰ میلی اهم استفاده کنم. به این معنی که الان توانی که به اسپیکر ۸ اهم میرسد می تواند تا ۵٫۸W افزایش یابد که بسیار بالاتر از حالت قبلی است. برای دستیابی به یک پل کامل، نیاز به دو سیگنال تعریفی می باشد که به طور کامل زمان اتلافی کمی داشته باشند، به دلیل اینکه MOSFETS دارای زمان سویچینگ صفر است. من قطعات GPIO بیشتری برای استفاده کردن ندارم، بنابراین سیگنال درایو تعریفی در دسترس نیست تا بتوان از زمان اتلافی بیشتری صرف نظر کرد.

خب از کارایی بالا صرف نظر می کنم و یک مبدل تنها با استفاده از FET می سازم. این مساله مسلما تاخیر را افزایش خواهد داد بنابر این در واقع دو نیمه ی پل بیشتر روشن خواهد ماند و همچنان توان بیشتری تلف می گردد. به دلیل اینکه محدودیت های پروژه به من اجازه ی استفاده از میکروکنترلهای با قطعات بیشتر را نمی دهد، این مساله قابل قبول است. با استفاده از چند قطعه SMT بر روی یک قطعه protoboard سوار شده است و بسیار خوب کار می کند. حالا بلند گو به اندازه ی کافی بلند است، طوری که در اتاق کناری شنیده می شود و همچنین هیچ اغتشاشی ندارد.

دو باتری AAA بعد از اضافه کردن چند آمپلی فایر ناکارآمد به زودی خالی می شوند. مساله ی نیست اگر باتری های AAA در کاور CD جا نمی شود. با توجه به طبیعت power-bungry آمپلی فایر، من تصمیم گرفتم تا از یک باتری Li-Po استفاده کنم. من در سطل قطعاتم جستجو کردم و یک باتری ۲۰۰mAh پیدا کردم، که با توجه به عمرش احتمالا برای حدود ۱۸۰mAh مناسب است. من همچنین چند قطعه SMT از پروژه ی قبل داشتم که برای ساختن یک شارژر ابتدایی کافی است که به عنوان تنظیم کننده ی ۳٫۳V استفاده می شود. این بر روی یک تکه protoboard دیگر نصب شده است و به خوبی کار کرده است. (بعدا یک LED شارژ کامل با اتصال یک LED + مقاومت مابین قطعات STAS و GND در صفحه ی شارژر اضافه شد).

روشن کردن زمانی که نمونه باز است، از ویژگیهای اصلی کارت است. من این آزمایش را با روش های مختلف انجام دادم، اما هیچ کدام از لحاظ فیزیکی قابل استفاده نیستند. آنها کاری را که من میخواستم انجام نمی دادند. من برای افزایش عمر نگهداری قطعات نیاز به یک clean break مابین باطری و رگولاتور دارم. پس از چندین آزمایش با فیوز های خودکار مقوایی اهرمها و نوار های انعطاف پذیر فلزی من یک ایده اهرم که آن را به کار خواهم بست. یک نوار فلزی انعطاف پذیر خم شده و لحیم کاری شده بطوری که بتواند با زاویه ی ۳۰ درجه از صفحه ثابت بماند. بالای آن بطور U برگشته باشد و به کف لحیم کاری شود. به این ترتیب، بدون اعمال نیروی خارجی، نیروی رو به بالا که از طرف قطعه ی پایینی به قسمت میانی قطعه ی بالایی وارد می شود تا کنتاکت ایجاد شود. زمانی که نمونه بسته شد، به سمت یک قطه ی کوچک صفحه ی پایینی فشار می دهد (بالاترین نقطه از سطح) و به آن به سمت پایین نیرو وارد می کند، تماس آن را از قطعه ی U شکل بالایی قطع می کند، که ارتفاعی به اندازه ی نمونه ی closing آن را لمس نمی کند. این کار بسیار خوب انجام می شود و به عنوان آخرین راه حل این مشکل ارایه شده است.

آموزش ساخت کارت تبریک موزیکال با مموری - دیجی اسپارک

آموزش ساخت کارت تبریک موزیکال با مموری – دیجی اسپارک

طرح نهایی دستگاه و همچنین تصویری از چگونگی به هم پیوستن آنها و یک فیلم کوتاه در اینجا مشاهده می شود. من برای معرفی اجزا از کاور  CDاستفاده کردم، که به نظر می رسد جالب باشد. جریان دریافتی در ۴ ولت تا حدود ۳۲۰ میلی آمپر هنگام پخش یک آهنگ اندازه گیری شد. برای حجم بازپخش دریافت شده، این قابل قبول تلقی گردید، به خصوص با توجه به اینکه کارت ها قابل شارژ هستند.

کد مربوطه در آرشیو موجود است و برای استفاده های غیر تجاری رایگان می باشد. برای هربار راه اندازی یک آهنگ تصادفی می تواند انتخاب گردد، با فرض اینکه کارت در مجموعه ای از دایرکتوری اصلی خود با یک سری فایل های با پسوند WAV با نرخ نمونه برداری ۳۲ کیلوهرتزی و نمونه های ۸ بیتی ، بعد از پخش به حالت توان کم خواهند رفت.  هنگام خطا مجموعه ای از بوق های خطا تولید می شود، که هر تعداد از بوق ها نشان دهنده ی خطای متفاوت می باشد. مولد عدد تصادفی یک ژنراتور congruential خطی ساده است که از مضروب ۱۶۶۴۵۲۵، عدد افزوده  ۱۰۱۳۹۰۴۲۲۳، مدول های ۴۲۹۴۹۶۷۲۹۶ و بازگشت ۱۶ بیت هر تماس استفاده می کند. داده های پیگردی در حین راه اندازی در EEPROM ذخیره شده است.

پیشرفت های آینده طرح بندی های واقعی از یک برد با تفاوت های بسیار اندک ( پین های بیشتر برای واحد محرک پل بهتر) برای داشتن طرح های تمیزتر و متفاوت تر را شامل می شود. پیشنهادات به صورت ایمیل و نظرات قابل دریافت است، البته در سایت منبع نه در سایت دانشجو کیت! اما، همانطور که باید باشد،  کارت وظایفش را به طور کامل انجام میدهد و آهنگ را با کیفیتی بالا در یک حجم قابل توجه و هر بار یک آهنگ تصادفی، پخش می کند.

لینک دریافت کدهای آی سی: http://s5.picofile.com/file/8166978192/HolidayCard.zip.html

درباره نویسنده

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

هرچه می آموزم میبینم که خیلی کم آموختم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۷ دیدگاه

    • با سلام
      ضمن تشکر از توجه شما، خیر چنین امکانی وجود ندارد. شما میتوانید با توجه به آموزش برد را خودتان بسازید.

  • سلام مطلب جالبی بود خیلی دوس داشتم بسازمش
    ولی اصلا متوجه نشدم چون تقریبا هیچ تجربه و تخصصی ندارم حیف
    موفق باشید

    • با سلام
      ضمن تشکر از توجه شما، شما میتوانید در هر مرحله که دچار مشکل شدید از همین طریق مطرح کنید، تا مرحله اجرایى در کنار شما خواهیم بود.

  • سپاسگذارم از پاسخگوییتون ?
    این که توضیحش دادینو که نمیتونم بسازم ولی برای ساختن یه کارت پستال موزیکال معمولی با همون یک موزیک کوتاه مدار آماده هست؟ یا حداقل چیزی که ساختش برا من که تجربه ندارم سخت نباشه