Wednesday, November 28, 2007

Arduino workshop

We all went the the Tinker.it Arduino beginners workshop in London on the 17th & 18th November.

The workshop began with Massimo Banzi giving a history and overview of the arduino board and it's uses. After a quick coffee break we started 'tinkering' with our boards. Firstly the simple Hello World/LED flash, then on the the pulsing LED. I discovered that swapping the LED for a piezo made a very annoying square wave. The fist day was well structured and went at a nice steady pace.

The whole sunday was dedicated to our own projects. George, Henry and I decided to work in a group and produce two Braitenberg type vehicles, a predator and a prey. This almost worked and although we managed to get everything working, the vehicles were too heavy for the small motors.


In hindsight it would probably have been easier to make the vehicles without the arduino altogether. However, were we able to get the vehicles working, 'personalities' and other interesting features would have been possible via the arduino code.

The workshop was a good introduction to the arduino board as well as some beginner electronics and coding. Now we just need to think of something big to make for when Massimo visits in December.

Wednesday, November 21, 2007

Phidgets Smidgets.

'= So we met up at Brighton Station, the three of us, Jon “Time for a Coffee” Bird, Henry and me.A pleasant journey up to Kings Cross spent discussing projects, computers and art. Much to the delight of our fellow passengers .

We met the others on the way to The Wellcome Trust and so we started the class. Massimo Banzi explained the origins of the Arduino board as a device to allow for the rapid prototyping of design ideas. He has a way of talking about technology that makes you believe that you can just start taking things apart and building machines out them. We spent the first day learning the basics of the control programmes and by 5.30 we were well “cooked on both sides”.

Just can't resist. Photo by Jean Baptiste Paris

We were encouraged to bring various bits of redundant kit to “hack” for the next day. I brought in an old Wacom tablet as I thought it might contain some interesting possibilities and I had always wanted to see the inside of one. After chatting to Massimo about how to get some readings out of it, I attempted to solder some wires to strategic places on the circuitry. Unfortunately I succeeded in burning a large hole in it.

Wacom tablet I decided instead to find some more detailed and challenging programming exercises on the web and found a site called “Processing Meets Arduino” which had a number of projects based on the interaction between sensors and software.

It taught me quite a lot, especially the importance of efficient and accurate electronics when putting together these sorts of systems. I speak as someone who comes from an art background who had not programmed before last month.

The workshop drew to a close with a review of everyone’s projects and the award of Tom Igoe’s book Making Things Talk to the person whose name was drawn out of a hat. We all came away from the workshop feeling inspired and well informed enough to know how to put that into practice. We look forward to Massimo’s visit in December.

Arduino anti-theft device

Play Station 2 Guitar Hero
Due to scurrilous thieving sods at the pub I work at I'm in the process of building an anti theft device using Arduino technology for the Guitar Hero 2 wireless controller. I'm going to use an RFID tag and an RFID reader and some cunning. Lordy I might actually find some practical use for myself from the workshop!
Playing with Arduino at the workshop

Tuesday, November 20, 2007

Tinkering versus engineering

Hack Massimo.  Photo by Alexandra Deschamps-Sonsino.When Massimo Banzi was introducing the philosophy behind Arduino at the recent beginners' workshop in London, he described his approach as 'tinkering'. Massimo referred to himself as a "renegade engineer", suggesting that there are differences between conventional engineering and tinkering. He came across this term for the first time when he was at the Exploratorium in San Francisco, which is putting on another tinkering exhibition in June 2008: "Tinkering, focused activity with the right materials in the right environment, can lead to great new inventions, but more importantly it builds self confidence and critical thinking skills in technology". That definition emphasises the advantages of tinkering but doesn't clearly distinguish it from engineering (which clearly has the same benefits that they describe).

Henry explains how the predator robot works. Photo by Alexandra Deschamps-SonsinoMassimo gave a more psychological definition: "what happens when you try something you don't quite know how to do, guided by whim, imagination and curiosity". Conventional engineering is goal driven and so this is one way it differs from tinkering. Massimo talked about the value of building things without having any particular goals as this means there is no right or wrong, or concept of failure.

George demos the predator robot. Photo by Alexandra Deschamps-Sonsino.Massimo suggested several other ways in which tinkering differs from conventional engineering. Firstly, he believes people should be at the centre of any design process, rather than technology (which is typically what engineers do and perhaps explains why interfaces can seem so alien sometimes).

Secondly, Massimo's approach is to "describe by showing": quickly build prototypes in order to explore ideas. This approach is often used in conventional engineering too, but there tends to be more emphasis on formal methods rather than hands-on exploration.

Jo demos her colour detection circuit. Photo by Alexandra Deschamps-SonsinoThirdly, he talked about how tinkering involves working out how existing systems work and then re-working and re-using them. As examples, he talked about scavenging the Olivetti junk yards in Ivrea for electronic parts, circuit bending and toy hacking.

I've been interested in the engineering/tinkering distinction for a while. In a 2002 paper with Paul Layzell we came up with the following distinctions that echo Massimo's:








ENGINEERINGTINKERING
Clear goal/planOften no goal/plan
Not necessarily dependent on previous designsUses whatever is to hand
Aims for best solution given constraintsMakes some kind of workable object
Insulates subsystems and minimises unforeseen side effectsCombines systems or transforms them for new uses


Jon demos his Piezo project. Photo by Alexandra Deschmaps-SonsinoArduino workshops demonstrate that the tinkering approach is pedagogically very valuable, but it can be a potent design methodology as well. Evolutionary electronics research, which could be viewed as automated tinkering, can produce circuits that would not have been produced by conventional design, for example, Adrian Thompson's tone discriminator and Paul Layzell's evolved radio.

Adrian's research page is a great resource for finding out more about evolutionary electronics. It also has two novel, possibly unique, examples of applying haiku rules to academic paper titles (both were presented at a conference in Japan and have 17 syllables organised in a 5, 7, 5 pattern):

Predator robot made by George, Chris and Henry at the Arduino workshop. Photo by Alexandra Deschamps-Sonsino.An Evolved Circuit,
Intrinsic in Silicon,
Entwined with Physics.


Through the Labyrinth
Evolution Finds a Way:
A Silicon Ridge.


Darwin viewed natural evolution as a tinkering process: “throughout nature almost every part of each living being has probably served, in a slightly modified condition, for diverse purposes” (C. Darwin (1886) The Various Contrivances by which Orchids are Fertilised by Insects. D. Appleton.). The biologist Francois Jacob was even more explicit: “Evolution proceeds like a tinkerer who, during millions of years, has slowly modified his products, retouching, cutting, lengthening, using all opportunities to transform and create” (F. Jacob (1989) The Possible and the Actual. Penguin Books.).

We are evidence that evolution can generate complex, creative systems. But as a blind process, it can take an incredibly long time. Surely it's always better to use a conventional, top-down approach to design if you want to get anything done in a reasonable time? Adrian Thompson argues in his paper Notes on Design through Artificial Evolution: Algorithms and Opportunities that for some design challenges conventional engineering cannot help us and the only way we can proceed is to adopt a tinkering or evolutionary approach. Keep hacking away at those Arduino boards...

Monday, November 19, 2007

Arduino goodies

Jo, Jeremy and Jon (talking to Alex)As Jon says below we went to the big city for a workshop. Beginners electronics using Arduino boards with the Arduino man Massimo himself. After getting an LED to flash slowly I managed to make it flash with a bit of speed to it. Next up was an LED ramping up and down.

light sensor driving an LED on pin 13 of the Arduino boardFrom those basic starters it was pretty straightforward to get a light sensor hooked up and start pumping data into Processing. Next up was the potentiometer hooked up to the Piezzo sensor. By changing the voltage Chris and I were able to make an awful racket like a Theramin crossed with a cat.

Massimo Banzi teaching at the Wellcome CollectionToday we collected a bunch of old electrical stuff from the bins so we can start making our own pieces. Steim watch out.

Arduino workshop 17-18 November

Massimo Banzi teaching All the students on the Creative Systems MSc participated in a great beginners' Arduino workshop led by Massimo Banzi and organized by Tinker.it. Massimo was an inspirational teacher and on the first day he covered the basics of using Arduino : digital and analog input and output and serial communication with other programs (such as Processing). Even more importantly he told us about his tinkering/rapid prototyping approach to designing and building interactive systems. We were all soon hooking up sensors to our laptops and driving LEDs (included in the price of the course was an Arduino board and a bag of electronic components). On the second day everybody worked on small projects ranging from hacking a Nintendo Wii nunchuk to generating music from barcodes.

George, Henry and Chris worked on an ambitious project to build a predator robot that would chase a prey robot. Rather than canibalise a remote control car they constructed everything from scratch, including the wheels (out of cardboard and gaffer tape). They managed to achieve a lot in a short time and with a few parts from the Autonomous Systems Lab at Sussex the robots should be charging around very soon.

Chris working on a predator robot Inspired by Massimo's Virtual Fish Tank, Jo worked on a circuit to identify objects by their colour using LEDs, a light sensor and a Quality Street box. The chocolates got eaten in order to provide filters for LEDs on the robots, apparently.

Jeremy worked on using a variety of sensors to drive Processing sketches. This involved cracking how to use serial communication and he can now link hardware to a wide range of programs, such as Flash and Max.

Jon's Piezo project I explored linking Piezo transducers to Processing. I hooked up 4 (there are 6 analog inputs on an Arduino board) and connected them to coffee cups and a plastic milk bottle (found on the street on the way to the train station). It was necessary to separate the sensors in this way as when they were all wired on a breadboard they interfered with each other - knocking one could also trigger a neighbouring sensor. Thanks to Alexandra Deschamps-Sonsino for soldering the wires onto the Piezos (and for organizing a great workshop) so that I could then tape them to objects.

The Piezos are very sensitive and return values in the range [0, 1023] - the trick involves putting a large resistor (one mega ohm) in parallel with the sensor. I am hoping to use the outputs generated by knocking/tapping the sensors to drive a wave simulation. At the workshop I got the serial communication between Arduino and Processing working fine - when I hit the cups or bottle a windowin the top left hand corner of my laptop screen changed colour (the colour indicating which object had been struck).

The aftermath of trying to build a robot in 3 hours It'll only take a little bit more coding to use the Piezo signals to drive waves (and their interactions) in Processing. I want to use these waves to perturb a neural network visualization that I coded in a previous project (Network).

Ultimately, I want to build a smallish network in hardware using a grid of LEDs which could be housed under glass or some diffusing material and perturbed by knocking the edge of the covering material - interactive coffee tables? The workshop has been an incredibly useful first few steps towards this. All the students have been inspired as well and I think one of the labs is going to become dedicated to physical computing projects. Skips are being searched for electronic junk as we speak.