Task

This capstone project was the culmination of my Computer Engineering degree at NUS. It required my team and I to put to use all the knowledge we have learnt so far from our core modules over the past 3 years. For this project, we were tasked to create a 2-Player Laser Tag game from scratch. In this Laser Tag game, the user will have a gun to shoot at the opposing player, who will be wearing a vest to detect and receive the shots. Apart from shots, the players can also perform hand gestures to initiate special attacks on the opposing player. The hand gestures were based on Marvel characters, hence we had moves such as portal (Dr. Strange), hammer (Thor), spear (Black Panther), web (Spiderman) and many more.

Roles

We were randomly assigned to a team of 5 and each member had to take on a role. As for me, I took up the role of Hardware Sensors, in charge of creating 2 sets of 3 separate hardware components required for a player to play the game.

The other roles were: Hardware AI, having to implement AI predictions via an FPGA (Ultra96) from hand gestures with data collected from the Inertial Measurement Unit (IMU) attached to a glove; Internal Communications, having to implement the protocol for the Bluno Beetles on each hardware component to communicate and send/receive data to the relay node; External Communications, having to implement the protocol (TCP/IP with SSH tunnelling) for the relay node to communicate with the Ultra96 and between the Ultra96 and the Evaluation Server; and lastly the Visualizer, designing the AR effects and feedback of the game state for the player via Unity.

image25.png

Hardware Sensors

As my role was focused on Hardware Sensors, I will be sharing my journey of designing and implementing the hardware components. To begin, here is a simple drawing of the 3 components that will be worn/held by the player and a breakdown of the sensors used on each component.

image19.jpg

Glove

Beginning with the glove, its main role is to collect hand gesture data via the IMU to be sent to the FPGA so the AI can classify the gesture as a certain attack based on a set of training data that was collected from our team members. As such, the only components on the glove were the Bluno Beetle (microcontroller), the IMU, and batteries with a step up voltage regulator. As for the software, I used the Adafruit_MPU6050 library to convert and process the raw values collected by the IMU into appropriate accelerometer and gyroscope values.

Final Glove Product

Final Glove Product

Circuit Diagram for Glove

Circuit Diagram for Glove

Gun

Secondly, each player was given a gun to shoot at the opposing player (just like in typical laser tag games). The gun was equipped with an IR Transmitter where the IR signal acts as the bullet. Apart from that, the gun also had a 4-digit LED Segment Display to provide feedback to the user on the number of ammo remaining, a Red Dot Laser to assist the player in aiming at the opposing player, a Bluno Beetle similarly used as a microcontroller, a limit switch to act as the trigger, with a 3D-printed part attached to the actual trigger of the toy gun base, and batteries with a step up voltage regulator. As for the software, I used the IRRemote library for the IR Transmitter, TM1627 library for the LED Display, and ezButton library to debounce the Limit Switch.