Air Blaster 9000
Air Blaster 9000
Air Blaster 9000
An Immersive FPS VR Controller with Haptic Feedback
An Immersive FPS VR Controller with Haptic Feedback
An Immersive FPS VR Controller with Haptic Feedback
Project Overview
Project Overview
Project Overview
Problem
Problem
Problem
Existing VR controllers lack immersive haptic feedback, diminishing user experience in FPS games. This absence disconnects users from the virtual environment, reducing engagement and satisfaction.
Existing VR controllers lack immersive haptic feedback, diminishing user experience in FPS games. This absence disconnects users from the virtual environment, reducing engagement and satisfaction.
Existing VR controllers lack immersive haptic feedback, diminishing user experience in FPS games. This absence disconnects users from the virtual environment, reducing engagement and satisfaction.
Goal
Goal
Goal
Develop a VR controller solution that addresses the lack of haptic feedback in FPS games, aiming to enhance user immersion and satisfaction while ensuring compatibility with Meta Quest 2.
Develop a VR controller solution that addresses the lack of haptic feedback in FPS games, aiming to enhance user immersion and satisfaction while ensuring compatibility with Meta Quest 2.
Develop a VR controller solution that addresses the lack of haptic feedback in FPS games, aiming to enhance user immersion and satisfaction while ensuring compatibility with Meta Quest 2.
Solution
Solution
Solution
The Air Blaster 9000 integrates pneumatic and thermal haptic feedback mechanisms, simulating firearm sensations in VR. It's crafted through iterative design and utilizes Arduino Uno and Unity for implementation.
The Air Blaster 9000 integrates pneumatic and thermal haptic feedback mechanisms, simulating firearm sensations in VR. It's crafted through iterative design and utilizes Arduino Uno and Unity for implementation.
The Air Blaster 9000 integrates pneumatic and thermal haptic feedback mechanisms, simulating firearm sensations in VR. It's crafted through iterative design and utilizes Arduino Uno and Unity for implementation.
My Role
My Role
My Role
Hardware Design, Front-End, Back-End, Product Design, Videography, Team Management, Documentation, Usability Testing
Hardware Design, Front-End, Back-End, Product Design, Videography, Team Management, Documentation, Usability Testing
Hardware Design, Front-End, Back-End, Product Design, Videography, Team Management, Documentation, Usability Testing
Team Members
Team Members
Team Members
Jonathan Thai, Michael Hannon, Piya Mody, Yuen Ying Wong
Jonathan Thai, Michael Hannon, Piya Mody, Yuen Ying Wong
Jonathan Thai, Michael Hannon, Piya Mody, Yuen Ying Wong
Project Duration - 7 Weeks
Project Duration - 7 Weeks
Project Duration - 7 Weeks
Ideation
Ideation
Ideation
The initial phase of the design process centered around ideating diverse controller designs. I looked at existing controller designs in the market for inspiration and then furnished a set of sketches. These sketches were tiered in fidelity, progressing from low to mid and high levels of detail. This helped in identifying the most promising designs, which were subsequently subjected to a process of continuous enhancement. Below are the sketches that I had created.
The initial phase of the design process centered around ideating diverse controller designs. I looked at existing controller designs in the market for inspiration and then furnished a set of sketches. These sketches were tiered in fidelity, progressing from low to mid and high levels of detail. This helped in identifying the most promising designs, which were subsequently subjected to a process of continuous enhancement. Below are the sketches that I had created.
The initial phase of the design process centered around ideating diverse controller designs. I looked at existing controller designs in the market for inspiration and then furnished a set of sketches. These sketches were tiered in fidelity, progressing from low to mid and high levels of detail. This helped in identifying the most promising designs, which were subsequently subjected to a process of continuous enhancement. Below are the sketches that I had created.
Simultaneously, the rest of the team members also contributed their individual sketches, culminating in a collaborative session to decide the most viable design approach. Ultimately, the team decided to carry forward with the gun-recoil idea.
Simultaneously, the rest of the team members also contributed their individual sketches, culminating in a collaborative session to decide the most viable design approach. Ultimately, the team decided to carry forward with the gun-recoil idea.
Simultaneously, the rest of the team members also contributed their individual sketches, culminating in a collaborative session to decide the most viable design approach. Ultimately, the team decided to carry forward with the gun-recoil idea.
System Design
System Design
System Design
Original System Design idea
Original System Design idea
Original System Design idea
The initial design concept of the Air Blaster 9000 aimed to replicate a full-body recoil effect, simulating the sensation of each gunshot. Initially, the nozzle was positioned in front of the controller, intended to emit a powerful burst of air, causing the user's hand to jerk upward. However, the air pressure provided by the compressor was not strong enough to deliver the desired recoil sensation. Acquiring a more potent compressor and additional necessary components, including a pressure regulator and solenoid valves, to effectively replicate this feedback, proved to be beyond the project's current budgetary limitations.
The initial design concept of the Air Blaster 9000 aimed to replicate a full-body recoil effect, simulating the sensation of each gunshot. Initially, the nozzle was positioned in front of the controller, intended to emit a powerful burst of air, causing the user's hand to jerk upward. However, the air pressure provided by the compressor was not strong enough to deliver the desired recoil sensation. Acquiring a more potent compressor and additional necessary components, including a pressure regulator and solenoid valves, to effectively replicate this feedback, proved to be beyond the project's current budgetary limitations.
The initial design concept of the Air Blaster 9000 aimed to replicate a full-body recoil effect, simulating the sensation of each gunshot. Initially, the nozzle was positioned in front of the controller, intended to emit a powerful burst of air, causing the user's hand to jerk upward. However, the air pressure provided by the compressor was not strong enough to deliver the desired recoil sensation. Acquiring a more potent compressor and additional necessary components, including a pressure regulator and solenoid valves, to effectively replicate this feedback, proved to be beyond the project's current budgetary limitations.
Exploring a new System Design
Exploring a new System Design
Exploring a new System Design
The updated design incorporates 3 distinct haptic feedback systems that synergise with the VR simulation. The first employs pneumatic feedback, generating a gentle breeze on the back of the user's hand upon pressing the trigger. This imitates hand movement resulting from recoil, complemented by the sweeping motion of wind facilitated by a nozzle attached to a servo motor arm. The second involves thermal feedback, emanating heat onto the user's palm that intensifies with repeated shooting. Lastly, tactile feedback is provided by vibration motors within the Quest 2 controller. These feedback mechanisms are affixed to a mount constructed from a blend of 3D-printed and laser-cut materials. Working in unison, these systems deliver an instantly immersive sensation of firing a gun in VR, localized to the user’s hand.
The updated design incorporates 3 distinct haptic feedback systems that synergise with the VR simulation. The first employs pneumatic feedback, generating a gentle breeze on the back of the user's hand upon pressing the trigger. This imitates hand movement resulting from recoil, complemented by the sweeping motion of wind facilitated by a nozzle attached to a servo motor arm. The second involves thermal feedback, emanating heat onto the user's palm that intensifies with repeated shooting. Lastly, tactile feedback is provided by vibration motors within the Quest 2 controller. These feedback mechanisms are affixed to a mount constructed from a blend of 3D-printed and laser-cut materials. Working in unison, these systems deliver an instantly immersive sensation of firing a gun in VR, localized to the user’s hand.
The updated design incorporates 3 distinct haptic feedback systems that synergise with the VR simulation. The first employs pneumatic feedback, generating a gentle breeze on the back of the user's hand upon pressing the trigger. This imitates hand movement resulting from recoil, complemented by the sweeping motion of wind facilitated by a nozzle attached to a servo motor arm. The second involves thermal feedback, emanating heat onto the user's palm that intensifies with repeated shooting. Lastly, tactile feedback is provided by vibration motors within the Quest 2 controller. These feedback mechanisms are affixed to a mount constructed from a blend of 3D-printed and laser-cut materials. Working in unison, these systems deliver an instantly immersive sensation of firing a gun in VR, localized to the user’s hand.
The Set up
The Set up
The Set up
The Prototype
The Prototype
The Prototype
Pneumatic System Design: The pneumatic system of the Air Blaster 9000 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 (Figure 3.4.). 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.
Pneumatic System Design: The pneumatic system of the Air Blaster 9000 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 (Figure 3.4.). 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.
Pneumatic System Design: The pneumatic system of the Air Blaster 9000 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 (Figure 3.4.). 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.
Thermal System Design: 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.
Thermal System Design: 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.
Thermal System Design: 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.
Tactile System Design: The tactile system of the Air Blaster 9000 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.
Tactile System Design: The tactile system of the Air Blaster 9000 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.
Tactile System Design: The tactile system of the Air Blaster 9000 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.
System Implementation
System Implementation
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.
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.
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.
Pneumatic Feedback Implementation
Pneumatic Feedback Implementation
Pneumatic Feedback 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.
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.
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.
Thermal Feedback Implementation
Thermal Feedback Implementation
Thermal Feedback 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) [7] 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.
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) [7] 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.
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) [7] 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.
Tactile Feedback Implementation
Tactile Feedback Implementation
Tactile Feedback Implementation
Tactile feedback was implemented through code, making use of the inbuilt vibration motors in the Quest 2 controllers.
Tactile feedback was implemented through code, making use of the inbuilt vibration motors in the Quest 2 controllers.
Tactile feedback was implemented through code, making use of the inbuilt vibration motors in the Quest 2 controllers.
Configuration of Air Compressor connection
Configuration of Air Compressor connection
Configuration of Air Compressor connection
Configuration of Heating Pad connection
Configuration of Heating Pad connection
Configuration of Heating Pad connection
Demo Application
Demo Application
Demo Application
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.
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.
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.