جدول المحتويات:

DIY VR Treadmill- Basys3 FPGA-Digilent Contest: 3 Steps
DIY VR Treadmill- Basys3 FPGA-Digilent Contest: 3 Steps

فيديو: DIY VR Treadmill- Basys3 FPGA-Digilent Contest: 3 Steps

فيديو: DIY VR Treadmill- Basys3 FPGA-Digilent Contest: 3 Steps
فيديو: Cheap DIY VR slidemill setup 2024, يوليو
Anonim
DIY VR Treadmill- Basys3 FPGA-Digilent Contest
DIY VR Treadmill- Basys3 FPGA-Digilent Contest

هل تريد إنشاء جهاز جري VR يمكنك من خلاله تشغيل تطبيقات سطح المكتب والألعاب؟ ثم لقد اتيتم الى المكان الصحيح!

في الألعاب التقليدية ، تستخدم الماوس ولوحة المفاتيح للتفاعل مع البيئة. لذلك ، نحتاج إلى إرسال نفس النوع من الإشارات مثل الماوس ولوحة المفاتيح حتى لا تكون هناك مشكلات توافق بين جهاز الجري واللعبة. بدلاً من تفكيك هذه الأجهزة ، سنقوم بإنشاء جهاز خاص بنا يمكنه محاكاتها في أقرب وقت ممكن.

بالنسبة لمدخلات الماوس ، سنستخدم قرصًا به شرائح موصلة وغير موصلة بديلة ، ينزلق عليها سلكان ، مع إزاحة صغيرة. ستقرأ اللوحة الإشارات القادمة من الأسلاك ، مما يمنحنا واحدة من أربع مجموعات: 00 ، 11 ، 10 ، 01 ، والتي يمكننا ترجمتها مباشرة في حركة اليسار واليمين.

بالنسبة للحركة لأعلى ولأسفل ، فبدلاً من استخدام قرص ، سنستخدم لوحًا بنفس نمط 0 و 1.

كمدخلات للوحدة التي تحاكي لوحة المفاتيح ، سيكون لدينا مفاتيح موضوعة على مفصل قضيب سيحمل الحزام. عندما تخطو في أي اتجاه ، فإن القضيب ينحني قليلاً ، وبالتالي يفتح المفتاح.

(ضع في اعتبارك أن المشروع لا يزال قيد التقدم ويمكن تحسينه ، لذلك أنتظر أي نصيحة يمكن أن تجعله أفضل)

الخطوة 1: القاعدة

يتمركز
يتمركز
يتمركز
يتمركز
يتمركز
يتمركز

يجب أن يكون للقاعدة مركز ثقل منخفض ، وبالتالي يجب استخدام مادة ثقيلة. في حالتي ، استخدمت الجبس وقرص الهوائي لعمل قالب مقعر ، ولكن يمكن استخدام وسائل أخرى (مثل كرة اليوجا). بعد أن يجف القالب ، يتم وضعه على قرصين من نفس القطر مصنوعين من MDF أو مادة مماثلة. سيتم إدخال فاصل بين قرصي MDF. بين هذه الأقراص ، سيتم وضع ملف تعريف مثلث به محامل على الحواف. سيتم وضع مجموعة أخرى من المحامل بشكل عمودي على رؤوس المثلث والماس على القرص ، في الأعلى. للحصول على دقة أفضل ، يمكن استخدام المزيد من المحامل. سيتم وضع قضيب على أحد الرؤوس ، كما هو موضح في الصورة الثالثة. هذا القضيب يحمل الحزام الذي سيوضع فيه اللاعب.

يتم استخدام قضيب خارجي ثابت آخر لدعم الأسلاك وأيضًا كنقطة مرجعية للحركة الدورانية.

الخطوة 2: 2 إدارة الإدخال

2 إدارة المدخلات
2 إدارة المدخلات
2 إدارة المدخلات
2 إدارة المدخلات
2 إدارة المدخلات
2 إدارة المدخلات

من وجهة نظر الصندوق الأسود ، سيحتوي الجهاز على المدخلات التالية: 4 اتصالات لعدادات الماوس x و y ، وتوصلين لأزرار الماوس و 4 توصيلات لمفاتيح الأسهم. يتم تمثيل الإخراج بواسطة 4 دبابيس: 2 لتوصيل الماوس PS2 و 2 آخر لاتصال لوحة المفاتيح PS2. للحصول على وصف أكثر تفصيلاً لبروتوكول PS2 ، يمكنك التحقق من الموقع التالي:

كمدخلات للوحة ، اخترت JB (1 إلى 0) دبابيس رقمية. بالنظر إلى التسلسل … 11001100 … ، اقرأ على المدخلين ، يمكننا التمييز بين ثلاث حالات للعدادات:

1. العد.

2. العد التنازلي.

3. حفظ القيمة الحالية.

وحدة Count_Type تفعل ذلك بالضبط. إذا كان هناك تغيير في الإدخال ، فإن الوحدة ترسل رسالة مناسبة إلى عداد 8 بت (تم تنفيذه في ملف 8_bit_count.vhd) ، مما يضيف أو يستبعد من القيمة الحالية ، ما لم يتم تلقي إشارة إعادة تعيين.

يتم استخدام نفس الفكرة لحركة الرأس لأعلى ولأسفل ، ولكن بدلاً من القرص ، يجب استخدام ملف تعريف خطي منزلق بنفس نمط 0 & 1 المتناوب.

الخطوة 3: تنفيذ VHDL

تنفيذ VHDL
تنفيذ VHDL

الوحدات المرفقة بالعرض هي الوحدات التالية:

1. Count_Type: هذه الوحدة تتعامل مع فك تشفير سلكي الإدخال من القرص أو الملف الشخصي ، الموصوف في الخطوة الثانية ؛

2. 8bit_count: تفسر هذه الوحدة الرسالة التي تم فك تشفيرها من Count_Type وتزيد أو تنقص العدادات ؛

3. 3bytepacket: تدير هذه الوحدة حالة الأزرار اليمنى واليسرى وتنسيق البيانات بحيث يمكن تقديمها في حزمة البيانات 3 بايت المستخدمة في بروتوكول PS2 ؛

4.clk12khz: هذه الوحدة تعطي ساعة 12 كيلو هرتز خاصة ببروتوكول PS2 والتي تعمل عليها مكونات وعمليات معينة ؛

5. MessageManager: ترسل هذه الوحدة حزمة بيانات 3 بايت ، وتفسرها وتعطي الاستجابة المناسبة ، كرد على رسالة من الكمبيوتر.

6. واجهة PS2: تقوم هذه الوحدة بواجهة بروتوكول الاتصال بين الجهاز والمضيف (الكمبيوتر الشخصي) (تحتاج هذه الوحدة إلى بعض التصحيح وإعادة التقييم الشامل من أجل العمل بشكل صحيح).

موصى به: