Remote Shutter Circuit : Pentax K1000 Film Camera
by WJLTECH in Circuits > Raspberry Pi
4952 Views, 40 Favorites, 0 Comments
Remote Shutter Circuit : Pentax K1000 Film Camera
I’ll be using the Raspberry Pi PICO to make a infrared remote shutter for an old film camera.
This is the equivalent of a simple remote shutter operated by a small button you might use on a dslr camera, or even a remote trigger button that came with your tripod.
To show you how this works the basic operation of this circuit can be defined in 3 steps
1. The Button on the infrared remote is pressed
2. The circuit turns on
3. The servo moves and makes the camera take a picture
There is however a little more going on behind the scenes that makes it work but that's the simplified version.
Step 1 is covered next!
Supplies
The parts I used in the test rig were:
1.An Arduino Nano microcontroller
2.A PICO microcontroller
2x Bread boards
5Volt Relay Infrared receiver
Servo Motor
NPN Transistor
2x LEDs Diode
2x 100 Ohm resistors 1x 15k Ohm resistor 1x 3k Ohm resistor
Philips Infrared Remote Control (or any type of infrared transmitting device)
14 Jumper wires males to male and male to female if your planning on only making the breadboard style test circuit
USB Cable
Tools: Side cutters
Soldering Iron
Flux cored Solder
Flux
hot glue gun
Multimeter
X-ACTO blade
5 Volt power source or 9V battery (if using 9V battery only connect to VIN terminal on Arduino)
Electric Drill
Drill bit set
Step 1: Infrared Remote Setup
Start by mounting all the components on the bread board following the attached schematic.
There's also a picture of the breadboard layout to help with this.
1. Connect all the components to the breadboard first, keeping them spaced out.
2. Connect the earth/ground wires
3. Connect the positive wires using the schematic.
Ok, so to get the first step in the basic circuit working, we need to extract the codes from the infrared remote so they can used later on.
Connect the Arduino to your PC with a USB cable and load the software Arduino IDE.
Next up is downloading the IRremote library, you can download it here. or look it up in the Arduino Library within Arduino IDE and install it from there (recommend this)
Once we’ve downloaded and installed IRremote library we need the attached code to be uploaded onto the Arduino Nano microcontroller.
The code is available for this project on GitHub: https://github.com/wjltech/pentax-k1000-remote-shu...
The correct file is named: IR_Decode_Will.ino
Once you have this file open in Arduino IDE. Upload it to the Arduino Nano
This code makes the Arduino work as an Infrared decoding tool, essentially reading and outputting as text what each press of a button is so we can use the infrared codes to operate hardware later on in the project.
Once it’s uploaded you can open the Serial Monitor tool up on the screen to see which codes are being displayed (see pictures for details) when you are sending infrared signals with the remote, pretty neat right?
Copy and paste these codes to notepad and save them to be used a bit later on. Now that this step is done it’s time to move onto Step 2, Turning on the circuit.
Step 2: Turning on the Circuit
To turn on the rest of the circuit, the Arduino Nano needs a different program loaded onto it, but still using the same IRremote library.
You can find this code on the same Github Page named IR_Control_Circuit_Arduino.ino
Once this code has been uploaded, it will make it so the Arduino Nano not only receives the Infrared code but does something with it. Make sure you replace the infrared codes used to the ones you saved earlier in Step 1 otherwise the circuit will not work as designed! (see attached screenshot for details)
It will use the infrared signal to output voltage on pin 9 (3.3V) when the code is received to send voltage to the relay driver circuit which switches on the relay and sends the correct amount of voltage in this case 5V to the PICO in order for it to power on.
It will also use a second code to prevent any voltage at pin 9 thereby turning the circuit off as well. This is the same as how your t.v. or sound system remote works (at least he ones that work on infrared),
It receives an infrared signal to be turned on and knows what signal it needs to power off, we’re using that same theory of operation here with this circuit.
*one more reminder... make sure you replace the infrared code number to the outputs you saved in your own serial monitor test from Step 1. Otherwise the code will not work for your project! :)*
Onto step 3 which is making the servo motor move to take a picture on the camera.
Step 3 Coding the PICO: Take a Picture !
Coding - RASPBERRY PI PICO
This is the last step in getting the circuit to work how we want it to, we’ll start by uploading some code to run on the PICO when it boots up.
Start by plugging in the Raspberry Pi PICO to a USB port on your computer, and load up Thonny which is a software to write python code to upload and run on the PICO.
Make sure your Raspberry Pi Pico is connected before writing any code.
This code is what we’ll use to operate the servo motor.
So what does this code do?
Well it starts by importing the machine module which gives us direct access to specific functions related to the hardware on the PICO.
The functions we are accessing are Pin to use inputs and outputs of each pin, Utime which allows us to use time specific delays and intervals and lastly PWM which stands for pulse width modulation a fancy term for describing a digital signal that we will be using to operate the servo motor.
The next 3 lines are each an object with a value of time in nanoseconds. The reason we use nanoseconds is that each of these numbers will determine the duty cycle of the signal.
The duty cycle is how much time an “On” signal is being sent determining how far the servo will move.
In simple terms, the larger the number, the further the servo will move.
The next line turns on the on-board LED light on the pico when the circuit is turned on. Pin 25 is the default for this.
We then use the PWM function to output a signal from pin 15 to the servo. The servo operates on a 50Hz frequency so this is stated in the next line.
Following this we set the pulse width of the signal to 1.5 milliseconds which will be a neutral servo position.
Lastly there is an infinite loop that turns the servo motor to 180 degrees waits 2 seconds using the utime function and moves back to 0 degrees waits 5 seconds and restarts the loop.
So now that the test circuit is working we can reduce the size of the project by getting a Printed Circuit Board Made! Read on to see the process of getting one designed and shipped !
Step 4: Transfer Test Circuit to PCB!
So now that the test circuit was working we can reduce the size of the circuit by designing a Printed Circuit Board.
You will need the Gerber File (manufacturers design type file) in order to place an order for a PCB through a company such as (paid link) pcbway to get it made and shipped to you.
If you would like the Gerber file which has the attached picture of the design, feel free to download it at the Github Project page ! https://github.com/wjltech/pentax-k1000-remote-shutter
Now you have 2 options. Either you can have the PCB manufacturer do the component assembly or do it yourself...
I preferred the second option, way more fun!
When soldering all the components to the PCB, start with the smallest height components first and finish on the tallest components. ( to make your life easier)
*be careful when soldering components to limit how much heat is put into the components you are soldering, the process should take a few seconds to reduce the risk of damaging the components your attaching to the PCB*
The order I soldered the components was:
1. Transistors
2. Resistors
3. LEDs
4. Battery wire pins,
5. Servo motor wire pins
6. Infrared Receiver board
7. Relay
8. Arduino Nano
9. Raspberry Pi PICO
Now that the PCB is all done, The next step is to design and print the Camera mount for the servo motor to be fitted to.
Step 5: Print Camera Servo Motor Mounting
To begin with, I took some measurements off the camera I was using the Pentax K1000 with a Digital Vernier Calliper and planned to use the existing hot shoe (where to flash would normally mount to) mount to attach the 3D printed model to secure the servo motor too.
Using the measurements, I drew up the design in Tinkercad, transferred that design into CURA and sliced it to print the design off on my Ender 3 3D printer.
The STL files are available on Thingiverse along with the PCB case which is what we’ll look at next.
Step 6: 3D Print PCB Case
The case is designed around the PCB, so there's a small stepped section inside that holds the PCB up off the base to give the soldered connections underneath some clearance.
Also there's enough clearance above the tallest components as well. Again the STL file is available from the Thingiverse project.
Again I designed it in Tinkercad and printed it off on the Ender 3. I wanted a clear piece of glass so I could see the circuit working and the LEDs turning on and off but wanted to keep it light so I cut a piece of acrylic sheet to be glued on top (this does limit the infrared range though).
Assembly
Drill 2 holes for the usb power wires into the case and solder them to the terminal holes. Drill 3 holes for the Servo motor wires into the case and solder them to the terminal holes.
Now for the final assembly, place the PCB into the case and attach some hook and loop velcro tape to the back of it to easily attach to a camera tripod.
Attach the servo mount to the camera as well, the power bank also needs a strip of the same velcro tape to mount easily to the tripod and finally connect the usb to power and setup a few shots to test it out.
The range is around 5 meters but you may get a little more if you leave the acrylic sheet off.
Thanks for checking out my project! :) and happy making!