Chuck and I finished most of his vest today. We documented the steps in an instructable (my first!). I think we covered what we needed to. The vest looks good and I’m looking forward to seeing more built up.
Still waiting for the boards but I’ve had some luck with software. I’m diving into the spatial group detection, sound activation and hands off animation. It’s working pretty well on all fronts. The biggest issue I’ll have is with the spacial group detection. Some of the steps needed to get a reasonable graph are expensive to perform in the network (on the order of seconds). May be ok but could make the dynamic aspect of group detection more difficult. Sound is looking good, animation is looking good.
Moving the sound algorithm to the vest’s computer ended up being not too difficult. I need to find a better way to promote the code from the test bed to the Arduino. I may still have to do some tweaking but for the most part I think it’s working. The automated sound level adjustments are happening pretty well. With loud music I can see the volume adjusting to get some action going in the flashing. When I turn the music way down, volume goes up so that just talking can activate the display. It was fun to play around with that.
One other thing that happened is that I realized that I was using a lot of current when using the default full color flash display. I had a sneaking suspicion that this was a power hog command. I’ve now modified the pattern so that I can select a color to flash. One nice thing that came out of it is that the decay of the pattern makes new colors emerge towards the end of the flash. This is due to the random assignment of the color band.
So I already have some updates to the board that I need to do. As it turns out, we wanted to show some friends the vests. Fun! Easy to put together and run. We forgot to disconnect the LiPo batteries afterwards and they drained down to 1V. Ugh. Dead. 2 batteries lost.
I need to implement some kind of under-volt protection on the Arduino because I know that it’s going to be difficult to have people remember to take care of all of this late night out in the desert. Logistically we can help with how we set up camp but I think there needs to be some kind of hardware / software solution to this. Can a MOSFET handle the 3A. Probably but need to experiment. Even so, will the Arduino draw a low enough current for us to last through the night / morning? Probably but need to experiment.
Also, Chuck’s been over for the last couple of night’s building up his vest. We’ve been documenting as much as possible for an instructables.com presentation. Working on that now and hoping to have a full version soon.
I haven’t had custom boards built in a while. I was going to go with the old standby but I found http://oshpark.com/. Super cheap and imported Eagle files directly. We’ll see how it goes but it’s amazing to me how quickly (~2 hours) I was able to build up the board and send it off for fab. Sparkfun definitely helped with their tutorial on Eagle. Not only is oshpark cheap, and from what I hear quick, their boards are fab’d in purple!
Here is the first version of the board. I’m sure there will be mistakes and revisions but a first version in an afternoon is unbelievable.
This configuration will use the Arduino Pro Mini as the platform and will greatly reduce the size of the wearable hardware. The radio and computer will now be housed on the vest between the shoulder blades. The benefits will be: higher radio antenna for more range, less weight, easier construction & no need for a utility belt.
Forgot to mention my mom’s help in getting the vests assembled. I learned all of what I know about sewing from standing next to her while she was working on her machine as I was growing up. Watching her maneuver the machine to do what she needed was inspiring. She never backed down from a challenge.
I had a trip to Detroit 2 weeks before LiB and needed help getting a lining designed and implemented. She took the challenge like a champ. Thanks mom! (An example of her amazing photography is behind the machine).
One of the things that was clear from the LiB experience is that we need to include sound response. I found a great little microphone board at sparkfun that I wanted to test out. There was some Arduino code that helped with the audio integration but I was having trouble getting a sense of what it was doing. Processing to the rescue.
I found a program that reads the serial output of the Arduino (which was the audio integration feed) and graphed it. Video below. One thing that happens is that everything gets out of whack when you up the volume. I’ll have to come up with an algorithm that adapts the integration parameters based on the local volume level.
One of the things that I didn’t love about the LiB experience was having to wear a utility belt to hold the computer and battery. It was bulky and presented some difficult for me because I needed to carry the controller radio also. It worked great unless you wanted to sit down, which you’ll probably want to do at some point.
I’ve been looking at other Arduino form factors to try to get the computer small enough to mount directly onto the vest. I’m starting to test the Arduino Pro-mini. Address label size. I’ve mocked it up and it’s working well. What I’m going to start doing is working with Eagle (thanks sparkfun for the tutorial) to design the mounting board which will route power and signal around in a small package that will be mounted between the shoulder blades. The battery will still be down at the waist but I think we should be able to have it mounted to the vest instead of having it in a belt.
I’m going to try out sparkfun’s BatchPCB service this time around. expressPCB.com has been good to me but I think BatchPCB has some nice features and may be much less expensive (but takes longer).