ورکشاپ آموزشی - آیسی مدار
رفتن به محتوا

سیستم لیزر شو حرفه‌ای با آردوینو و موتور گالوو

رباتیک و هوشمندسازی
۰ نظر
۴۹ نفر
کد ۴۴۴۶

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

در این آموزش از تیم آیسی‌مدار، قراره با استفاده از برد آردوینو و موتورهای پرسرعت گالوو (Galvo) یه سیستم لیزر شوی واقعی بسازیم. این سیستم می‌تونه افکت‌های نقاشی کشیدن مرحله‌به‌مرحله، رندر متن با قابلیت زوم و چرخش، و حتی یه مکعب سه‌بعدی زنده رو پردازش و پخش کنه. ما تمام مراحل از دستکاری لیزر تا ساخت مدار راه‌انداز رو با هم پیش می‌بریم.

حالا وقتشه قطعات رو روی میز کار بچینی و دست‌به‌کار بشی. قدم‌به‌قدم پیش میریم تا این پروژکتور نوری فوق‌العاده رو با دست‌های خودت خلق کنی. بریم سراغ ساخت!

  • رندر کردن متن (شامل زوم، جابه‌جایی و چرخش)
  • نمایش لوگوها و نمادها
  • افکت نقاشی (رسم گام‌به‌گام اشیاء یا متن)
  • برش خطوط اضافی تصویر (Line clipping)
  • بهینه‌سازی شده برای حجم کم برنامه (فونت و اشیاء در حافظه PROGMEM) و سرعت بالا
  • نمایش یه مکعب سه‌بعدی که به صورت زنده رندر میشه
مرحله ۱

قطعات و ابزارهای لازم برای ساخت پروژکتور لیزری

  • یک عدد برد Arduino UNO یا Nano (یا مدل‌های مشابه) به همراه کابل USB
  • مجموعه موتورهای گالوو 20Kpps به همراه درایورها و منبع تغذیه اختصاصی
  • کابل برق 220 ولت (اگر منبع تغذیه گالوو کابل ندارد)
  • تراشه DAC مدل MCP4822 (مبدل دیجیتال به آنالوگ 12 بیتی دو کاناله)
  • یک عدد لیزر پوینتر قرمز رنگ
  • چند عدد گیره سوسماری (برای اتصال راحت‌تر به لیزر پوینتر)
  • برد بورد یا پی‌سی‌بی سوراخ‌دار (پروتوبورد)
  • سیم‌های جامپر برای اتصالات
  • تعدادی آجر لگو (اختیاری، برای ساخت پایه لیزر)
  • یک جعبه یا کیس مناسب برای نصب قطعات (شدیدا پیشنهاد میشه)

اگر دوست داشتی بخش اختیاری مدار تقویت‌کننده ILDA رو هم بسازی، لیست قطعاتش رو تو همون مرحله برات گذاشتم. مهم‌ترین قطعه این پروژه همون موتورهای گالوو هستن که معمولا به صورت یه پکیج کامل فروخته میشن.

کافیه تو اینترنت عبارت 20Kpps galvo رو جستجو کنی تا مدل‌های مناسب رو پیدا کنی. این مجموعه‌ها معمولا با یه منبع تغذیه دوقطبی (مثلا 15+ و 15- ولت) کار می‌کنن. اگه مدل تو بین 12 تا 15 ولت بود، باز هم هیچ مشکلی تو روند کار ایجاد نمی‌کنه.

مرحله ۲

آماده‌سازی و دستکاری لیزر پوینتر

هک کردن لیزر پوینتر

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

من روی دکمه لیزرم یه تکه نوار چسب محکم زدم تا همیشه روشن بمونه. بعدش باید درپوش باتری رو از ته لیزر باز کنی و به جای باتری، سیم‌های تغذیه رو وصل کنی. راحت‌ترین راه اینه که از دو تا گیره سوسماری استفاده کنی؛ یکی رو به فنر داخلی (قطب منفی) و اون یکی رو به بدنه فلزی (قطب مثبت) وصل کن. می‌تونی از عکس‌های بالا برای ایده گرفتن استفاده کنی.

تست کردن لیزر

برای تست، قطب مثبت لیزر رو به پین 5 ولت آردوینو و قطب منفی رو به GND وصل کن. اگه لیزر پوینترت جریان زیادی می‌کشه و وصل کردن مستقیمش به پین‌های دیجیتال آردوینو خطرناکه، باید از یه ترانزیستور یا ماسفت به عنوان سوئیچ استفاده کنی. لیزر من بدون مشکل کار کرد، چون احتمالا زیر 50 میلی‌آمپر جریان می‌کشید.

نصب و پایه‌گذاری

لیزر پوینتر باید دقیقا تو ارتفاع مناسبی قرار بگیره تا پرتوش مستقیم به آینه‌های گالوو بتابه. برای این کار باید یه پایه براش بسازی. من از چند تا آجر لگو استفاده کردم که تو عکس‌ها هم مشخصه. البته تو می‌تونی از هر متریال دیگه‌ای که دم دستت هست کمک بگیری.

مرحله ۳

راه‌اندازی و سیم‌کشی موتورهای گالوو ۲۰Kpps

مجموعه گالووی تو باید شامل این قطعات باشه:

  • دو عدد موتور گالوو برای محورهای X و Y همراه با آینه‌ها (که روی یک بلوک فلزی نصب شدن)
  • دو عدد برد درایور کاملا مشابه، یکی برای X و یکی برای Y
  • یک منبع تغذیه اختصاصی
  • کابل‌های رابط برای اتصال قطعات به هم
  • کابل‌های اتصال برای ورودی سیگنال

منبع تغذیه

تو مجموعه من، منبع تغذیه کابل برق نداشت؛ پس خودم یه کابل برق سه‌رشته‌ای استاندارد بهش اضافه کردم (یه کابل برق قدیمی کامپیوتر رو بریدم و سرش رو لخت کردم). موقع کار با این منبع تغذیه بی‌نهایت مراقب باش، چون مستقیم به برق 220 ولت شهری وصل میشه و به‌شدت خطرناکه!

بهتره حتما یه جعبه مناسب پیدا کنی و منبع تغذیه رو تو یه قسمت ایزوله و دور از دسترس قرار بدی. من یه کاور پلاستیکی روی منبع تغذیه چسبوندم تا هیچ‌کس نتونه تصادفا به ورودی ولتاژ بالا دست بزنه.

اتصال قطعات

حالا کابل‌های خروجی منبع تغذیه رو به هر دو برد درایور وصل کن و از هر درایور یه کابل به یکی از موتورهای گالوو بکش. الان باید دو تا کابل کانکتور برات باقی مونده باشه که می‌تونی اون‌ها رو به ورودی ILDA روی هر کارت درایور بزنی. اگه نخواستی از این کابل‌ها استفاده کنی، سیم‌های جامپر مادگی هم کارت رو راه میندازه. تو مرحله بعدی، این ورودی‌ها رو به خروجی‌های آردوینو و مدار DAC وصل می‌کنیم.

مرحله ۴

اتصال مبدل دیجیتال به آنالوگ (DAC) و لیزر به آردوینو

برای این پروژه، ما تراشه MCP4822 رو انتخاب کردیم (نسخه PDIP-8 که راحت روی برد بورد می‌شینه). این قطعه ارزونه، دو کانال خروجی 12 بیتی داره و مهم‌تر از همه، کتابخونه آماده‌ای براش تو آردوینو هست.

این تراشه از طریق پروتکل SPI به آردوینو وصل میشه و یه پین LATCH هم داره که باعث میشه هر دو کانال به صورت کاملا همزمان آپدیت بشن. خروجی این قطعه، دو سیگنال با ولتاژ بین 0 تا 4.096 ولته. مدار رو دقیقا مثل چیزی که تو عکس‌های بالا می‌بینی سیم‌کشی کن.

لیزر پوینتر به GND و پین D5 آردوینو وصل میشه. همون‌طور که قبلا گفتم، اگه می‌ترسی جریان زیادی از پین آردوینو کشیده بشه، حتما از یه ترانزیستور یا ماسفت به عنوان واسطه استفاده کن. اتصالات تراشه DAC به این صورته: پین CLK آردوینو (D13) به SCK در DAC (پین 3). پین MOSI آردوینو (D11) به SDI در DAC (پین 4).

پین CS آردوینو (D10) به CS در DAC (پین 2). پین D7 آردوینو به LATCH در DAC (پین 5). تغذیه 5 ولت آردوینو به VDD در DAC (پین 1) و GND آردوینو به VSS در DAC (پین 7). حالا پین‌های 6 و 8 تراشه DAC می‌مونن که خروجی‌های آنالوگ ما هستن.

یکی از خروجی‌های DAC رو به کارت درایور ILDA برای موتور X و اون یکی رو به موتور Y وصل کن. از اونجایی که کارت‌های درایور ILDA انتظار یه سیگنال دوقطبی رو دارن، اصولا ما باید یه سیگنال از 5- تا 5+ ولت تولید کنیم و یه سیگنال معکوس هم به عنوان ورودی منفی به درایور بدیم.

اما این درایورها خیلی هم سر سیگنال دوقطبی سخت‌گیر نیستن. پس می‌تونی فعلا خروجی مثبت DAC (که 0 تا 4.096 ولته) رو به ورودی ILDA IN+ وصل کنی و هر دو پین ILDA GND و ILDA IN- رو به GND آردوینو بزنی. با این روش آینه‌های گالوو تمام زاویه خودشون رو طی نمی‌کنن، اما با یک‌چهارم دامنه حرکتشون هم می‌تونن یه تصویر خوب بسازن.

کمی جلوتر تو یه مرحله اختیاری بهت یاد میدم چطوری یه سیگنال دوقطبی بی‌نقص تولید کنی. در ضمن، می‌تونی به جای این DAC از هر DAC دوکاناله دیگه‌ای که با 5 ولت و حالت Latching کار می‌کنه استفاده کنی؛ فقط باید کدهای آردوینو (فایل Laser.cpp) رو کمی تغییر بدی تا با تراشه جدیدت هماهنگ بشه.

مرحله ۵

مونتاژ نهایی و قرار دادن قطعات داخل جعبه

اگه هنوز یه جعبه یا کیس مناسب پیدا نکردی، الان بهترین زمانه. یادت نره یه دریچه جلوی جعبه ایجاد کنی تا پرتو لیزر بتونه بیاد بیرون. من از یه جعبه چوبی استفاده کردم، یه سوراخ گرد (که البته کمی زیادی بزرگ شد) بریدم و براش یه درپوش لولایی ساختم. همون‌طور که تو عکس‌ها می‌بینی، من کلی فضای خالی تو جعبه دارم، پس بهتر بود از اول یه جعبه کوچیک‌تر انتخاب می‌کردم.

وقتی همه‌چیز رو سر جاش پیچ کردی، لیزر پوینتر رو نزدیک آینه‌های گالوو قرار بده و زاویه‌ش رو طوری تنظیم کن که دقیقا به مرکز اولین آینه بتابه. پیشنهاد می‌کنم فعلا چسبش نزنی تا اگه لازم شد بعدا بتونی راحت جابه‌جاش کنی.

آردوینو مستقیما با کابل USB تغذیه میشه، پس باید به کامپیوتر یا یه شارژر موبایل وصلش کنی. می‌تونستی برق آردوینو رو از همون منبع تغذیه گالوو بگیری، اما برای این کار به یه ماژول کاهنده ولتاژ (Step-down) نیاز داشتی که به مدار اضافه بشه.

چیدمان کلی قطعاتت باید شبیه چیزی باشه که تو عکس بالا می‌بینی؛ البته اگه برد تقویت‌کننده (که تو مراحل بعد می‌سازیم) رو نادیده بگیری.

مرحله ۶

آپلود کدها روی آردوینو و اجرای لیزر شو

اگه نرم‌افزار Arduino IDE رو نصب نداری، اول اون رو دانلود و نصب کن. بعد کدهای پروژه لیزر شو رو آماده کن:

  • فایل‌های پروژه رو دانلود و از حالت فشرده خارج کن.
  • فایل اسکچ با نام LaserShow.ino رو تو نرم‌افزار آردوینو باز کن.
  • برد آردوینو رو با کابل USB به سیستم وصل کن.
  • دکمه Compile و بعد Upload رو بزن تا کدها منتقل بشن.

اگه سیم‌کشی‌ها رو درست انجام داده باشی، آردوینو باید بلافاصله لیزر شو رو شروع کنه. چون توان لیزر پوینتر ما خیلی بالا نیست، برای اینکه از تصاویر لذت ببری حتما باید اتاق رو کاملا تاریک کنی. می‌تونی بعدا لیزر قوی‌تری نصب کنی، اما این کار نیاز به رعایت ایمنی‌های خیلی سخت‌گیرانه‌تری داره.

اگه مشکلی پیش اومد، این موارد رو چک کن:

  • لیزر خاموش و روشن نمیشه؟ اتصالات و سیم‌کشی‌هاش رو چک کن.
  • نور لیزر به جای درستی از آینه‌ها نمی‌خوره؟ ارتفاع و زاویه لیزر پوینتر رو دوباره تنظیم کن.
  • گالووها حرکت نمی‌کنن؟ منبع تغذیه رو بررسی کن. برای تست، ولتاژ 5 ولت رو موقتا به جای خروجی DAC به ورودی مثبت درایور وصل کن و بعد GND رو بزن تا ببینی موتور تکون می‌خوره یا نه.
  • تصویر افقی یا عمودی آینه شده؟ تو فایل هدر Laser.h تنظیمات Flip رو دستکاری کن.
  • تصویر 90 درجه چرخیده؟ تنظیمات جابه‌جایی محور X و Y رو تو فایل Laser.h تغییر بده.

تنظیمات دقیق‌تر: می‌تونی فایل Laser.h رو باز کنی و زمان‌بندی‌ها رو با توجه به سخت‌افزار خودت بهینه کنی. زمان تأخیر روشن/خاموش شدن لیزر تو، ممکنه با مدل من فرق داشته باشه و گالووها هم واکنش‌های متفاوتی نشون بدن.

روی کارت درایور گالوو چند تا پتانسیومتر وجود داره که باهاشون میشه خطاهای حرکت (Overshoot یا Undershoot) رو تنظیم کرد. تو سیستم من، هنوز یه مشکل کوچیک وجود داشت و خطوط شکل‌های بسته دقیقا به هم نمی‌رسیدن که احتمالا به خاطر تنظیم نبودن همین پتانسیومترها بود.

مرحله ۷

ساخت سیگنال دوقطبی (Bipolar) با آپ‌امپ (اختیاری)

نکته: فقط در صورتی این مرحله رو انجام بده که می‌خوای زاویه پخش لیزر خیلی بزرگ‌تر بشه، یا دوست داری یاد بگیری چطوری یه سیگنال دوقطبی و معکوسش رو بسازی.

تو مراحل قبلی ما تونستیم سیستم رو راه بندازیم، اما سیگنال ایده‌آل ILDA رو برای درایورها نساختیم. سیگنال دوقطبی یعنی ولتاژ بین 5- ولت تا 5+ ولت نوسان کنه (یعنی دامنه 10 ولت با محوریت GND).

علاوه بر این، استاندارد ILDA می‌گه باید قرینه همین سیگنال هم تولید بشه. یعنی اگه ورودی منفی ILDA روی 5- ولته، همزمان ورودی مثبت باید روی 5+ ولت باشه.

کاری که الان می‌خوایم بکنیم ساخت یه مدار تقویت‌کننده است که سیگنال تک‌قطبی DAC (بین 0 تا 4.095 ولت) رو به دامنه دوقطبی (5- تا 5+ ولت) تبدیل کنه. برای این کار به یه منبع تغذیه دوقطبی نیاز داریم؛ خوشبختانه منبع تغذیه گالووها دقیقا همین ویژگی رو داره و از همون استفاده می‌کنیم.

این تقویت‌کننده رو باید دو بار بسازیم؛ یکی برای X و یکی برای Y (هر دو کاملا شبیه‌هم هستن). برای تقویت و معکوس کردن سیگنال آنالوگ، از آپ‌امپ (تقویت‌کننده عملیاتی) استفاده میشه. برای اینکه بتونیم مدار رو بعدا تنظیم کنیم، به جای مقاومت ثابت از پتانسیومتر برای کنترل گین (Gain) و آفست (Offset) استفاده کردیم.

اینطوری می‌تونی مدار رو دقیقا با ولتاژ خروجی DAC و منبع تغذیه‌ت کالیبره کنی. قطعاتی که نیاز داری:

  • دو عدد آپ‌امپ TL082 (مدل PDIP-8)
  • دو عدد مقاومت 1 کیلواهم
  • دو عدد مقاومت 47 کیلواهم
  • چهار عدد مقاومت 10 کیلواهم
  • چهار عدد پتانسیومتر 10 کیلواهم

نقشه مداری و شماتیک برد بوردی برای یکی از کانال‌ها رو تو عکس‌ها گذاشتم؛ تو باید این مدار رو دو بار ببندی. من تصمیم گرفتم این مدار رو به همراه DAC روی یه برد سوراخ‌دار لحیم کنم، اما استفاده از برد بورد هم کاملا جواب میده. پی‌سی‌بی نهایی من تو آخرین عکس مشخصه.

در نهایت باید دو تا خروجی DAC رو به ورودی این دو تا تقویت‌کننده وصل کنی، و خروجی‌های مثبت و منفی اون‌ها رو به ورودی درایور ILDA متصل کنی. حتما یادت باشه که GND آردوینو رو به GND منبع تغذیه گالوو متصل کنی تا زمین هر دو بخش مشترک بشه. تغذیه آپ‌امپ‌ها رو هم از همون منبع وصل کن. الان همه‌چیز آماده‌ست. می‌تونی برنامه رو اجرا کنی و با پتانسیومترها، تصویر لیزر رو به دلخواهت تنظیم کنی.

نحوه کار تقویت‌کننده

یکی از پتانسیومترها برای گین (مقیاس و ابعاد تصویر) و اون یکی برای آفست (جابه‌جایی تصویر) استفاده میشه. تراشه TL082 داخل خودش دو تا آپ‌امپ مجزا داره. آپ‌امپ اول سیگنال رو جابه‌جا و تقویت (و البته معکوس) می‌کنه و خروجی اون مستقیما به ورودی منفی (ILDA INPUT-) میره. آپ‌امپ دوم همون سیگنال رو می‌گیره و دوباره معکوس می‌کنه تا ورودی مثبت (ILDA INPUT+) رو بسازه.

مرحله ۸

ایده‌هایی برای توسعه و ارتقای پروژه

این پروژه جای کار زیادی داره و می‌تونی امکانات خیلی خفنی بهش اضافه کنی. چند تا از ایده‌هایی که می‌تونی روشون کار کنی ایناست:

  • ارتقای مغز سیستم به میکروکنترلر قدرتمندتر Teensy 3.2 و ساخت یه اسپکتروم آنالایزر صوتی زنده
  • اضافه کردن ماژول وای‌فای ESP8266 برای نمایش محتوای آنلاین روی دیوار
  • طراحی یه صفحه وب نقاشی (Etch-A-Sketch) که طرح‌های کشیده شده رو زنده به پروژکتور ارسال کنه

فایل‌های پیوست

ZIP LaserProjector-master.zip

تو میتونی اولین سازنده باشی!

اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر

این آموزش با استانداردهای اختصاصی آیسی‌مدار بازنویسی و بهینه‌سازی شده و تمامی حقوق انتشار آن متعلق به این مجموعه است و در صورت کپی یا بازنشر پیگرد قانونی خواهد داشت.

آموزش‌های مشابه

گفتگو‌های کاربران

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