JoVE Logo

Sign In

A subscription to JoVE is required to view this content. Sign in or start your free trial.

In This Article

  • Summary
  • Abstract
  • Introduction
  • Protocol
  • النتائج
  • Discussion
  • Disclosures
  • Acknowledgements
  • Materials
  • References
  • Reprints and Permissions

Summary

الدوران المادي المتحكم فيه للمراقب البشري أمر مرغوب فيه لبعض التطبيقات التجريبية والترفيهية والتعليمية. تحدد هذه الورقة طريقة لتحويل كرسي المكتب الدوار إلى وسيط للتناوب المادي المتحكم فيه في بيئة الواقع الافتراضي.

Abstract

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

Introduction

تتحد العديد من الإشارات في ظل الظروف الطبيعية لإنتاج شعور بالحركة الذاتية1. يعد إنتاج مثل هذا الشعور هدفا في العديد من تطبيقات الواقع الافتراضي الترفيهية والصحية والتعليمية2،3،4،5 ، وكان مجرد فهم كيفية الجمع بين الإشارات لإعطاء شعور بالحركة الذاتية مسعى طويل الأجل لعلماء الأعصاب6،7،8،9،10،11 . الفئات الثلاث الأكثر أهمية من الإشارات لإدراك الحركة الذاتية هي البصرية والدهليزية والحس العميق1. تجتمع الثلاثة بشكل متطابق أثناء الحركة النشطة الطبيعية في العالم الحقيقي لتوفير شعور قوي وغني بالحركة الذاتية. لفهم دور كل فئة من الإشارات والتعرف على كيفية الجمع بين الإشارات ، حرم الباحثون تقليديا المراقبين التجريبيين من واحد أو أكثر من الإشارات و / أو وضعوا الإشارات في صراع مع بعضهم البعض 1,12. على سبيل المثال ، لتوفير إشارات دهليزية دورانية في حالة عدم وجود إشارات مستقبلية ، يمكن تدوير المراقب بشكل سلبي بواسطة كرسي آلي13،14،15،16. وقد ثبت أن هذه الحركة السلبية توفر إشارات مقنعة للغاية للحركة الذاتية17. يمكن أن تكون الإشارات البصرية التي يتم التحكم فيها والتي توفرها سماعة رأس الواقع الافتراضي متطابقة أو غير متوافقة مع حركة الكرسي أو غائبة تماما. يمكن إضافة إشارات الحس العميق من خلال جعل المراقب يدور الكرسي تحت قوته الخاصة ، على سبيل المثال ، عن طريق دفع الكرسي بأقدامه.

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

كما يتم تقديم تطبيق جسدي لنظام الكرسي / الواقع الافتراضي هذا. يسلط تطبيق المثال هذا الضوء على فائدة الدوران السلبي المتحكم فيه للمراقب في فهم كيفية تفاعل إشارات الحركة الذاتية لإنتاج تجارب إدراكية شاملة. كان الهدف المحدد هو اكتساب نظرة ثاقبة على حركة الوهم البصري التي تمت دراستها منذ فترة طويلة- 18،19. في الحركة المستحثة ، يتم "صد" الهدف الثابت أو المتحرك إدراكيا بعيدا عن الخلفية المتحركة. على سبيل المثال، إذا تحركت نقطة هدف حمراء عموديا لأعلى مقابل حقل من النقاط الزرقاء تتحرك إلى اليمين، فستظهر النقطة المستهدفة تتحرك لأعلى، كما هو متوقع، ولكن أيضا إلى اليسار، بعيدا عن اتجاه الخلفية المتحركة20,21. كان الهدف هو اختبار ما إذا كان التنافر ناتجا عن تفسير حركة الخلفية على أنها ناتجة عن الحركة الذاتية22,23.

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

على الرغم من وجود العديد من الأمثلة على الكراسي الدوارة الآلية لمختلف تطبيقات الواقع الافتراضي في الأدبيات 24،25،26،27،28،29 ، إلا أن المؤلفين ليسوا على دراية بمجموعة موجزة من التعليمات لصنع مثل هذا الكرسي ودمجه في تجربة VR تفاعلية. تتوفر تعليمات محدودة ل SwiVRChair29 ، والتي تشبه في هيكلها تلك المعروضة هنا ولكنها مصممة لغرض مختلف في الاعتبار ، أي أن تكون مدفوعة ببرنامج كمبيوتر لتحسين الانغماس في بيئة VR ، حيث يمكن للمستخدم تجاوز حركة الكرسي عن طريق وضع أقدامهم على الأرض. بالنظر إلى تكلفة الكراسي المتاحة تجاريا30,31 ، قد يكون جعل واحد "داخليا" خيارا أكثر قابلية للتطبيق لبعض الباحثين. بالنسبة لأولئك الذين هم في هذه الحالة ، يجب أن يكون البروتوكول أدناه مفيدا.

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

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

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

يتكون النظام الفرعي للبرنامج من برنامج Arduino لبرمجة Arduino ، وبرنامج Unity لإنشاء بيئة VR ، وبرنامج Steam لقيادة نظام VR ، و Ardity - مكون إضافي Unity يسمح ل Unity بالتواصل مع لوحة Arduino. تم تثبيت هذا البرنامج على كمبيوتر محمول Gygabyte Sabre 15WV8 يعمل بنظام التشغيل Microsoft Windows 10 Enterprise للتجربة النموذجية (الشكل 1).

يتكون نظام الواقع الافتراضي من شاشة مثبتة على الرأس (HMD) ، ووحدة تحكم محمولة باليد ، ومحطات أساسية لتحديد موضع واتجاه HMD ووحدة التحكم في الفضاء. كان نظام الواقع الافتراضي المستخدم في هذا المشروع هو HTC Vive Pro (الشكل 1).

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

Protocol

تحذير: يجب أن يتم تنفيذ العمل الكهربائي من قبل شخص مؤهل.

1. إجراء إعداد النظام الميكانيكي

  1. قم بإرفاق البكرة الرئيسية بالعمود العلوي للكرسي الدوار.
    1. قم بإزالة العمود العلوي.
      ملاحظة: يتضمن هذا عادة وضع الكرسي على جانبه وإزالة دبوس عند قاعدة الكرسي يمنع العمود العلوي من الانزلاق خارج العمود السفلي.
    2. الاحتكاك تناسب البكرة إلى العمود.
      1. استخدم الفرجار Vernier للحصول على قطر العمود. استخدم مخرطة لتجويف فتحة البكرة لتتناسب مع قطر العمود.
      2. قم بإنشاء ثقوب مترابطة للمسامير التي ستثبت البكرة على العمود. حفر ثقوب إضافية في محور البكرة لجعل ما مجموعه 4 ، ومطابقة القطر مع قطر البراغي. قم بربط الثقوب باستخدام صنبور بحيث يمكن استخدام البراغي لتثبيت البكرة على العمود ، ومطابقة الخيط مع البراغي
        ملاحظة: البديل إذا لم يكن إنشاء مؤشر ترابط ممكنا هو الحفر على طول الطريق عبر محور البكرة وعمود الكرسي ، وتشغيل مسمار على طول الطريق بمجرد تحديد الموضع الصحيح للبكرة (بعد الخطوة 1.4.6).
      3. حرك البكرة على عمود الكرسي.
      4. أدخل البراغي بشكل فضفاض (شد بعد محاذاة البكرات الرئيسية والصغيرة).
    3. ضع حزام القيادة بشكل فضفاض على عمود الكرسي العلوي (ليكون مناسبا للبكرات الرئيسية والصغيرة لاحقا).
    4. أعد توصيل عمود الكرسي العلوي بقاعدة الكرسي.
  2. قم بتوصيل حامل المحرك بالعمود السفلي للكرسي الدوار.
    1. قم بتصنيع مشبك قابل للتعديل يمكن إرفاق أقواس تركيب المحرك به.
      1. قم بتصنيع المكونين المتطابقين للمشبك - واحد لكل جانب من جوانب العمود (ليتم ضغطه مع أربعة مسامير). انظر الشكل 2 للاطلاع على الأبعاد.
      2. لكل مكون ، قم بقطع الحديد بزاوية 90 درجة إلى الطول. قم بإرفاق 4 أوراق تعمل من خلالها البراغي.
      3. قم بتدوير حواف كل ورقة (قضيب معدني) من أجل السلامة. حفر ثقوب بالقرب من نهاية كل شريط كبيرة بما يكفي لتناسب البراغي من خلالها. قم بالانحناء بزاوية 45 درجة في الموضع المناسب (سجل الشريط لجعل الانحناء أكثر دقة). قم بلحام كل قضيب بزاوية ثقوب الترباس الحديدي إلى الخارج.
        ملاحظة: بدلا من ذلك ، قد يتم تثبيت الأوراق في مكانها ، مع الحرص على عدم التسبب في نتوء يمنع مكواة الزاوية من ملامسة عمود الكرسي.
    2. تصنيع اثنين من أقواس تركيب المحرك. انظر الشكل 3 للاطلاع على الأبعاد. لكل قوس ، قم بحفر ثقبين في الشريط للتعلق بالمشبك الموصوف للتو. ثني 90 درجة في الموضع المناسب (سجل الشريط لجعل الانحناء أكثر دقة).
    3. قم بتوصيل المشبك وتركيبه بالعمود السفلي للكرسي عن طريق إدخال 4 مسامير من خلال مكونات المشبك والأقواس وتشديدها. تأكد من أن البراغي ليست ضيقة جدا إذا كان الحامل بحاجة إلى ضبط لاستيعاب عملية المحاذاة في الخطوة 1.4.6.
  3. نعلق البكرة الصغيرة على عمود المحرك.
    1. طحن المفتاح على عمود المحرك مسطح (لم يعد بارزا).
      ملاحظة: سيوفر هذا سطحا مستويا يمكن تشديد برغي البكرة عليه لمنع انزلاق البكرة حول عمود المحرك.
    2. حفر الثقب في البكرة لتتناسب مع قطر عمود المحرك.
    3. حرك البكرة فوق العمود وشد المسمار بشكل فضفاض على السطح المستوي على العمود.
  4. قم بتوصيل المحرك بقوس المحرك الموضح أعلاه.
    1. قم بإعداد كل قضيب من قضبان مرفق المحرك ال 4 عن طريق حفر ثقبين في المواضع المناسبة (يجب أن تصطف الثقوب مع ثقوب التركيب في المحرك). انظر الشكل 4 للاطلاع على الأبعاد.
    2. إذا لزم الأمر للتخليص ، فقم بقطع مقطع من الجزء العلوي من الشريطين للسماح للبكرة الموجودة على عمود المحرك بالدوران بحرية (اختياري).
    3. ضع أقواس ملحق الغطاء الصغيرة الأربعة فوق الثقوب الخارجية الأربعة. استخدمها لاحقا لتوصيل الغطاء الواقي فوق الحزام والبكرات.
    4. قم بتوصيل الصواميل والبراغي الثمانية بشكل فضفاض ، مع ترك مساحة بين القضبان العلوية والسفلية لتمرير قضبان قوس التثبيت بينهما.
    5. حرك قضبان تركيب المحرك على القوس - كل شريط علوي أعلى شريط حامل التثبيت وكل قضيب سفلي أسفله.
    6. وضع ومشبك المحرك.
      1. حرك البكرة الرئيسية أو البكرة الصغيرة أو كليهما لأعلى ولأسفل حتى تتم محاذاة البكرات الرئيسية والصغيرة أفقيا. حرك المشبك إذا لزم الأمر.
      2. ضع حزام القيادة فوق البكرات الصغيرة والرئيسية.
      3. حرك مجموعة المحرك بعيدا عن الكرسي حتى يصبح الحزام مشدودا.
      4. قم بشد 8 مسامير على قضبان توصيل المحرك لتثبيت المحرك على حامل المحرك.
      5. تشديد مسامير المشبك ومسامير البكرة.
  5. قم بتركيب غطاء لمنع أي شيء من الوقوع في نظام البكرة / الحزام.
    1. ثني جوانب الغطاء الواقي من الأكريليك وفقا للشكل 5.
      ملاحظة: البديل ، إذا لم يكن بندر الأكريليك متاحا ، هو استخدام صفائح معدنية وبندر صفيحة.
    2. قم بقص قسم ليتناسب مع عمود الكرسي وفقا للشكل 5.
    3. حفر ثقوب لتتناسب مع الثقوب الموجودة على أقواس ملحق الغطاء الصغيرة.
    4. استخدم مسامير تثبيت الغطاء الصغيرة لتوصيل الغطاء.

2. إجراء إعداد النظام الكهربائي

  1. قم بتوصيل مفتاح التشغيل / الإيقاف ومفتاح إيقاف التشغيل في حالات الطوارئ بالتيار الكهربائي. استخدم الكابلات المناسبة ذات الجهد والتيار لتوصيل موصل IEC (الموصل الذكر لكبل الطاقة الرئيسي) بمفتاح إيقاف التشغيل والتشغيل/الإيقاف في حالات الطوارئ في سلسلة (بحيث يؤدي كسر الدائرة بأي منهما إلى قطع التيار الكهربائي عن بقية المكونات).
    ملاحظة: قد تكون هناك حاجة إلى لحام.
  2. قم بتوصيل مصدر الطاقة 5 فولت DC الخاص ب Arduino بمفتاح التشغيل / الإيقاف (اختياري).
    ملاحظة: يلزم وجود كابل لحام وكابل مصنف للأنابيب الرئيسية.
  3. قم بتوصيل مصدر الطاقة DC 48 فولت لسائق الكرسي بمفتاح التشغيل / الإيقاف بالتوازي مع مصدر الطاقة 5 فولت.
    ملاحظة: يلزم وجود كابل مقدر بالكهرباء.
  4. قم بإجراء إعدادات تبديل DIP المناسبة لبرنامج تشغيل محرك السائر الهجين. على سبيل المثال:
    1. اضبط المفاتيح من 1 إلى 4 على ON ، OFF ، ON ، و ON ، على التوالي ، ل 1600 نبضة لكل دورة لمحرك السائر (كلما زاد العدد ، كلما كان التحكم أدق ولكن كلما انخفض الغطاء على سرعة الدوران اعتمادا على مدى سرعة Arduino في إنتاج النبضات).
    2. قم بالتبديل من 5 إلى OFF لاتجاه الدوران الافتراضي عكس اتجاه عقارب الساعة.
    3. قم بالتبديل 6 إلى ON لوضع حركة نقطة محرك الأقراص (PM) بدلا من وضع التحكم في ناقلات الفضاء (أو التحكم الموجه نحو الميدان ، FOC).
    4. اضبط المفاتيح 7 و 8 على OFF و OFF لمطابقة وحدة التحكم مع محرك الحلقة المغلقة 86 Series 12 NM.
  5. قم بتوصيل مشغل محرك السائر الهجين بكابلات مزود الطاقة ومشغل الكرسي.
    1. قم بتوصيل الكابلات ذات التصنيف المناسب من أطراف خرج مصدر الطاقة 48 فولت بمبيت موصل إدخال طاقة مشغل المحرك وأدخل السكن.
    2. قم بتوصيل كبلي المحرك عبر علب الموصل الخاصة بهما بالسائق.
  6. قم بتوصيل Arduino بسائق محرك السائر الهجين.
    1. استخدم أسلاك القفز المثبتة لتوصيل محطات PUL+ ("النبض" +) وDIR+ ("الاتجاه" +) وENA+ ("تمكين" +) الموجودة على مبيت موصل مشغل المحرك بالمسامير 2 و3 و5 (أرقام الدبوس اختيارية ولكن مذكورة هنا كأمثلة لاستخدامها في جميع الأنحاء) على Arduino.
    2. استخدم أسلاكا قصيرة لتوصيل أطراف PUL-وDIR-وENA- الخاصة بمبيت موصل مشغل المحرك وسلك قفز مثبت لفترة أطول لتوصيل ENA- بدبوس GND (أرضي) على Arduino.
    3. أدخل مبيت الموصل في برنامج تشغيل المحرك.
  7. قم بتوصيل Arduino بمصدر الطاقة DC 5 فولت (اختياري). استخدم أسلاك القفز المثبتة لتوصيل دبابيس GND و Vin على Arduino بأطراف 5 فولت من مصدر الطاقة 5 فولت.
  8. قم بتوصيل مقياس الجهد بالأردوينو. استخدم أسلاك القفز المثبتة لتوصيل GND و 5 V من A1 (محطة طرفية "تناظرية") على Arduino بالأطراف الثلاثة لمقياس الجهد.
    ملاحظة: مطلوب لحام.
  9. قم بتوصيل مفتاح التبديل ب Arduino. قم بتوصيل الدبوس 6 و GND على Arduino بطرفي تبديل التبديل باستخدام أسلاك القفز المثبتة.
    ملاحظة: مطلوب لحام.
  10. قم بتوصيل LED بالأردوينو.
    1. لحام المقاوم إلى طرف واحد من LED (لإسقاط الجهد على دائرة LED).
    2. قم بتوصيل المسامير 7 و GND على Arduino بنهاية المقاوم ومحطة LED الأخرى باستخدام أسلاك القفز المثبتة.
      ملاحظة: مطلوب لحام.
  11. عزل وإيواء المكونات الكهربائية / الإلكترونية. انظر الشكل 6 للحصول على صورة لنظام سكني مكتمل.
    ملاحظة: هناك العديد من الطرق لعزل مكونات الجهد العالي للنظام الكهربائي ، وحماية المكونات الإلكترونية الهشة من التلف ، واحتواء جميع هذه المكونات في مساحة يمكن التحكم فيها. فيما يلي إحدى الطرق المقترحة.
    1. قم بحفر / قطع الثقوب في جانب علبة الجهاز لموصل الطاقة IEC ، ومفتاح التشغيل / الإيقاف الرئيسي ، وكابلي التحكم في المحرك ، ومفتاح التبديل الصغير ، ومؤشر LED ، ومقياس الجهد ، ومنفذ USB في Arduino (اجعل هذا المنفذ كبيرا للسماح للهواء بالتدفق إلى العلبة للتبريد).
    2. قم بإرفاق كل مكون من هذه المكونات باستخدام الوسائل المناسبة (على سبيل المثال ، البراغي ، البراغي ، مسدس الغراء الساخن).
    3. قطع فتحات التهوية (واحدة فوق المروحة في مصدر الطاقة 48 فولت) وثقب لمفتاح الطوارئ في غطاء العلبة ؛ ثم ، قم بإرفاق مرشحات التهوية والتبديل.
    4. قم بتوصيل Arduino بقاعدة العلبة باستخدام الفواصل والبراغي. ضع بحيث يتوافق منفذ USB مع فتحة منفذ USB في العلبة.
    5. قم بتوصيل مصادر الطاقة 48 فولت و 5 فولت وسائق المحرك بقاعدة العلبة باستخدام كتل الفيلكرو والرغوة.

3. إجراء إعداد الواقع الافتراضي

  1. قم بإعداد نظام VR وفقا لتعليمات الشركة المصنعة.

4. إجراء إعداد البرنامج

  1. تثبيت وإعداد برنامج أردوينو.
    1. قم بتنزيل برنامج Arduino وتثبيته وفقا لتعليمات المطور.
    2. قم بتوصيل Arduino بالكمبيوتر باستخدام كبل USB.
    3. ضمن القائمة المنسدلة أدوات ، حدد المنفذ الذي يتم إرفاق لوحة Arduino به.
    4. ضمن القائمة نفسها، حدد اللوحة والمعالج المناسبين. تأكد من أنه يطابق اللوحة والمعالج المستخدم في القسم 2 أعلاه ، على سبيل المثال ، لوحة "Arduino Mega 2560" ومعالج "ATmega2560".
  2. برمجة لوحة Arduino للسماح بدوران الكرسي 1) عن طريق مقياس الجهد و 2) عن طريق الأوامر من الكمبيوتر عبر USB.
    1. اكتب الرمز المراد تحميله إلى معالج Arduino.
      ملاحظة: يتم تضمين مثال التعليمات البرمجية من تجربة المثال في الملف التكميلي 1 (اسم الملف: hybrid_motor_controller.ino).
    2. لاحظ معدل الباود (وسيطة للأمر Serial.Begin() ، على سبيل المثال ، 9,600.
    3. احفظ الرمز وقم بتحميله إلى لوحة Arduino باستخدام زر التحميل .
  3. اختبر أن النظام يعمل حتى الآن.
    1. قم بتوصيل النظام الفرعي الكهربائي وتشغيله.
    2. حرك مفتاح التبديل الصغير إلى موضع يتم فيه تشغيل مصباح مؤشر LED الصغير.
    3. أدر مقياس الجهد للتأكد من أنه يتحكم في سرعة الكرسي واتجاهه.
  4. قم بتثبيت وتكوين Steam و SteamVR وفقا لتعليمات المطور.
  5. تثبيت الوحدة وإعدادها.
    1. قم بتثبيت Unity وتكوينه وفقا لتعليمات المطور.
    2. افتح مشروع Unity جديدا أو موجودا (اختر نوعا، على سبيل المثال، "3D" مناسبا للتطبيق).
    3. قم بإعداد SteamVR للاستخدام في المشروع.
      1. افتح متجر الأصول (انقر على نافذة | مخزن الأصول).
      2. ابحث عن SteamVR وحدد المكون الإضافي SteamVR.
      3. انقر على إضافة إلى مواد العرض.
      4. في Unity ، افتح مدير الحزم (انقر فوق نافذة | مدير الحزم).
      5. ابحث عن SteamVR ضمن علامة التبويب أصولي .
      6. انقر فوق استيراد واتبع المطالبات لإكمال الاستيراد.
      7. انقر فوق قبول الكل إذا طلب منك إجراء تغييرات تكوينية.
      8. استيراد جهاز كاميرا Steam VR إلى المشهد. ابحث عن أصل جديد يسمى Steam VR في نافذة المشروع على شاشة المفتش. افتح Steam VR | الجاهزة.
      9. اسحب أصل [Camera Rig] إلى نافذة التسلسل الهرمي أو المشهد للسماح باستخدام سماعة رأس الواقع الافتراضي وأجهزة التحكم في اللعبة.
      10. قم بإزالة الكاميرا الرئيسية الافتراضية من التسلسل الهرمي أو المشهد لأنها ستتداخل مع كاميرا SteamVR.
  6. تثبيت وإعداد Ardity.
    1. ابحث عن Ardity في متجر Unity Asset Store وحدده للتنزيل (الخطوة 4.5.3.2 أعلاه).
    2. تحديث مستوى توافق واجهة برمجة التطبيقات.
      1. افتح إعدادات المشروع ضمن القائمة تحرير .
      2. انقر على | اللاعب إعدادات أخرى.
      3. اختر . NET 4.X في القائمة المنسدلة لمستوى توافق واجهة برمجة التطبيقات.
      4. قم بإنهاء الإعدادات وانتظر حتى تختفي رسائل الخطأ.
  7. قم بإعداد بيئة لعبة Unity.
    ملاحظة: ستكون الخطوات الدنيا التالية مطلوبة للمستخدم للتحكم في الكرسي ودمج حركة الكرسي مع تجربة الواقع الافتراضي الخاصة به.
    1. إنشاء الكائنات والوظائف اللازمة للتطبيق المحدد.
      1. قم بإنشاء كائنات بالنقر فوق GameObject وتحديد إما كائن 2D أو كائن 3D.
      2. أضف وظيفة إلى الكائن الذي تم إنشاؤه بالنقر فوق الزر إضافة مكون في نافذة المراقب للكائن وتحديد أحد الخيارات. حدد برنامج نصي جديد لإنشاء برنامج نصي C# مشابه للبرنامج النصي الموجود في الملف التكميلي 3 (اسم الملف: SetUpTrial.cs).
    2. استيراد البرنامج النصي وحدة التحكم التسلسلية إلى اللعبة.
      1. ضمن مجلد الأصول في الإطار " مشروع" ، افتح مجلد Ardity | مجلد البرامج النصية .
      2. اسحب البرنامج النصي SerialController إلى كائن اللعبة المطلوب في نافذة التسلسل الهرمي ، على سبيل المثال، كائن لعبة الخلفية .
      3. انقر فوق الكائن وقم بالتمرير لأسفل قائمة المكونات في نافذة المفتش لتحديد موقع البرنامج النصي SerialController .
      4. تأكد من تطابق اسم المنفذ ومعدل الباود مع تلك الخاصة ببرنامج Arduino المعين في الخطوتين 4.1 و4.2 أعلاه.
      5. اسحب الكائن الذي تم إرفاق البرنامج النصي SerialController به من نافذة التدرج الهرمي إلى مربع الإدخال بجوار مستمع الرسائل في نافذة المفتش.
    3. اكتب واستيراد البرنامج النصي لوحدة تحكم الكرسي إلى اللعبة.
      1. في الجزء السفلي من نافذة المفتش لنفس كائن اللعبة ، انقر فوق إضافة مكون وحدد برنامج نصي جديد. قم بتسمية البرنامج النصي الجديد ChairController.
      2. اكتب الرمز المطلوب لأخذ أوامر وحدة التحكم والماوس وتحويلها إلى أرقام ليتم إرسالها عبر USB إلى Arduino.
        ملاحظة: يتم تضمين مثال الحد الأدنى من التعليمات البرمجية المطلوبة في الملف التكميلي 2 (اسم الملف: ChairController.cs).
      3. احفظ البرنامج النصي.
      4. املأ المربعات الفارغة في نافذة المفتش . اسحب كائن HMD من نافذة التدرج الهرمي إلى مربع الإدخال بجوار الرأس أسفل البرنامج النصي لوحدة تحكم الكرسي في نافذة المفتش . وبالمثل، اسحب كائن وحدة التحكم (يمين) إلى المربع المجاور لليد.

5. إجراء التجربة (أو الخبرة)

  1. حدد طريقة الإدخال.
    ملاحظة: يشير المثال المقدم التعليمات البرمجية ChairController إلى برنامج نصي يسمى SetUpTrial حيث يتم تعيين متغير الإدخال الصحيح العام (حيث يكون inputType 3 هو وحدة تحكم VR و inputType 4 هو الماوس). تم افتراض هذا الترتيب النصي / المتغير في الخطوات أدناه.
  2. انقر فوق كائن اللعبة الذي تم إرفاق البرنامج النصي SetUpTrial به ، على سبيل المثال ، الخلفية.
  3. قم بالتمرير لأسفل في نافذة المفتش للعثور على المتغيرات العامة للبرنامج النصي SetUpTrial .
  4. اضبط inputType على 3 لوحدة تحكم VR أو 4 للتحكم في الماوس.
  5. اضغط على الزر تشغيل في Unity لبدء تجربة الواقع الافتراضي مع الحركة التي يتم التحكم فيها بواسطة وحدات التحكم أو الماوس.

النتائج

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

Discussion

تقدم هذه الورقة طريقة لإضافة التناوب الآلي إلى كرسي المكتب تحت سيطرة مراقب أو مجرب ، وطريقة مصاحبة لدمج هذه الحركة في تجربة افتراضية. تشمل الخطوات الحاسمة الربط الميكانيكي للمحرك بالكرسي ، وإعداد الطاقة والتحكم الكهربائي في المحرك ، ثم تكوين Arduino والكمبيوتر لتشغيل وحدة التحكم في المحرك. ?...

Disclosures

لا يوجد تضارب في المصالح.

Acknowledgements

تم دعم هذا العمل من خلال منح مجلس البحوث الأسترالي DP160104211 و DP190103474 و DP190103103.

Materials

NameCompanyCatalog NumberComments
48 V DC power supply (motor)MeanwellRSP-320-48https://www.meanwellaustralia.com.au/products/rsp-320
5 V DC power supply (arduino)JaycarMP3295https://www.jaycar.com.au/15w-5v-3a-enclosed-power-supply/p/MP3295?pos=5&queryId=dda344422ab16c6
7f558551ac0acbd40
Ardity plugin for UnityOpen Sourcehttps://ardity.dwilches.com/
Arduino MEGA 2560JaycarXC4420https://www.jaycar.com.au/duinotech-mega-2560-r3-board-for-arduino/p/XC4420?pos=2&queryId=901771805f4bf6e0
ec31d41601d14dc3
Arduino softwareArduinohttps://www.arduino.cc/en/software
BeltMotion DynamicsRFTB10010Choose a size that suits the application. We used 60 tooth. https://www.motiondynamics.com.au/polyurethane-timing-belts-16mm-t-10/
Bracket bolts (holding motor)The Fastner Factory161260x 4. https://www.thefastenerfactory.com.au/bolts-and-nuts/all-stainless-bolts/stainless-button-socket-head-cap-screws/stainless-steel-button-socket-head-cap-screw-m6-x-35mm-100pc
Bracket bolts (not holding motor)The Fastner Factory161258x 4. https://www.thefastenerfactory.com.au/bolts-and-nuts/all-stainless-bolts/stainless-button-socket-head-cap-screws/stainless-steel-button-socket-head-cap-screw-m6-x-25mm-100pc
Clamp Angle IronAustral Wright Metals50004813x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Clamp boltsThe Fastner Factory161265x 4. https://www.thefastenerfactory.com.au/bolts-and-nuts/all-stainless-bolts/stainless-button-socket-head-cap-screws/stainless-steel-button-socket-head-cap-screw-m6-x-70mm-100pc  
Clamp leaves (stainless flat bar)Austral Wright Metals50004687x 8. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Cover (acrylic)Bunnings Warehouse1010489https://www.bunnings.com.au/suntuf-900-x-600-x-5mm-grey-acrylic-sheet_p1010489
Cover bolts/nutsBunnings Warehouse247292x 4. https://www.bunnings.com.au/pinnacle-m3-x-16mm-stainless-steel-hex-head-bolts-and-nuts-12-pack_p0247292
Cover bracketsBunnings Warehouse44061x 4. https://www.bunnings.com.au/zenith-20mm-zinc-plated-angle-bracket-16-pack_p0044061
Emergency shut-off switchJaycarSP0786https://www.jaycar.com.au/latching-emergency-stop-switch/p/SP0786?pos=1&queryId=5abe9876cf78dc3d
d26b9067fbc36f74
Hybrid stepper motor and driverVevor?Closed Loop Stepper Motor Nema 34 12NM Servo Motor Hybrid Driver https://vevor.com.au/products/1712oz-in-nema34-closed-loop-stepper-motor-12nm-hybrid-servo-driver-hsc86-kit?variant=33058303311975
IEC mains power connectorRS components811-7213https://au.rs-online.com/web/p/iec-connectors/8117213
Instrument case (housing)JaycarHB6381https://www.jaycar.com.au/abs-instrument-case-with-purge-valve-mpv2/p/HB6381
LEDJaycarZD0205https://www.jaycar.com.au/green-10mm-led-100mcd-round-diffused/p/ZD0205?pos=11&queryId=e596cbd3d71e86
37ab9340cee51175e7&sort=
relevance
Main pulley (chair)Motion DynamicsALTP10020Choose a size that suits the application. More teeth = slower rotation. We used 36 tooth. https://www.motiondynamics.com.au/timing-pulleys-t10-16mm.html
Motor attachment bars (Stainless flat bar)Austral Wright Metals50004687x 4. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Mounting brackets (stainless flat bar)Austral Wright Metals50004687x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
NutsThe Fastner Factory161989x 12. https://www.thefastenerfactory.com.au/stainless-steel-hex-nylon-insert-lock-nut-m6-100pc
On/off switchJaycarSK0982https://www.jaycar.com.au/dpdt-illuminated-rocker-large-red/p/SK0982?pos=4&queryId=88e0c5abfa682b74
fa631c6d513abc73&sort=relevance
PotentiometerJaycarRP8610https://www.jaycar.com.au/10k-ohm-logarithmic-a-single-gang-9mm-potentiometer/p/RP8610?pos=4&queryId=0d1510281ba100d
174b8e3d7f806a020
Pulley screwsThe Fastner Factory155856x 5. https://www.thefastenerfactory.com.au/stainless-steel-hex-socket-head-cap-screw-m4-x-25mm-100pc
resistor 150 OhmJaycarRR2554https://www.jaycar.com.au/150-ohm-1-watt-carbon-film-resistors-pack-of-2/p/RR2554?pos=19&queryId=48c6317c73fd361
a42c835398d282c4a&sort=
relevance
Small pulley (motor)Motion DynamicsALTP10020Choose a size that suits the application. More teeth = faster rotation. We used 24 tooth. https://www.motiondynamics.com.au/timing-pulleys-t10-16mm.html
Small toggle switchJaycarST0555https://www.jaycar.com.au/sealed-mini-toggle-switch/p/ST0555?pos=14&queryId=066b989a151d83
31885c6cec92fba517&sort=
relevance
Steam softwareValve Corporationhttps://store.steampowered.com/
SteamVR plugin for SteamValve Corporationhttps://store.steampowered.com/app/250820/SteamVR/
Unity softwareUnity Technologieshttps://unity3d.com/get-unity/download
VR systemScorptec99HANW007-00HTC Vive Pro with controllers and base stations. https://www.scorptec.com.au/product/gaming-peripherals/vr/72064-99hanw007-00?gclid=Cj0KCQiA5OuNBhCRARIsA
CgaiqX8NjXZ9F6ilIpVmYEhhanm
GA67xLzllk5EmjuG0gnhu4xmiE
_RwSgaAhn8EALw_wcB

References

  1. Campos, J., Bülthoff, H., Murray, M. M., Wallace, M. T. Multimodal integration during self-motion in virtual reality. The Neural Bases of Multisensory. , (2012).
  2. Radianti, J., Majchrzak, T. A., Fromm, J., Wohlgenannt, I. A systematic review of immersive virtual reality applications for higher education: Design elements, lessons learned, and research agenda. Computers & Education. 147, 103778 (2020).
  3. Madshaven, J. M. Investigating the user experience of virtual reality rehabilitation solution for biomechatronics laboratory and home environment. Frontiers in Virtual Reality. 2, 645042 (2021).
  4. Fan, Z. Design of physical training motion simulation system based on virtual reality technology. 2021 The 13th International Conference on Computer Modeling and Simulation. Association for Computing Machinery. , 81-86 (2021).
  5. Roettl, J., Terlutter, R. The same video game in 2D, 3D or virtual reality - How does technology impact game evaluation and brand placements. PLoS One. 13 (7), 0200724 (2018).
  6. Riecke, B. E., Sigurdarson, S., Milne, A. P. Moving through virtual reality without moving. Cognitive Processing. 13, 293-297 (2012).
  7. Fauville, G., Queiroz, A. C. M., Woolsey, E. S., Kelly, J. W., Bailenson, J. N. The effect of water immersion on vection in virtual reality. Scientific Reports. 11 (1), 1022 (2021).
  8. Bernhard, E. R., Jörg, S. -. P., Marios, N. A., Markus Von Der, H., Heinrich, H. B. Cognitive factors can influence self-motion perception (vection) in virtual reality. ACM Transactions on Applied Perception. 3 (3), 194-216 (2006).
  9. Gibson, J. J. . The perception of the visual world. , (1950).
  10. Angelaki, D. E., Gu, Y., Deangelis, G. C. Visual and vestibular cue integration for heading perception in extrastriate visual cortex. Journal of Physiology. 589, 825-833 (2011).
  11. Badcock, D., Palmisano, S., May, J. G., Hale, K. S., Stanney, K. M. Vision and virtual environments. Handbook of Virtual Environments: Design, Implementation, and Applications. , 39-85 (2014).
  12. Kaliuzhna, M., Prsa, M., Gale, S., Lee, S. J., Blanke, O. Learning to integrate contradictory multisensory self-motion cue pairings. Journal of Vision. 15 (1), (2015).
  13. Wilkie, R. M., Wann, J. P. The role of visual and nonvisual information in the control of locomotion. Journal of Experimental Psychology: Human Perception and Performance. 31 (5), 901-911 (2005).
  14. Sinha, N., et al. Perception of self motion during and after passive rotation of the body around an earth-vertical axis. Progress in Brain Research. 171, 277-281 (2008).
  15. Tremblay, L., et al. Biases in the perception of self-motion during whole-body acceleration and deceleration. Frontiers in Integrative Neuroscience. 7, 90 (2013).
  16. Nooij, S. A. E., Bockisch, C. J., Bülthoff, H. H., Straumann, D. Beyond sensory conflict: The role of beliefs and perception in motion sickness. PLoS One. 16 (1), 0245295 (2021).
  17. Harris, L., et al. Simulating self-motion I: Cues for the perception of motion. Virtual Reality. 6 (2), 75-85 (2002).
  18. Carr, H. A., Hardy, M. C. Some factors in the perception of relative motion: A preliminary experiment. Psychological Review. 27, 24-37 (1920).
  19. Reinhardt-Rutland, A. H. Induced movement in the visual modality: An overview. Psychological Bulletin. 103, 57-71 (1988).
  20. Zivotofsky, A. Z., et al. Tracking of illusory target motion: Differences between gaze and head responses. Vision Research. 35 (21), 3029-3035 (1995).
  21. Farrell-Whelan, M., Wenderoth, P., Wiese, M. Studies of the angular function of a Duncker-type induced motion illusion. Perception. 41 (6), 733-746 (2012).
  22. Warren, P. A., Rushton, S. K. Optic flow processing for the assessment of object movement during ego movement. Current Biology. 19 (18), 1555-1560 (2009).
  23. Fajen, B. R., Matthis, J. S. Visual and non-visual contributions to the perception of object motion during self-motion. PLoS One. 8 (2), 55446 (2013).
  24. Duminduwardena, U. C., Cohen, M. Controlling the Schaire Internet Chair with a mobile device. Proceedings CIT: The Fourth International Conference on Computer and Information Technology. , 215-220 (2004).
  25. Ashiri, M., Lithgow, B., Mansouri, B., Moussavi, Z. Comparison between vestibular responses to a physical and virtual reality rotating chair. Proceedings of the 11th Augmented Human International Conference. , (2020).
  26. Koenig, E. A new multiaxis rotating chair for oculomotor and vestibular function testing in humans. Neuro-ophthalmology. 16 (3), 157-162 (1996).
  27. Mowrey, D., Clayson, D. Motion sickness, ginger, and psychophysics. The Lancet. 319 (8273), 655-657 (1982).
  28. Sanmugananthan, P., Nguyen, N., Murphy, B., Hossieni, A. Design and development of a rotating chair to measure the cervico-ocular reflex. Cureus. 13 (10), 19099 (2021).
  29. Gugenheimer, J., Wolf, D., Haas, G., Krebs, S., Rukzio, E. SwiVRChair: a motorized swivel chair to nudge users' orientation for 360 degree storytelling in virtual reality. 1996-2000. Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems. , (2016).
  30. . Roto VR Chair Available from: https://www.rotovr.com/ (2021)
  31. . Yaw Motion Simulator Available from: https://www.yawvr.com/ (2021)
  32. Warren, P. A., Rushton, S. K. Perception of object trajectory: Parsing retinal motion into self and object movement components. Journal of Vision. 7 (11), 1-21 (2007).
  33. Bonnen, K., Burge, J., Yates, J., Pillow, J., Cormack, L. K. Continuous psychophysics: Target-tracking to measure visual sensitivity. Journal of Visualized Experiments: JoVE. (3), (2015).
  34. . SimXperience Available from: https://www.simxperience.com/ (2021)
  35. Harris, L. R., Jenkin, M., Zikovitz, D. C. Visual and non-visual cues in the perception of linear self-motion. Experimental Brain Research. 135, 12-21 (2000).
  36. . DOF Reality Motion Simulators Available from: https://www.dofreality.com/ (2021)
  37. . Next Level Racing Available from: https://nextlevelracing.com/ (2022)
  38. . Motion Systems Available from: https://motionsystems.eu/ (2022)
  39. . Redbird Flight Simulations Available from: https://simulators.redbirdflight.com/ (2022)
  40. Teufel, H. J., et al. MPI motion simulator: development and analysis of a novel motion simulator. Proceedings of the AIAA Modeling and Simulation Technologies Conference and Exhibit (AIAA 2007). , (2007).

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Explore More Articles

182

This article has been published

Video Coming Soon

JoVE Logo

Privacy

Terms of Use

Policies

Research

Education

ABOUT JoVE

Copyright © 2025 MyJoVE Corporation. All rights reserved