RFID Laser Tag
Home:

     The goal of this project is to develop a system utilizing radio frequency identification tags or RFID tags to enhance laser tag. The final implementation of this project should be able to track player movements and actions across a grid of RFID tags and based upon these movements have the players interact in various types of games. Teams or players can win games by staying in certain zones for a specific amount of time or by accomplishing specific objectives. This adds a dimension of play that was previously unavailable in laser tag and mimics modern games that our target audience is very familiar with. This project is a continuation of a project from a 2005 senior design team. Our goals have been primarily refining and building upon their fundamental design.

     In order to accomplish the task of tracking player movements the design that was settled on by last years team was to place active RFID tags in a grid spaced approximately every 5-10 feet. The players then had specially equipped laser tag guns that were outfitted with a RFID tag reader. As the players move across the grid of tags the RFID reader picks up its surrounding tags in order to determine the player position on the grid. The challenges of this task are that the location is calculated based upon a RSSI value from each tag essentially each tags signal strength. The RSSI values however can fluctuate significantly based upon the environment and age of tag. Reflections from various surfaces on the playing field can significantly impact the RFID readers perceived signal strength. The difference in tags signal strength is also not necessarily detectable given our desired resolution of approximately 3 meters. This has proven to be one of our largest hurdles in our overall design.

     The system is able to communicate and process game states by utilizing a wireless network and server/client architecture. A central administrator is responsible for the server. This is a typical x86 PC connected to a wireless 802.11 network. The server is responsible for displaying a map of current player locations, as well as displaying current scores and the state of the game. Behind the scenes the server accepts information from each player or client that contains information on location, player health, and player ammo. The software has been rewritten from its previous implementation in C++ to C# using the Compact .NET framework. By rewriting the code we have made the system much more stable, and were able to focus on debugging the key issues in the project. We also chose to use the standard .NET networking library as opposed to the previous groups’ decision to write their own networking code. The previous code was not completed and was designed such that debugging and modification were very difficult.

     The gun/client architecture is structured such that each gun is driven by a 7.2 V NiMH battery. The gun displays player health/ammo on a LCD display to the player the logic behind this is controlled by PIC. This was implemented by last year’s team and has had some of the code rewritten to improve functionality and streamline the code. This year we have reworked the mounting of components on the PVC pipe frame of the gun in order to protect the components and simplify the design. Currently testing of the clients is done by attaching a laptop to each gun and attaching the peripherals to the client and running the code on the laptop. Mounted to each gun are both an infrared LED and an infrared sensor. The infrared LED is focused in order to produce an approximately 2” beam for 30ft. This process is discussed later in this report. The infrared sensor is used to detect when a player has been hit. The previous group had designed a custom PCB that would house an AMD geode processor and drive an LCD panel. Throughout the semester we decided to move away from this design. This decision will be covered later in the semester. Our current implementation involves a PDA being mounted to the gun that will drive the client program.

     Overall this project has presented a large learning curve for our team. This project encompasses so many areas and determining how everything interacts has been a hurdle. We were fortunate enough to have assistance from one of the team members from the previous year. Reflecting upon this experience one of our primary goals is to leave the project in a well documented state. This project has taught us all the importance of maintaining an organized list of equipment, parts and contacts. It has also emphasized the importance of documentation in code including class level, method level and individual line documentation. Moving forward we are committed to documenting and organizing the project to reduce the learning curve for future groups and speed the time to productivity.

2006-2007 Group:

Thomas Tangelder, Mack Warren, Jorge Jordan, Nicholas Diel, Chandler Bartholomew, and Nathaniel Quillen

2005-2006 Group:

Robert Elsner, Keith Knapp, Brady Koenig and Michael MacMillan

End of Year Report.