May 04

Laser Tag Update 5/3/15

My deliverables from last month were to:
1. Build a receiver unit. (IR receivers with indicator LED)
2. Adjust code for first game played

1. I arranged IR receivers in a circle,and they all read. I soldered them onto a spare piece of board and built two. After the fact, I decided to add an additional LED onto the receivers so that you would have LED indication on the lens tube when you are tagged or when you send a tag.
2. I changed how my LED's (for indication, not for tagging) turn on and off. I wrote a function that handles all of the indication LED's. With some modification, I could have it run RGB LED's and change their colors without using the built in PWM. The color may change a little bit when you send or receive a tag, but other than that, it should be able to control them pretty easily (during the time that you send or receive a tag, you would not be turning the LED on or off, so the color may be a little different.)

Note: I could change my code that sends and receives tags to send/receive a pulse and then go back into the main loop until I need to send/receive a pulse again. I'm not sure that I'll need to do this, but it is a possibility if I want to run through my main loop faster (and not have to wait for a tag send/receive to complete before going through the main loop).

At this point, I have two tag units, they both are running the current code, and I am ready to actually test playing laser tag. During that test, I should figure out what I should add to make the game play better. I have some other items that I would like to add, and in no particular order, here are some of them:

To add Later:
1. Telegraphing
2. Health bars
3. Shields
4. Bases

Based on trying to make a game type similar to Star Wars Battlefront, I should make spawn bases next. I can work on telegraphing and shields after I have places to respawn from. I can add allowing players to capture spawn points later. (I could add a certain number of respawns for a game type). So, here are my next steps:

Do Next:
1. Test the game with the current tag units: get feedback on what I should add to the devices
2. Begin work on spawn bases (unless telegraphing, health, shields, etc. comes back as something people want more)

Apr 05

Laser Tag Update 4/5/15

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.

Do Next:
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.

For future work, I can get stuff laser cut here:
http://www.cherrylaser.com/
http://www.lasersoverlosangeles.com/

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).

Specifications:

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.

Feb 15

Laser Tag Update 2/15/15

So, about two years ago, I wanted to make a course to teach laser tag. I didn't make it a habit, and it didn't get done.

Now, I've made some progress towards that laser tag. However, like the me of the past, this is still a large project, and I haven't gotten very far.

So now, I'm going to (try to) use some of the advice I've got from Extra Credits. They make videos about video games, and their advice can be translated to other projects. I'm specifically talking about their series on making video games, and their rules video. I should refer to this every once in a while when I am unsure of what to do.

Completed Work

1. Create a program to send and receive tags
2. Build a prototype that can send and receive tags
3. Build a lens setup and test adding a lens - adding lens increased tag distance
4. Build LED test setup and increase current - increasing drive current increases tag distance
(Note: requires batteries that can supply the current, and capacitors)

In Progress

1. Increase range of tag unit send/receive

Methods:

In my meanderings across the internet, books and the like, I have come across information on optics. I haven't done very much with optics, so this is a lot of trial and error on my part. However, I do know that I want to collimate light. Basically, I want to take light from an LED (emanating at about 25 degrees) and turn it into a beam that travels straight. Fortunately, if you buy a lens, they tell you the focal length, or distance away that a collimated light source will be focused. Put a light source that far away, and presto, instant collimated light.

However, what assumptions are they making about that light source? In the land of physics, everything is a point source, meaning it doesn't have any height or width. I tried using a 1" diameter lens to collimate a 5mm diameter IR LED. I got it to transmit about 50 feet, but it did not work very well outside. When I checked what the beam looked like with a red LED, the beam was not a column, but focused a few inches from the lens. If I want my lens to work more like the theoretical column, I need to make my LED look more like a point source. That means a larger lens or a smaller LED. Why not try both?

Deliverable:

1. Get a larger lens/lenses 2"+ in diameter.
2. Build test set up and test 2" diameter lens (inside and outside) and record transmission distances at standard currents

Future work

1. Add more light indication.
2. Make tag unit more sturdy.

Dec 17

Building a Sunrise Alarm Clock, 1

Sunrise Alarm Clock: 1

Have you ever woken up at 5:30 am to the most annoying sound on the planet? Yes, the sound that strikes fear in the most peaceful sleeper. The alarm clock sound. That dream crushing sound that jerks you back into reality. If only there was a smoother transition, one where I didn't wake up feeling angry that I was from my dreamscape so ungraciously taken. Enter the sunrise alarm clock.

Bill of Materials:

1. Arduino compatible (bare bones support for Atmega328p)

2. 12V 5A power supply (adafruit part number 352)

3. RGB LED strip (60 LED, adafruit 346)

4. TIP120 x3 (adafruit 976)

5. DS1307 Real Time Clock breakout board (adafruit 264)

Yes, I got a way beefier power supply than I needed. I could power a laptop off that thing. But then again, if I ever want more LED's, a motor, or a solenoid (hey, maybe I want my alarm clock to shoot socks at me in the morning out of my sock cannon? That'll wake me up.).

So, what is all this stuff and what does it do? Together, they make a sunrise alarm clock.

Adafruit has a lovely tutorial on hooking up the RGB LED strip here.

Adafruit has a wonderful tutorial on using the DS1307 real time clock here.

I'm using three PWM pins, 9, 10 and 11. 9 is connected to the green part of the RGB LED, 10 is red, and 11 is blue (see schematic). A diagram of what pins are what for the Atmega chip is shown on the arduino website: Atmega328 pin mapping.

If you follow the above Adafruit links, you will find everything you'd want to know on the parts. Now I need to wire it, code it, and test it.

Oct 23

FTDI chips, a CNC Mill, Micro Arduinos and Hardware Confessions

Ok, I changed the order. But still. Here's some goings on in the outside world for inspiration.

The FTDI FT232 is (I guess) a very popular USB to serial converter. There's an article here about how windows made a driver to brick fake chips. Fun way to stop hackers, set their chips to "don't work."

This article is just titled like a hilarious joke from the past. It's called "What is This, A Microcontroller Board for Ants?" (Yep, Zoolander). It's about an ATiny85 board where the board is slightly bigger than the chip. Kudos for saving space (if I need a small arduino, I know where to go).

There is a MakerBot equivalent for a CNC machine. It's called Carvey. Article is here.

There is also a confessions of a hardware startup page. I haven't actually read it, so I do not condone what is said there. I will read it later and find it by posting it on my blog.

Aug 18

In system Programmer, Sparkfun Curriculum, Marketing for makerspaces, etc.

I came across an in system programmer for microcontrollers. I'm not sure I'd need one, since I usually just take the ATmega328p out of my arduino to program raw chips, but hey, if I want dedicated hardware to do so, this is one way to do it.

Sparkfun has a curriculum. I checked out a few of the beginner pages, and it looks good. I haven't gone in depth, but it may be something that I can use or send people to if they want a bunch of things to learn. But who knows.

There is an article in Make about a makerspace selling advertising space on their kits to finance them. I may be able to do something similar to finance kits for wherever I end up helping out. Ideas for later.

Aug 13

Key Qualities for a school Makerspace and Bareduino

I came across and article on Make about the key qualities that are needed in a makerspace for kids in school. The main point of the article was that people need a few things to make. First, they need the basic skills of what tool to use and how to use it. Then they need to problem solve, to determine the reason that the thing they are making isn't working. Finally, they need the confidence to try something new. To learn something as they go. That confidence is what I want to impart on people. I want to empower them, to make them realize that they can build something complex, like laser tag. To be able to feel like they can do it and that it is within their reach to understand, to build, to create. The original article is here.

In other news, Niek Blankers at NiekProductions posted schematics for a bareduino, an arduino compatible based off of the ATiny45/85 that uses a small circuit board and minimal support components. It may be something that i could use if I wanted to have a separate controller that looked for tags, say on someone's head. His post is here.

May 23

Arduino Serial References

One of the things that I'll need to explain is asynchronous serial communication, which is how the arduino communicates to the FTDI chip (or other serial devices) to communicate to a computer via USB. I found some resources for arduino Serial stuff (including an article about using PWM for servo motors so that the software serial library doesn't get screwed up by the current servo library's use of interrupts).

There's a good wikipedia article about asynchronous serial.

There is also the arduino description of the software serial library, which is useful for describing how serial works (and how to make it work without hardware serial).

May 02

Quadcopters, mini and otherwise

I saw an article about a mini quadcopter that uses an ATMega128RFA1 (8 bit processor with built in 2.4 GHz transceiver). It's pretty cool, though the website didn't have a lot of build information in the post (there's some more stuff in his earlier posts, but it's not a clear cut thing to look at and know how to build your own without previous knowledge. Maybe I didn't look long enough.) Good instructions or not, it's a sweet project.

Speaking of Quadrotor helicopters, there's a nice youtube series done by The Crash Cast about building a tricopter (three rotor helicopter). If I ever have time to build one, after all of my other projects, then this is where I'd start. Maybe after I'm done teaching about registers and bits I can start teaching about PID controllers with this. How cool would of an advanced project would a quadcopter helicopter be (or tricopter. I don't judge)?