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

فوتوبوث هوشمند با رزبری پای

ابزار و گجت
۰ نظر
۴۵ نفر
کد ۴۴۶۶

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

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

پس اگه دوست داری یه گجت سرگرم‌کننده و خلاقانه برای دورهمی‌هات بسازی، وسایلت رو آماده کن تا بریم سراغ بخش‌های جذاب این پروژه و قدم‌به‌قدم این فوتوبوث رو راه بندازیم!

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

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

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

راه‌اندازی اولیه سیستم‌عامل رزبری پای

اول از همه باید خیالمون از بابت سیستم‌عامل رزبری پای راحت باشه. اگه قبلا سیستم‌عامل Raspbian رو نصب کردی و می‌تونی از طریق SSH بهش وصل بشی، مستقیم برو سراغ قدم بعدی. اما اگه هنوز این کار رو نکردی، یه کارت حافظه SD بردار و سیستم‌عامل رو روش فلش کن.

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

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

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

مرحله ۲

اتصال دوربین به سیستم

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

اول مطمئن شو که دوربینت از قابلیت Image Capture پشتیبانی می‌کنه. بعد باید gphoto2 رو نصب کنیم. از طریق ترمینال (یا همون SSH) اول سیستم رو با دستور sudo apt-get update آپدیت کن. بعد فایل اسکریپت نصب gphoto2-updater.sh رو دریافت کن.

حالا با دستور sudo chmod 755 gphoto2-updater.sh بهش دسترسی بده و با sudo ./gphoto2-updater.sh اجراش کن. برای اینکه دوربینت بدون مشکل از طریق USB کنترل بشه، باید یه سری فایل‌های سیستمی که ممکنه تداخل ایجاد کنن رو پاک کنی.

دستورات زیر رو به ترتیب بزن: sudo rm /usr/share/dbus-1/services/org.gtk.Private.GPhoto2VolumeMonitor.service و سپس sudo rm /usr/share/gvfs/mounts/gphoto2.mount رو وارد کن.

در ادامه دو فایل دیگه رو هم با sudo rm /usr/share/gvfs/remote-volume-monitors/gphoto2.monitor و sudo rm /usr/lib/gvfs/gvfs-gphoto2-volume-monitor پاک کن. بعد از این کار، رزبری پای رو با دستور sudo shutdown -r 0 ری‌استارت کن. حالا دوربین رو با کابل USB وصل کن و برای تست، دستور gphoto2 --capture-image-and-download رو بزن.

با زدن دستور ls بررسی کن؛ اگه یه فایل عکس جدید ذخیره شده باشه، یعنی دوربین با موفقیت وصل شده و کار می‌کنه!

مرحله ۳

تنظیمات پرینتر برای چاپ عکس

تو این مرحله به یه پرینتر نیاز داریم. پرینترهای تصعید رنگ (Dye Sublimation) برای چاپ سریع عکس با کیفیت خوب عالی هستن. تو این پروژه از یه پرینتر کانن مدل Selphy CP900 استفاده شده، ولی تو می‌تونی از هر مدلی که با سیستم سازگاره استفاده کنی. برای مدیریت پرینتر توی محیط لینوکس، از سیستم CUPS کمک می‌گیریم تا راحت بتونیم فایل‌ها رو برای چاپ بفرستیم.

می‌تونی چک کنی ببینی CUPS از مدل پرینترت پشتیبانی می‌کنه یا نه. مثلا مدل CP900 دقیقا تو لیست نبود، ولی با استفاده از درایور مدل مشابه یعنی SELPHY-CP770 خیلی خوب و بدون دردسر کار کرد. اول باید CUPS رو روی رزبری پای نصب کنی. توی ترمینال دستور sudo apt-get install cups رو وارد کن.

بعد از نصب، باید کاربر pi رو به گروهی که اجازه پرینت دارن اضافه کنی؛ پس دستور sudo usermod -a -G lpadmin pi رو بزن. حالا پرینتر رو با کابل USB به رزبری پای وصل کن و روشنش کن. برای انجام تنظیمات، مرورگر سیستم رو باز کن.

وارد محیط تنظیمات CUPS شو. روی بخش administration کلیک کن و add printer رو بزن. یوزرنیم و پسورد رزبری پای (معمولا pi و raspberry) رو وارد کن.

اینجا باید پرینترت رو تو لیست local printer ببینی؛ انتخابش کن و ادامه بده. یه اسم براش بذار و درایورش رو انتخاب کن. همون‌طور که گفتم، اگه مدل دقیق نبود، درایورهای مشابه رو تست کن.

تنظیمات پیش‌فرض رو تایید کن تا نصب پرینتر کامل بشه. حالا وقت تست کردنه! اول باید مطمئن بشیم که پرینتر فعاله و سیستم اون رو شناخته. دستور lpstat -p رو توی ترمینال اجرا کن.

این دستور اسم پرینترت رو نشون می‌ده. با دستور ls لیست فایل‌های پوشه اصلی رو ببین. همون فایلی که تو مرحله قبل با دوربین گرفتیم (مثلا capt0000.jpg) باید اونجا باشه.

حالا کافیه این عکس رو برای پرینت بفرستیم. دستور lp با سوئیچ d مقصد چاپ رو مشخص می‌کنه. اسم پرینتر و اسم عکست رو توی دستور جایگزین کن. دستوری شبیه به این رو اجرا کن: lp -d Canon_CP900 capt0000.jpg و منتظر بمون تا عکست چاپ بشه!

مرحله ۴

طراحی مدار و رابط کاربری فوتوبوث

رابط کاربری فوتوبوث ما خیلی ساده طراحی شده و از سه بخش اصلی تشکیل می‌شه:

  • دکمه شروع: وقتی سیستم آماده باشه روشن می‌شه و با فشار دادنش، فرآیند عکاسی استارت می‌خوره.
  • چراغ ژست گرفتن (Pose ال‌ای‌دی): به آدم‌ها می‌گه آماده بشن و درست قبل از گرفتن عکس، تندتند چشمک می‌زنه.
  • چراغ صبر کنید (Please Wait ال‌ای‌دی): وقتی سیستم در حال پردازش و ارسال عکس به پرینتره روشن می‌شه تا بقیه بدونن باید منتظر بمونن؛ اینطوری درخواست الکی ثبت نمی‌شه و رزبری پای هنگ نمی‌کنه.

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

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

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

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

مرحله ۵

نصب اسکریپت‌ها و تست نهایی دستگاه

اول پرینتر و دوربین رو از طریق یه هاب USB به رزبری پای وصل کن. بعد باید یه لیبل یا حاشیه گرافیکی برای عکس‌هات طراحی کنی. یه فایل به اسم photobooth_label.jpg بساز و اون رو توی پوشه اصلی (home) رزبری پای آپلود کن.

برای طراحی این لیبل می‌تونی از نرم‌افزارهایی مثل فتوشاپ یا ایلاستریتور استفاده کنی و یه فایل با ابعاد تقریبی 110 در 1100 پیکسل به‌صورت عمودی بسازی تا کنار عکس‌ها چاپ بشه.

این فایل رو می‌تونی با ابزارهایی مثل SCP یا WinSCP مستقیما به رزبری پای منتقل کنی. مثلا با دستور scp photobooth_label.jpg pi@10.0.1.19:~ می‌تونی سریع فایل رو جابه‌جا کنی.

حالا نوبت اسکریپت‌های پایتونه. یه پوشه با دستور mkdir -p ~/scripts/photobooth بساز و برو داخلش. اسکریپت‌های photo_booth.py و assemble_and_print رو همراه با فایل استارت‌آپ دریافت کن و اون‌ها رو داخل این پوشه قرار بده. بعد با دستور sudo chmod 755 * به همه‌شون دسترسی اجرایی بده.

فایل assemble_and_print رو با دستور sudo nano assemble_and_print باز کن و خط مربوط به پرینتر رو ویرایش کن تا اسم پرینتر خودت توش باشه. بعد با زدن کلیدهای ترکیبی Ctrl+X تغییرات رو ذخیره کن. حالا باید پوشه‌هایی برای پردازش عکس بسازیم.

با دستورهای mkdir photobooth_images و mkdir PB_archive توی مسیر اصلی دو تا پوشه ایجاد کن. برای چسباندن عکس‌ها به هم، ابزار پردازش تصویر رو با دستور sudo apt-get install imagemagick نصب کن. حالا وقت تست کردنه!

اسکریپت اصلی رو با sudo python ~/scripts/photobooth/photo_booth.py اجرا کن. اگه دکمه روشن شد، فشارش بده تا کل پروسه عکاسی و چاپ رو ببینی. اگه همه‌چیز درست بود، باید کاری کنیم که سیستم خودکار بالا بیاد. برای اینکه فوتوبوث بدون نیاز به کیبورد و کامپیوتر کار کنه، فایل rc.local رو با دستور sudo nano /etc/rc.local باز کن.

خط /home/pi/scripts/photobooth/startup_script & رو درست قبل از خط exit 0 اضافه کن و فایل رو ذخیره کن. حالا رزبری پای رو با sudo shutdown -r 0 ری‌استارت کن.

از این به بعد، اسکریپت فوتوبوث تو پس‌زمینه سیستم به‌طور خودکار اجرا می‌شه و تمام عکس‌هایی که می‌گیره رو توی پوشه PB_archive برات آرشیو می‌کنه!

مرحله ۶

فوتوبوث تو آماده‌ست؛ مهمونی رو شروع کن!

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

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

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

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

ZIP gphoto2-updater-master.zip

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

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

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

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

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

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