Skip to content

Final Project

The original idea was to make a VR controller. However, the final prototype is an Input/Output Device, that is more of a Joystick than a VR controller (since it is not tracked within an immersive environment), which communicates with Unity as a Custom Device Input to interact with a shooter game scene.

Concept Idea

Original Plan and sketches

design-sketch

Refer to Project Plan and Project Development.

design-models

In addition to the ability to communicate with the PC, a front-end Unity VR application to demonstrate the functionality of the controller was added.

Based on the on the literature review , a set of design requirements was established for a handheld haptic controller. They will be considered as design rules for the prototype. The tabbed table shows the functionality features expected for the controller…

  • Compact, handheld and easy to use
  • Ergonomic design
  • 6 DOF tracking
  • Untethered/wireless
  • Input buttons on the controller (e.g., x and y), which are manipulated by thumb.
  • A trigger manipulated by the index finger (e.g., shooting games)
  • Haptic feedback
  • Ability to between distinguish gripping and an open hand
  • ?? Ability to distinguish pinch (Thumb + Index fingers)
  • Evaluate Latency

The following slide shows the final outcome that satisfies FabAcademy’s final project requirements.

presentation

A video presentation showing the final outcome

presentation

Note

Music used in video is under creative commons.

2D and 3D Modeling

Housing the electronics would require 3D printed/laser-cut casing to allow for incorporating the electronic boards all together.

See 3D Controller Body.

all-final

Electronics

Three boards were prototyped based on the the board from Electronic Design Board Week.

electronics

For Input Devices, a module for hosting a commercial Joystick was prototyped during Input Devices Week.

input-device-joystick

For Output Devices, a module for controlling a Vibration motor was prototyped during Output Devices Week.

vibration-module

All boards will be connected using a hub then interfaced with PC using an FTDI cable.

The hub board is based on Jari’s rx/tx hub connector. The exact same board was used.

input-device-joystick

input-device-joystick

Note

“Electronic Design Board Week” still connected it to the “controller/hub” regardless (I wanted to have more inputs. I was thinking about adding different form of inputs as well, e.g., FSR) and so it was kept there. Both input and output boards are sufficient however, and the code works when connecting the Output to the “Electronic Design Board Week” or without.

Interface

A software solution for communicating the inputs/outputs of the controller with the game, as well as a software solution that is actually the game scene. Therefore, there are two software parts:

1) A communication interface (e.g., Serial USB), to communicate between the physical controller and the PC application (In this case, it will be a Unity Plugin). 2) The game (the software environment) that will be in Unity. The game will be a shooter game, where the avatar can move in the space and shoot objects.

See Interface Programming - Unity Controller Project for detailed information.

A class diagram showing the software main components

class-diagram

See also Networking and Communications Week.

Materials

Below are the materials and components that was used.

External vendors

Component Link Estimated Cost
Joystick link 4€
Vibration motor link 3€

FabLab Oulu

Component Description Estimated Cost €
NDS355ANCT-ND MOSFET N-CH 30V 1.7A SSOT3 0.26
399-4674-1-ND CAP - CERAMIC .1UF 250V X7R 1206 0.12
497-5559-1-ND DIODE - SCHOTTKY 100V SGL SOD-123 0.17
311-49.9KFRCT-ND RES 49.9K OHM 1-4W 1% 1206 SMD 0.01
311-49.9KFRCT-ND RES 49.9K OHM 1-4W 1% 1206 SMD 0.01
ED1514-ND TERMINAL BLOCK 3.5MM 2POS PCB 0.46
2073-BG300-03-A-L-ACT-ND 3W, 2.54MM PTH SOCKET, SIL, SMT 0.55
S1011EC-40-ND TH male header 0.1” (40pos) 0.65

Note

Hence, the “Vibration Motor Module 01” total is 8.62€ including the vibration motor itself and the PCB board.

Component Description Estimated Cost €
ATTINY412-SSFRCT-ND IC MCU 8BIT 4KB FLASH 8SOIC 0.42
S1143E-36-ND SMT RT Angle Male Header 0.1” (36pos) 3.30
2073-BG300-03-A-L-ACT-ND 3W, 2.54MM PTH SOCKET, SIL, SMT 0.55
160-1169-1-ND LED GREEN CLEAR 1206 SMD 0.15
SW262CT-ND SWITCH TACT SMD W-GND 160GF 0.84
311-499FRCT-ND RES 499 OHM 1-4W 1% 1206 SMD 0.01
311-10.0KFRCT-ND RES 10.0K OHM 1-4W 1% 1206 SMD 0.01
445-1423-1-ND CAP CER 1UF 50V X7R 10% 1206 0.07

Note

Hence, the “Vibration Motor Module 02” total is 8.65€, including the PCB board.

Component Description Estimated Cost €
ATTINY412-SSFRCT-ND IC MCU 8BIT 4KB FLASH 8SOIC 0.42
S1143E-36-ND SMT RT Angle Male Header 0.1” (36pos) 3.30
311-0.0ERCT-ND RES 0.0 OHM 1-4W 5% 1206 SMD 0.01
445-1423-1-ND CAP CER 1UF 50V X7R 10% 1206 0.07
S1011EC-40-ND TH male header 0.1” (40pos) 0.65

Note

Hence, the “Joystick Module” total is 7.77€, including the Joystick itself and the PCB board.

Component Material Estimated Cost €
3D Printed - Controller Body PLA filament 9
Milling and Soldering - Controller Board PCB Boards 10
Laser Cut - Controller “Face” Acrylic, Transparent 1

Note

Hence, the Project total cost is 34.97€.

License

For the software parts Apache License, Version 2.0 is chosen (https://www.apache.org/licenses/LICENSE-2.0).

apache

For the rest, (controller design models) Valve Corporation (“Valve”) has released the digital plans and drawings distributed under the Creative Commons; Attribution-NonCommercial-Sharealike 4.0, which is kept to be the same.

Creative Commons; Attribution-NonCommercial-Sharealike 4.0 International license (http://creativecommons.org/licenses/by-nc-sa/4.0/).

creativecommons

Background

The idea of the project is to to develop a state-of-art digital environment for VR rehabilitation at home through a virtual gaming space that will provide proper stimulation and friendly competition. The treatment will concentrate on motor skills of the upper body (an arm, hand and finger movements). The VR environment will be customized through adaptive controllers and shaped individually for each user according to their condition. It will be a great step forward for European interactive technology in improving physical health and performance. See https://cordis.europa.eu/project/id/856998

cordis

How does the controller fits inside project goals?

The project is still in early stages, the controller is meant to be developed further as a part of an EU project. For now, the whole purpose of the controller is experimental. It is used as part of learning process, rather than an actual product. Fab Academy has helped in exploring the development of the controller within a Fablab environment.

How is controller, built in Fab Academy, is going to be exploited?

Again, the product is only used as a learning process. The whole thing will be re-designed to fit the final product to be utilized by the EU project. However, it was extremely helpful to learn more about the options for prototyping the electronics’ boards and potential housing solutions for a VR controller.

Which will be the next steps?

The next step would be to incorporate VR tracking, and customizing to be more suitable for rehabilitation purposes.

Is there any possibility of making a business out of this project in the future?

There are companies that are willing to make use of the controller as a commercial product in the future. License will be changed accordingly.

Files