JoVE Logo

Oturum Aç

Bu içeriği görüntülemek için JoVE aboneliği gereklidir. Oturum açın veya ücretsiz deneme sürümünü başlatın.

Bu Makalede

  • Özet
  • Özet
  • Giriş
  • Protokol
  • Sonuçlar
  • Tartışmalar
  • Açıklamalar
  • Teşekkürler
  • Malzemeler
  • Referanslar
  • Yeniden Basımlar ve İzinler

Özet

Bir insan gözlemcisinin kontrollü fiziksel rotasyonu, belirli deneysel, rekreasyonel ve eğitim uygulamaları için arzu edilir. Bu makale, bir ofis döner sandalyesini sanal gerçeklik ortamında kontrollü fiziksel rotasyon için bir ortama dönüştürmek için bir yöntemi özetlemektedir.

Özet

Sanal Gerçeklik (VR) sistemlerinin düşük maliyeti ve kullanılabilirliği, daha doğal, çok duyusal ve sürükleyici koşullar altında algı ve davranışa yönelik araştırmaların yakın zamanda hızlandırılmasını desteklemiştir. VR sistemlerinin kullanımından özellikle yararlanan bir araştırma alanı, çoklu duyusal entegrasyondur, örneğin, kendi kendine hareket duygusuna yol açmak için görsel ve vestibüler ipuçlarının entegrasyonu. Bu nedenle, bir gözlemcinin sanal ortamda kontrollü fiziksel rotasyonu için erişilebilir bir yöntem, yararlı bir yeniliği temsil eder. Bu makale, bir ofis döner sandalyesinin dönüşünü otomatikleştirmek için bir yöntem ve bu hareketi bir VR deneyimine entegre etmek için bir yöntem sunmaktadır. Örnek bir deney kullanılarak, bu şekilde üretilen fiziksel hareketin, bir gözlemcinin görsel deneyimi ile beklentilerle tutarlı bir şekilde bütünleştiği gösterilmiştir; hareket görsel uyaranla uyumlu olduğunda yüksek entegrasyon ve hareket uyumsuz olduğunda düşük entegrasyon.

Giriş

Birçok ipucu, kendi kendine hareket hissi üretmek için doğal koşullar altında birleşir1. Böyle bir duygu üretmek, birçok rekreasyonel, sağlık ve eğitim VR uygulamasındabir hedeftir 2,3,4,5 ve ipuçlarının kendi kendine hareket hissi vermek için nasıl birleştiğini anlamak, sinirbilimcilerin uzun vadeli bir çabası olmuştur 6,7,8,9,10,11 . Kendi kendine hareket algısı için en önemli üç ipucu sınıfı görsel, vestibüler ve propriyoseptif1'dir. Her üçü de gerçek dünyadaki doğal aktif hareket sırasında uyumlu bir şekilde birleşerek sağlam ve zengin bir kendi kendine hareket hissi sağlar. Her bir ipucu sınıfının rolünü anlamak ve ipuçlarının nasıl birleştiğini anlamak için, araştırmacılar geleneksel olarak deneysel gözlemcileri bir veya daha fazla ipucundan mahrum bırakmış ve / veya birbirleriyle çatışan ipuçları yerleştirmişlerdir 1,12. Örneğin, propriyoseptif ipuçlarının yokluğunda rotasyonel vestibüler ipuçları sağlamak için, bir gözlemci motorlu bir sandalye13,14,15,16 tarafından pasif olarak döndürülebilir. Bu tür pasif hareketin, kendi kendine hareket17'ye çok ikna edici ipuçları sağladığı gösterilmiştir. Bir VR gözlüğü tarafından sağlanan kontrollü görsel ipuçları, sandalye hareketiyle uyumlu veya uyumsuz olabilir veya tamamen mevcut olmayabilir. Propriyoseptif ipuçları, gözlemcinin sandalyeyi kendi gücü altında döndürmesini sağlayarak, örneğin sandalyeyi ayaklarıyla iterek eklenebilir.

Burada sunulan, bir ofis döner sandalyesini, bir gözlemcinin vücudunu fiziksel olarak döndürmek ve bu hareketi görsel (ve potansiyel olarak işitsel) bir sanal deneyime entegre etmek için bir ortama dönüştürmek için bir yöntemdir. Sandalyenin dönüşü gözlemcinin, bir bilgisayar programının veya deneyci gibi başka bir kişinin kontrolü altında olabilir. Gözlemci kontrollü rotasyon, motor tahrikli rotasyonu gözlemcinin el kumandasının konumunun bir fonksiyonu haline getirerek pasif olabilir veya sandalyeyi kapatıp gözlemcinin sandalyeyi kendisinin döndürmesini sağlayarak aktif olabilir.

Ayrıca bu sandalye / VR sistemi için psikofiziksel bir uygulama sunulmaktadır. Bu örnek uygulama, bir gözlemcinin kontrollü pasif rotasyonunun kendi kendine hareket ipuçlarının genel algısal deneyimler üretmek için nasıl etkileşime girdiğini anlamadaki yararlılığını vurgulamaktadır. Özel amaç, uzun süredir çalışılan görsel illüzyon kaynaklı hareket18,19 hakkında fikir edinmekti. İndüklenmiş harekette, sabit veya hareketli bir hedef, hareketli bir arka plandan algısal olarak "itilir". Örneğin, kırmızı bir hedef nokta sağa doğru hareket eden mavi noktalardan oluşan bir alana karşı dikey olarak yukarı doğru hareket ederse, hedef nokta beklendiği gibi yukarı doğru, aynı zamanda sola doğru, hareketli arka plan20,21 yönünden uzaklaşıyor gibi görünecektir. Amaç, itmenin arka plan hareketinin kendi kendine hareketten kaynaklandığı şeklinde yorumlanmasının bir sonucu olup olmadığını test etmekti22,23.

Bu durumda, arka plan görsel hareketi ile tutarlı fiziksel rotasyonun eklenmesi, arka plan hareketinin sabit bir ortamda kendi kendine dönmeden kaynaklandığına dair daha güçlü bir duyuma yol açmalıdır. Bu da, durağan dünya23'e göre hedef hareketi elde etmek için arka plan hareketini hedef hareketten çıkarma eğilimine yol açmalıdır. Bu artan çıkarma eğilimi, daha fazla algılanan hedef itme ile sonuçlanacaktır. Bunu test etmek için arka plan hareketiyle tutarlı veya tutarsız olan fiziksel kendi kendine dönüş eklendi. Burada sunulan sistem, bu hipotezi test etmek için fiziksel hareketin ve buna karşılık gelen görsel hareketin hassas kontrolüne izin verdi. Örnekte, sandalye hareketi, VR sisteminin el tipi kontrolörünü kullanarak gözlemcinin doğrudan kontrolü altındaydı.

Literatürde 24,25,26,27,28,29 literatüründe çeşitli VR uygulamaları için motorlu döner sandalyelerin birçok örneği olmasına rağmen, yazarlar böyle bir sandalye yapmak ve etkileşimli bir VR deneyimine entegre etmek için kısa bir talimat setinden habersizdir. SwiVRChair29 için, yapı olarak burada sunulana benzeyen ancak farklı bir amaç göz önünde bulundurularak tasarlanmış, yani sandalye hareketinin kullanıcı tarafından ayaklarını yere koyarak geçersiz kılınabileceği bir VR ortamına daldırmayı iyileştirmek için bir bilgisayar programı tarafından yönlendirilecek sınırlı talimatlar mevcuttur. Ticari olarak temin edilebilensandalyelerin 30,31 maliyeti göz önüne alındığında, bir "şirket içi" yapmak bazı araştırmacılar için daha uygun bir seçenek olabilir. Bu durumda olanlar için, aşağıdaki protokol kullanılmalıdır.

Sisteme genel bakış
Protokol, bir ofis sandalyesini elektrikle çalışan döner sandalyeye dönüştürmek ve sandalye hareketini bir VR deneyimine entegre etmek için talimatlardan oluşur. Tüm sistem, tamamlandığında, dört bölümden oluşur: mekanik, elektrik, yazılım ve VR alt sistemleri. Tüm sistemin bir fotoğrafı Şekil 1'de gösterilmiştir. Gösterilen sistem, örnek deneyde kullanılan sistemdi.

Mekanik alt sistemin görevi, döner bir sandalyenin üst milini bir motor aracılığıyla fiziksel olarak döndürmektir. İki şeyin bağlı olduğu bir ofis sandalyesinden oluşur: ofis koltuğunun üst dönen miline sabitlenmiş bir kasnak ve şaftın alt sabit kısmına tutturulmuş ayarlanabilir bir montaj çerçevesi. Montaja, ofis koltuğunun üst şaftındaki kasnakla aynı hizada olan şaftına bağlı bir kasnağa sahip bir elektrikli step motor takılıdır. Bir kayış, motor kasnağını sandalye kasnağına bağlayarak motorun sandalyeyi döndürmesine izin verir.

Elektrik alt sistemi motora güç sağlar ve motorun elektronik kontrolüne izin verir. Bir motor sürücüsü, motor için bir güç kaynağı, sürücüyü bir bilgisayarla arayüzlemek için bir Arduino kartı ve Arduino için bir güç kaynağından (isteğe bağlı) oluşur. Bir Arduino kartı, programlanabilir bir mikroişlemci, denetleyiciler, giriş ve çıkış pimleri ve (bazı modellerde) bir USB bağlantı noktası (burada gereklidir) içeren hobiler ve elektronik herhangi bir şeyin profesyonel üreticileri arasında popüler bir küçük karttır. Tüm elektrikli bileşenler, özel modifiye edilmiş elektrik yalıtımlı bir kutuya yerleştirilmiştir. Motora güç sağlayan transformatör ve (isteğe bağlı) Arduino güç kaynağı için şebeke gücü gerektiğinden ve motor yüksek çalışma voltajları gerektirdiğinden, düşük voltajlı elektronik çalışma hariç hepsi (aşağıdaki protokol adımları 2.5 ila 2.10) nitelikli bir kişi tarafından yapılmalıdır.

Yazılım alt sistemi, Arduino'yu programlamak için Arduino yazılımından, VR ortamını oluşturmak için Unity yazılımından, VR sistemini sürmek için Steam yazılımından ve Unity'nin Arduino kartıyla iletişim kurmasını sağlayan bir Unity eklentisi olan Ardity'den oluşur. Bu yazılım, örnek deney için Microsoft Windows 10 Enterprise çalıştıran bir Gygabyte Sabre 15WV8 dizüstü bilgisayara yüklenmiştir (Şekil 1).

VR sistemi, bir Başa Monte Ekran (HMD), bir el kontrolörü ve HMD ve kontrolörün uzaydaki konumunu ve yönünü belirlemek için baz istasyonlarından oluşur. Bu proje için kullanılan VR sistemi HTC Vive Pro idi (Şekil 1).

Aşağıda açıklanan, gözlemci tarafından elde tutulan kontrolör aracılığıyla veya ev sahibi / deneyci tarafından bir bilgisayar faresi veya potansiyometre aracılığıyla kontrol edilen sandalye hareketi ile fiziksel rotasyonu (deney veya başka türlü) içeren sanal bir deneyim elde etmek için bu bileşenleri birleştirme prosedürüdür. Protokolün son kısmı, VR deneyimini başlatmak için gerekli adımlardan oluşur. Unity'yi denemelere ve veri toplamaya izin verecek şekilde kodlama yönteminin bu makalenin kapsamı dışında olduğunu unutmayın. Bazı adımlar, özellikle mekanik alt sistem için, belirli atölye ekipmanı ve belirli bir beceri seviyesi gerektirir. Prensip olarak, sunulan yöntemler bu kaynakların kullanılabilirliğine uyacak şekilde ayarlanabilir. Daha teknik adımların bazıları için alternatifler sunulmaktadır.

Protokol

UYARI: Elektrik işleri kalifiye bir kişi tarafından yapılmalıdır.

1. Mekanik sistem kurulum prosedürü

  1. Ana kasnağı döner sandalyenin üst miline takın.
    1. Üst şaftı çıkarın.
      NOT: Bu tipik olarak sandalyenin yan tarafına yerleştirilmesini ve sandalyenin tabanında, üst şaftın alt şafttan kaymasını önleyen bir pimin çıkarılmasını içerir.
    2. Kasnağı şafta sürtünme ile takın.
      1. Şaftın çapını elde etmek için Vernier kaliperleri kullanın. Kasnak deliğini şaftın çapına uyacak şekilde delmek için bir torna tezgahı kullanın.
      2. Kasnağı şafta sabitleyecek vidalar için dişli delikler oluşturun. Kasnağın göbeğinde, çapı vidalarınkiyle eşleştiren toplam 4 delik açmak için ek delikler açın. Kasnağı şafta sabitlemek için vidaların kullanılabilmesi için bir musluk kullanarak delikleri dişleyin, dişliyi vidalarınkiyle eşleştirin
        NOT: Bir diş oluşturmak mümkün değilse, bir ALTERNİYON, kasnağın göbeğinden ve sandalyenin şaftından sonuna kadar delmek ve kasnağın doğru yerleşimi belirlendikten sonra (adım 1.4.6'dan sonra) bir cıvatayı sonuna kadar çalıştırmaktır.
      3. Kasnağı sandalye miline kaydırın.
      4. Vidaları gevşek bir şekilde takın (ana ve küçük kasnaklar hizalandıktan sonra sıkın).
    3. Tahrik kayışını üst sandalye miline gevşek bir şekilde yerleştirin (daha sonra ana ve küçük kasnaklara takılmak için).
    4. Üst sandalye milini sandalye tabanına yeniden takın.
  2. Motor montajını döner sandalyenin alt miline takın.
    1. Motor montaj braketlerinin takılabileceği ayarlanabilir bir kelepçe imal edin.
      1. Kelepçenin eşleşen iki bileşenini imal edin – şaftın her iki tarafı için bir tane (dört cıvata ile birlikte sıkılacak). Boyutlar için Şekil 2'ye bakın.
      2. Her bileşen için, 90° açılı demiri uzunluğa kadar kesin. Cıvataların içinden geçeceği 4 yaprağı takın.
      3. Güvenlik için her yaprağın kenarlarını (metal çubuk) yuvarlayın. Her çubuğun sonuna yakın, cıvataların sığabileceği kadar büyük delikler açın. Uygun konumda 45°'lik bir viraj yapın (virajı daha hassas hale getirmek için çubuğu puanlayın). Her bir çubuğun dışa doğru açılı demir-cıvata deliklerine nokta kaynağı yapın.
        NOT: ALTERNATİF olarak, yapraklar yerinde cıvatalanabilir, açılı demirin sandalye miline temas etmesini önleyecek bir çıkıntıya neden olmamaya dikkat edin.
    2. İki motor montaj braketi imal edin. Boyutlar için Şekil 3'e bakın. Her braket için, az önce açıklanan kelepçeye tutturmak için çubukta iki delik açın. Uygun konumda 90° bükün (virajı daha hassas hale getirmek için çubuğu puanlayın).
    3. Kelepçeyi takın ve 4 cıvatayı kelepçe bileşenleri ve braketlerinden geçirerek ve sıkarak sandalyenin alt miline monte edin. Montajın adım 1.4.6'daki hizalama işlemine uyacak şekilde ayarlanması gerekiyorsa, cıvataların çok sıkı olmadığından emin olun.
  3. Küçük kasnağı motor miline takın.
    1. Motor milindeki anahtarı düz bir şekilde taşlayın (artık çıkıntı yapmayın).
      NOT: Bu, kasnağın motor milinin etrafında kaymasını önlemek için kasnak vidasının sıkılabileceği düz bir yüzey sağlayacaktır.
    2. Motor milinin çapına uyacak şekilde kasnaktaki deliği delin.
    3. Kasnağı şaftın üzerine kaydırın ve vidayı şaft üzerindeki düz yüzeye karşı gevşek bir şekilde sıkın.
  4. Motoru yukarıda açıklanan motor braketine takın.
    1. Uygun pozisyonlarda iki delik açarak 4 motor bağlantı çubuğunun her birini hazırlayın (deliklerin motordaki montaj delikleriyle aynı hizada olması gerekir). Boyutlar için Şekil 4'e bakın.
    2. Boşluk için gerekliyse, motor mili üzerindeki kasnağın serbestçe dönmesine izin vermek için iki çubuğun üstünden bir bölüm kesin (isteğe bağlı).
    3. Dört küçük kapak bağlantı braketini dört dış deliğin üzerine yerleştirin. Koruyucu kapağı kayış ve kasnakların üzerine takmak için daha sonra bunları kullanın.
    4. Sekiz somunu ve cıvatayı gevşek bir şekilde takın, montaj braketi çubuklarını aralarında kaydırmak için üst ve alt çubuklar arasında yer bırakın.
    5. Motor montaj çubuklarını braketin üzerine kaydırın - her biri montaj braketi çubuğunun üstündeki üst çubuk ve her biri aşağıdaki alt çubuk.
    6. Motoru konumlandırın ve kelepçeleyin.
      1. Ana kasnağı, küçük kasnağı veya ana ve küçük kasnaklar yatay olarak hizalanana kadar yukarı ve aşağı hareket ettirin. Gerekirse kelepçeyi hareket ettirin.
      2. Tahrik kayışını küçük ve ana kasnakların üzerine yerleştirin.
      3. Kayış sıkışana kadar motor tertibatını sandalyeden uzaklaştırın.
      4. Motoru motor braketine sabitlemek için motor bağlantı çubuklarındaki 8 cıvatayı sıkın.
      5. Kelepçe cıvatalarını ve kasnak vidalarını sıkın.
  5. Kasnak/kayış sistemine herhangi bir şeyin takılmasını önlemek için bir kapak takın.
    1. Akrilik koruyucu kapağın kenarlarını Şekil 5'e göre bükün.
      NOT: Bir ALTERNATİF, eğer bir akrilik bükücü mevcut değilse, bir metal sac ve sac bükücü kullanmaktır.
    2. Şekil 5'e göre sandalyenin şaftının etrafına sığacak bir bölüm kesin.
    3. Küçük kapak bağlantı braketlerindeki deliklere uyacak şekilde delikler açın.
    4. Kapağı takmak için küçük kapak bağlantı cıvatalarını kullanın.

2. Elektrik sistemi kurulum prosedürü

  1. Açma/kapama düğmesini ve acil kapatma anahtarını şebeke gücüne bağlayın. IEC bağlayıcıyı (şebeke güç kablosu için erkek konektör) acil kapatma ve açma/kapama anahtarına seri olarak bağlamak için uygun voltaj ve akım dereceli kablolar kullanın (böylece devreyi bunlardan biriyle kesmek diğer bileşenlerin gücünü kesecektir).
    NOT: Lehimleme gerekebilir.
  2. Arduino için 5 V DC güç kaynağını açma / kapama düğmesine bağlayın (isteğe bağlı).
    NOT: Lehimleme ve şebeke anma kablosu gereklidir.
  3. Sandalye sürücüsünün 48 V DC güç kaynağını, 5 V güç kaynağına paralel olarak açma/kapama düğmesine bağlayın.
    NOT: Şebeke anma kablosu gereklidir.
  4. Hibrit step motor sürücüsü için uygun DIP anahtarı ayarlarını yapın. Mesela:
    1. Step motor için devir başına 1.600 darbe için sırasıyla 1-4'ü AÇIK, KAPALI, AÇIK ve AÇIK olarak ayarlayın (sayı ne kadar yüksek olursa, kontrol o kadar ince olur, ancak Arduino'nun ne kadar hızlı darbe üretebileceğine bağlı olarak dönme hızındaki kapak o kadar düşük olur).
    2. Saat yönünün tersine varsayılan dönüş yönü için 5'i KAPALI konuma getirin.
    3. Uzay vektörü kontrol modunun (veya Alan Yönelimli Kontrol, FOC) aksine sürücü Noktası Hareketi (PM) modu için 6'yı AÇIK konuma getirin.
    4. Kontrol cihazını 86 serisi 12 NM kapalı çevrim motorla eşleştirmek için 7 ve 8 numaralı anahtarları KAPALI ve KAPALI olarak ayarlayın.
  5. Hibrit step motor sürücüsünü güç kaynağına ve sandalye sürücü kablolarına bağlayın.
    1. 48 V güç kaynağı çıkış terminallerinden motor sürücüsü güç giriş konektörü muhafazasına uygun şekilde derecelendirilmiş kablolar takın ve muhafazayı takın.
    2. İki motor kablosunu konektör yuvaları aracılığıyla sürücüye bağlayın.
  6. Arduino'yu Hybrid step motor sürücüsüne bağlayın.
    1. Motor sürücüsü konektör muhafazasındaki PUL + ("darbe" +), DIR + ("yön" +) ve ENA + ("etkinleştir" +) terminallerini Arduino'daki 2, 3 ve 5 numaralı pimlere (pim numaraları isteğe bağlıdır, ancak burada kullanılmak üzere örnek olarak belirtilmiştir) bağlamak için sabitlenmiş atlama telleri kullanın.
    2. Motor sürücüsü konektör muhafazasının PUL-, DIR- ve ENA terminallerini bağlamak için kısa kablolar ve ENA- 'yı Arduino'daki bir GND (topraklama) pimine bağlamak için daha uzun bir sabitlemeli atlama teli kullanın.
    3. Konnektör muhafazasını motor sürücüsüne takın.
  7. Arduino'yu 5 V DC güç kaynağına bağlayın (isteğe bağlı). Arduino'daki GND ve Vin pimlerini 5 V güç kaynağının 5 V çıkış terminallerine bağlamak için sabitlenmiş atlama tellerini kullanın.
  8. Potansiyometreyi Arduino'ya bağlayın. Arduino'daki A1 ("analog in" terminali) GND ve 5 V pimlerini potansiyometrenin üç terminaline bağlamak için sabitlenmiş atlama telleri kullanın.
    NOT: Lehimleme gereklidir.
  9. Geçiş anahtarını Arduino'ya bağlayın. Arduino'daki pin 6 ve GND'yi, sabitlenmiş atlama tellerini kullanarak iki geçiş anahtarı terminaline bağlayın.
    NOT: Lehimleme gereklidir.
  10. LED'i Arduino'ya bağlayın.
    1. Direnci LED'in bir terminaline lehimleyin (LED devresindeki voltajı düşürmek için).
    2. Arduino'daki 7 ve GND pimlerini direncin sonuna ve diğer LED terminaline sabitlenmiş atlama telleri kullanarak takın.
      NOT: Lehimleme gereklidir.
  11. Elektrikli/elektronik bileşenleri yalıtın ve barındırın. Tamamlanmış bir barındırılan sistemin görüntüsü için Şekil 6'ya bakın.
    NOT: Elektrik sisteminin yüksek voltajlı bileşenlerini yalıtmanın, kırılgan elektronik bileşenleri hasardan korumanın ve tüm bu bileşenleri yönetilebilir bir alanda tutmanın birçok yolu vardır. Aşağıda önerilen bir yöntem bulunmaktadır.
    1. IEC güç konektörü, ana açma / kapama anahtarı, iki motor kontrol kablosu, küçük geçiş anahtarı, LED, potansiyometre ve Arduino'nun USB bağlantı noktası için gösterge kasasının yan tarafında delikler açın / kesin (havanın soğutma için kasaya akmasına izin vermek için bunu büyük yapın).
    2. Bu bileşenlerin her birini uygun araçları kullanarak takın (örneğin, vidalar, cıvatalar, sıcak tutkal tabancası).
    3. Havalandırma deliklerini (48 V güç kaynağındaki fanın üstünde) ve kasanın kapağındaki acil durum anahtarı için bir delik açın; ardından havalandırma filtrelerini ve anahtarı takın.
    4. Arduino'yu ara parçalar ve vidalar kullanarak kasanın tabanına takın. USB bağlantı noktası, kasadaki USB bağlantı noktası deliğiyle aynı hizada olacak şekilde konumlandırın.
    5. 48 V ve 5 V güç kaynaklarını ve motor sürücüsünü Velcro ve köpük bloklar kullanarak kasanın tabanına takın.

3. VR kurulum prosedürü

  1. VR sistemini üreticinin talimatlarına göre kurun.

4. Yazılım kurulum prosedürü

  1. Arduino yazılımını kurun ve kurun.
    1. Arduino programını geliştiricinin talimatlarına göre indirin ve yükleyin.
    2. Arduino'yu bir USB kablosu kullanarak bilgisayara bağlayın.
    3. Araçlar açılır menüsü altında, Arduino kartının bağlı olduğu bağlantı noktasını seçin.
    4. Aynı menü altında, uygun kartı ve işlemciyi seçin. Yukarıdaki bölüm 2'de kullanılan kart ve işlemciyle eşleştiğinden emin olun, örneğin, "Arduino Mega 2560" kartı ve "ATmega2560" işlemci.
  2. Arduino kartını sandalyenin dönmesine izin verecek şekilde programlayın 1) potansiyometre aracılığıyla ve 2) USB üzerinden bilgisayardan gelen komutlarla.
    1. Arduino işlemciye yüklenecek kodu yazın.
      NOT: Örnek deneyden örnek kod, Ek Dosya 1'e (dosya adı: hybrid_motor_controller.ino) eklenir.
    2. Baud hızını (Serial.Begin() komutunun bağımsız değişkeni) not alın, örneğin, 9.600.
    3. Kodu kaydedin ve yükle düğmesini kullanarak Arduino panosuna yükleyin .
  3. Sistemin şu ana kadar çalışıp çalışmadığını test edin.
    1. Elektrik alt sistemini prize takın ve açın.
    2. Küçük geçiş düğmesini, küçük LED gösterge ışığının yandığı bir konuma getirin.
    3. Sandalyenin hızını ve yönünü kontrol ettiğinden emin olmak için potansiyometreyi çevirin.
  4. Steam ve SteamVR'ı geliştiricinin talimatlarına göre kurun ve yapılandırın.
  5. Unity'yi yükleyin ve kurun.
    1. Unity'yi geliştiricinin talimatlarına göre yükleyin ve yapılandırın.
    2. Yeni veya mevcut bir Unity projesi açın (örneğin, uygulama için uygun olan "3B" gibi bir tür seçin).
    3. Projede kullanılmak üzere SteamVR'ı kurun.
      1. Varlık deposunu açın ( Pencere | Varlık Mağazası).
      2. SteamVR'ı arayın ve SteamVR Eklentisi'ni seçin.
      3. Varlıklara Ekle'yi tıklayın.
      4. Unity'de, Paket Yöneticisi'ni açın ( Pencere | Paket Yöneticisi).
      5. SteamVR'ı Varlıklarım sekmesi altında bulun.
      6. İçe Aktar'ı tıklatın ve alma işlemini tamamlamak için istemleri izleyin.
      7. Yapılandırma değişiklikleri yapmanız istenirse Tümünü Kabul Et'i tıklatın.
      8. Steam VR Kamera Donanımını sahneye aktarın. Denetçi ekranındaki proje penceresinde Steam VR adında yeni bir Varlık arayın. Steam VR | prefabriklerini açın.
      9. VR gözlüğünün ve oyun kumandalarının kullanımına izin vermek için [Kamera Donanımı] varlığını hiyerarşiye veya sahne penceresine sürükleyin.
      10. Varsayılan Ana Kamerayı hiyerarşiden veya sahneden kaldırın, çünkü SteamVR kameraya müdahale edecektir.
  6. Ardity'yi kurun ve kurun.
    1. Unity Varlık Deposunda Ardity'yi arayın ve indirmek için seçin (yukarıdaki adım 4.5.3.2).
    2. API uyumluluk düzeyini güncelleştirin.
      1. Düzen menüsü altında Proje Ayarları'nı açın.
      2. Oyuncu |'na tıklayın Diğer Ayarlar.
      3. API Uyumluluk Düzeyi için açılır menüden .NET 4.X'i seçin.
      4. Ayarlar'dan çıkın ve hata mesajlarının kaybolmasını bekleyin.
  7. Unity oyun ortamını ayarlayın.
    NOT: Kullanıcının sandalyeyi kontrol edebilmesi ve sandalye hareketini VR deneyimiyle entegre etmesi için aşağıdaki minimum adımlar gerekli olacaktır.
    1. Belirli bir uygulama için gereken nesneleri ve işlevleri oluşturun.
      1. GameObject'e tıklayıp 2B Nesne veya 3B Nesne'yi seçerek nesneler oluşturun.
      2. Nesnenin Denetçi penceresindeki Bileşen Ekle düğmesini tıklatıp seçeneklerden birini belirleyerek oluşturulan nesneye işlevsellik ekleyin. Ek Dosya 3'tekine benzer bir C# komut dosyası oluşturmak için Yeni Komut Dosyası'nı seçin (dosya adı: SetUpTrial.cs).
    2. Seri Denetleyici komut dosyasını oyuna aktarın.
      1. Proje penceresindeki Varlıklar klasörünün altında, Ardity klasörünü açın | Komut dosyaları klasörü.
      2. SerialController komut dosyasını, Heirarchy penceresindeki istediğiniz oyun nesnesine, örneğin Arka Plan oyun nesnesine sürükleyin.
      3. Nesneye tıklayın ve SerialController komut dosyasını bulmak için Denetçi penceresindeki bileşenlerin listesini aşağı kaydırın.
      4. Bağlantı Noktası Adı ve Baud Hızının, yukarıdaki 4.1 ve 4.2 numaralı adımlarda ayarlanan Arduino programı için olanlarla eşleştiğinden emin olun.
      5. SerialController komut dosyasının eklendiği nesneyi hiyerarşi penceresinden Denetçi penceresindeki İleti Dinleyicisi'nin yanındaki giriş kutusuna sürükleyin.
    3. Sandalye denetleyicisi komut dosyasını yazın ve oyuna aktarın.
      1. Aynı oyun nesnesi için Denetçi penceresinin alt kısmında, Bileşen Ekle'ye tıklayın ve Yeni Komut Dosyası'nı seçin. Yeni komut dosyasını ChairController olarak adlandırın.
      2. Denetleyici ve fare komutlarını almak ve bunları USB üzerinden Arduino'ya gönderilecek sayılara dönüştürmek için gereken kodu yazın.
        NOT: Gerekli kodun en küçük bir örneği Ek Dosya 2'de (dosya adı: ChairController.cs) bulunmaktadır.
      3. Komut dosyasını kaydedin.
      4. Denetçi penceresindeki boş kutuları doldurun. HMD nesnesini Hiyerarşi penceresinden, Denetçi penceresindeki Sandalye Denetleyicisi komut dosyasının altındaki Head'in yanındaki giriş kutusuna sürükleyin. Benzer şekilde, Controller (sağda) nesnesini Hand'in yanındaki kutuya sürükleyin.

5. Deney (veya deneyim) prosedürü

  1. Giriş yöntemini seçin.
    NOT: Sağlanan örnek ChairController kodu, inputType ortak tamsayı değişkeninin ayarlandığı (inputType 3'ün VR denetleyicisi ve inputType 4'ün fare olduğu) SetUpTrial adlı bir komut dosyasını ifade eder. Bu komut dosyası/değişken düzenlemesi aşağıdaki adımlarda kabul edilmiştir.
  2. SetUpTrial komut dosyasının eklendiği oyun nesnesine tıklayın, örneğin Arka Plan.
  3. SetUpTrial komut dosyası ortak değişkenlerini bulmak için Denetçi penceresinde aşağı kaydırın.
  4. inputType'ı VR denetleyicisi için 3 veya fare kontrolü için 4 olarak ayarlayın.
  5. VR deneyimine kontrol cihazları veya fare tarafından kontrol edilen hareketle başlamak için Unity'deki Oynat düğmesine basın.

Sonuçlar

Örnek deneyin amacı, fiziksel rotasyonun eklenmesinin - bir sahnedeki görsel arka plan hareketiyle uyumlu veya uyumsuz - o sahnedeki hareketli bir hedefin algılanan yönünü etkileyip etkilemediğini belirlemekti. Uyumlu ve uyumsuz fiziksel hareket arasındaki fark, arka plan hareketinin, bir katılımcının görsel sisteminin arka plan hareketinin nedenini kendi kendine harekete ne kadar kolay atadığına bağlı olarak algılanan hedef yönünü etkilediği hipotezine dayanarak bekleniyordu32,3...

Tartışmalar

Bu makale, bir gözlemcinin veya deneycinin kontrolü altındaki bir ofis koltuğuna otomatik rotasyon eklemek için bir yöntem ve bu hareketi sanal bir deneyime entegre etmek için eşlik eden bir yöntem sunmaktadır. Kritik adımlar arasında motorun sandalyeye mekanik olarak bağlanması, motorun gücünü ve elektrik kontrolünü ayarlamak, ardından Arduino ve bilgisayarı motor kontrolörünü çalıştırmak için yapılandırmak yer alır. Mekanik bağlantı adımı bazı özel ekipman ve beceriler gerektirir, ...

Açıklamalar

Çıkar çatışması yoktur.

Teşekkürler

Bu çalışma, Avustralya Araştırma Konseyi'nin DP160104211, DP190103474 ve DP190103103 hibeleri tarafından desteklenmiştir.

Malzemeler

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

Referanslar

  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).

Yeniden Basımlar ve İzinler

Bu JoVE makalesinin metnini veya resimlerini yeniden kullanma izni talebi

Izin talebi

Daha Fazla Makale Keşfet

DavranSay 182

This article has been published

Video Coming Soon

JoVE Logo

Gizlilik

Kullanım Şartları

İlkeler

Araştırma

Eğitim

JoVE Hakkında

Telif Hakkı © 2020 MyJove Corporation. Tüm hakları saklıdır