این یک پروژه بسیار جالب است که در آن قصد داریم نحوه پیاده سازی واقعیت مجازی با استفاده از آردوینو و پردازش را یاد بگیریم. برای بسیاری از ما، فیلم مرد آهنی ساخته جان فاورو همیشه الهامبخشی برای ساختن چیزهای جدیدی بوده است که زندگی ما را آسانتر و سرگرمکنندهتر میکند. من شخصاً فن آوری هایی را که در فیلم نشان داده می شوند تحسین کرده ام و همیشه می خواستم چیزی شبیه به آن بسازم. بنابراین، در این پروژه سعی کردهام چیزهای واقعیت مجازی را که در فیلم اتفاق میافتد تقلید کنم، مثلاً میتوانیم به سادگی دست خود را جلوی رایانه تکان دهیم و نشانگر را به مکان مورد نظر منتقل کنیم و برخی کارها را انجام دهیم.
در اینجا من به شما نشان خواهم داد که چگونه می توانید به سادگی دست خود را در مقابل وب کم تکان دهید و چیزی روی رایانه خود بکشید . من همچنین به شما نشان خواهم داد که چگونه می توانید با حرکت مجازی دست خود و ایجاد کلیک با انگشتان خود در هوا، چراغ ها را تغییر دهید.
مفهوم:
برای تحقق این امر، باید از قدرت آردوینو و پردازش ترکیبی استفاده کنیم. بیشتر افراد با آردوینو آشنا هستند ، اما ممکن است پردازش برای شما جدید باشد. پردازش مانند آردوینو یک برنامه کاربردی است و همچنین منبع باز و رایگان برای دانلود است. با استفاده از Processing می توانید برنامه های ساده سیستمی، برنامه های Android و بسیاری موارد دیگر ایجاد کنید. همچنین قابلیت پردازش تصویر و تشخیص صدا را نیز دارد. درست مانند آردوینو است و یادگیری آن بسیار آسان است، اما اگر در پردازش کاملاً تازه کار هستید نگران نباشید زیرا من این آموزش را نسبتاً ساده نوشته ام تا هرکسی که علاقه دارد بتواند در کمترین زمان این کار را انجام دهد.
در این آموزش ما از Processing برای ایجاد یک برنامه ساده سیستمی استفاده می کنیم که یک رابط کاربری در اختیار ما قرار می دهد و موقعیت دست ما را با استفاده از پردازش تصویر ردیابی می کند. اکنون باید با استفاده از انگشتان خود کلیک چپ و راست کلیک کنیم. برای تحقق این امر من از دو سنسور سالن (یکی در انگشت اشاره و دیگری در انگشت میانی) استفاده کرده ام که توسط آردوینو نانو خوانده می شود. آردوینو همچنین وضعیت کلیک را به صورت بی سیم از طریق بلوتوث به رایانه منتقل می کند.
ممکن است پیچیده به نظر برسد، اما، به من اعتماد کنید. آنقدرها هم که به نظر می رسد سخت نیست. بنابراین اجازه دهید نگاهی به مواد مورد نیاز برای راه اندازی این پروژه بیندازیم.
مواد مورد نیاز:
- آردوینو نانو
- سنسور هال (A3144) – 2 Nos
- یک قطعه کوچک آهنربا
- ماژول بلوتوث (HC-05/HC-06)
- باتری 9 ولت
- اتصال Wires Dot برد.
- یک جفت دستکش
- Arduino IDE (نرم افزار)
- پردازش IDE (نرم افزار)
- یک رایانه با وب کم و بلوتوث (همچنین می توانید از بلوتوث خارجی یا وب کم برای رایانه خود استفاده کنید)
شماتیک و سخت افزار:
قسمت سخت افزاری این پروژه بسیار ساده و آسان ساخته می شود. شماتیک کامل در زیر نشان داده شده است.
آردوینو، مقاومت ها و پین های چوب برگ مانند شکل زیر بر روی یک تخته نقطه لحیم شده اند.
حسگر هال و ماژول بلوتوث مطابق شکل زیر به سیم رابط لحیم شده است.
پس از آماده شدن این دو بخش، می توان آن را روی دستکش مونتاژ کرد تا استفاده از آن آسان باشد. من از دستکش های پلاستیکی یکبار مصرف استفاده کرده ام که می توان آن را از هر فروشگاه پزشکی نزدیک شما خریداری کرد. باید مطمئن شوید که آهنربا روی انگشت شست شما می آید و سنسور هال 1 و سنسور سالن 2 باید به ترتیب قبل از انگشت اشاره و میانی شما وجود داشته باشند. من از نوارهای اردک برای محکم کردن قطعات در جای خود استفاده کرده ام. هنگامی که اجزا مونتاژ شدند باید چیزی شبیه به این باشد.
حالا اجازه دهید Arduino IDE را باز کنیم و برنامه نویسی را شروع کنیم.
برنامه برای آردوینو:
هدف از این کد آردوینو خواندن وضعیت سنسور هال و پخش آنها با استفاده از ماژول بلوتوث است. همچنین باید داده ها را از بلوتوث دریافت کند و LED داخلی را بر اساس مقدار ورودی تغییر دهد. برنامه کامل در پایان این آموزش آورده شده است. در زیر چند خط هم توضیح داده ام.
if (Phs1!=HallState_1 || Phs2!=HallState_2) //Check if new keys are pressed { if (HallState_1==LOW && HallState_2==LOW) Aisha.write(1); if (HallState_1==HIGH && HallState_2==LOW) Aisha.write(2); if (HallState_1==LOW && HallState_2==HIGH) Aisha.write(3); if (HallState_1==HIGH && HallState_2==HIGH) Aisha.write(4); }
همانطور که در خطوط بالا نشان داده شده است، بر اساس وضعیت سنسور سالن، بلوتوث مقدار خاصی را می نویسد. به عنوان مثال، اگر سنسور سالن 1 بالا و سنسور سالن 2 پایین باشد، سپس ماژول "2" را از طریق ماژول بلوتوث پخش می کنیم. دقت کنید که مقادیر را در ماژول BT بنویسید و آنها را چاپ نکنید. زیرا خواندن تنها در سمت پردازش تنها در صورتی که نوشته شده باشند آسان خواهد بود. همچنین مقدار فقط در صورتی ارسال می شود که با مقدار قبلی یکسان نباشد.