My deliverables from two weeks ago were:
1. Rewrite the bill of materials for the tag unit
2. Purchase three additional units
3. (Optional): test tag distances with different protocol timing.
I sorta updated my bill of materials. I have purchased most things from mouser.com, so I have a record of everything that I've purchased and will be able to purchase more if I need to.
I have now purchased materials to build four additional units. Why four? That will give me enough materials to have 5 units. So I could have some asymmetric game play (4v1, 3v2, etc.) or just have up to five people test the things. Or one will break. Who knows.
It will take a week or so for the parts to ship to me, and in the meantime I should prepare for the first game. The only next step I can think of is:
1. Build a receiver unit. It should be able to receive tags from a wide angle (360 degrees is nice, but not necessary). It should have an indicator LED on it.
2. Adjust the code for the first game played.
I am trying to build the minimum viable product. That means the minimum that I can do to make this work is what I should do.
For the first part, I basically need an array of IR receivers that are looking in different directions for a tag. I'm planning on using around 8 right now, because each of the ones that I'm using has a 45 degree field of vision. With 8, I get 360 degrees. I will have to mount that on the tag unit so that you can be tagged from any direction.
I should put an indicator LED on this part. This should go on top of the lens tube. In fact, I could build this in two parts so that you could still see down the center of the tube in order to aim.
For the second part, I need to make the code react to getting tagged in some way so that I can play a game with it. What is the most basic game that I want to play? Standard death match. Each player can get hit a certain number of times. They are out after hit a certain number of times. I need to add some code to keep track of the number of times someone has been hit, and if that counter reaches 0, they are out (I could have the indicator LED stay on or something.
If I want to make the game last for a certain amount of time, I could use a timer on my phone.
While I've been away, there have been plenty of things going on in the world of open source, laser tag, etc. A quick google search showed me some recent developments that look exciting.
Skirmos is an open source laser tag game made by college students. It is based on the arduino, uses IR LED's to send tags (with a range of 500 feet according to their kickstarter page), X-bee radios to sync data, tricolor LED's for coloring the tag unit, has a screen (which seems to be their differentiator), and has a cool shell. Since it uses an arduino, it is hack-tastic for other arduino enthusiasts. I missed the initial kickstater, and will have to follow up with this in the future. Based on their website and kickstarter goals, the final product may not have all of the functionality that they state in their kickstarter video. But hey, they are building something cool, and I am supportive of building cool things.
The guys at Skirmos mention that they are working with Kevin Darrah. He's another person who has a tutorial for using those silly NRF24L01+ radios (and I say that they are silly because, while I have read their data sheet and understand how one could control them, I haven't spent the time to write a library for controlling them and don't want to. I want a free one that I can use for whatever I want. Including teaching children how to build laser tag). Kevin has a website here with some cool projects relating to LED cubes (shift registers, multiplexing, etc.) and some home automation stuff with the aforementioned radios (which turns out are really cheap on ebay). He also made a breakout board for those things. Because who wants to solder 8 pins every time they use one?
IBM developerWorks has a three part tutorial on building laser tag. Who knew? I had some trouble navigating from part 1 to part 2 (there wasn't a link from part 1 to part 2 that I found faster than googling for part 2, so I'm posting the links to all 3 parts). I may have to look at developerWorks from IBM for more cool projects. Part 1 Part 2 Part 3