Air Blaster 9000 - VR Controller Prototype

VR Controller Design  •  UX Design  •  User Research  •  Prototyping  •  Usability Testing

Project Overview

Problem

VR technology currently lacks the ability to simulate tactile sensations like stiffness, weight, and texture, limiting the immersive experience. The absence of haptic feedback in virtual interactions reduces user immersion and engagement.

Challenge

Designing a VR controller system that enhances haptic feedback in FPS games, increasing user immersion and engagement, while ensuring full compatibility with Meta Quest 2.

Solution

The Air Blaster 9000, a prototype VR controller designed with an air compressor system, heat pad, and vibration to provide pneumatic, thermal, and tactile feedback. It utilizes Arduino Uno and Unity for implementation.

Timeline

Duration: 10 weeks

Date: Mar 23 - May 23

Team Members

Jonathan Thai

Michael Hannon

Piya Mody

Puja Shome

Ideation

Objectives

To address the critical gap in VR technology—the lack of haptic feedback, I brainstormed various ideas to simulate different sensations that users might encounter in various in-game situations. Below are some sketches created during this ideation process.

Results

After collaborative sessions with my teammates, who also contributed their own sketches, we decided to move forward with the gun-recoil concept.

Design

Original System Design

The original plan for the Air Blaster 9000 was to simulate a full body recoil, simulating the feeling of each gun shot. However, due to:

  • Lack of air pressure provided by the compressor
  • The need of purchasing more components
  • Limited budget given

To accurately mimic this feedback was out of the current monetary scope.

The New System Design

Learning from the limits of the compressor, different methods of providing the feedback of shooting a gun were tested. From here, the design shifted from providing only pneumatic whole-body realistic feedback to area-specific integrated feedback. 

The new design incorporates 3 distinct haptic feedback system which includes pneumatic, thermal, and tactile feedback. The full setup and prototype are as shown below:

Full setup

Prototype

01. Pneumatic System Design

The pneumatic feedback is actuated in the form of wind blowing on the back of the user’s hand when the trigger is pressed. This simulates the movement of the hands from the recoil rather than the physical recoil itself, furthered by the swiping motion of the wind as its nozzle is mounted to a servo motor arm.

The pneumatic system is based on an air compressor system controlled through the Arduino Uno in combination with a servo motor. The speed of the air compressor is controlled via an analogue pin, with the air compressor running slower with smaller guns in comparison or larger ones.

The nozzle is mounted to the arm of a continuously moving servomotor, ensuring the air is not only focused on one point on the back of the user's hand.

A smaller gun

A larger gun

02. Thermal System Design

The thermal feedback provides heat to the palm of the user’s hand, warming to higher temperatures the more the user shoots.

The thermal system is based on a heating pad attached onto the Quest 2 controller mount. It is mounted to the inside of the right hand, providing thermal feedback onto the palm of the user. This simulates the slow heating of the gun and quick cool down, heating up to higher temperatures and for longer times according to the frequency with which the user is shooting in the VR simulation and the current gun type selected.

03. Tactile System Design

The tactile system is based on the vibration motors within the Quest 2 controllers. The vibration changes in intensity and duration of vibration according to the type of gun currently being used in the Unity simulation.

Prototyping

System Implementation

Implementation of the Air Blaster 9000 was based on the Meta Quest 2 headset and controllers, Arduino Uno for actuation, and Unity to create VR environments. Each of the haptic systems feed through the Arduino with Unity code, Arduino code, and Quest controller actions synchronising all feedback.

01.

Pneumatic system implementation

01. Pneumatic system implementation

A MOSFET transistor (IRF540) and general-purpose amplifier (PN2222A) were used to turn the air compressor on and off at high speeds, ensuring that it works in synchronisation with the pressing of the trigger in VR. A heat sink was also attached to the MOSFET to prevent overheating from high voltage. This was originally a relay switch; however, it did not turn on and off at the speed necessary.

While the full ability of the air compressor is 150 PSI, we estimate the maximal pressure of the system is currently around 40 PSI due to a lower current, 3A, where the original air compressor system is based off, 10A, while still at the full 12V. Silicone tubing is attached to the inbuilt tubing of the air compressor, leading to the nozzle. The nozzle is mounted to a servo motor which is connected to the Arduino via a simple circuit, turning on and off with the start up and ending of the system.

02. Thermal system implementation

A simple 5V relay switch (ISO9002) was used to control the heating pad as quick on/off switching was not required. An Adafruit electric heating pad (HF0515) measuring 14cm x 5cm working with 5-12V was used, with stainless steel fibres heating up throughout to provide whole-hand sensation. A diode was soldered between the ground and power wires, ensuring the current ran only in one direction.

03. Tactile feedback implementation

Tactile feedback was implemented through code, making use of the inbuilt vibration motors in the Quest 2 controllers.

Launch

Demo Application

unity
unity

To utilise our design, a simple gun range style virtual environment was created in Unity. The gun range included three simple targets with two different guns to use: a smaller pistol style gun and a larger rifle style gun. When pulling the controller trigger, users are able to shoot their gun to move and destroy the targets. When the guns are shot, the Unity game communicates with the Arduino using serial communication to activate the heat pad and the air compressor.

When using the smaller gun, the user experiences a shorter and weaker burst of air and vibration as opposed to the larger gun which offers a longer and stronger burst of air and vibration. After shooting the gun for a short period of time, the users will also feel the controller begin to get significantly warmer. With the combined virtual environment and sounds along with our designs feedback, users are able to experience how our design could be implemented into a gaming context.