In two weeks I’ll be giving a workshop on Controlling LEDs with Arduino, where I hope to present ways in which the Arduino can be used to control lots of LEDs though charlieplexing, IC controllers (such as the MAX7219 used for the clock face) and addressable LEDs such as the WS2812 (a strip of 24 such LEDs illuminates the seconds and hour position from the back of this clock).
The clock was thrown together with what I had kicking around. The body comes from an old IKEA clock (I’d bought it for the movement which went into a CNC cut LP clock) with four 8×8 LED matrices controlled by MAX7219s. Behind that a strip of NeoPixels / WS2812 LEDs provides the seconds (red band) and hour position (blue pixel).
The code could do with some work. It is based on the TimeSerial example provided with the Time library and as such it needs to connect to a PC to set the time. I’ve ordered a Real Time Clock (RTC) to aid in removing that dependancy. I might implement some sort of minute hand on the RGB LEDs, perhaps by lighting a few in another colour (and blending the colours as I have done when the second hand reaches the hour hand). The clock could be programmed to display a rainbow or larson scanner effect when the clock strikes an hour. I might add a Light Dependant Resistor (LDR) to adjust the brightness of the LEDs to match ambient light levels.
Finishing off the face with something which will replace the scrap of cardboard used to hold the LED matrices in place is about all I expect to do with this.
While at this year’s Maker Faire UK I picked up a Minishift kit from Arachnid Labs. I had previously bought their circuit pattern cards which I make use of when teaching the Intro to Arduino workshop. I soldered up the kit in the evening I got back from Newcastle using the instructional videos (a few non-intuitive elements such as orientation of the LED array and remembering to put the screws in before the LED array). I struck an obstacle when I tried to install and use Arachnid Labs’ Python example and not having much experience with Python I’m clutching at straws trying to get it working.
Falling at the first hurdle. On Windows 7 I tried using pip found in the Scripts folder within my Python 2.7.3 installation to install minishift-python but it spat back ImportError: No module named resource.
In hunting for a solution I found that I hadn’t added C:\Python27\ to the Windows Environment Variable %PATH% and while I was correcting that I added %PYTHONPATH%.
https://docs.python.org/2/library/resource.html states that the resource library is for UNIX platforms. I got this far and having seen this on a few google results decided that perhaps this isn’t Windows compatible.
Moving to Ubuntu on my old laptop I followed the Arachnid Labs instructions but couldn’t get the daemon running nor could I use the python example program to directly write text to the display.
ImportError: No module named hid
I had a go at installing cython in order to install hidapi (can’t find the link that inspired me to try that route) but my abilities with linux are rather limited and I hit some roadblocks I couldn’t get past.
Trying python -m minishift.minishiftd -d 32 appeared to pass (no feedback to the contrary) but when I use curl -G http://localhost:8000/set –data-urlencode “text=Test” it responded with curl: (7) couldn’t connect to host.
I was able to test that the minishift itself works by connecting it to an Arduino (without the USB to SPI adapter) and running the test code provided by Gregory Fenton on his blog labby.co.uk. With this success I went on to reuse portions of Arduino code I’d used with a MAX7219 LED array to scroll some text (only to find that Gregory had gone on to do something similar and post it on his blog).
This Halloween and the month leading up to it I put together a MAD Scientist costume. Most of the preparation was in the assembly of the 16×8 LED array which was free-formed to sit inside and take the shape of a brain-shaped jelly mould. It was the chance encounter with the jelly mould that sparked this costume off. The semi-transparent vacuum-formed mould looked ideal and it was a good fit for wearing on my head like a hat.
I already had some MAX7219’s so I knew that I was going to use these to drive the LED arrays and the left-over LEDs from swapping the colours on the LED Message Board were prime candidates for the array. I fool-hardedly embarked upon a bi-colour array, alternating Red and Blue without giving any thought to the different voltages required by the two types of LED. I kind of got away with it and was able to made a few animations based around the colour difference (i.e. police lights) but if I were to do it again I’d probably opt for just a single colour.
With the LED array nearing completion my attention turned to the asthetics of the brain. I didn’t want the LEDs to be obvious so would need to add an opaque layer and decided to paper mache some tissue paper inside the plastic. Finding white and pink tissue paper (the pink was too vibrant so the white went on first) I quite easily obtained a thin layer of coloured paper between the plastic and the LEDs. The LEDs are arranged on some single-core wire which was bent to the shape of the mould before the whole lot (including the MAX boards) was hot-glued in place.
A lab coat was bought on e-bay for less than £10 (wish I had spent a little more time on this as I went for a lab coat with striped edges instead of a plain lab coat). I took the lab coat with me to MAKLab and had a go at digital embroidery with an emblem and some text on the breast of the coat. This didn’t turn out brilliantly as we only had some cheap thread to hand but I felt it gave a weathered look. Had I not left it so late I might have given the coat a proper weathering (couple of coffee stains, dragging it around the studio and maybe a wash or two to loosen it up, add some elbow patches etc.)
To accessorise I found an old pair of safety goggles which had seen better days and dust mask and applied speckles of ink to both by spraying them using a sharpie pen and a makeshift air nozzle (straw cut and shaped to a 2mm hole). Blowing through the straw and placing the sharpie nib in front of the nozzle I got a few splashes and splats of colour (black with some red accents).
I took my old animatronic hand off the servo board and restrung it (the fishing lines had all snapped anyway). This was place on a carriage in the breast pocket of the lab coat and the fishing lines ran down the inside of the jacket to the lower pocket.
A hole in the other pocket permitted a cable to be run from the pocket up the jacket to the collar where it connected to a socket at the back of the head to supply power and signal from an Arduino in the pocket to the brain LED array.
I bought a halloween costume wig (£12) and modified it to accept the brain where the used to be a bald patch. This is held on by some hot-glue between the plastic of the mould and the fabric of the wig. I finished this off with some electrical tape (intending to match the Red/White/Blue of the lab coat but only going as far as Red and White).
The assembled costume cost me less than £30 (lab coat £10, wig £12, jelly mould £1 or so, tissue paper £2 with lots to spare, the rest was found or repurposed) and was great fun to put together and even more fun to wear.
Circuit diagram and code available for anyone who is interested (though neither are anything special), leave me a comment and if there’s any interest I’ll post them here.
Thoughts for upgrades or alternatives:
RGB LEDs arranged beneath the jelly mould would allow for more advanced animation and expression.
Even PWM control of the brightness of individual LEDs would be good (the MAX chip allows for 16 brightness levels but they are set for the entire array not individual LEDs).
Makeup, dirty/sooty look for the face perhaps with panda eyes where the goggles provide protection.
Weather the brain jelly mould (it’s a bit too clean and shiny)
Better blend the brain-face boundary, I wanted a metal strip but ran out of time and just taped up the edge of the mould. Perhaps add some wires or bolt/screw-heads.
Replace safety goggles with something DIY, perhaps steampunk-ish.
Similarly the dust mask wasn’t ideal, replace with custom ‘respirator’ continuing the bio-hazard symbology on the lab coat.
Replace Red/White/Blue strips on lab coat with Black/Yellow 45deg stripes (don’t know if or where these would be available).
More accessories, i.e. test tubes, black rubber gauntlets (I had some disposable gloves left over from spray painting), robot pet etc.
Could be a couples costume if the other half dressed as a frankenstein/monster/lab rat.
I’m moving to a blog based website in the hope I can quickly jot down some notes on my latest design/build/thoughts. This makes more sense to me as I’ve been working on 3d printing, laser cutting and arduino projects but don’t wish to detract from the time spent on these projects by documenting them extensively on my website (which involves editing php files in notepad and then uploading them to the respective page. The process was further hampered by images. Hopefully with a blog I’ll be able to sign in after an evening at MAKLab or the Electron Club and drop some notes or observations here for anyone that may be interested. I don’t anticipate that this blog will detract from my involvement in letsmakerobot.com, where I write up pages on my robots.