Wireless Remote control project - understanding the building of the circuit

Hello,

Im new to Arduino and have a specific project in mind to work on. I would like to build a wireless remote for an analogue camera.

Someone has done this before and recorded their process, although not that clearly for a beginner. Here is the blog with some useful photos and info: http://handya.co.nz/post/43777800968/wireless-remote-for-fuji-x100-camera-or-leica [/url]

Here is the layout:
I have purchased a Wireless Remote control (http://www.ebay.com/itm/Wireless-Shutter-Release-Remote-Control-for-Canon-650D-60D-550D-600D-1100D-1000D-/271320473626?pt=Camera_Camcorder_Remotes&hash=item3f2bf5e01a)

What I intend to do is wire an Arduino board to a servo and the receiver, so when a signal is sent from the transmitter the receiver sends signal to the Arduino and runs the servo that will trigger the analogue cable release. This is the the same as the blogger, i just dont quite understand the construction of his circuit.

Ideally it would be really useful to get some help with the building of the circuit. For example the receiver is 3V whereas I know that Arduino boards run on 5v. You can get 3V or 5v Adafruit trinkets, I have a 5v one and can always buy a 3v one if needed. I’m a little confused on regulating the circuit. I’m also a bit unclear of hacking the wireless remote, what connects to what? Reading through the original instructions helps, but I’m not yet fluent with Arduino and building circuits, especsaily from looking at realistic ciruicts and copying them, im more use to looking at the circuits detailed in the Arduino book.

I have also read a lot about 9V batteries not running efficiently with Arduino. Many people seem to use AA batteries instead. Would this be an effective update to make the project more power efficient? Or is it suitable with a 9v supply?

I know there are a lot of questions here, but any advice would be greatly appreciated.

Below is the insturctions copied from the blog, but without the photos, and code supplied by the original builder:

Wireless Remote for Fuji X100 Camera (or Leica)
I need the ability to wirelessly take photos, however my camera did not have a conventional shutter release, it has the old fashioned ”cable” release.

After playing around and buying some cheap cable releases off Ebay I was able to build a working wireless shutter using an Arduino, Servo, and a cheap wireless shutter for a Canon DSLR.

I had thought of using an IR remote however I am planing on using this outside and im not sure how well IR works in direct sunlight. So I went for an RF option.

These remotes have the half press focus option, but as I would not be needing this, and when you bend the wire cable it changes the length of the “press” meaning that it would not always work. To make it more reliable it only takes photos without focusing but as I am going to be using manual focus its not a problem.

I mounted a servo in a small enclosure and pushes on the cable firing the camera shutter.

The servo is controlled by and Arduino that triggers the servo when it gets the command from the wireless remote.

I also mounted the hot shoe adaptor from the old shutter

Parts List:
Arduino (ATmega 328p microcontroller)

  • I would recommend Adafruit Trinket instead
    Servo
  • A small one will work fine
    Wireless Shutter Release Remote Control
  • See Photo Above for more information
  • Cheap ones available on ebay
  • I was able to take the “hot shoe” off the receiver and mount it to my case so it could be attached to the camera.
    Mechanical Shutter Release Cable
  • See Photo Above for more infomation
  • Cheap ones available on ebay
    5volt Regulator and Capacitor
  • This might not be need if Adafruit Trinket used instead.
    Power Switch
    9Volt Battery
    Case

More Information:
Pin 13 of the Arduino was wired via a transistor to the power button of the wireless shutter receiver, this way when the power was turned on the Arduino would power on the receiver automatically.
The wireless shutter has a “double press” button, a half press would focus a normal camera and a full press would take a photo. There are three wires coming from the receiver, “Ground” “Focus” “Shoot”.
Ground is connected to the Arduino ground, “Focus” connected to pin 12, and Shoot Connected to pin 11 and the servo is connected to pin 10.
I never used the focus input as the servo was not accurate enough.
When the “Shoot” pin goes LOW the servo is driven to shoot position for 500ms (See code for more info)
The two LEDs seen in photos are part of the receiver module.

Here is the code:

/*
*************************** Wireless Shutter For X100 Camera **********************************************
( cable release cameras )

code for controlling a servo thats wirelessly triggered

Created 23 February 2013
by Andrew D. Farquharson

More at www.handya.co.nz


*/

#include <Servo.h>

Servo servo;

int FocusButton = 12;
int ShootButton = 11;
int FocusState = 1;
int ShootState = 1;
int powerbutton = 13;

void setup() {

pinMode(FocusButton, INPUT);
pinMode(ShootButton, INPUT);
pinMode(powerbutton, OUTPUT);

servo.attach(10); // start servo
servo.write(35);

delay(1000);
digitalWrite(powerbutton, HIGH); // power on wireless module
delay(3000);
digitalWrite(powerbutton, LOW);

}

void loop() {

FocusState = digitalRead(FocusButton); //get wireless module state
ShootState = digitalRead(ShootButton);

if(FocusState == 0){ // drive servo to take photo
servo.write(120);
delay(500);
servo.write(35);
}

delay(10);

}

That's rather a long post, but probably better than folk who expect us to guess.

What seems to be missing from the discussion is the receiver. I am guessing that the wireless remote comes with some sort of receiver and I'm guessing that the receiver produces outputs on wires that are connected to Arduino pins 11, 12 and GND.

In essence, that is all that one needs to know, and the short code is based on that. As written it seems to take a picture when the Focus position is reached, rather than the shoot position. I don't know if that matters.

Having said that I have lost track of what might be your question/problem. Now that I have (I hope) shortened the description it would be useful if you re-state exactly what you need help with.

And see how much nicer it looks when posted with code tags!

/* *************************** Wireless Shutter For X100 Camera 
                                ( cable release cameras )
                  code for controlling a servo thats wirelessly triggered 
                                Created 23 February 2013
                                by Andrew D. Farquharson
                               More at www.handya.co.nz 
****************************************************************
*/
 
#include <Servo.h> 
 
Servo servo;
 
int FocusButton = 12;
int ShootButton = 11;
int FocusState = 1;
int ShootState = 1;
int powerbutton = 13;
 
 
void setup() {
   
  pinMode(FocusButton, INPUT);
  pinMode(ShootButton, INPUT);
  pinMode(powerbutton, OUTPUT);
   
  servo.attach(10); // start servo
  servo.write(35);
   
  delay(1000);
  digitalWrite(powerbutton, HIGH); // power on wireless module
  delay(3000);
  digitalWrite(powerbutton, LOW);
 
}
 
void loop() {
 
  FocusState = digitalRead(FocusButton); //get wireless module state
  ShootState = digitalRead(ShootButton);
   
  if(FocusState == 0){ // drive servo to take photo
  servo.write(120);                 
  delay(500);   
  servo.write(35);
  }
   
  delay(10);

}

...R

Hi,

thanks for your reply. Yes it looks much better with code tags, will be sure to use in the future.

The receiver is run from a cr2 battery and is 3V power. I have attached a photograph of it. I'm stuck with creating an integrated circuit that has the receiver, Arduino and a power supply within it. So my problems are wiring and power.

Wiring:
The receiver cable, that would attach to the camera with a mini jack (smaller than 3.5mm), has four wires running into it from the receiver board, yellow, red, white and blue. How will i work out what each wire does? I'm guessing 2 of them are possibly Focus and Shoot, as they go to the arudino.

Power:
Im also struggling to work out how to create a circuit with one power supply. The code has the power button as an OUTPUT from the arduino, does this mean that the power runs from the arduino? if so, the arudino is 5V and the receiver is 3V, will there need to be a regulator in the circuit somewhere? how would i wire the circuit to power the receiver? Does it go to where the battery is inserted on the receiver at present?

Another question is, would a 9V battery be effective, or should AAs be used instead? I have read on forums that 9V batteries are quite wasteful when used with Arudino.

Essentially im struggling with identifying the elements of the receiver and also how to structure the circuit with the 3 components in: receiver, arduino and power supply.

Regarding the auto-focus:
The camera i will be using is analogue and does not have an auto-focus option. But the transmitters button has two buttons in one. When pressed with 50% pressure to half way, it tells the camera to auto focus the camera, and then when pressed a further 50% (pushed all the way in) it signals to take the photograph. From what i understand the original builder wrote the code so that if the button is pushed 50% or 100% both of these actions will result in the signal to runs the servo and take a photograph.

Let's take things one step at a time. Otherwise we will be overwhelmed with lengthy discussions and confusion.
FIRST, let's figure out what each wire is for.

You say that your receiver is self powered with a CR2 battery.
Looking at the photo the blue wire seems to have a very different role from the other 3.

With the battery OUT use your multimeter (buy a cheap digital multimeter if necessary) to check which element of the plug is connected to which colour wire - write them down in a diagram.

With the battery IN use the multimeter to check the voltage between every pair of wires.
My guess is that white is GND and BLUE is power - but I may be completely wrong.
Write down what you find.

Then measure the voltage on every pair of wires when the button is pressed.
Write them down.

Tell us what results you get.

...R

Sorry for late reply, i had to pop out and buy a multimeter.

i carried out the tests and these are the results:

Wires to each section on the plug:
Red – top (tip of plug)
White - middle
Yellow – bottom (Base of the plug)
Blue – nothing

No button pressed

  • to red - 0
  • to white - 0
  • to yellow – 2.9

Button pressed to focus (50% pressure)

  • to red - 0
  • to white – 2.9
  • to yellow – 2.9

Shoot button pressed (100% pressure)

  • to red – 2.9
  • to white – 2.9
  • to yellow – 2.9

Thanks. That seems reasonably clear. Looking at the left hand photo I think it says "ant" (antenna?) beside the blue wire - which is consistent with you saying it is not connected to the plug.

When you report voltages of -2.9v what have you the multimeter leads connected to? A voltage must be measured between two points and I'm not clear from your description what those points are and whether there is one common point for all the measurements.

...R

Yes the it does say ant.

Sorry, that's my writing, all the measurements were 2.9 not "- 2.9". the multimeter was om DC Voltage Measurment 20V. Does this make more sense?

Photo-Tom:
Yes the it does say ant.

Sorry, that's my writing, all the measurements were 2.9 not "- 2.9". the multimeter was om DC Voltage Measurment 20V. Does this make more sense?

That's not what I need to know.

I need to know, for each voltage measurement separately, what the black pin of the Multimeter was touching and what the red pin was touching.

...R

The Red pin was touching the metal where the + battery connects to the receiver for every reading, and the black pin was touching where each colour wire is soldered to the board for these readings. (Photo attached)

No button pressed

  • to red - 0
  • to white - 0
  • to yellow – 2.9

Button pressed to focus (50% pressure)

  • to red - 0
  • to white – 2.9
  • to yellow – 2.9

Shoot button pressed (100% pressure)

  • to red – 2.9
  • to white – 2.9
  • to yellow – 2.9

Checking which element of the plug is connected to which wire, i had the red pin making contact where the wire is soldered to the board and the black pin touching the different elements of the plug to find where the current was passing through.

Red – top (tip of plug)
White - middle
Yellow – bottom (Base of the plug)
Blue – nothing

Photo-Tom:
The Red pin was touching the metal where the + battery connects to the receiver for every reading, and the black pin was touching where each colour wire is soldered to the board for these readings. (Photo attached)

Thanks. That is clear.
Now, sorry to drag this out, but I just want to be sure not to damage your Arduino.

It is usual to have the black pin at the GND connection (battery -ve) and move the red pin when checking voltages. That way you are measuring voltages relative to GND whereas you have measured your voltages relative to the battery +ve.

Please measure the voltages to the connector again with the black pin at batterry -ve.

...R

I have placed the black pin at the GND connection (-) and the red pin onto the wire connections, and it constantly reads 0.00 sometimes it blinks with -0.00 for a few seconds but this is it. I cant get a reading when i do it this was round.

Just as well we thought to check.

Did you try the measurements with the button pressed?

Do you know how to measure resistance with your multimeter. If so, take the battery out of the device and check the resistance between the battery -ve and the three wires to the connector. You will be looking for a very low resistance indicating a direct connection. Most likely to base of the connector.

Then do the same test between the battery +ve and the three wires.

...R

Yes I tried when the buttons were pressed, and had the same results.

Measuring the resistance:
-ve to yellow: starts up from about .800 and comes down to .oo2 and then flicks between .004 and .000.
-ve to red: no reading
-ve to white: no reading

+ve to yellow: no reading
+ve to red: no reading
+ve to white: no reading

What sort of multimeter do you have and what setting was it at when you were taking your resistance measurements?
None of my meters shows resistance values to 3 decimal places.
Can you post a photo of it taking the reading between -ve and yellow?

...R

i have a schneider electric digital multimeter. I had it on Ω and 2V.

When i had the black pin on -ve and yellow it was showing up like in image 2.

When i had the multimeter on Ω and 20V it was fluctuating between 11.00 and down to 0.00. See image 4 (there just doesn't seem to be one consistent reading from it, except that there is always fluctuating when the -ve and yellow are measured).

When the pins are not connected to anything 1 is displayed on the screen.

As far as I can see the setting is 2v or 2000 ohms - which explains the decimals 0.006 represents 6 ohms. Unless that is obviously different from the reading when you touch the red and black pins together I think we can assume that is the same as zero resistance.

I hope I have got the following right. I think I was completely confused by thinking the voltages in Reply #8 were negative values.

It looks to me like the yellow is GND and when the button is pressed it brings the other pins to GND. I think that is consistent with all the data you have shown - but think it through carefully to double-check.

Now the 64k question ... how do you use that with an Arduino?
I think if you connect yellow to Arduino GND and the other wires (or one of them, if that's all you need) to I/O pins set to INPUT_PULLUP then when you push the button the I/O pins should go from HIGH to LOW.

Try that. I don't think it can do any harm to the Arduino.

...R

Thanks for that,

I have drawn a circuit of how I think the setup should work. This is the first circuit I have drawn up, so I’m not 100% confident in its setup.

I’m unsure of a few things;

Pin 13 should run from the Arduino as an OUTPUT via a transistor to the power button on the receiver (this way when the power is turned on the Arduino would power on the receiver automatically.)

Firstly; what is the best place to connect the wire to on the receiver’s power button? I have attached a photo pointing to the location of the power button on the receiver.

And secondly, as the Arduino is 5V and the receiver is 3V should I run it through a step-down regulator. I found this adjustable step down regulator that seems pretty efficient. (Adjustable Step-Up/Step-Down Voltage Regulator S7V8A http://www.hobbytronics.co.uk/s7v8a-adjustable-regulator )

I’m also unsure of the placement of the 9v battery. Is the current placing of it the most suitable position for it in the circuit?

I would like to be able to have a master switch that switches the whole system on and off if possible, is the current position of the switch in a suitable place for this to happen?

What about the blue wire? Is it not needed? I don’t seem to know what it does…

Thanks,

Your circuit diagram is far too big to see on the screen. I had to download it. Smaller in future please.

This is far far too complicated for our current state of knowledge.

Just connect the three wires as I suggested in Reply #15 and use the battery to provide power as when you were testing.
All we want to do at this stage is find out whether the assumptions I made in Reply #15 are correct.

In general avoid pin 13 because it is the onboard LED and is used while uploading code.

I am correct to think that all that measuring with the multimeter was happening on the receiver ? ?

...R

Sorry, will do in the future.

Yes all the measuring was happening on the receiver.

I wired up the yellow wire to GND and the red (shoot) to pin 12 set on INPUT_PULLUP. When the transmitter button is pressed the UNO LED lights up.

Photo-Tom:
I wired up the yellow wire to GND and the red (shoot) to pin 12 set on INPUT_PULLUP. When the transmitter button is pressed the UNO LED lights up.

That's good news.

Now remind me what you want to do with that capability?

...R