Experiment #3: Phone Based Real World Game

2010.05.16

For my third project, I had initially planned to serve a 10 course meal prepared using the techniques that are associated with what is commonly known as “molecular gastronomy”.  I even found a food cart that I could use on presentation day. However, even though I spent many weeks trying to perfect the execution of some of the dishes, I had lots of trouble consistently making things work the way that I wanted. So in the last couple of weeks, I put aside my pho caviar, mango and sticky rice egg, and my other creations to find a new project.

I was planning on giving a presentation on non-traditional hacking which would have included a section on food hacking (i.e. “molecular gastronomy”).  When I learned that ACTLAB classes in the fall were canceled, I decided that in honor of the ACTLAB, that my project needed to take to heart the title of the class. So I began pondering what could possibly be worthy of a class titled Extreme Freestyle Hacking.  And in the final week of classes, I decided that I wanted to do something with phones.

After kicking around several ideas, I decided to make phone based game where people would have to call in to a computer which would give them instructions.  There were types of game play that I wanted to explore, but unfortunately lack of time left me able only to program the code/system for the simplest type of game.

The game play works something like this:

  • players are divided up into teams
  • each team is given a number
  • the phone number of each player is blocked
  • players are told to convince random strangers to call their team number and leave a message
  • each unique number which calls that teams number results in a point

In order to make all of this work, I used a piece of open source software called Asterisk which allows one to program a computer to answer phones. I won’t go much into detail, but I will say that Asterisk is no fun to deal with.  The phone numbers that were used were Google Voice numbers which I forwarded to a SIP-trunk which is essentially a phone-computer bridge. Asterisk connects over the internet to the SIP-trunk.  All of the Asterisk programming was done using PERL. I found it much easier to work in PERL than Asterisk’s native dialing plan language. The Asterisk server itself was hosted on a Linode VPS located in Dallas, Texas to reduce latency. The SIP-Trunk was also located in Dallas for the same reason. All in all, I managed to setup the server, the lines, program everything, and buy the necessary wires and equipment for the presentation in about 36 nearly consecutive hours.

The presentation was a success and many people enjoyed the game. It forced people to think on their feet and interact with people around UT. The final score was 48 Red to 40 Blue for a game of 20 minutes.  88 unique calls in 20 minutes was more than expected.

Here are some pictures and sound files from the presentation and game:

The computer took forever to call initially. That was some awkward silence:

Answering the phone:

Arthur not killing a deer, but using his door-to-door skills to score a point for Red:

Point for Red:

Another point for Red:

These people growled at us:

Red attempts to get a point from UTPD:

Game Results:

Here are some audio files from the presentation and game:

Recording of the Audio from the Presentation Phone Call:

[I apologize that this is "hot" but there wasn't anything I could do about it.]

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Some of the messages that were left:

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

All in all this was a great success and a good way to finish up Extreme Freestyle Hacking. I hope to implement the other games fully this summer.

Thanks to everyone involved with the ACTLAB!

Experiment #2: Induction Powered Flashlight from Reclaimed Parts

2010.04.01

For my second project, I decided to build something out of reclaimed parts. A neighbor has fairly large junk pile which has been full of useful things in the past so I traded 4 beers for access to the pile.

The Beer:

slide0001_image001

The Pile:

slide0002_image002

After nearly a half hour of searching, I found a surplus sprinkler head, several coils of wire, a capacitor, and a set of magnets that came from a toy. I realized that all of these could be used to make a flashlight based on induction. After some hacking I ended up with the final product:

slide0004_image003

All pieces with the exception of heatshrink used for insulation and solder were found in the pile pictured above. The capacitor came from an old video camera, but I didn’t have to desolder it as he decided to save it. The duct tape was removed from an old box and the magnet wire came from an old hand-wound transformer. Some of the parts that were used like the breadboard and the LED were surplus from some of my neighbors old projects. The flashlight works great except for the fact that it takes nearly an hour of shaking to get a good initial charge. After initial charge has been reached, it is easy to re-charge.

The pictures below show the guts of the flashlight, some construction pictures, and some testing pictures. Enjoy!

Face of the Sprinkler Head:

slide0016_image004

Disassembled Flashlight:

slide0014_image005

Disassembled Head:

slide0012_image006

Head Wiring:

slide0010_image007

Circuit Board Front:

slide0005_image008

Circuit Board Back aka. Shitty Soldering:

slide0006_image009

Connecting Wiring:

slide0011_image010

Connecting Wiring 2:

slide0013_image011

Induction Coil from Reclaimed Magnet Wire:

slide0009_image012

Neodymium Magnets?:
slide0007_image013

Magnet Bumper Made of Old Sticky-Tack:

slide0008_image014

Surplus LED Being Mounted in Old Mag-Light Style Reflector:

slide0018_image015

Soldering Connecting Wires:

slide0019_image016

The Heatshrink Was Not Reclaimed:

slide0017_image017

Shrinking the Heatshrink:

slide0021_image019

The Final Product Again:

slide0022_image020

Testing revealed that the Red LED was the brightest of the 3 that I found:

slide0015_image021

Lights On/Lights Off:

slide0029_image022

slide0030_image023

Long Exposure Photography Test/Art:

slide0028_image025slide0027_image026slide0026_image024
slide0025_image027

Experiment #1 – Timelapse Using a Cheap Consumer Camera

2010.02.25

For my first project I decided to explore hacking a Canon Powershot Series Camera in order to experiment with timelapse photography.

Timelapse photography itself is one of the older forms of visual media based hacking. It allows one to compress hours, days, weeks, months, and even years into a fraction of the original time. Watching a timelapse is often a surreal experience as the speed at which things occur is in no way similar to what we are used to experiencing. The timelapses in the BBC Documentary Series The Private Life of Plants are particularly striking.

In order to create the timelapse using the Canon Powershot SD850 available from the IMC, I used an open source firmware called the Canon Hacker’s Development Kit (CHDK) which allows one to unlock the potential of many Canon point and shoot cameras. CHDK can not only be used to override limits imposed by the native firmware on things like shutter speed, but can also used to control the camera via a BASIC-like scripting language. Using the BASIC-like scripting language, it is possible to set the camera to take pictures on a specified interval. Furthermore, CHDK is installed on the memory card and is loaded only when the memory card is locked meaning that no permanent changes need be made to the camera.

One of my favorite types of timelapse is one of a drive. I had intended to timelapse the drives from Austin to Houston on 290, around 610 in Houston at night to capture the ship channel, and from Houston to Austin. Unfortunately due to time constraints, that proved to be impossible. Nevertheless, I did manage to get a fairly good night capture of a 1.5 hour drive in the Austin/Lake Travis area. Attempts during day-light hours failed miserably due to a particularly annoying feature of the SD850 which is common to most of the cameras in the PowerShot series.

The majority of the PowerShot series do not have an actual iris. Instead, they have one true aperture at f2.8 and a simulated aperture at f8.0. The simulated aperture at f8.0 is created by a neutral density (ND) filter which is moved in and out of the optical pathway behind the lens. For some reason, the SD850 during daylight hours would just randomly remove the ND filter for several shots leading to horrible overexposure which ruined all of my daylight timelapse attempts. After some poking around, I discovered that one can use CHDK to permanently set the state of the ND filter to either IN (“f8.0″) or OUT(“f2.8″) to prevent this problem. I would highly recommend forcing the state of the ND instead of leaving it in the hands of the camera.

Battery life was another issue I encountered. Attempting to take >4000 photos in rapid succession quickly drains the battery; turning all Review modes off helps some what, but the camera still activates the screen when taking a photo. The solution is quite simple but brilliant: plug any headphone jack into the camera’s video out. This tricks the camera into shutting off the LCD and extends battery life past 3 hours even with an interval of less than 1.0 second.

The IMC only provides a 4GB memory card which is quite small when one is attempting to take >4000 photos at the highest quality setting. One can maximize the amount of photos that the card can hold by using the widescreen mode which also has the added benefit of providing a more film-like aspect ratio. Due to some technical issues, it is not possible to easily use a SD card that is larger than 4GB with CHDK. I found that I needed much more than 4GB card and used an 8GB card which required formatting the card and using a beta-version of the CHDK firmware for the SD850. That is a trivial task with a Linux machine, but quite difficult with a Windows XP box. That process was an entire hack in of itself and would require a lot of space to explain properly.

The last issue that I ran into when attempting to create my timelapse drives was how to mount the camera in my car. At first I thought about building a rail which would sit between the headrests on the headrest pegs, but I quickly realized that I would run into serious vibration issues. Eventually I decided to just try a tripod that I borrowed from the IMC. In order to stabilize the tripod I jammed the legs into the space between the center console and seats in my car and used a bungee cord to help support the tripod.

This worked amazingly well and the image was steadier than the daylight timelapse I later captured at St. Edward’s Park.

After the capture of images, the images needed to be processed. There is some upper limit of the resolution that the frameserver on my computer would handle properly. The images out of the camera were too large and were batched resized to 1080px width using IrfanView. The images were then stitched together with the appropriate framerate, resized, and the levels adjusted using the powerful and opensource frameserver Avisynth. I also used the Photoshop “glowing edges” plugin in a batch script before processing with Avisynth to create a more surreal version of the timelapsed drive. I found that the optimal framerates were 15fps for the original version and 24fps for the filtered version. The original version was compressed from 1.5 hours to just over 30 seconds. The filtered version was compressed even further creating the effect of blinding speed.

I recommend watching these in full screen. Be sure to watch the clock the in the original version. Enjoy!

Original Version:

Get the Flash Player to see this content.

Filtered Version:
Get the Flash Player to see this content.

Tags :