کنسول بازی رترو: نمایشگر چوبی LED با رزبریپای
بازیهای رترو و کلاسیک همیشه جذابیت خاص خودشون رو دارن، مخصوصا اگه روی یه نمایشگر دستساز و خاص اجرا بشن! ترکیب هنرهای چوبی با قطعات الکترونیکی و برنامهنویسی، میتونه یه پروژه فوقالعاده هیجانانگیز رو خلق کنه که هر کسی با دیدنش شگفتزده میشه.
تو این پروژه قراره با استفاده از یه برد رزبریپای زیرو و کلی ریسه الایدی آدرسپذیر، یه نمایشگر ماتریسی چوبی بسازیم. این صفحه نمایش در حالت عادی فقط یه سطح چوبیه، اما وقتی روشنش میکنی، نور الایدیها از زیر لایه نازک چوب عبور میکنه و گرافیکهای پیکسلی بازیها رو به نمایش میذاره. برای نمایش امتیازات هم از یه ماژول داتماتریس جذاب استفاده میکنیم.
تیم آیسیمدار این آموزش رو جوری آماده کرده که بتونی قدمبهقدم باهاش پیش بری و یه کنسول بازی رومیزی خفن برای خودت بسازی. پس قطعات رو آماده کن تا بریم سراغ ساختش!
قطعات موردنیاز
- برد رزبریپای زیرو دبلیو (Raspberry Pi Zero W - مدلهای دیگه هم جواب میده)
- ریسه الایدی آدرسپذیر WS2812B با تراکم 30 الایدی در متر (حدود 200 عدد پیکسل)
- چهار عدد ماژول داتماتریس SPI مدل MAX7219
- سیمهای جامپر و اتصالات
- دسته بازی بلوتوثی
- منبع تغذیه 5 ولت با حداقل 5 آمپر جریان
- ورق چوب MDF برای برش لیزر
- روکش چوب طبیعی نازک (Veneer) یا ورق اکریلیک مات
- خازن و مقاومت
- چند عدد پیچ و اسپیسر
برش لیزری قطعات بدنه
شاسی اصلی این نمایشگر ماتریسی از چوب MDF با ضخامت 3 میلیمتر ساخته میشه که باید با دستگاه برش لیزری برشش بدی. اگه خودت دستگاه نداری، میتونی فایل طراحی رو به کارگاههای خدمات برش لیزر بدی تا برات آماده کنن.
میتونی از مقوا یا متریالهای سبکتر هم استفاده کنی، ولی فایلهای طراحی ما دقیقا برای ضخامت 3 میلیمتر تنظیم شدن. اگه ضخامت ورق عوض بشه، باید فایلها رو هم ویرایش کنی. بیشتر قطعات به صورت کشویی تو هم چفت میشن و فقط بخشهای بیرونی نیاز به چسب چوب دارن.
خیلی مهمه که قبل از چسب زدن قطعات، حتما مدار و ماتریس رو تست کنی و مطمئن بشی کامل کار میکنه! روکش چوبی رویی هم تو مرحله آخر کار چسبونده میشه.
تو قسمت پایین و سمت راست پنل پشتی، یه بریدگی در نظر گرفته شده تا قطعات الکترونیکی همونجا نصب بشن و حتی بعد از چسبوندن روکش جلویی هم بتونی راحت بهشون دسترسی داشته باشی.
نصب ریسههای الایدی
ریسه الایدی استفاده شده تو این پروژه مدل WS2812 با تراکم 30 الایدی در متر هست که تو اکثر فروشگاههای قطعات الکترونیکی پیدا میشه و قیمت مناسبی هم داره. اگه خواستی مدل دیگهای بگیری، حتما حواست باشه تراکمش همین 30 تا در متر باشه تا دقیقا با شبکههای چوبی ماتریس ما جور دربیاد.
تیکههای برشخورده طوری طراحی شدن که ریسههای 10 سانتیمتری دقیقا توشون جا بشن. این ریسهها پشتشون چسب دوطرفه داره و بعد از تنظیم دقیق جاشون، میتونی مستقیم روی MDF بچسبونیشون. فقط یادت نره قبل از چسبوندن، جهت جریان دیتا (از پین DIN به DOUT) رو چک کنی تا برعکس نچسبونی.
الگوی سیمکشی ریسهها باید به شکل زیگزاگ باشه تا در نهایت فقط یه پین ورودی برای کل ماتریس داشته باشیم و طول سیمها هم به حداقل برسه. برای اینکه برق به خوبی بین همه ریسهها تقسیم بشه، سیمهای 5 ولت و GND هر ریسه رو به پایین ماتریس متصل کن. برای پخش کردن خطوط مثبت و منفی میتونی از سیمهای ضخیم یا تیکههای برد سوراخدار استفاده کنی.
مونتاژ بدنه چوبی
تصاویر انفجاری بالا خیلی خوب بهت کمک میکنن تا قطعات رو درست سر جای خودشون قرار بدی. فقط کافیه قدمبهقدم با عکسها پیش بری. پنل پشتی یه سری شیار داره که دیوارههای بلند و کوتاه دقیقا داخلشون چفت میشن. اگه دیدی بعضی از قطعات خیلی سفت جا میرن یا گیر میکنن، میتونی لبههاشون رو یکم سمباده بکشی تا راحتتر نصب بشن.
لحیمکاری خطوط تغذیه
برای لحیم کردن خطوط برق ریسهها، راههای مختلفی داری. میتونی از سیمهای تکی استفاده کنی یا یه شمش مسی کوچیک به عنوان ریل مشترک بسازی. تو این پروژه از تیکههای برد سوراخدار (پروتوتیپ) استفاده شده تا خطوط تغذیه خیلی تمیز به ریسهها برسند.
ریسههای WS2812B معمولا خودشون سیمهای تغذیه جداگانه دارن که میتونی از همونا برای وصل کردن ریل اصلی برق به ورودی اولین ریسه (سمت چپ تصویر) استفاده کنی.
نصب نمایشگر داتماتریس SPI
برای نشون دادن امتیازات و متنهای بازی، از یه ماژول داتماتریس با درایور MAX7219 استفاده میکنیم. این ماژول از طریق رابط SPI به رزبریپای وصل میشه. ما اینجا چهار تا ماژول 8 در 8 رو کنار هم گذاشتیم تا یه نمایشگر یکپارچه 32 در 8 پیکسلی داشته باشیم.
این ماژولها رو خیلی راحت میتونی از بازار تهیه کنی؛ حتی مدلهای به هم چسبیده 32 در 8 هم وجود داره. رنگهای مختلفی ازش تو بازار هست که ما اینجا از رنگ قرمزش استفاده کردیم.
چون ارتباط SPI مثل یه شیفترجیستر کار میکنه، ماژولها باید به صورت سری به هم وصل بشن؛ یعنی خروجی دیتای ماژول اول به ورودی دیتای ماژول دوم وصل میشه و همینطور تا آخر ادامه پیدا میکنه.
نکته مهم اینه که این نمایشگر فقط در صورتی از بیرون واضح دیده میشه که کاملا به لایه روکش چوبی چسبیده باشه؛ در غیر این صورت فقط یه هاله قرمز رنگ میبینی. پس باید این ماژول رو طوری روی بریدگی پنل پشتی نصب کنی که فاصلهاش تا سطح پنل دقیقا 30 میلیمتر باشه.
من از تیکههای اضافه چوب و چند تا پیچ استفاده کردم تا این فاصله 19 میلیمتری بین پنل پشتی و برد رو جبران کنم، اما تو میتونی از اسپیسرهای آماده هم استفاده کنی. نقشه دقیق سیمکشی این نمایشگر تو مرحله 7 برات گذاشته شده.
نصب و اتصالات برد رزبریپای
تو این پروژه از برد رزبریپای زیرو استفاده کردیم. مدلهای دیگه رزبریپای هم جواب میدن، اما مدلهای جدیدتر که وایفای و بلوتوث داخلی دارن کار رو خیلی راحتتر میکنن، چون خیلی سریع میتونی دسته بازی بیسیم رو بهشون وصل کنی. برد رو با دو تا پیچ و اسپیسر روی پنل پشتی محکم کن. برای اتصالات پینها در Raspberry Pi Zero W طبق لیست زیر عمل کن:
- پین شماره 2 برای 5 ولت
- پین شماره 6 برای GND
- پین GPIO18 برای اتصال دیتای ریسه الایدی
- پین GPIO11 به عنوان SPI CLK برای کلاک ماتریس MAX7219
- پین GPIO10 به عنوان SPI MOSI برای دیتای ورودی ماتریس (DIN)
- پین GPIO8 به عنوان SPI CS برای پین CS ماتریس
بعضیها موقع استفاده از پین GPIO18 برای الایدیها به مشکل میخورن. اگه برای تو هم اینطوری شد، از پین GPIO21 استفاده کن. فقط یادت باشه تو خط 21 کدهای برنامه باید عبارت رو به pixel_pin = board.D21 تغییر بدی.
یه نکته فنی: ریسه WS2812B برای پایه دیتای خودش (DIN) به ولتاژ منطقی 5 ولت نیاز داره، اما رزبریپای فقط 3.3 ولت میده. با اینکه تو بیشتر مواقع همین 3.3 ولت کار رو راه میندازه، ولی حتما قبل از نصب نهایی با ریسه خودت تستش کن.
اگه دیدی ریسه با 3.3 ولت روشن نمیشه یا رنگها قاطی میکنه، باید از یه مبدل سطح ولتاژ (Logic Level Converter) مثل آیسی 74HCT245 بین رزبریپای و ریسه الایدی استفاده کنی.
مدار تغذیه و سیمکشی نهایی
سیمکشیها رو دقیقا طبق نقشه انجام بده. برای تغذیه مدار از یه آداپتور دیسی 5 ولت استفاده میکنیم. برای اینکه راحت بتونی کنسول رو خاموش و روشن کنی، یه کلید راکر سر راه ورودی برق قرار بده.
از اونجایی که سیستمعامل رزبریپای اصلا از قطع شدن ناگهانی برق خوشش نمیاد، تو نرمافزار یه گزینه خاموشی ایمن (Shutdown) تعریف شده تا قبل از زدن کلید اصلی، با دسته بازی سیستم رو شاتداون کنی.
برای پین دیتای الایدی (DIN) حتما یه مقاومت سر راه رزبریپای بذار و یه خازن ظرفیت بالا (مثلا 4700 میکروفاراد) رو هم با تغذیه موازی کن تا نوسانات جریان رو بگیره.
الایدیها روی بالاترین شدت نور سفید، حدود 60 میلیآمپر جریان میکشن؛ این یعنی برای 200 تا الایدی ممکنه تا 12 آمپر جریان کشیده بشه! البته چون ما نور رو کم میکنیم و همهچیز همیشه سفید نیست، این فقط یه عدد تئوریه و مصرف واقعی خیلی کمتره، ولی بازم انتخاب منبع تغذیه قوی حیاتیه. برای اجرای بینقص این بازیها، یه آداپتور 5 ولت با 5 آمپر واقعی (25 وات) کاملا کارت رو راه میندازه.
برای محکم کردن رزبریپای و ماژول ماتریس به پنل پشتی، میتونی از تیکههای کوچیک چوب استفاده کنی و دورشون رو مهار کنی.
راهاندازی سیستمعامل رزبریپای
اول از همه نسخه لایت سیستمعامل Raspbian رو دانلود کن و روی یه کارت حافظه (حداقل 8 گیگابایت) فلش بزن. نرمافزارهای زیادی برای این کار هستن. بعد از فلش زدن، نوبت تنظیمات اولیه وایفای و دسترسی SSH میرسه. کارت حافظه رو دوباره به کامپیوترت وصل کن تا بتونی به فایلهای پارتیشن بوت دسترسی پیدا کنی.
یه فایل به اسم wpa_supplicant.conf بساز و اطلاعات شبکه وایفای خودت رو توش وارد کن تا برد بتونه به اینترنت وصل بشه. یه فایل خالی هم به اسم ssh (بدون هیچ پسوندی) بساز و تو همون پوشه بوت بذار. حالا کارت حافظه رو بذار تو رزبریپای و روشنش کن.
از طریق تنظیمات مودمت، آیپی دستگاه رو پیدا کن. با استفاده از نرمافزارهایی مثل Putty یا ترمینال خود سیستم، یه اتصال SSH به برد برقرار کن.
آیپی برد رو وارد کن تا وصل بشی. بعد از ورود، سیستمعامل رو آپدیت کن (ممکنه یکم طول بکشه). حالا باید کتابخونههای مربوط به راهاندازی الایدیها (مثل Neopixel و ws281x) و همچنین pygame رو نصب کنی.
با دستور raspi-config هم برو تو تنظیمات و رابط SPI رو فعال کن. دسته بازی بلوتوثیت رو روشن کن، مکآدرسش رو پیدا کن و به رزبریپای وصلش کن تا برای بازی آماده بشه.
حتما چک کن که دسته بازیت تو حالت جفتشدن (Pairing) باشه. رمز عبور پیشفرض رزبریپای هم کلمه raspberry هست که میتونی بعدا عوضش کنی.
کدهای پایتون و تست در حالت شبیهساز
فایلهای پایتون و تصاویر گرافیکی بازی رو باید تو یه پوشه جمع کنی. این کدها طوری نوشته شدن که میتونی تو حالت شبیهساز روی کامپیوترت هم اجراشون کنی تا بدون سختافزار، بازی رو تست کنی.
این قابلیت شبیهساز خیلی به دردت میخوره، مخصوصا اگه بخوای امکانات جدیدی به بازی اضافه کنی و نخوای مدام کدها رو روی برد انتقال بدی.
تو این حالت میتونی از کیبورد کامپیوتر به جای دسته بازی استفاده کنی و دکمهها رو مپ کنی. کلیدهای جهتنما، دکمههای کنترلی اصلی و دکمههای شروع بازی همگی قابل تنظیم هستن و میتونی محیط برنامهنویسیت رو راحت روی ویندوز بالا بیاری.
وقتی خیالت از بابت کدها راحت شد، اونا رو با دستورات انتقال فایل مثل scp به رزبریپای منتقل کن و با اجرای اسکریپت پایتون، بازی رو روی ماتریس چوبی بالا بیار.
اگه همهچیز درست کار کرد، میتونی فایل اجرایی رو تو استارتاپ سیستمعامل قرار بدی تا هر بار که دستگاه رو روشن میکنی، بازی به صورت خودکار اجرا بشه.
تست نهایی و چسباندن روکش چوبی
قبل از اینکه روکش چوبی جلویی رو بچسبونی، یه بار دیگه کل مدار و ماتریس رو روشن کن و مطمئن بشی تمام پیکسلها سالم هستن و رنگها رو درست نشون میدن. تعمیر کردن خرابیها تو این مرحله خیلی راحتتر از زمانیه که همهچیز پلمپ شده باشه.
روکشی که تو این پروژه استفاده شده، یه کاغذ چوبی نازک به اسم Microwood با ضخامت 0.1 میلیمتر هست. سمت کاغذی این روکش رو میتونی با یه چسب مایع معمولی یا چسب چوب به آرومی روی سطح MDF اصلی بچسبونی تا پنل جلویی کاملا یکپارچه به نظر برسه.
کنسول رترو آماده است!
خسته نباشی! کنسول بازی رترو و جذاب تو با اون نمایشگر مخفی چوبی آماده است. این پروژه ترکیب بینظیری از کارهای چوبی، الکترونیک و برنامهنویسی بود که حالا میتونی از نتیجهاش حسابی لذت ببری و دوستات رو شگفتزده کنی.
اپلیکیشن آیسیمدار رو حتما روی گوشیت نصب کن تا تو پروژههای بعدی هم بتونی کلی ایده خفن مثل همین پیدا کنی و با هم بسازیمشون. موفق باشی و از بازی کردن لذت ببر!
فایلهای پیوست
تو میتونی اولین سازنده باشی!
اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر
این آموزش با استانداردهای اختصاصی آیسیمدار بازنویسی و بهینهسازی شده و تمامی حقوق انتشار آن متعلق به این مجموعه است و در صورت کپی یا بازنشر پیگرد قانونی خواهد داشت.








































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