فهرست مطالب:
تصویری: DIY VR Treadmill- Basys3 FPGA-Digilent Contest: 3 Step
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
آیا می خواهید تردمیل VR بسازید که بتوانید برنامه ها و بازی های دسکتاپ خود را روی آن اجرا کنید؟ سپس شما به مکان مناسب آمده اید!
در بازیهای معمولی از ماوس و صفحه کلید برای تعامل با محیط استفاده می کنید. بنابراین ، ما باید سیگنال های مشابهی را با موس و صفحه کلید ارسال کنیم تا هیچ مشکلی بین تردمیل و بازی ما ایجاد نشود. به جای جدا کردن این دستگاه ها ، ما دستگاه خود را ایجاد می کنیم که می تواند آنها را تا حد ممکن شبیه سازی کند.
برای ورودی های ماوس از یک دیسک با برش های متناوب رسانا و غیر رسانا استفاده می کنیم ، که روی آن دو سیم ، با یک جابجایی کوچک ، می لغزند. هیئت مدیره سیگنال های دریافتی از سیم ها را می خواند و یکی از چهار ترکیب 00 ، 11 ، 10 ، 01 را به ما می دهد ، که می توانیم آنها را مستقیماً در حرکت چپ به راست ترجمه کنیم.
برای حرکت بالا به پایین ، به جای دیسک ، از صفحه ای با الگوی یک و 0 استفاده می کنیم.
به عنوان ورودی های ماژول که صفحه کلید را شبیه سازی می کند ، ما سوئیچ هایی روی مفصل میله ای داریم که مهار را نگه می دارد. وقتی در هر جهتی قدم می گذارید ، میله کمی خم می شود ، بنابراین سوئیچ باز می شود.
(به خاطر داشته باشید که پروژه هنوز در حال پیشرفت است و می توان آن را بهبود بخشید ، بنابراین منتظر راهنمایی هستم که بتواند آن را بهتر کند)
مرحله 1: پایه
پایه باید مرکز ثقل کمی داشته باشد ، بنابراین از مواد سنگین استفاده می شود. در مورد من ، من از گچ و یک دیسک آنتن برای ساختن یک قالب مقعر استفاده کردم ، اما می توان از وسایل دیگر (مانند توپ یوگا) استفاده کرد. پس از خشک شدن قالب ، روی دو دیسک با قطر یکسان ساخته شده از MDF یا مواد مشابه قرار داده می شود. یک فاصله بین دو دیسک MDF معرفی می شود. در بین این دیسک ها ، یک پروفیل مثلث قرار داده می شود که دارای یاتاقان در لبه ها است. مجموعه دیگری از یاتاقانها عمود بر رأسهای مثلث و مماس بر دیسک ، در بالا قرار می گیرند. برای دقت بهتر می توان از بلبرینگ های بیشتری استفاده کرد. همانطور که در تصویر سوم نشان داده شده است ، میله ای روی یکی از رأس ها قرار می گیرد. این میله مهار را نگه می دارد که بازیکن در آن قرار می گیرد.
یک میله بیرونی ثابت دیگر برای حمایت از سیم ها و همچنین به عنوان یک نقطه مرجع برای حرکت چرخشی استفاده می شود.
مرحله 2: 2 مدیریت ورودی
از نظر جعبه سیاه ، دستگاه ورودی های زیر را دارد: 4 اتصال برای شمارنده های ماوس x ، y ، 2 اتصال برای دکمه های ماوس و 4 اتصال برای کلیدهای جهت دار. خروجی با 4 پین نمایش داده می شود: 2 عدد برای اتصال PS2 موس و 2 عدد دیگر برای اتصال صفحه کلید PS2. برای توضیح بیشتر پروتکل PS2 ، می توانید سایت زیر را بررسی کنید:
به عنوان ورودی های صفحه ، من پین های دیجیتال JB (1 پایین به 0) را انتخاب کردم. با در نظر گرفتن توالی…
1. شمارش
2. شمارش پایین ؛
3. مقدار فعلی را ذخیره کنید.
ماژول Count_Type دقیقاً همین کار را انجام می دهد. اگر تغییری در ورودی ایجاد شود ، ماژول یک پیام مناسب به شمارنده 8 بیت (پیاده سازی شده در فایل 8_bit_count.vhd) ارسال می کند ، که مقدار فعلی را اضافه یا از آن کم می کند ، مگر اینکه سیگنال تنظیم مجدد دریافت شود.
از همین ایده برای حرکت بالا به پایین سر استفاده می شود ، اما به جای دیسک ، از یک پروفایل خطی کشویی با همان الگوی متناوب 0 و 1 استفاده می شود.
مرحله 3: پیاده سازی VHDL
ضمیمه های ارائه شده ماژول های زیر است:
1. Count_Type: این ماژول رمزگشایی دو سیم ورودی از دیسک یا پروفایل را توضیح می دهد ، که در مرحله دوم توضیح داده شده است.
2. 8bit_count: این ماژول پیام رمزگشایی شده از Count_Type را تفسیر کرده و شمارنده ها را افزایش یا کاهش می دهد.
3. 3bytepacket: این ماژول وضعیت دکمه های چپ و راست را مدیریت می کند و داده ها را فرمت می کند تا بتواند در بسته داده 3 بایت مورد استفاده در پروتکل PS2 معرفی شود.
4.clk12khz: این ماژول یک ساعت 12 کیلو هرتزی را اختصاص می دهد که مخصوص پروتکل PS2 است که اجزا و فرآیندهای خاصی روی آن کار می کنند.
5. MessageManager: این ماژول بسته داده 3 بایت را ارسال می کند ، آن را تفسیر می کند و پاسخ مناسب را به عنوان پاسخ به پیام رایانه ارائه می دهد.
6. PS2Interface: این ماژول پروتکل ارتباطی بین دستگاه و میزبان (PC) را به هم متصل می کند (این ماژول برای کارکرد صحیح نیاز به اشکال زدایی و ارزیابی مجدد کامل دارد).
توصیه شده:
ماوس DIY Lipo Powered: 6 Step
ماوس DIY Lipo Powered: در این پروژه Modify it ما ماوس بی سیم با باتری aa را تغییر داده و به ماوس بی سیم قابل شارژ USB تبدیل می کنیم. من می خواهم این پروژه را بسازم زیرا باتری aa برای من زیاد دوام نمی آورد. و سریع باتریش خالی میشه بنابراین من انتخاب می کنم
DIY Smart Doorbell: Code، Setup and HA Integration: 7 Step (with Pictures)
DIY Smart Doorbell: Code، Setup and HA Integration: در این پروژه ، به شما نشان خواهم داد که چگونه می توانید بدون تغییر هیچ یک از عملکردهای فعلی یا قطع سیم ، زنگ خانه عادی خود را به یک زنگ هوشمند تبدیل کنید. من از یک تخته ESP8266 به نام Wemos D1 mini استفاده خواهم کرد. در ESP8266 جدید هستید؟ به معرفی من توجه کنید
Raspberry Pi DIY Remote Intruder Detector System with Telegram: 7 Step
Raspberry Pi DIY Remote Intruder Detector System with Telegram: در این پروژه شما یک دستگاه تشخیص نفوذ ایجاد می کنید که بررسی می کند وقتی در خارج از منزل از یک سنسور PIR استفاده می کنید ، کسی داخل خانه یا اتاق شما باشد ، اگر سنسور PIR شخصی را تشخیص دهد ، به یک مورد نیاز است. (مجموعه ای) از عکس مزاحم. تصویر
DIY STEP/DIR LASER GALVO CONTROLLER: 5 مرحله (همراه با تصاویر)
DIY STEP / DIR LASER GALVO CONTROLLER: سلام ، در این دستورالعمل ، می خواهم به شما نشان دهم که چگونه می توانید رابط گام / دور خود را برای اسکنرهای لیزری گالوو استاندارد ILDA بسازید. همانطور که ممکن است بدانید من همچنین مخترع & quot؛ DIY-SLS-3D-Printer & quot؛ و & quot؛ JRLS 1000 DIY SLS-3D-P
DIY AC/ DC Hack "Mod" RD6006 Power & S06A Case W/ S-400-60 PSU Build & Upgraded DC Input: 9 Step
DIY AC/ DC Hack "Mod" RD6006 Power Supply & S06A Case W/ S-400-60 PSU Build & Upgraded DC Input: این پروژه بیشتر یک RD6006 اولیه با استفاده از یک کیف S06A و یک منبع تغذیه S-400-60 است به اما من واقعاً می خواهم انتخاب کنم که یک باتری را برای قابلیت حمل یا قطع برق متصل کنم. بنابراین من همچنین مورد را هک یا تغییر دادم تا DC را در یک باتری قبول کنم