More on John Kent

jk1000

I’ve been working on an initial layout of parts and characters for the model of John Kent, the first black police officer in the UK. The plan is that he struggles back and forth with a thief and every so often blows on his whistle to summon help.

Dawn’s research has uncovered some awkward facts. Namely, in the time of John Kent the police didn’t use whistles they used rattles! No problem, here’s a new design featuring a rattle driven via a bevel gear and spring steel wire. I’m sure the whistle will come in for another model in the future.

jk1000b

Updated Rowlocks

I’m making a few mods to the Mary Chamber model to make sure that the rowing action is a full back and forth movement. First thing to change, the rowlocks. In the current version the oars sit in a simple fixed wooden U shaped cut out, I’m making a new version where the U shaped section is made from a sheet of shaped brass and is free to rotate allowing the oars more movement. The brass section is fixed to the boat, the steel section sits in the brass tube and is free to rotate. The U shaped section is screwed to the top of the steel section.rowlock08

I’ve cut the steel section from a 6mm diameter bolt. First things first, the steel in the bolt is hardened so it needs annealing. I heated it up to red heat with the blow torch.rowlock02I then let it cool down slowly in a bed of sand. I repeated that process a couple more times.

rowlock03

Here’s the annealed bolt ready to go in the lathe. It will need the head rounding off then a suitable hole drilling and tapping. Finally it will need cutting to length

rowlock04a

Rounding off the head in the lathe.rowlock05

Drilling the centre hole.rowlock06

Tapping the hole ready for the screw.rowlock07

The completed piece ready to fit into the boat. One more to make for the other side of the boat.rowlock01

Linking Links

I’ve used quite a few links made from stiff brass wire – approx 1.5mm diameter. You can see one of them highlighted here in the Mary Chambers model. They are quick and easy to use but do have their own problems.
link-05To use the wire links I make a loop at each end with a pair of pliers  I can then thread a screw through the loop and into the model making a rotating joint.

Two problems that I’ve run up against:

First, it is very difficult to make fine changes to the length. Shortening a link can be just about done by adding some bends into the wire or by re-curling the end loop but it is not easy do do accurately.

Second, I’ve run the wire through a hole drilled in the base board, if I need to take the link out for any reason I either have to cut the wire or unfold the loop at one end. Neither of which are very satisfactory.

Here’s my attempt at a solution. I found a three amp connecting block strip in the  shed.

link-03

Cut off one section and cut away the insulation plastic with a pair of side cutters.

link-04

Leaving the brass block and two screws.

link-02

Perfect! Thread the link wire in from each end and tighten the screws. Simply unscrew to make adjustments or to remove the link completely. Ta daa!

link-01

 

Mary Chambers Automata

mary-a01

 

I delivered the completed Mary Chambers model to Archives yesterday. I’ve painted the base white making the gears stand out nicely. The mechanism is working well so far – we’ll be testing it out over the next few days to see how it stands up to rigorous use. Fingers crossed. Check out the YouTube video here:

The various gears fit rather neatly into this single arch. From left to right the various gears drive first the oars, next the bobbing motion of the boat and finally the swishing back and forth of the waves.

 

mary-a02

 

The 12v electric motor has a built in gear box reducing the speed to 145rpm – a reasonable starting point to drive the wooden gears.mary-a05

 

The fastest output speed is used to drive the rocking motion of the waves, The waves are linked to the drive shaft by a brass wire. The thickness of the wire gives a nice balance between stiffness and flexibility.mary-a03

 

Looking good I think you’ll agree!mary-a04

Intermittent Drive

This is the central drive for a new model of Lady Guildford. In the finished model Lady Guildford will be sitting knitting with her two dogs at her side. inter-a01The large central gear turns slowly, 2-3 seconds per revolution. This intermittently drives the two small side gears. The small gears in turn, are linked to the dogs bringing them to life.

The mechanism needs a little tweaking but is looking good so far.

inter-a03

Timer Circuit to Drive the Automata

colonel-a04Each of the automata in the Archive Project will be mounted on a plinth. There is an electric motor that drives the model and in the end we decided to use a token to set off the motion rather than a simple push button.
The theory is that having tokens or using coins gives value to each ‘performance’

In this picture you can see the coin slot mechanism. When the correct coin is inserted into the slot the mechanism emits a short electrical pulse. Too short to be used directly but long enough to be used to start a timer circuit . I managed to source the coin reader slot mechanism from eBay in the UK.

Here’s the breadboard based final design set up and plugged into one of the coin slot mechanism.
timercircuit12

The timer circuit is based around the Arduino micro-controller.
Specification:  A switch to start the timer.
An emergency cancel switch.
Adjustable time from one second to at least a couple of minutes in one second steps.
A reasonably high current relay to switch the electric motor on the model which will be driven from a 12v lead acid battery.

I settled on a DIP switch as the easiest way to preset the time. The switch works like a binary number. Each switch is worth twice the time as its neighbour: Make up the number of seconds you want by adding together the numbers. timercircuit11For example:timercircuit10
Here’s the final layout of the breadboard and Arduino.
timerfritz_bb

…and the code used to drive the Arduino. You can download the code here.


/*
Timer circuit to drive relay for preset amount of time.
(cc) Rob Ives 2015 www.robives.com www.thearchiveproject.net
*/
// constants
//the pins to read the eight switches of the dip switch
const int dip00 = 2;
const int dip01 = 3;
const int dip02 = 4;
const int dip03 = 5;
const int dip04 = 6;
const int dip05 = 7;
const int dip06 = 8;
const int dip07 = 9;

const int start = 11; // pin for the input pulse
const int cancel = 12; // emergency cancel button

const int relay = 13; // output to relay

//variables
int runtime = 0; // the variable where the time set on the dip switch will be stored
int startstate = 0; //variable for reading start pulse
int cancelstate = 0; //variable for reading emergency cancel button
int timeractive = 0; // is the timer timing?

unsigned long currentMillis = 0;  // start time store
unsigned long timeInMillis = 0; //runtime in milliseconds
unsigned long endInMillis = 0; //runtime in milliseconds

void setup() {
   // set the digital pin:
  pinMode(dip00, INPUT);
  pinMode(dip01, INPUT);
  pinMode(dip02, INPUT);
  pinMode(dip03, INPUT);
  pinMode(dip04, INPUT);
  pinMode(dip05, INPUT);
  pinMode(dip06, INPUT);
  pinMode(dip07, INPUT);

  pinMode(relay, OUTPUT); // set relay pin to output

  pinMode(start, INPUT); // input for coin slot
  pinMode(cancel, INPUT); //input for emergency stop

  digitalWrite(relay, LOW); //turn off relay

}

void loop() {
  timeractive = 0; 

  if (digitalRead(start)){
    timeractive = 1; //start the timer
    digitalWrite(relay, HIGH); // turn on the relay
    runtime = readDip(); // get preset time from dip switch
    timeInMillis = (unsigned long)runtime * 1000; //convert time to milliseconds
    currentMillis = millis(); //get the start time of switch press
    endInMillis = currentMillis + timeInMillis;
  }
  while (timeractive == 1){// timer loop
    currentMillis = millis();
    if(currentMillis > endInMillis)  {
      timeractive = 0;
    }
    cancelstate = digitalRead(cancel);
    if (cancelstate == HIGH){
         timeractive = 0;
    }
  }  // end of timer while loop
  digitalWrite(relay, LOW); //turn off relay
}

int readDip()
{
  // dip00 is LSD
  int dipState00 = !!(digitalRead(dip00) == HIGH);
  int dipState01 = !!(digitalRead(dip01) == HIGH);
  int dipState02 = !!(digitalRead(dip02) == HIGH);
  int dipState03 = !!(digitalRead(dip03) == HIGH);
  int dipState04 = !!(digitalRead(dip04) == HIGH);
  int dipState05 = !!(digitalRead(dip05) == HIGH);
  int dipState06 = !!(digitalRead(dip06) == HIGH);
  int dipState07 = !!(digitalRead(dip07) == HIGH);

  int dipTotal = 0;
  dipTotal += dipState00;
  dipTotal += dipState01 * 2;
  dipTotal += dipState02 * 4;
  dipTotal += dipState03 * 8;
  dipTotal += dipState04 * 16;
  dipTotal += dipState05 * 32;
  dipTotal += dipState06 * 64;
  dipTotal += dipState07 * 128;

  return dipTotal;
}

A note about the code: The readDip function is used to read the value of the dip switch and return a duration in seconds. It uses digitalRead(val) to read each of the pins on each of the dip switch. To be sure that the returned value for an on switch is 1 and not some other non-zero value I have added a double not (!!) to the front of the digital read.

int dipState00 = !!(digitalRead(dip00) == HIGH);

If the pin read is zero it will return 0, if it is any other value it will return 1

Here are the various parts of the circuit as circuit diagrams. It’s sometime easier using them to set up a circuit rather than the layout picture.

First the wiring for the DIP switch:timercircuit01Next, the start and cancel switches:
timercircuit03

And finally the parts that drives the relay. I’ve used a transistor as a switch to turn on the relay and a diode to protect the circuit when the magnetic field in the coil collapses. The LED is there as an indicator to show when the relay is activated.
timercircuit02b

Here’s how it all fits together.timercircuit05

The relay is a 5V model with a 10A switch, plenty to drive the electric motors I’m using.

timercircuit07

The underside of the relay shows how the pins are laid out. Not what I was expecting! timercircuit09

The circuit works a treat. I’m going to need to make quite a few of them so my next/final step will be to make up some printed circuit boards to make a more permanent version of the timer circuit.

(Thanks to Mike for coding advice 🙂

Connecting Up The Colonel

With Dawn’s fantastic puppetry complete and most of the drive mechanism done it is time to bring Colonel Rutherford to life by linking the puppet to the mechanism. Colonel Rutherford’s movement is fairly straightforward. He moves his hand as if sketching then stops and looks up at his subject, in this case, a camel who’s shadow is visible on the box top.
rutherford-a04The motion is controlled by two cams located under the scenery, one controlling the drawing hand, the other controlling the head. I’m fitting cam followers (not shown here) which will then pull and push on a wire connected to the relevant part.rutherford-a05The wire moving the hand lifts up and down, I need the hand itself to move back and forth so I’ve made a bell crank to change the direction of movement.

The parts of the bell crank are made from wire shaped with pliers and wire cutter.rutherford-a01

 

The small staples hold the wire to the hand, the other end connects to the edge of the table.rutherford-a02

The wire push rod connects to a loop on the heel of the hand.rutherford-a03Et voila!

rutherford-a01rutherford-a02