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
Refer to Project Plan and Project Development.
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 trackingUntethered/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.
A video presentation showing the final outcome
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.
Electronics¶
Three boards were prototyped based on the the board from Electronic Design Board Week.
For Input Devices, a module for hosting a commercial Joystick was prototyped during Input Devices Week.
For Output Devices, a module for controlling a Vibration motor was prototyped during Output Devices Week.
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.
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
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).
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/).
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
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¶
-
3D Design
- The “explosive view”. Please note, .blend files were zipped because of large size.
- Final Controller Model.
-
2D Design
-
Boards
-
Interface Programming (Code)
- Arduino Scripts.
- Unity Scripts. Includes scripts and artefacts (no config, user settings or meta). For full code (more than 100mb), see github.com/ybarhoush/FabAcademy2020Project.