Archive for the ‘Laser Tag’ Category

After not using the laser guns for a couple of years, we had a quick game the other week and it dawned on me how the technology used in them is starting to show its age. I’m starting to toy with the idea of refreshing the LibreTag system to take advantage of these newly available technologies. I am also toying with the idea of moving the system over to the Arduino platform. Whilst I am still a major fan of the Picaxe chips, I feel the LibreTag project will be limited by them going forward.

The first thing I would like to tackle is the head sensors, the current design were built in Tic Tac boxes and were never meant to be a permanent solution. 4 years on and after numerous repairs they are really on their last legs. Due to the weak plastic used in Tic Tac boxes a lot of them have cracked and the wires connecting the sensors have accidental been pulled out numerous times.

After looking around the internet for a few ideas I have seen that some other Laser Tag projects are now designing/building wireless head sensors to remove the cable connecting the gun and head sensor, which is normally the most fragile part.

I have seen some very cost effective 2.4Ghz RF modules on Ebay that could allow for a possible wireless link between the gun and the head sensors. I’m hoping to get a few test components and do some initial testing to see if its something that’s feasible.

I have started work on the next leg of the project for the LibreTag system. It consists of two bases which act as both a respawn point and adds CTF (Capture The Flag) capability to the game. There will also be a master console which will control the bases as well as showing each teams score and game time if required.

Each base will glow/pulsate the teams colour so it can be seen from a distance at night. They will communicate via IR with the players and with wireless 433Mhz modules to the master console. On each pulse of light, the base will also send out a IR command to give each player +10 health and a new clip up to the game maximums.With the wireless communication it will be possible for each base to notify and receive instructions regarding the status of the flags and used to relay IR commands to players when they come within distance. This could be used for example to kill a certain player when he goes to a base or send an “end game” signal to all players when the game timer runs out.

When an enemy shoots the base, it will initiate a 3 way handshake with the gun and players head senors to transfer the flag to them. The players head sensors will then flash/pulse with the colour of the teams flag they have just stolen and have to make their way back to their base, where they can transfer the flag to their base in much the same way. If they player dies on route, then when they respawn at a base the flag will be returned in much the same way.

At its initial conception, there will be two game types:-

1.Classic CTF – Each team has one flag, on successfully stealing the enemy’s team’s flag, the flag is returned and they get a point. Winner is the team with the most points.

2. Enhanced CTF – Each team starts with 8 flags which act as a power source for the bases, when you steal the enemy’s flag you keep it. For every flag a team loses, they’re base will slow down at the rate it sends out recharge pulses, and faster for every flag you gain. The object is to capture all the enemy’s flags thus rendering their base lifeless, leaving just a short firefight to finish them off.

I have started work on the a score box. The idea behind the score box is that at the end of the game, each player shoots the score box and in doing so downloads the log of who hit them to it. The score box then checks the data for any errors and flashes a green LED if correct, Red if not. The score box then sends a formatted string to the connected pc.

I am currently writing a small phyton program which will recieve the logged hits from each gun from the scorebox and process them. The idea is that if every gun knows what gun has hit it, the Python program when it has all the scores, will be able to work out how many hits each player has scored.

As well as giving a detailed “who hit who” breakdown, the program will also give each player an overall score.

Yesterday I made the switch to running the Picaxe chips at 8Mhz. Whilst the guns function fine at 4Mhz, they had problems registering all the hist from the Minigun as it shot faster than the guns could process the hits. Also as the code gains more features it will only get slower, I decided now was a good point in time to boost the speed.

Aside from some minor issues like reloading being two fast and all the sound statements being higher pitched the transition went quite smooth and the guns now pick up all the shots from the mini-gun. This leads to another problem that the mini-gun can kill players even quicker now!!!!

This weekend I have started work on the Admin Box, which when completed will allow me to start implementing persistent game data on the guns. So far I have only really got the physical construction of the box done and laid down the basic core code to write to the screen and read the position of the selector dial switch.

The Admin Box has 3 buttons, two on top which are used to increase or decrease the currently selected variable and one on the bottom which transmits the current variable. There is also a selector dial switch on the side, this swicthes between all the variables and also selects which commands to transmit.

The unit is using a shiny new 20×4 LCD screen I purchased with a funky blue backlight. Below are a couple of pictures to show the progress so far, expect updates to follow as the box becomes more functional.

One of the major flaws with the LibreTag system in its current state is that if the power is turned off mid game all the variables containing the players health and remaining ammo are lost. This can either be an annoyance or a way to cheat, either way it needed to be fixed.

I toyed with several ideas like saving all variables to the built in EEPROM every 10 seconds or so, but I was worried that after a while I may wear the EEPROM out. There is also the disadvantage that since the save is happening every 10 seconds people could still cheat in that time window. I finally came across the idea of getting the Picaxe chip to detect when the power is turned off and then save all the variables to EEPROM. By using a large capacitor (2000uf) on the 5v supply line, the Picaxe gets just under a second of runtime before the voltage drops too low.

I initially tried lower capacity capacitors but it was only at about 1500uf that the picaxe managed to stay on long enough to detect the power loss. I created a simple IF statement, once the input voltage dropped below about 5.5v (I’m using a 5v LDO regulator) it went into a loop sending a test character out the serial connection to the pc till the power completely dies. During testing what I saw was really strange since at 1000uf nothing was received, but when using a 1500uf capacitor, about 20 characters were received. I would have expected that when using a 1000uf to at least get a couple of characters received, I am guessing this is to do with the logarithmic nature of a capacitor.

Anyway like I said with a 2000uf capacitor the Picaxe stays on for long enough to save the health, ammo and number of remaining clips to EEPROM. With a few more modifications to the code, the gun now reads these values back out at power on and hence the game state is preserved. The only thing now is that I have to re-flash the gun once the health or ammo is depleted, which means I better get working on the Admin box to remotely configure the guns…..