New Skoda Octavia “Remote Controller” (RC) campaign

Today was a big day, since we had to deliver the technical part of a campaign we're doing in collabration with Achtung!. Skoda has launched a new Octavia recently, and this off course needs to have a spectacular campaign. The idea Achtung! had was to make a website where you see streaming video of the new Octavia parked somewhere on the street, to get attention from people passing by (and have a lot of fun off course!), the idea was that you can control the car remotely on the website. Like honking the horn, using the wipers or start a cool light sequence. Each action comes in combination with a sound, played by speakers which are hidden under the hood. Once you're finished controlling the car you can send your minute of fame to all of your friends!
Have look at this live at the website, or have a look at this video which I've found on youtube:
We were asked to get the technical part done and make a system for Achtung! so they can just call some methods on the car fromthe Flash front-end which they've build. This meant that we had to make the following:
- Installing laptops inside the car and set up Flash streams over UMTS
- Installing a laptop in an other car and start Flash streams using an outside camera and UMTS
- Changing the car, so we can give the lights/horn/wipers power once the vistor on the website tells it to.
- Placing speakers somewhere under the hood, powerful enough to make as much noise as the horn, and small enough to be unnoticeable and portable.
- Building a queue manager in order to give the longest waiting person in line control over the car.
- Recording video's on the server, to watch back your minute of fame while playing with the car.
Setting up the streams was all straight forward, since we're experienced on mobile streaming. However, setting up something that controls the car is a whole different story. Lucky enough we've worked with Phidgets in the past, which are small electronics you can attach by USB on your pc and can be accessed from the Flash player (and a lot of other players/program languages). So basically, we can say in Flash "switch power on on port 1" and "switch power off on port 6" and this will cause in switching 5 volts of power on different ports. People with some electronic experience know that this can be used for relays switching something on and off.
Since this can be done from Flash, we can let Flash communicate with a RTMP server as well (in our case my favorite one for applications, Red5!). Let the visitor communicate with that same red5 server and you're there.
To simplify this, you can say that it works as follows:
- The user clicks on button to put the lights on.
- Flash player calls a function on the red5 server "turnAllLightsOn()"
- Server invokes this call on the connection of the car
- Flash application inside the car receives "turnAllLightsOn()"
- Flash application switches power on port 1
- Relays detects power and will turn the lights on.
