Rotating door automation

Is it feasible to use a servo to rotate and counter rotate the door?

If the servo has the torque needed to turn the knob.

If so what would I need to construct it?

A bracket on which you can mount the servo and some way to connect the servo bellcrank to the knob. Possibly a dome to protect the servo from rain.

An arduino unit - which one would be suitable?

Any. The UNO is the most common.

A shield?

No need. The servo has a built-in motor controller.

Something to power the servo

A 7V 1A power supply should serve both the servo (7V) and the Arduino (via Vin).

Note: For time-based operations you should probably get a Real-Time Clock (RTC) chip. The Arduino UNO is not great for long-term timekeeping.

That's for the reply. For mounting the servo itself I was thinking of inverting it and having the rotational centre directly above that of the door to keep things straight forward. The servo I linked to was a 13kg load one, does that sound reasonable? The resistance to move the door would be less than it takes to turn a doorknob I'd say so hopefully 13kg will be enough.

Please excuse the proably stupid question but I've not seen the term vin mentioned, what is that?

Would I need to split power off some way to the servo or would it just be a matter of plugging the power into the arduino board and taking it through to the servo?

I'll add a RTC clock to the shopping list. I've seen various starter kits that include connectors and cables and various other bits and bobs. If there was one that came with a servo that'd be handy - at least I'd know I had everything I need.

vin mentioned, what is that?

VIN, Voltage IN. The voltage applied to the DC barrel jack. Usually between 7 and 12 volts.

Normally you would split the power to the servo and the Arduino, servos like about 6v which unfortunately is not enough to drive the Arduino so that may mean two power supplies.

If you have power then two plug packs, for batteries maybe a 7v2 battery directly to the Arduino and regulated down for the servo.

EDIT: That servo can operate up to 7v2, so it looks like you can use a battery or single plug pack for both.


Rob

ChickenMechanic:
That's for the reply.

I mean, "thanks". Damn you autocorrect.

So shopping list would be:
13kg 7.2v Servo
A 7v 2amp PSU - split into 2
rev3 UNO kit
RTC Shield

Do I need anything else?

What's your views on this as a project? Am I missing an easier, better way to do this?

That look reasonable to me. The RTC module will not be super accurate but good enough for this I would think.

Do I need anything else?

How are you going to set the time? That will probably have to be done in the field as the RTC creeps over time. This normally requires an LCD and some buttons which is a pain if that's all they are needed for.

An alternative is to have a single button that forces the time to a given value, say 6PM. So every few days/weeks or whatever you press the button at 6 o'clock.

There will be some mechanical linkages to get as well. If this is outside a good enclosure will be required.


Rob

I was thinking a geewix box for the enclosure.

Linkages. What's a good source for small gears belts and chains etc in the UK?

No idea, but try model and robotics shops/sites.


Rob

Just a small update. I've ordered a starter kit that includes a step motor, small servo and Light dependant resistors.

The kit also has an LCD and some buttons so the time can be changed as you suggested. I know I'll need a heavier servo/motor but my thinking is if I can get it working in principle first I can drop a bigger one into the circuit later.

There's also an IR remote, being able to operate the door using that would be quite handy. I could even get really fancy and have a buzzer go off 10 minutes before the door closes to tell the chickens it's bedtime. They're quite easy to train to that sort of thing. :smiley:

My UNO and accessories have arrived.

For testing I was wondering if I could connect a LDR to the prototype shield and have an LCD display its resistance to calibrate at what light intensity to operate the servo? If that's possible could anyone point me in the direction of a tutorial to output the reading from an LDR to an LCD?

I think I want to sketch to run along the lines of

Detect "night" or "day" every 5 minutes. If its day for 3 consecutive checks, open the door. If its night for 3 consequtive checks, close the door.

Then a button to toggle between Open, Close and Automatic.

I've never done any electronics before so I appreciate any help and advice.

I don't know of any tutes and probably I doubt you'll find one that does both, but there will be LDR tutes and LCD tutes that you can put together.

Start looking in the Arduino playground.

http://arduino.cc/playground/


Rob

Got the basic code started and tested.

Can anyone suggest an easy way to have the servo move more slowly?

#include <Servo.h> 

const int THRESHOLD = 680;   // an arbitrary threshold level that's in the range of the analog input
Servo myservo;  // create servo object to control a servo 
 
int LDRpin = 0;  // analog pin used to connect the potentiometer
int LDRval;    // variable to read the value from the analog pin 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
    // initialize serial communications:
  Serial.begin(9600);
} 
 
void loop() {
  // read the value of the LDR:
  int analogValue = analogRead(LDRpin);

  // if the analog value is high enough, turn on the Servo:
  if (analogValue > THRESHOLD) {
    myservo.write(180);
  } 
  else {
    myservo.write(0); //Reset the Servo if the value is too low
  }

  // print the analog value:
  Serial.println(analogValue);
  delay(150);        // delay in between reads for stability
}

One easy way to move the servo more slowly is a for loop that moves it a degree at a time, with whatever size delay you need on each iteration.

I have finished (I think) the code and hardware for this and I'm now at the stage where I want a permanent power solution.

Ideally I want to take a hard wired feed from the mains. Are there any recommendations for the easiest way to power an UNO board and servo in this way?

The Arduino can run on 5V at the +5V pin or on 7-12V on the Vin pin. The servo is probably designed to run at 6V so neither choice is ideal. Perhaps you could use a hefty 7+V supply and put a few big silicon diodes in the line going to power the servos. A silicon diode has a voltage drop of 0.6 to 0.7V so add drops to bring the voltage down to about 6V.

For simple servo setups, a 7805 regulating chip can have the output voltage increased using a small diode on the chip ground pin like below. There is a noticable servo performance improvement between 5v and 5.7v

I think I understood that.

I apologise if this is a stupid question but could I supply 12v to the arduino barrel connector and take the servo power from the VIN pin through a 7805 and diode as you suggested?

In fact considering the rating of the servo is 4.8v - 7.2v would a 7806 and no diode be better?

I just want to keep things are straight forward as possible and a 12v power brick should be easy to find.

This project would be well suited for a battery/solar panel application perhaps as a phase 2 of the project. Cheers, ChickenMechanic :wink:

could I supply 12v to the arduino barrel connector and take the servo power from the VIN pin through a 7805 and diode as you suggested?

Yep.

would a 7806 and no diode be better?

Same horse, different colour.

The diode trick is good if you have a 7805 lying around, you could use two diodes for that matter. But if you have to buy a regulator anyway the 7806 is fewer components.


Rob

They were so cheap I took a chance and went ahead and bought them. The proto board is all soldered up and working fine.

The only change I might make is to use a potentiometer to adjust the threshold value.

This is a great project. Please post a video when finished!

Out of curiosity, are there any concerns as far as the chickens being in the way of the door when it is being closed? If so, do you have any plans for handling that?