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

گجت نقاشی با نور چرخشی و خطی با برد ESP32

ابزار و گجت
۰ نظر
۹۷ نفر
کد ۴۴۷۹

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

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

ما تو آیسی‌مدار این آموزش رو جوری تنظیم کردیم که بتونی قدم‌به‌قدم اتصالات رو انجام بدی و در نهایت یه گجت نوری بی‌نظیر برای عکاسی با نوردهی طولانی (Long Exposure) یا نمایشگر چرخشی بسازی. پس قطعاتت رو آماده کن تا بریم سراغ ساخت این پروژه خفن!

قطعات موردنیاز

  • تخته چوبی یا پلکسی برای ساخت بدنه اصلی (برش لیزری یا دست‌ساز)
  • برد توسعه ESP32
  • نوار ال‌ای‌دی آدرس‌پذیر (حدود نیم متر)
  • موتور DC کوچک (برای استفاده به عنوان سنسور/محور)
  • بردبورد کوچک و سیم‌های جامپر
  • دو عدد مقاومت 470 اهم و یک عدد مقاومت 180 اهم
  • پاوربانک یا باتری USB کوچک برای تغذیه
مرحله ۱

آماده‌سازی بدنه چوبی و نصب موتور

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

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

مرحله ۲

نصب نوار ال‌ای‌دی روی بدنه

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

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

حتما به فلش‌های روی نوار ال‌ای‌دی دقت کن! این فلش‌ها مسیر حرکت دیتا رو نشون می‌دن. کانکتور مادگی ورودی دیتاست و کانکتور نری خروجی محسوب می‌شه. پس باید سیم‌های کنترل رو به سمت ورودی (ابتدای فلش‌ها) لحیم کنی.

بیشتر نوارها پشتشون چسب دارن، اما برای اینکه کارت محکم‌تر و تمیزتر دربیاد، پیشنهاد می‌کنیم از سیم‌های مفتولی نازک برای بستن نوار روی چوب استفاده کنی. از بست کمربندی استفاده نکن چون باز کردنش سخته، همون سیم‌های مفتولی مشکی خیلی بهترن.

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

مرحله ۳

سیم‌کشی برد ESP32 و اتصالات اصلی

بردهای ESP32 مدل‌های مختلفی دارن که ترتیب پایه‌هاشون کمی با هم فرق می‌کنه. تو این آموزش مبنای ما برد استاندارد 38 پین هست. اگه از مدل دیگه‌ای استفاده می‌کنی حتما به نقشه پایه‌های (Pinout) همون مدل دقت کن. اولین قدم اینه که برد ESP32 رو دقیقا وسط بردبورد جا بزنی تا پایه‌ها به خوبی داخل سوراخ‌ها محکم بشن.

حالا دو تا مقاومت 470 اهم رو به صورت سری بین پایه 3.3 ولت (پایه 1) و پایه GND (پایه 38) وصل کن. نقطه اتصال بین این دو تا مقاومت رو پیدا کن و یه سیم از یکی از پایه‌های موتور به این نقطه بکش. پایه دوم موتور رو با یه سیم به پایه GPIO36 (همون پایه شماره 3 برد) وصل کن. برای اینکه سیم‌کشی‌ات تمیز بمونه، می‌تونی سیم‌های موتور رو به هم بچسبونی تا پخش و پلا نشن.

حالا بریم سراغ ال‌ای‌دی. نوار ما 3 تا سیم داره: زمین (GND)، دیتا و 5 ولت. ما باید این سیم‌ها رو به ورودی نوار (جایی که فلش‌ها از اونجا شروع می‌شن) وصل کنیم.

سیم GND نوار رو به یه سیم مشکی وصل کن. اون سر سیم مشکی رو ببر به پایه GND روی برد ESP32. سیم 5 ولت نوار رو هم به یه سیم قرمز وصل کن.

طرف دیگه سیم قرمز رو به پایه Vin 5 ولت (پایه شماره 19) متصل کن. خوبی پایه Vin اینه که برقش رو مستقیم از پورت USB می‌گیره. وقتی بعدا پاوربانک رو به USB برد وصل کنی، نوار ال‌ای‌دی هم از همین طریق برقش تأمین می‌شه. سیم وسط نوار که مربوط به دیتا هست رو به یه سیم سبز وصل کن.

سیم سبز رو باید از طریق یه مقاومت 180 اهم به پایه GPIO4 (پایه شماره 26) برد متصل کنی. حالا وقتشه برد رو با کابل به کامپیوتر وصل کنی و کدهای مربوط به این پروژه رو روش آپلود کنی.

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

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

مراحل سیم‌کشی که بالا توضیح دادیم، پایه و اساس راه‌اندازی این مداره. حتما مطمئن شو که میکروکنترلر به خوبی روی بردبورد نشسته و لق نمی‌زنه. تکرار می‌کنم: اتصال دو مقاومت 470 اهم از پایه 3.3 ولت به GND و وصل کردن موتور به نقطه وسط این دو مقاومت فراموش نشه. و پایه دیگه موتور حتما باید به GPIO36 بره تا برد بتونه سیگنال‌های حرکتی رو بخونه.

سیم‌کشی مرتب و رنگ‌بندی درست (مثل قرمز برای مثبت و مشکی برای منفی) کمک می‌کنه بعدا موقع عیب‌یابی گیج نشی. باز هم تأکید می‌کنم که سیم‌های ارتباطی رو حتما به سمت ورودی (Input) نوار ال‌ای‌دی متصل کنی. خروجی فقط برای زمانیه که بخوای یه نوار دیگه رو به ادامه این نوار اضافه کنی. اتصال سیم زمین به GND. این اتصال برای جلوگیری از نویزهای اضافی خیلی مهمه. سیم 5 ولت رو هم آماده کن.

اینکه تغذیه نوار از طریق پایه Vin تأمین بشه، کار رو برای پرتابل کردن پروژه (استفاده از پاوربانک) خیلی راحت می‌کنه. سیم دیتای سبز رنگ وظیفه انتقال الگوهای نوری رو بر عهده داره.

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

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

هنوز چسب دوطرفه پشت بردبورد رو باز نکن! اول با سیم مفتول یا کش اونو ببند تا بتونی بهترین جای ممکن برای بالانس شدن وزن رو پیدا کنی.

یه چرخ کوچیک به شفت موتور وصل کن. حالا دوربین گوشیت رو روی حالت Long Exposure (نوردهی طولانی) بذار و دستگاه رو در حالی که چرخش روی لبه میز می‌چرخه، حرکت بده.

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

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

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

مرحله ۴

عکاسی با نوردهی طولانی و تست نهایی

برای تست نهایی مدار، کافیه دوربینت رو روی حالت نوردهی طولانی تنظیم کنی و یه کلمه ساده مثل Hello World رو تست کنی. با تکون دادن دستگاه تو فضای تاریک، متن به زیبایی روی هوا نقش می‌بنده. این تکنیک سال‌هاست که تو آزمایشگاه‌های فیزیک و الکترونیک برای درک بهتر امواج و تصاویر استفاده می‌شه.

مرحله ۵

درک مفهوم موتور به عنوان سنسور

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

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

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

مرحله ۶

نمایش متن خطی با همگام‌سازی سرعت موتور

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

دوباره چاپ کلمه Hello World رو امتحان کن. چرخ متصل به موتور رو روی میز بکش. می‌بینی که چه تند حرکت کنی چه کند، تصویر کشیده یا فشرده نمی‌شه و کاملا خواناست.

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

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

مرحله ۷

تبدیل دستگاه به نمایشگر چرخشی هوشمند

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

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

اول می‌تونی با دست چوب رو بچرخونی. تو مرحله پیشرفته‌تر می‌تونی به خود موتور برق بدی تا خودش بچرخه و تبدیل به یه نمایشگر POV کاملا مستقل بشه.

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

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

مرحله ۸

کنترل ذهن و گجت‌های پوشیدنی

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

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

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

مرحله ۹

نتیجه‌گیری و اشتراک‌گذاری پروژه

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

تیم ما تو آیسی‌مدار بی‌صبرانه منتظره تا نتیجه کار تو رو ببینه. حتما دوربینت رو روی حالت نوردهی طولانی بذار، با گجتی که ساختی یه عکس خفن بگیر و اونو تو اپلیکیشن آیسی‌مدار با بقیه کاربرها به اشتراک بذار. موفق باشی و پرنور! IEEE, 2020. [3] Mann, S., Do, P. V., Garcia, D. 1-6). IEEE.

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

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

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

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

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

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