Sunday, 17 March 2013

To Find an obsolete or discarded piece of equipment, and repurpose it: ‘The Disco Dalek’

Sasha Scott

My project was defined simply by the potential that could be found in taking apart a discarded children’s toy looking inside. The dilapidated and discarded model of an ‘evil’ creature from a popular TV series was lobotomized, reconditioned and rehabilitated to become a disco-dancing queen. By hacking the old circuit board, adding an elaborate LED array, and a simple bit of code, it was possible to make it move, speak and display itself like a peacock in all its finery.

The most prescient line in the brief for me was ‘complicated is not always better: make something fun, quirky and elegant’. With this in mind, I set out for my cruft. I had decided I would let whatever interesting items I came across define my project as opposed to hatching an idea and searching for objects with which to fulfill it. An afternoon in Deptford flea market proved highly fruitful; I came away with several old, broken and incomplete toys, and all costing less than 50pence. My only criteria for choosing what I did were that I must be intrigued by what I might find inside. On closer inspection a radio-controlled car was dismissed for being too boring and therefore lacking potential, and a toddler’s word-play game was discarded for being in too far a state of disrepair. I was left with a battered but brilliant ‘Dalek’ model. Despite its lifeless state, it contained plenty of interesting parts, including an intriguing audio system.

The Project
First, it was necessary to decipher exactly what was going on inside. A lifeless circuit board, several loose wires and a lot of heavy duty adhesive had to be traversed, and within not much time I realized it had previously been remote controlled. This was good news, as after a few remedial repairs, the radio receiver on the board could easily be bypassed. By simply linking in my Arduino board and giving the two circuits a common ground I now had control of two motors to control movement, and five pins that activated various catchphrases from the famous ‘Dr Who’ series. So now I had to decide what I wanted to do with it. I decided I simply wanted to reverse its character. The Dalek we know from TV is an evil alien creature determined to rule the world through violent suppression, in the form of all the best ‘baddies’ around. So wouldn’t it be great to turn this evil being into a fun loving party animal? If I had control of its movement and speech, this was well within my reach. However, to really be the party, he would need to ditch the drab black outfit as well, and the best way of doing that would be to brighten him up with some kind of light display.

The original circuit board, and the Arduino taking control.

Next came the need to brighten everything up. As Daleks are adorned with hemispheres of black plastic in rigidly ordered fashion, I decided I would base my lights on this. Therefore, 56 individual LEDs were needed, creating my first large project issue. Arduino boards only have 14 pins with which to disseminate information. I have already assigned nine of these to voice and movement controls. My answer would be found in the 74HC595 shift register, a devise that comes allows the control of eight outputs at a time whilst only using three pins on the Arduino board. It does this essentially by pulsing one pin up and down, thus communicating a data byte to the register one bit at a time. A second pin then delineates between those bits, in a process known as "synchronous serial communication". However, 8 pins still do not accommodate 56 LEDs! My answer lay with the ‘Serial OutputPin’ on the shift register, which allows for the information received to flow out again unchanged. This facilitates the ability to transmit 16 bits (2 bytes); the first 8 will flow through the first register into the second register and manifest there. The registers can then be daisy-chained until the number of outputs required is achieved; I needed 7, and the input is therefore multiplied and formatted accordingly.  

The need for 7 shift registers did not in itself present a problem, but along with the requisite circuit board, wiring and LEDs, it became clear very quickly that space in the internal cavity was fast becoming a premium, and as such I would have to be very careful to keep everything as small as possible, employing my fledgling soldering skills to their full capacity.

The shift register circuit before and after securing it inside the model.

The master plan was to set the functions and possibilities through Arduino, and control or trigger them through MaxMSP. The idea was quite simple; by using a beat tracker, when music was played a set of responses would be triggered in the Dalek in time to the music. This idea evolved into mapping three tonal peaks (low, middle and high), and having the three functions respond to separate parts of the music. Unfortunately, time proved too elusive to allow me to fully implement this.
For the movement, I wanted to give some grace to an otherwise clumsy creature. I decided a Waltz was appropriate, and the only classical dance sequence I might aspire to achieve with such limited functions. I was semi successful in this; I mapped a large part of the required steps, but implementing them in a code that flowed in relation to the other functions proved too much. As such, I had to seriously dumb down the movements, but this is certainly an area that has potential for a lot more fun work.

The voice function threw up other issues. My concept was to make the Dalek ‘sing’ of sorts. The functions run by a single switch, trigger by a simple on/off command from the Arduino. Each voice command triggered a full sentence, but if another was triggered quickly it would over-ride the first, allowing for a ‘beat box’ effect. This was achieved, but I was left unsure how apparent it was to the outside audience. Having spent so long with it, to me it was obvious what I had manipulated, but I suspect it was not so for others.
As mentioned above, time proved too elusive to fully implement all the coding I was going for. However, I put together a rather clumsy string of code that at least displayed the various functions that I had either created or taken control of. This threw up its own complications, as all the separate functions had to be interspersed with each other to make sure it flowed as a comprehensive whole. Despite this, I still feel the project was a success. I managed to alter and manipulate the Dalek, and even if I did not use that to its full effect the potential is there to make it do all manner of things; the control mechanisms are all in place. 

No comments:

Post a Comment