جذاب آردوینو: ساخت مکعب LED رنگی سهبعدی (سایز 8x8x8)
یکی از جذابترین پروژههای الکترونیکی که هر کسی رو میخکوب میکنه، مکعبهای نوری سهبعدیه. وقتی صدها الایدی با هم ترکیب میشن و افکتهای رنگی و متحرک میسازن، ظاهر کار به شدت حرفهای و چشمنواز میشه. خیلیها فکر میکنن ساختن چنین چیزی به خاطر سیمکشیهای پیچیده غیرممکنه، اما با یه روش اصولی میشه این غول رو به راحتی شکست داد.
تو تیم آیسیمدار همیشه دنبال این هستیم که پروژههای سخت رو به سادهترین شکل ممکن تبدیل کنیم. توی این آموزش قراره یه مکعب الایدی رنگی (RGB) با ابعاد 8 در 8 در 8 بسازیم. این یعنی استفاده از 512 عدد الایدی که با یه برد آردوینو و چند تا شیفترجیستر کنترل میشن تا افکتهای نوری بینظیری رو خلق کنن.
با استفاده از یه برد یکپارچه و یه تکنیک جالب برای خم کردن پایههای الایدی، تمام سیمکشیهای کلافهکننده و اضافی رو حذف میکنیم. پس هویه و سیمچینت رو آماده کن تا مرحلهبهمرحله بریم سراغ ساخت این مکعب نوری فوقالعاده زیبا.
قطعات موردنیاز
- 512 عدد الایدی رنگی RGB پایه بلند
- برد آردوینو (UNO یا Mega)
- آیسی شیفترجیستر 74HC595
- سیم لخت مسی (تیناندود) برای ستونها و لایهها
- منبع تغذیه 5 ولت (حداقل 2 آمپر)
- برد سوراخدار یا PCB اختصاصی پایه
- سوکت IC، پینهدر و مقاومتهای محدودکننده جریان
- هویه، سیملحیم، سیمچین و دمباریک
- دو عدد خطکش فلزی (برای ساخت شابلون)
حذف سیمکشیهای اضافی و طراحی تمیز
بزرگترین کابوس تو ساخت مکعبهای نوری، حجم وحشتناک سیمکشیهاست. وقتی با 512 عدد الایدی سروکار داری، اگر بخوای تکتک پایهها رو با سیم به مدار کنترلر وصل کنی، در نهایت با یه کلاف سردرگم از صدها سیم روبرو میشی که هم ظاهر کار رو خراب میکنه و هم عیبیابی رو غیرممکن میسازه.
خیلیها دقیقا به خاطر همین پیچیدگی و شلوغی سیمها از ساخت این پروژه منصرف میشن یا وسط کار مدارشون جواب نمیده. ما برای حل این مشکل، یه راهکار هوشمندانه داریم. به جای اینکه مکعب رو جدا بسازیم و با سیم به مدار وصل کنیم، پایههای مکعب رو مستقیما روی خود برد اصلی لحیم میکنیم.
این روش نیاز به طراحی یه مدار پایه داره که هم آیسیهای راهانداز (مثل شیفترجیسترها) رو تو خودش جا بده و هم فاصلهبندی سوراخهاش دقیقا با ابعاد مکعب هماهنگ باشه.
با این تکنیک، عملا تمام اون سیمهای کلافهکننده حذف میشن و مکعب نوری با یه استایل کاملا حرفهای و بدون سیمکشیهای معلق روی هوا، روی برد میشینه.
برد راهانداز یکپارچه برای مکعب نوری
برای کنترل این تعداد الایدی، به یه مغز متفکر و یه سری بازوی اجرایی نیاز داریم. میکروکنترلر (مثل آردوینو) به تنهایی پینهای کافی برای روشن کردن این همه الایدی نداره، بنابراین از شیفترجیسترها به عنوان مدار درایور استفاده میکنیم تا بتونیم با تعداد کمی پین، کنترل کاملی روی ماتریس نوری داشته باشیم.
طراحی برد پایه باید طوری باشه که سیگنالهای دیتا به صورت آبشاری از یه آیسی به آیسی بعدی منتقل بشن. علاوه بر این، برای کنترل لایههای افقی (کاتدها یا آندهای مشترک)، از ترانزیستورهای قدرت یا ماسفتها روی همین برد استفاده میشه تا بتونن جریان کل لایه رو تحمل کنن.
بهتره تمام قطعات کنترلی زیر فضایی قرار بگیرن که خود مکعب نهایی نصب میشه. این کار باعث میشه برد ما کمترین فضای ممکن رو اشغال کنه. با این طراحی یکپارچه، فقط کافیه آردوینو رو با چند تا پینهدر به این مدار وصل کنی تا مکعبت شروع به رقص نور کنه.
مونتاژ قطعات روی برد اصلی
قبل از اینکه درگیر ساخت خود مکعب و خم کردن پایههای الایدی بشیم، اول باید برد کنترلی رو آماده کنیم. طبق معمول لحیمکاری، از قطعات با ارتفاع کمتر شروع کن. اول مقاومتها و خازنهای فیلتر رو سر جای خودشون نصب کن.
نکته خیلی مهم اینه که برای تمام آیسیها و شیفترجیسترها حتما از سوکت استفاده کنی. اصلا آیسیها رو مستقیم به برد لحیم نکن تا اگه قطعهای سوخت یا مشکل داشت، راحت بتونی عوضش کنی. بعد از اون نوبت به ترانزیستورها و ترمینالهای تغذیه میرسه.
پینهدرهای مربوط به اتصال آردوینو رو هم تو آخرین مرحله لحیم کن. حالا برد پایه کاملا آماده است تا مکعب نوری روی اون سوار بشه.
اتصال آردوینو به مدار پایه
حتی با داشتن یه برد پایه فوقالعاده تمیز، بازم باید آردوینو رو به نحوی به این مدار متصل کنی. میتونی از سیمهای جامپر کوتاه برای اتصال پینهای دیتای آردوینو به ورودی شیفترجیسترها استفاده کنی، اما راه حرفهایتر اینه که پینهدرها رو طوری روی مدار در نظر بگیری که برد آردوینو مثل یه شیلد مستقیما روی مدار پایه سوار بشه.
پینهای حیاتی شامل پین Clock، Latch، Enable و پینهای دیتای مربوط به رنگهای قرمز، سبز و آبی هستن. طول سیمهای ارتباطی بین آردوینو و برد راهانداز باید در کوتاهترین حالت ممکن باشه. فرکانس انتقال دیتا برای رفرش کردن 512 عدد الایدی نسبتا بالاست و سیمهای بلند میتونن باعث ایجاد نویز و چشمکزدنهای ناخواسته تو مکعب بشن.
برای کنترل لایهها هم از پینهای دیجیتال جداگانه آردوینو استفاده میکنیم تا هر لایه تو کسری از ثانیه روشن و خاموش بشه و خطای دید باعث بشه کل مکعب یکپارچه به نظر برسه.
اگه میخوای پروژه خیلی جمعوجور بشه، حتی میتونی به جای آردوینو کامل، از پردازنده ATmega328P به صورت خام (Standalone) روی همون برد پایه استفاده کنی. با این کار هزینههات کمتر میشه و دیگه نیازی نیست یه برد آردوینو رو برای همیشه درگیر این پروژه کنی.
تأمین توان و منبع تغذیه مدار
شاید فکر کنی 512 عدد الایدی رنگی به یه پاور غولپیکر نیاز داره، اما به خاطر روش مالتیپلکسینگ (روشن شدن لایهبهلایه با سرعت بالا)، جریان مصرفی خیلی پایینتر از اون چیزیه که محاسبه میکنی. یه آداپتور دیواری استاندارد 5 ولت با جریان خروجی حداقل 2 تا 3 آمپر برای روشن کردن این مکعب با روشنایی ایدهآل کاملا کافیه. خیلی مراقب باش که ولتاژ تغذیه حتما و حتما 5 ولت فیکس باشه.
اگه آداپتور 9 یا 12 ولت رو اشتباها به خط 5 ولت آیسیها و الایدیها وصل کنی، تو یک ثانیه کل زحماتت دود میشه و قطعات میسوزن. اگه فقط آداپتور ولتاژ بالا (مثل شارژر لپتاپ) تو دسترست هست، حتما باید از یه ماژول کاهنده ولتاژ سویچینگ تو ورودی مدار استفاده کنی. این ماژولها میتونن ولتاژهای 12 تا 24 ولت رو دریافت کنن و یه 5 ولت ترتمیز با آمپر بالا بهت تحویل بدن.
در نهایت یادت باشه تغذیه آردوینو رو هم از همین 5 ولت رگولهشده تأمین کنی و خطوط GND رو حتما به هم متصل نگهداری.
استراتژی مونتاژ سهبعدی
حالا میرسیم به چالشبرانگیزترین قسمت ماجرا، یعنی مونتاژ خود مکعب. خیلیها اشتباه میکنن و سعی میکنن مکعب رو به صورت لایههای افقی بسازن و بعد روی هم سوار کنن، اما این روش کار رو به شدت سخت و ناپایدار میکنه. بهترین روش اینه که مکعب رو پنل به پنل به صورت عمودی بسازی و روی مدار پایه نصب کنی.
پنل اول که بهش پنل Master میگیم رو در نظر بگیر. این پنل از 8 تا ستون عمودی (هر کدوم 8 تا الایدی) تشکیل میشه. با نصب اولین پنل روی مدار پایه، میتونی سریعا اتصالات لایهها رو برقرار کنی و قبل از اینکه بقیه مکعب شلوغ بشه، مدار و کدهای اولیه رو تست کنی.
یادت نره اتصالات لایهها از پایین به بالا شمارهگذاری میشن؛ یعنی پایینترین لایه شماره 1 و بالاترین لایه شماره 8 رو میگیره.
برای اینکه فاصله بین تمام الایدیها کاملا یکنواخت دربیاد، از الایدیهای 5 میلیمتری استفاده میکنیم. فاصله مرکز تا مرکز هر الایدی تا الایدی بعدی تو تمام جهتها باید حدود 26.5 میلیمتر باشه تا در نهایت یه مکعب کاملا متقارن داشته باشیم.
برنامهنویسی، پیکربندی SPI و ارتباط سختافزاری
برای اینکه آردوینو بتونه دیتا رو با سرعت کافی برای 512 تا الایدی رنگی بفرسته، از پروتکل سختافزاری SPI استفاده میکنیم. برنامهنویسی دستی (Bit-banging) روی پینهای معمولی برای این حجم از دیتا خیلی کنده و باعث پرش تصویر میشه. پس پین دیتای ما میشه همون خروجی MOSI تو آردوینو.
برای راهاندازی، باید پین Latch شیفترجیسترها رو به یه پین دیجیتال (مثلا D2) و پین Enable رو به پین دیگه (مثلا D3) متصل کنی. پین کلاک (Clock) هم مستقیم به کلاک SPI سختافزاری آردوینو وصل میشه.
هشت پین دیجیتال دیگه هم برای کنترل لایههای 1 تا 8 نیاز داری که باید به بیس ترانزیستورهای سوئیچکننده لایهها متصل بشن. دقت کن پینهای آنالوگ مثل A0 تا A4 رو خالی بذاری تا بعدا برای اتصال میکروفون یا ماژولهای صوتی استفاده بشن. شیوه انتقال اطلاعات تو این پروژه به صورت متوالی (آبشاری) هست.
یعنی دیتای رنگ آبی، سبز و قرمز پشت سر هم وارد میشن. خروجی آیسی رنگ اول به ورودی آیسی رنگ دوم و خروجی اون به ورودی رنگ سوم وصله.
این معماری زنجیرهای باعث میشه فقط با یک خط دیتا از سمت آردوینو، بتونیم هزاران بایت اطلاعات رو بدون تأخیر به تمام آیسیها پمپاژ کنیم.
تو کدهای پیشرفتهتر، حتی میتونی دیتاهای مربوط به لایهها رو هم با یه شیفترجیستر اضافی مدیریت کنی تا پینهای کمتری از آردوینو اشغال بشه. کافیه کد مخصوص مکعب نوری RGB رو تو محیط Arduino IDE باز کنی.
یه نکته به شدت مهم موقع آپلود کد اینه که گاهی اوقات اگر پین ریست (Reset) مدار پایه و آردوینو به هم وصل باشن، آپلود از طریق کابل USB با خطا مواجه میشه.
اگه این مشکل برات پیش اومد، یه ترفند ساده داره: قبل از زدن دکمه آپلود، دکمه ریست روی آردوینو رو نگه دار و درست وقتی که نرمافزار شروع به آپلود (Uploading...) کرد، دکمه رو رها کن. یا اینکه خیلی راحت تو زمان برنامهریزی، اتصال پین ریست یا پایههای RX/TX رو موقتا قطع کن تا تداخلی ایجاد نشه. اگه میبینی تو تستهای اولیه رنگهای آبی و قرمز جابجا نشون داده میشن، جای نگرانی نیست.
این یه تفاوت تو ترتیب ارسال دیتاست و خیلی راحت میتونی با عوض کردن جای متغیرهای Red و Blue تو کدهای آردوینو، این مشکل رو حل کنی بدون اینکه دست به هویه ببری! کتابخونهها و کدهای این پروژه تو دنیای متنباز (Open Source) بهشدت توسعه پیدا کردن.
توابع مختلفی برای ترسیم خط، دایره، حرکت دادن متنهای سهبعدی و حتی رندر کردن شکلکهای مختلف نوشته شده که میتونی ازشون تو کد اصلیت استفاده کنی. ساختار برنامه طوریه که هر تصویر به عنوان یه آرایه از بیتها تو حافظه ذخیره میشه.
یه تایمر داخلی تو آردوینو دائما این آرایه رو میخونه و روی مکعب رندر میکنه، در حالی که تو حلقه اصلی (Loop) شما میتونی فقط روی تغییر دادن مقادیر آرایه و خلق افکتهای جدید تمرکز کنی. این یعنی معماری نرمافزاری کاملا ماژولاره و کار ساخت انیمیشن رو برات خیلی راحت میکنه.
حتما قبل از نصب کامل تمام پنلها، با استفاده از یه کد تست ساده، رنگهای اصلی رو روی چند تا ستون اول آزمایش کن تا از صحت سیمکشیها و اتصالات شیفترجیسترها مطمئن بشی. هیچچیز بدتر از این نیست که مکعب رو کامل بسازی و بعد متوجه بشی آیسی دیتای رنگ سبز رو اشتباه وصل کردی! در ضمن، تو مراحل بعدی میتونی با خوندن مقادیر آنالوگ، افکتها رو داینامیک کنی.
مثلا با اضافه کردن یه پتانسیومتر، سرعت پخش افکتها رو به صورت زنده تغییر بدی یا شدت روشنایی (Brightness) رو کنترل کنی. این قابلیتها به سادگی و با اضافه کردن چند خط کد به تابع وقفه (Interrupt) رفرش مکعب امکانپذیره.
آمادگی برای چالش فیزیکی مکعب
تا اینجای کار با مغز و الکترونیک مدار آشنا شدی و حالا میفهمی که چطور اطلاعات از آردوینو به سمت الایدیها پرتاب میشن. اما یه مکعب نوری هرچقدر هم برنامهنویسی خفنی داشته باشه، اگه از نظر فیزیکی کجوکوله باشه، اصلا به چشم نمیاد.
تو مراحل بعدی قراره تکنیکی رو یادت بدم که چطور بدون نیاز به ابزارهای پیچیده نجاری، تمام پایههای 512 تا الایدی رو دقیقا شبیه هم خم کنی و با کمترین خطا، یه مکعب بینقص و کاملا متقارن بسازی. بریم سراغ ساختار فیزیکی!
ساخت شابلون برای خمکردن پایهها
برای اینکه هر 8 لایه و 8 پنل دقیقا روی هم منطبق بشن، به یه شابلون (Jig) نیاز داریم. سادهترین راه اینه که از دو تا خطکش فلزی معمولی استفاده کنی. روی این خطکشها، فاصلههای 26.5 میلیمتری رو علامت بزن و با یه سوهان یا مینیفرز، شیارهای کوچیکی به عمق یک سانتیمتر ایجاد کن. علاوه بر این، به یه پایه برای خم کردن دقیق پینهای هر الایدی نیاز داری.
یه هیتسینک آلومینیومی قدیمی یا یه تکه چوب صاف بردار و یه سوراخ دقیقا به اندازه قطر الایدی (5 میلیمتر) نزدیک لبهاش دریل کن. این سوراخ قراره کلاهک الایدی رو محکم نگه داره تا وقتی با دمباریک به پایهها فشار میاری، به خود الایدی آسیبی نرسه و زاویه خم شدن پایهها کاملا 90 درجه دربیاد.
اگه سوراخی که زدی یکم گشاد بود، میتونی چند دور نوار چسب دور الایدی بپیچی تا کاملا کیپ بشه و موقع کار تکون نخوره. آمادهسازی 512 تا الایدی زمانبره. پیشنهاد میکنم این کار رو تو دستههای 64 تایی (برای هر پنل) انجام بدی تا خسته نشی. خم کردن پایهها، لحیمکاری ستونها و نصبشون روی برد پایه برای هر پنل، یه پروسه تکراریه که به دقت زیادی نیاز داره.
برای شروع، کلاهک اولین الایدی رو تو سوراخ شابلونت قرار بده طوری که بلندترین پایه (پایه آند) سمت چپ باشه.
آمادهسازی و خمکردن پایههای LED
ابتدا بلندترین پایه (آند مشترک) رو به سمت خودت بکش و کاملا مماس با سطح مقطع پایینی الایدی صافش کن. با قسمت تخت انبردست یا دمباریک، این پایه رو محکم فشار بده تا کاملا در زاویه 90 درجه قرار بگیره.
حالا نوبت سه تا پایه دیگه (کاتدهای رنگهای RGB) است. این پایهها رو باید دقیقا در جهت مخالف پایه آند (یعنی به سمت دور از خودت) خم کنی. نکته کلیدی اینجاست که بعد از خم کردن، این سه تا پایه باید کاملا موازی با هم باشن تا موقع لحیمکاری ستونها به مشکل نخوری. برای تست موازی بودن پایهها، میتونی از یه تکه برد سوراخدار کوچیک استفاده کنی.
پایهها رو وارد سوراخهای برد کن؛ اگه پایهها به نرمی از سه تا سوراخ پشتسرهم رد شدن، یعنی کارت رو بینقص انجام دادی. این کار رو با دقت برای همه الایدیها تکرار کن و حتما چشمی چکشون کن که زاویهها کج نباشن.
لحیمکاری ستونهای ۸تایی
حالا که الایدیها آماده شدن، باید 8 تا از اونا رو تو شیارهای خطکشی که ساختی قرار بدی. جاذبه اونا رو سر جاشون نگه میداره و خطکش فلزی هم مثل یه هیتسینک عالی عمل میکنه تا حرارت هویه الایدیها رو نسوزونه. برای اتصال پایههای کاتد به همدیگه، از سیم لخت قلعاندود شده استفاده کن.
سیم رو کاملا صاف روی سه ردیف پایه کاتد قرار بده. یه سر سیم رو به پایینترین پایه و سر دیگهاش رو به بالاترین پایه موقتا لحیم کن (تکخال بزن) تا سیم سر جاش فیکس بشه. بعد از اینکه خیالت از صاف بودن سیم راحت شد، تمام اتصالات مابین رو به طور کامل لحیم کن. دقت کن که فقط پایههای کاتد به هم وصل میشن و پایههای آند (که به سمت دیگه خم شدن) باید کاملا آزاد بمونن.
سعی کن از روغن لحیم باکیفیت استفاده کنی تا قلع به سرعت و به تمیزی روی اتصالات بشینه. وقتی سه رشته سیم رو به پایههای کاتد لحیم کردی، یه ستون یکپارچه، محکم و زیبا داری که نماینده یه ردیف عمودی تو مکعب نوری توست. برای استحکام بیشتر، سعی کن کل طول اتصالی پایهها رو به سیم مرکزی لحیم کنی، نه فقط یه نقطه کوچیک رو.
پایههای پایینیترین الایدی رو در حد یکی دو میلیمتر بدون لحیم بذار تا بعدا بتونی راحت اونها رو وارد سوراخهای مدار پایه کنی. این تکنیک لحیمکاری طولی، ساختار مکانیکی ستونها رو به شدت بالا میبره و از لرزش یا شکستگی مکعب تو طولانیمدت جلوگیری میکنه. حالا باید این کار رو تکرار کنی تا 8 عدد از این ستونها آماده بشن.
در نهایت میتونی اضافههای سیمهای پایین ستون رو با سیمچین یکدست کوتاه کنی.
خارجکردن ستونها و نصب روی برد
بعد از اتمام لحیمکاری، با یه فشار ملایم به خطکش، ستون آمادهشده رو آزاد کن. اگر دیدی الایدیها کمی زاویه دارن، تو همین مرحله با دست صافشون کن. پایههای آند آزاد رو هم حدود 10 درجه به سمت بیرون متمایل کن تا تو مراحل بعدی کار راحتتر بشه.
حالا نوبت اتصال این ستونها به مدار پایهست. ستونها رو یکییکی وارد سوراخهای مربوط به اولین پنل (که بهش پنل Master گفتیم) بکن. دقت کن که جهت قرارگیری الایدیها باید طوری باشه که پایههای آند رو به بیرون (دور از آیسیها) باشن. بعد از اینکه 8 تا ستون رو سر جاشون لحیم کردی، باید پایههای آند افقی رو به هم وصل کنی.
دوباره خطکش رو بین لایهها قرار بده تا ارتفاع دقیقا تنظیم بشه و یه سیم لخت ضخیمتر رو در راستای افق به پایههای آند لحیم کن. این سیمهای افقی، نقش شبکههای آند رو بازی میکنن و باعث میشن کل اون 8 تا ستون تبدیل به یه پنل دیواری مستحکم بشن.
از پایینترین لایه شروع کن و یکییکی برو بالا. اضافه پایههای آند رو هم بعد از لحیمکاری هر طبقه با کفچین قطع کن تا کار تمیز بمونه. یادت نره تو پنل اول، حتما خطوط آند لایهها رو به پینهای خروجی مدار راهانداز روی برد متصل کنی. این پنل مهمترین پنل توئه و اساس پایداری فیزیکی بقیه مکعب رو تشکیل میده.
تکمیل پنلها و اتصال سهبعدی
همین روند رو برای ساختن 7 پنل بعدی هم تکرار کن. موقع نصب هر پنل جدید روی برد، میتونی برای تراز کردنش اون رو موقتا به پنل قبلی تکیه بدی. با دست فاصله رو به صورت چشمی تنظیم کن، پایهاش رو روی برد لحیم کن و پنل رو عمودی نگه دار.
راز داشتن یه مکعب مستحکم، استفاده از مهاربندها (Braces) است. وقتی شبکههای آند پنل جدید رو ساختی، باید با تیکههای کوچیک سیم، این شبکه رو به شبکه آند پنل پشتی متصل کنی. بهتره برای هر لایه حداقل دو تا چهار مهاربند در نظر بگیری تا فشار فیزیکی پخش بشه.
سعی کن مهاربندهای دیوارههای خارجی رو فعلا نصب نکنی. وقتی هر 8 تا پنل نصب شدن، میتونی یه سیم یکپارچه رو از جلو تا عقب مکعب روی لبههای خارجی لحیم کنی. این سیمهای یکپارچه لبهها، مثل اسکلت ساختمون عمل میکنن و مقاومت کل مکعب رو تو برابر تکونهای احتمالی تضمین میکنن. البته موقع لحیمکاری مهاربندها به شدت مراقب باش که اتصالی بین دو لایه مختلف (بالا و پایین) ایجاد نشه.
مهاربند فقط باید لایه شماره X از پنل جلویی رو به لایه شماره X از پنل عقبی وصل کنه. استفاده از مهاربندهای زاویهدار (مثلا 45 درجه) هم یه ایده عالی برای خنثی کردن نیروهای برشیه. هرچقدر تو این مرحله حوصله بیشتری به خرج بدی، مکعب نهاییت زیباتر و منظمتر دیده میشه.
تست و عیبیابی لایهها
قانون طلایی تو ساخت مکعب نوری اینه: بعد از نصب هر پنل، مدار رو روشن کن و تست بگیر! اگر یه پنل رو نصب کنی و پشت پنل بعدی دفن بشه، پیدا کردن و رفع خرابیها به یه کابوس تبدیل میشه. با کدهای ساده تستی، هر رنگ رو به صورت مجزا رو پنلی که ساختی روشن کن.
اگه دیدی یه ستون زمانی که باید خاموش باشه، به صورت خیلی ضعیف یکی از رنگهاش روشن مونده، احتمالا یکی از الایدیهای اون ستون نشتی جریان معکوس داره و خرابه.
تنها راه چاره، پیدا کردن اون الایدی خراب و تعویضشه. اگه دیدی رنگهای یه الایدی جابجاست (مثلا به جای قرمز، آبی میده)، یعنی اون الایدی رو برعکس خم کردی و جا زدی. اگه کل یه لایه خاموش بود، شک نکن که اتصال مهاربندهای اون لایه به پنل قبلی یا مدار درایور قطع شده. با حوصله پنلها رو دونهدونه نصب و تست کن تا هر 8 تا پنل کامل بشن.
وقتی آخرین تست رو موفقیتآمیز پشت سر گذاشتی، میتونی با خیال راحت جشن بگیری چون ساختار فیزیکی غولآسات تموم شده!
قابلیت توسعه و ارتقای پروژه
یکی از جذابیتهای اصلی استفاده از شیفترجیسترها اینه که دستت رو برای بزرگتر کردن پروژه کاملا باز میذاره. از اونجایی که دیتای سریال به صورت زنجیرهای منتقل میشه، پین خروجی آخرین شیفترجیستر روی برد، میتونه مستقیم به ورودی یه برد کنترلر دیگه وصل بشه.
این یعنی بدون نیاز به تغییر تو ساختار میکروکنترلر یا اضافه کردن سختافزارهای پیچیده، میتونی دو تا از این مکعبها رو کنار هم بذاری و یه نمایشگر سهبعدی مستطیلی بسازی. برای توسعه لایهها به 16 لایه، فقط به چند تا مدار دیمالتیپلکسر (Demultiplexer) نیاز داری تا خطوط آدرسدهی رو مدیریت کنن.
محدودیت اصلی تو این توسعهها، فقط فرکانس کلاک آردوینو و سرعت آپدیت دیتاست که اون هم با استفاده از میکروکنترلرهای سریعتر مثل ESP32 یا STM32 قابل حله.
از اونجایی که آیسیهای درایور سطح ولتاژ منطقی 3.3 ولت رو هم پشتیبانی میکنن، میتونی از بردهای مدرنتری به جای آردوینو استفاده کنی. کافیه فقط یه سیگنال 3.3 ولت به کلاک آیسیها بدی تا مکعبت با دستورات یه رسپبریپای (Raspberry Pi) هدایت بشه.
البته برای راهاندازی ترانزیستورهای لایهها، حتما از یه آیسی بافر استفاده کن تا سطح ولتاژ 3.3 رو به 5 ولت ارتقا بده تا لایهها کامل و شفاف روشن بشن. این طراحی انعطافپذیر باعث میشه مکعب تو یه گجت الکترونیکی تمامعیار بشه که با هر تکنولوژی جدیدی قابلیت سینک شدن داره.
اگه دوست داشتی میتونی ماژولهای بلوتوث رو هم به پروژه اضافه کنی تا افکتها رو مستقیما از طریق گوشی هوشمندت کنترل کنی. خلاصه که بیس کار به قدری اصولی چیده شده که هر تغییری فقط به خلاقیت خودت تو برنامهنویسی برمیگرده. هیچ محدودیتی برای خلق افکتهای پیچیدهتر، نمایش متنهای سهبعدی و حرکت اجسام هندسی داخل مکعب وجود نداره.
استفاده از میکروکنترلر مستقل
شاید دلت نخواد یه برد کامل آردوینو رو برای همیشه به این مکعب اختصاص بدی. خبر خوب اینه که میتونی از میکروکنترلر ATmega328P به صورت Standalone استفاده کنی. این یعنی فقط خود تراشه پردازنده به همراه چند تا قطعه ارزون قیمت رو جایگزین کل برد آردوینو میکنی. تنها قطعاتی که برای راهاندازی این تراشه نیاز داری یه کریستال 16 مگاهرتز و دو تا خازن سرامیکی 22 پیکوفاراده.
این قطعات رو روی یه تیکه برد سوراخدار کوچیک (به عنوان ماژول کنترلر) لحیم کن و خطوط تغذیه رو به پایههای مربوطه تراشه برسون. برای برنامهریزی این تراشه هم کار سختی پیش رو نداری. میتونی تراشه رو موقتا روی سوکت برد آردوینو خودت بذاری.
برنامه مکعب نوری رو از طریق کابل USB روش آپلود کنی و بعد خیلی بااحتیاط تراشه رو دربیاری و روی سوکت مداری که برای مکعب ساختی نصب کنی.
البته اگه بخوای حرفهایتر عمل کنی، میتونی پینهای ICSP رو روی همون برد مستقل تعبیه کنی تا از طریق پروگرامرهای اکسترنال مستقیما به تراشه کد بدی. این روش مخصوصا وقتی میخوای پروژه رو برای استفاده دائمی قاب بگیری، به شدت تو هزینههات صرفهجویی میکنه.
حتی میتونی یه شیفترجیستر اختصاصی روی این برد کوچیک قرار بدی تا مدیریت لایهها رو به صورت سختافزاری بر عهده بگیره و پینهای کمتری از میکروکنترلر اصلی اشغال بشه.
فقط حواست باشه که پایههای RX و TX رو همیشه در دسترس بذاری تا اگه بعدا خواستی ماژول بلوتوث بهش وصل کنی، به راحتی امکانپذیر باشه. استفاده از تراشه مستقل، مدارت رو جمعوجورتر و کاملا ایزوله میکنه. به این ترتیب، آردوینوت برای پروژههای بعدی آزاد میشه و مکعب نوری هم به عنوان یه گجت کامل و مستقل گوشه اتاقت هنرنمایی میکنه.
هر زمان که نیاز به آپدیت کدهای انیمیشن داشتی، با یه کابل پروگرامر ساده همهچیز دوباره قابل برمکهریزیه. پس اگر کمی با اصول مدارات دیجیتال آشنایی داری، حتما این روش رو برای نسخه نهایی پروژهات امتحان کن. اینجوری پروژه از یه مدار آموزشی تبدیل به یه محصول مهندسیساز میشه.
افزودن ماژول صوتی و رقص نور
اینجاست که پای ماژولهای تحلیل صوتی به پروژه باز میشه. بهترین گزینه برای این کار، استفاده از تراشه معروف MSGEQ7 است. این آیسی کوچیک، یه تحلیلگر طیف صوتی (Spectrum Analyzer) سختافزاریه.
کار این تراشه اینه که سیگنال صدای ورودی (مثلا از جک هدفون یا یه میکروفون کوچیک) رو دریافت میکنه و اون رو به 7 باند فرکانسی مجزا تفکیک میکنه. آردوینو با یه پین آنالوگ میتونه دامنه هر کدوم از این فرکانسها (از بیسهای سنگین تا صداهای زیر) رو بخونه. وقتی این اطلاعات رو وارد کدهای مکعبت میکنی، تازه جادوی واقعی اتفاق میفته.
میتونی برنامهای بنویسی که ستونهای مکعب بر اساس شدت صدای بیس (Bass) ارتفاع بگیرن و رنگهاشون به سمت طیف قرمز و نارنجی متمایل بشه.
توابع برنامهنویسی برای گرفتن دادههای این آیسی خیلی سادهست و تو هر بار رفرش لایهها، دیتای صوتی هم به صورت لحظهای آپدیت میشه.
برای پیادهسازی این قابلیت، یه برد کوچیک دیگه کنار مدار اصلیت در نظر بگیر تا مدار MSGEQ7، سوکت ورودی صدا و ولومهای تنظیم حساسیت (Gain) رو روش پیاده کنی. حتی میتونی یه دکمه فیزیکی روی مدار تعبیه کنی که با فشردنش، مکعب بین حالت انیمیشنهای خودکار و حالت رقص نور موزیکال سوییچ بشه. کدهایی که برای رقص نور توسعه داده شدن به شدت بهینه هستن.
این کدها به صورت متناوب بین افکتهای صوتی جابجا میشن و هر کدوم رو برای چند ثانیه نمایش میدن تا چشم بیننده خسته نشه. شما میتونید با فشردن دوباره دکمه، افکت صوتی مورد علاقهتون رو قفل کنید. این قابلیت تعاملی، مکعب نوری تو رو تبدیل به یه اکولایزر سهبعدی بینقص میکنه. فراموش نکن که تو حالت صوتی، نویزهای تغذیه خیلی بیشتر خودشون رو نشون میدن.
پس حتما خط تغذیه مدار آنالیزور صدا رو با خازنهای سرامیکی فیلتر کن تا نویز مدارات دیجیتال روی دقت خوانش فرکانسها تأثیر نذاره. اضافه کردن این بخش کاملا اختیاریه، اما اگه دنبال یه پروژه خفن برای تحت تأثیر قرار دادن بقیه هستی، حتما تجربهاش کن. حتی با اضافه کردن یه ماژول بلوتوث صوتی تو مسیر ورودی این تراشه، کل سیستم رقص نورت وایرلس میشه.
کافیه موزیک رو از روی گوشیت پلی کنی تا مکعب نوری وسط اتاق هماهنگ با بیت آهنگ برات نمایش اجرا کنه. کتابخونههای نرمافزاری مربوط به توابع صوتی و رندر کردن اسپارکهای نوری به شدت تو اینترنت فراوون هستن و میتونی اونها رو به راحتی به کد اصلیت الحاق کنی. این حجم از شخصیسازی، همون چیزیه که پروژههای مبتنی بر آردوینو رو بینظیر میکنه.
دیگه همهچیز آمادهست تا مکعب شگفتانگیز خودت رو به رخ بکشی! All in about the size of an uno eliminator. They will work with or without a bridge board.
نکات نهایی و رفع مشکلات احتمالی
هیچ پروژهای بدون دردسر نیست، مخصوصا پروژهای که صدها نقطه اتصال لحیمی داره. اگه بعد از روشن کردن مدار دیدی هیچ چراغی روشن نمیشه، اول از همه جامپرهای تغذیه و ورودی ولتاژ 5 ولت رو چک کن. اگه دیدی یک رنگ خاص (مثلا قرمز) تو دو تا از پنلهای مجاور اصلا روشن نمیشه، مشکل از شیفترجیستر همون رنگه.
بررسی کن که آیا پایههای Latch و Enable اون تراشه به درستی وصل شدن و آیا مقاومتهای محدودکننده جریان مسیرشون سالم هستن یا نه. مشکل رایج دیگه، نویز تو مدار ماژول صوتیه. اگه دیدی رقص نور حتی تو سکوت کامل هم واکنش نشون میده، یعنی مدارت نویز منبع تغذیه رو به عنوان سیگنال صوتی برداشت میکنه.
برای حل این مشکل حتما از ماژولهای رگولاتور باکیفیت و سیمهای شیلددار برای ورودی صدا استفاده کن. اگه متوجه شدی که یک ستون یا یک ردیف تو مکعب، وقتی باید خاموش باشه یه هاله ضعیف از نور داره، یعنی یکی از الایدیهای اون ستون آسیب دیده و نشتی جریان معکوس داره. پیدا کردنش یکم سخته ولی با دقت تو کدهای تست میتونی اون تک الایدی خراب رو شناسایی کنی.
برای تعویضش، با دمباریک سیم ستون رو کمی بکش و با هویه پایه رو آزاد کن، بعد الایدی جدید رو جا بزن. به مرور زمان و با کار کردن مکعب، ممکنه اتصالات لحیمی ضعیف خودشون رو نشون بدن، پس همیشه سیمقلع رو تو دسترس داشته باش.
این پروژه قطعا به دقت و حوصله زیادی نیاز داره، اما وقتی برای اولین بار روشن میشه و افکتهای سهبعدی رو تو یه مکعب بینقص نمایش میده، تمام خستگی کار از تنت بیرون میره. حتما دستبهکار شو و این شاهکار الکترونیکی رو برای خودت بساز!
فایلهای پیوست
تو میتونی اولین سازنده باشی!
اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر
این آموزش با استانداردهای اختصاصی آیسیمدار بازنویسی و بهینهسازی شده و تمامی حقوق انتشار آن متعلق به این مجموعه است و در صورت کپی یا بازنشر پیگرد قانونی خواهد داشت.








































گفتگوهای کاربران
هنوز نظری ثبت نشده؛ تو شروع کن!
هنوز نظری ثبت نشده؛ تو شروع کن!