Mar 23

Big List of Do Later's

So, I am following one method of project management for this project. There are two types of tasks:
1. Do now
2. Do later

There are a lot of things that I want to do, but I can't do them all. So, of all the things I want to build, each week or two, I pick a few manageable tasks that I can accomplish in the next week or to and try to accomplish them. Those are do now. Everything else is do later. I don't have to worry about that. I'll do it later. This is a list of all the things I want to do, in not really any order. I may try to order it later.

1. Shields (Inspiration, Halo)
Adding this mechanic will change gameplay. It will allow people to get tagged and then hide (unless you fire fast enough). This will change gameplay by making it harder to tag people and get them out if they are behind cover. That may encourage maneuvering.

2. Respawn base (Inspiration: Zombie mods, multiplayer games, capture the flag, etc.)
This will help with tracking tags, number of respawns, capturing areas, etc.
You can add temporary invulnerability to discourage spawn camping.

3. Classes (inspiration: Team fortress 2, star wars: battlefront 2, Zombie mod)
1. Standard
2. Sniper
3. Shotty
4. Medic
5. Spy/Ninja
6. Heavy
TF2 Game type: You can spawn as any unit from the beginning. You can only change when respawning.
Star Wars Battlefront Game type:
You all spawn as one of the standard classes in the beginning
You can respawn as a hihger leveled player based on tags (would require respawn points to talk for counting tags)
Playing the same character and getting tags unlocks perks (ex: burst fire for standard gun, like in star wars)
Zombie mod:
Same respawning principles as Star Wars Game type, but with asymetric teams (Humans vs Zombies)
No human respawns
Only zombie base

4. Runes (Inspiration: Dota2)
Adding rune spawns will encourage people to meet at specific areas during designated times and encourage team fights.
1. Invisibility - no lights, purple
2. Invulnerability - white
3. Extended magazine (requires magazines)
4. Rapid fire
5. Regeneration?
6. Double damage
7. Experience (this could level you up. Giving better stats, upgrades, spawn types, etc.)
8. Overshields

5. Active Reloading (Inspiration: Gears of War)
This would make reloading a little more fun to master. It could also help control fire rates for different classes of tag units
You could use an LED bar for this, along with a shift register.

6. Sounds (Castle Crashers, 8 bit games)

7. Abilities (Dota 2, Borderlands, Left 4 Dead)
Corrosive attacks
Electric attacks
Fire attacks
Disarms? (Zombie mod: smoker has a disarm?)
Zombie mod - corrosive attack on death? (Boomer in L4D)

8. Items (Halo, Gears of War (Horde Mode items), Dota 2)
Auto Turret
Mech suit
Manned Turrets

9. Zombie Mode (L4D)
There are a lot of technical issues I will have to overcome before I get to this, but I can add elements of other things to it. Aim for the head.
Smoker (with disarm?)
Spawner (which grants level up to the person who tags it)
Boomer (on death, 'tags' with caustic goo)
Stealth Zombie

Mar 23

Laser Tag Update 3/22/15

I seem to be updating every two weeks. But hey, I'm making progress.

My deliverables from two weeks ago were:

1. Distance tests
2. Adjust code to use multiple receivers and test them.

I completed the distance test for the first version of the tag unit.


Voltage for LED: 5 V
Resistance for LED: Seven (x7) 33 Ohm resistors in parallel, resulting in 4.7 Ohm total resistance.
Current for LED: 1.06 (max is 1A)
Lens Diameter: 3.49"
Lens Focal Length: 9.5" +/- 0.125"
Max Transmission distance: 339 yards.

So, 339 yards is far. I tested my unit, and I could make a light blink one city block away. Which is great. And also very over powered. I'm not sure people will like using a 3.5 inch diameter lens, but heck, it works really well. I had to send the tag multiple times for the receiver to see anything at 339 yards. I could hit the receiver effectively (could aim and hit in 1 or 2 shots consistently) at about 235 yards. These measurements are estimates based on my gate (I measured how far I walk normally in 10 steps, then counted steps back to the receiver). However, despite the inherent inaccuracy of the measurement, I am very pleased with this transmission distance. It is a big improvement over the 90 feet that I got with the 1 inch lens.

The other change that I made was to the code. I got github to work on all of my operating systems (Windows, Linux and Mac), so now I can work on the most recent version of the code no matter what OS I decide to use at the time. I am tracking the changes I make on github, which is a great way to update code and track changes. I can now have the tag unit read in a tag from an IR receiver on any of my digital input pins. I also changed how my timing function works, since I wasn't accurately reading in the times. Also, I'm not sure if I decided on using 750 microseconds as the protocol duration or 600 microseconds. Either will work, but I should pick one. Or experiment to find out which is better.

So, deliverables for next week or two:

1. Rewrite the bill of materials for the tag unit
2. Purchase three additional units

If I have additional time

3. Test tag distances with a 600 and 750 microsecond protocol duration. See if there is a difference. (or, test 500 microseconds versus 1 millisecond to see a more drastic version of how this breakdown effects tag distance).

Side notes:

I came across a video by Extra Credits on tangential learning. I think there are already great resources to teach people the basics of circuitry, electronics, etc. I don't have to make those. I could use laser tag as a method of giving people exposure to electronics and letting them dive into the details if they want to. I can't force someone to like this or to learn it. For now, I think I should put the tools out there and let people who want to find more dig into those tools and resources to explore more themselves.

Also, I want to turn this into more of a video game. There are things about video games that are great, and I feel that they would add to the enjoyment of this. Experience, shields, unlockables, overshields, mech suits, manned turrets, auto-turrets, grenades, sounds, music, mines, abilities, character selection, etc. I could pick a game and start porting content.I should probably keep a repository of all these ideas somewhere I can find them.

Mar 09

Laser tag update 3/8/15

I missed last week's update, but I still worked on the laser tag project. I just didn't post. Well, here's to make up for lost time:

My deliverables from last week were:

1. Change IR LED current to 1 Ampere. Done.
2. Get distance tests for 1 A with 4.5" lens and a 1" lens. Not done.

So, I did upgrade the board a bit. I was using a solderless breadboard for my prototyping, but it was difficult to hold the darn thing together while aiming at my receiver board. Since I need to make a prototype anyway, I built a version on perfboard that had a breadboard layout on it. That way, my prototype would be sturdy enough that I could walk around with it and test it. I changed the current draw up to about 1 Amp as well. I am not using the 4.5" lens, and instead am using a 3.49" lens that is a standalone lens (the 4.5" lens is encased).


Voltage for LED: 5 V
Resistance for LED: Seven (x7) 33 Ohm resistors in parallel, resulting in 4.7 Ohm total resistance.
Current for LED: 1.06 (max is 1A)
Lens Diameter: 3.49"
Lens Focal Length: 9.5" +/- 0.125"
Max Transmission distance: ?? (not tested)

The purpose of this prototype was to build a unit that could be carried around. I used cardboard as my building material, as it is easy to cut, I have a bunch of it after purchasing stuff, and I can build things with it really quickly. I don't care about making it look pretty at the moment. I just need to see if it will work.

This is the first laser tag prototype

This is the first laser tag prototype

I will do distance tests eventually. However, currently, I have my receiver (which is basically another tag unit) turn on an LED when it is tagged. However, I can't see the little LED very well when I am standing 90 feet away, so I'll need to hook up my laptop and walk away, tag the receiver, then walk back. I'll do it eventually. Not enough time these past two weeks.

Another fun fact about using a larger lens. I empirically found the focal length by focusing the light of the sun (which is as close to a collimated source as I can get. If you have a better solution than focusing your light on something 92 million miles away, please let me know). When I did that, I noticed that the spot is larger than the spot of light I got when using a smaller lens. This is beneficial because the LED is not a point source, but is 5 mm in diameter. Using a larger lens will allow the focal point to have a larger diameter, so I will be able to collimate more light.

I will also mention to check for floating inputs. I didn't solder on the receiver initially, as I was pressed for time. That meant that the input was left floating (I didn't turn on internal pull-up resistors, since originally, there was a receiver there). My tag unit would stop tagging for some reason. I thought it was a power supply issue, code issue, and eventually tracked down that I had a floating input. Oops. I soldered the receiver in, and everything worked fine. If I'd taken the time to solder that last bit on, I wouldn't have been frustrated with the unit upon building it. Let that be a lesson.

Eventually, this needs to be turned into a tag unit that I can run around with and send/receive tags. Here's a short list of work that I will need to do eventually:

1. Build an enclosure - should be done after prototype done
2. Look at multiple IR receivers - (simplest way may be to add multiple receivers to the unit. Current ones don't have 360 degree field of view)
3. Test using 1 resistor instead of 7.
4. Determine what connection you want between your LED and tag unit. (maybe for the final unit, you have a red LED next to the IR)
5. Build multiple devices and test them in the field!

Future work (after first game):

1. Add LCD
2. Add RGB LED?
3. Add 58 kHz receiver for other types of tags
4. Make different lens combinations with different resistors on them with different tag rates

So, based on those things, I should probably test adding multiple IR receivers to my project and make it work with multiple receivers as my next step.

Next Steps:

1. Test multiple receivers. I have a few extra, so I shouldn't have to buy any more to do these tests.