Thursday, 29 December 2011

Christmas crackers...


Christmas crackers...
Originally uploaded by rosemarybeetle

Why, Christmas crackers can be good! Look what the trinket gift was in my cracker this year. By chance, exactly the pair of 1000V safe, high tensile alloy long-nose pliers I need to bend and sculpt wire etc. into shapes. Thanks Santa!

Thursday, 22 December 2011

Making pantomime costume head - completed vulture head

The finished vulture head

Pantomime costume making - vulture costume head

Shown below is the original mask with the papier mache casing removed. The cling film barrier layer can be seen. This stops the PVA sticking to the underlying model.

The two halves are removed by cutting in half symetrically - lengthwise along the centre of the head, from front to back.These were later stuck back together with reinforced packing tape along the join, which had a strip layer applied over it to hide the join.

After painting and detailing with marker pen the finished head was varnished with 3 layers of flooring varnish.


Pantomime costume making - vulture head

Thursday, 1 December 2011

Head for a pantomime goose costume - part 2

Pantomime goose costume beak

Beak, shown against the rough sketch design. 








Goose sketchesGoose sketches to help fix the design in the brain.


Pantomime goose costume head
Pantomime goose costume head

Constructing the framework for the skull of the head using withies (green willow sticks)







Building up the outer shape of the head by applying cardboard contouring



Pantomime goose costume head

Cardboard head contours almost finished
Applying papier mache to pantomime goose head

Papier mache applied over cardboard contouring.





Pantomime goose costume head



Complete head fully covered in papier mache outer layer.

Tuesday, 29 November 2011

Crow head model



Crow head - shaped chicken wire with xmas-decoration baubles for eyes, skinned with silver gaffer tape
Positive model to be used as a forma over which to apply papier mâché.
November 2011

Sunday, 27 November 2011

Head for a pantomime goose costume - part 1


Agreed to make some costumes for pantomime.
Trying to make several bird heads, starting with a goose. A quick while on Google images and I found some great goose shots. First thing is to copy out and draw them a few times. This helps fix the shapes in the brain.





Once the picture is in the head, drew a quick final rough largish sketch to work from.The beak is the most important piece, as it is the defining shape of the bird head (birds' heads are pretty much all the same shape, except for the beak)





 To create the beak, used some soft builder's mineral insulation. This is much the same as Oasis, the green stuff used in flower arranging 

Started by roughing out the block in outline form







With a carving knife (my trusty 12" ham slicer), sliced out the detail of the beak shape.






Once shaped, a bit of light sanding got rid of the visible cut marks from the knife blade







With final details carved and finished - ta da - one beak, shown against the rough sketch design. 








Wednesday, 23 November 2011

Head needs a controller

The remote control automata reading lamp head needs a suitably daft controller.
It uses a playstation 2 analog joystick as the input device,
Playstation 2 controller wired to Arduino
but this needs something more anatomical to skin it with. It has been suggested a hand would be rather ironically appropriate. It should look like this, but match the MDF finish of the head

image from wpclipart.com

Arduino workshop

Have recently been in Atlanta at a great workshop run museum multimedia techies.
Here we hacked together 4 arduiono projects in about 3 hours

A prototype theramin. the tone rate changed, but didn't quite get the pitch to work
Arduino Theramin prototype
A light show controlled by changes in ambient light
Arduino prototype: Electric Light Orchestra
Slide the glass game using proximity detectors
Arduino prototype: Electric Light Orchestra
There was also a Flash animated fish in a Flash fishtank controlled by proximity detectors

Tuesday, 1 November 2011

3-d printing

This table is pretty nifty...
3-d printed table












And is actually just printed out using a rather cool 3-d printer

3-d printed table

Saturday, 1 October 2011

Making high power (3W) LED eyeballs for the automaton

New eyeballs

The eyeballs in my automaton head work OK, but are woefully underpowered. Time to make some new ones!
This is looking at the basic starting point of a detachable eyeball from the front look towards the back. The hole is where the housing goes.
Detachable eyeball
The housing is the (more or less) parabolic reflector from a torch
Hacking parts from a torch
The eyeball is made detachable by adding a rubber grommet, which allows it to be pushed tight onto the servo control rod. The rubber friction holds it tightly in place.
Detachable eyeball
The eyeballs are ready to attach, although not cosmetically finished yet.
New High power LED eyeballs
Here they are hooked up to the breadboard to test how they work
New High power LED eyeballs
They are remarkably more powerful. Each LED is 3W, which is pretty bright. It hurts t0 look straight into them
High power LED eyeballs being tested
You can see how much more powerful the 3W led is on the left
Comparing high power LED eyeballs

Here the test is to see how much light they give off in total darkness. The head is meant to be a bedside/reading lamp with remote control directable beam, via the eyeballs.

Testing shows this is plenty of light!
High power LED eyeballs being tested
Close-up it's easier to see how much light is given off.
High power LED eyeballs being tested

Tuesday, 27 September 2011

Hacking VHS players for spare electronics parts

VHS video - electonics parts recycling This is the inside of a dead VHS video recorder/player. It turns out it is still full of lots of old-school eletronics. Sure, there are lots of PCBs, but due to the mecahnical nature of video players with their big motors and stuff, there are a lot of useful connectors in there, as well as some high power resistors, transistors, loads of potentiometers and so on. A good way to pick up cheap parts.
Here is a handy 10 pin connector with the wiring all nicely connected. Try soldering anything remotely as neat as this, and you will see how useful a ready made is!
Remote control connector for Automata head
Here it is connected up to the breadboard jump leads coming off the arduino
Remote control connector for Automata head
And here it is fed into the underside of the head, from the board
Automata head connected

Wednesday, 14 September 2011

Hacking PS2 controllers

Having got the basic arduino servo options sorted (if not finished), I have been rooting about for ready-made compact controllers. I have decided not to overstretch and will use a wired system for now, but may change to wireless later. Anyway, I wondered what's in a PS2 controller...

Here's what the PS2 controller looks like taken apart:

Hacking up Playstation 2 analogue joystick  
Here's what the joystick looks like. The blue things are potentiometers

R0017304
The other side, showing the press down button (the white bar pushes down on the black switch


Playstation 2 joystick internal hardware









Here is the joystick wired up to the arduino controlling the servo



Playstation 2 analogue joystick control








BLISS!

  

Tuesday, 13 September 2011

Some arduino code for servo control

THis is the latest version of lamp_head - the arduino test code for controlling my automaton lamp/head/thingy

a lot of this is redundant, but there are 2 functions
1. "readPots()" uses potentiometers to vary the voltage to analogue inputs, then converts this to a digital number then  uses that to control servo position. This would allow 2 controls (up/down and left/right)
2.  "manualUp() uses a switch to decide whether to incrementally increase the digital output . In this case, if the switch is on, then the output goes up, if it is off it sticks at the latest value. This could be used with a joystick, so that pushing up increases the UP/Down values incrementally, and pushing down would reduce it correspondingly. This would need four such inputs to be set up


circuit diagram
Arduino circuit diagram for automaton
>>>>>>>>>>>>>>>>> here starts the sketch >>>>>>>>>>>>>>>>
/*
  Lamp head version 3 - this programme is to control the automaton lamp head
  Andrew Lewis September 2011
  This code is in the public domain.
  1. Turns on and off a light emitting diode(LED) connected to digital pin 13, when a switch attached to pin 2 is turned on.


 The circuit:
 * LED attached from pin 13 to ground
 * pushbutton attached to pin 2 from +5V
 * 10K resistor attached to pin 2 from ground
 

 */

// constants won't change. They're used here to
// set pin numbers:
// @@@@@@@@@@@@@@@@ stuff to do with LED controls
const int switchPin1 = 2;     // the number of the pushbutton pin
const int ledPin =  10;      // the number of the LED pin
int buttonState = 0;         // variable for reading the pushbutton status
int delay_val_LED=10 ;
// @@@@@@@@@@@@@@@@@@@

// @@@@@@@@@@@ This defines aspects fo the digital control
const int pinUp =11;  // constant to set the UP input to be digital pin 11 (d11)
// this
int delayer=10; // sets delay for digital control
int valUp=90;  //set manual number conrol UP at mid point by default =90

int upPin=11; //defines up eyeball control value pin to be digital pin 11
// @@@@@@@@@@@@@@@@@@@@@ end

#include // includes servo class file (out of the box from arduino.cc - TVM!)

Servo myservo;  // create servo object to control a servo
Servo myservo2; // create second servo object

int potPin1 = 0;  // analog pin used to connect the potentiometer (pot 1) for servo 1
int valPot1;    // variable to read the value from the analog pin for servo 1

int potPin2 = 1;  // analog pin used to connect the potentiometer for servo 2
int valPot2;    // variable to read the value from the analog pin for servo 2



int delay_val=15;  //the value of the servo wait delay fro both servos
int val_lamp=0; // lamp output value for fading up
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT); 
  pinMode(switchPin1, INPUT); // initialize the pushbutton pin as an input:
  pinMode(pinUp, INPUT); // sets digital PIN (defined by pinUp) to be the input for increases that make eyes go up UP
  // attach servos
  myservo.attach(5);  // attaches the servo on pin 9 to the servo object
 myservo2.attach(9); // attaches second servo to pin 8 to second servo object
}

void loop(){
  // lamp controls
  // fade_on();
   turn_on();
manualUp();  //Include this function to check for digital increases in UP value (this would be one of four needed to control eitehr a joystick or other four point controller
//readPots()// Include this function in the loop for dual analogue controls (1 potentiometer per servo)

   }
  
   // define manual increase meter
   void manualUp ()
   {
    
     if (digitalRead(pinUp)==LOW){
     valUp--;
    valUp = constrain (valUp,0,179);
 delay (delayer);
 }
     myservo.write(valUp);
   }
   ///define potentiometer function
  
  void readPots()
   {
      // read the state of the pushbutton value:

  // servo controls @@@@@@@@@@@@@@@@@@@@@
  // Servo 1 -------------
  valPot1 = analogRead(potPin1);            // reads the value of the potentiometer (value between 0 and 1023)
  valPot1 = map(valPot1, 180, 800, 0, 179);     // scale it to use it with the servo (value between 0 and 180)
  myservo.write(valPot1);                  // sets the servo position according to the scaled value
  delay(delay_val);    

  // ------------ servo 1 end
  // servo 2 ------------------------
  valPot2 = analogRead(potPin2);            // reads the value of the potentiometer (value between 0 and 1023)
  valPot2 = map(valPot2, 180, 800, 0, 179);     // scale it to use it with the servo (value between 0 and 180)
  myservo2.write(valPot2);               // sets the servo position according to the scaled value
  delay(delay_val);    
  // ------------ servo 2 end
  // end servo controls  @@@@@@@@@@@@@@@@@@@@@@ */
   }
void fade_on () {
 if ( digitalRead(switchPin1)==HIGH)  {val_lamp--;} //reduce if high
  else if (digitalRead(switchPin1)==LOW) {val_lamp++;}
  val_lamp = constrain (val_lamp,0,255);
  analogWrite (ledPin, val_lamp);
  delay(delay_val_LED);
}
void turn_on () {
 if ( digitalRead(switchPin1)==HIGH)  {val_lamp=255;} //reduce if high
  else if (digitalRead(switchPin1)==LOW) {val_lamp=0;}
  val_lamp = constrain (val_lamp,0,255);
  analogWrite (ledPin, val_lamp);
  delay(delay_val_LED);
}

Saturday, 10 September 2011

Automaton eyeballs with 2 Arduino-controlled mini-servos

Now got 2 servos going.


Arduino-controlled automaton eyeballs
Left/right is controlled by mounting the eyeballs on a sort of parallelogram hinging, with the servo attached to the connectors to convert the rotary action to a shear.
R0017287
Up down is controlled by a bike brake cable attached to the other servo.  This is loose connected to the eyeball rig and converts the rotary action to a push/pull
Arduino-controlled servo

Sunday, 4 September 2011

Controlling automaton eyeballs using Arduino based servo


Controlling automaton eyeballs using Arduino based servo
Originally uploaded by rosemarybeetle

Have successfully attached a mini servo to the eyeballs of my prototype automaton and it more or less works. Despite being piddly little motors running off USB 5V, they deliver surprising amounts of torque - enough to power left and right motion. The only unexpected side effect was that the servo weight affects the position due to the undamped eyeball sockets
A satisfying weekends work though :)

Saturday, 3 September 2011

Arduino board arrives

I have been eyeing arduino boards for a year or so, and have finally bought one for controlling automata internal electronics.
This is a Sparkfun inventors kit!
Arduino kit

Hello world!

my first ever working arduino project is the classic flashing LED!

Arduino LED circuit

Getting cocky now...

And here are some sequenced LEDS

Arduino multi-LEDs

And the real deal - servo control!

This is more fitting for a lapsed cybernetician

Arduino controlling a servo
That little beauty is what can shift eyeballs about...

Thank fuck for open source - marvelous!