Wednesday, November 27, 2013
This how-to focuses on a camera that is particularly easy to source and modify: the Canon A495 (the instructions will be identical for the A490). You can buy a used version of this camera for around $50 or less on Amazon or Ebay.
The main steps we'll need to accomplish are: a) remove the near-infrared blocking filter from in front of the camera's sensor, and b) add on a cheap "red-blocking" filter.
- A Canon A495 or A490
- A small phillips-head screwdriver
- A small strip of tape (most any type will do)
- A piece of Rosco #2007 filter paper (available from Public Lab right now via their Kickstarter, for $10)
Note: if you'd rather not modify your own camera, Public Lab is also going to be producing a pre-assembled "point and shoot" camera -- you can sign up to get one by supporting their Kickstarter.
Also note: this material is also explained very nicely in a Public Lab how-to video -- it'll be very useful to watch that video once before starting, and to use it as an accompanying guide for this Instructable.
Warnings before you begin:
#1: There is a capacitor located deep inside the case of the camera. Don't stick the screwdriver in random crevices of the camera -- you could receive a bad shock!
#2: It is very possible to ruin your camera's functionality by making a small mistake. Don't do this with a camera that you'd really miss if something goes wrong ...
Okay, if you're ready to modify your own Canon A495/0, let's begin!
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.
All code and CAD drawings can be found in the GitHub repo.
Before we begin I should probably point out that a reasonably good understanding of electronics and Linux makes this project a lot easier, especially since my Instructables are probably not the easiest to follow (I do try my best), however feel free to ask if something isn't clear enough.
A full parts list is a little difficult for a project this size so I'll highlight the important parts only: Arduino IC (i.e. ATmega 328 with Arduino bootloader, you can but them blank and flash then yourself or pre flashed with a bootloader) Raspberry Pi (512MB version if possible, because you know, more memory is better... but seriously I haven't tested with a 256MB version, but it should still work) Digital potentiometers (logarithmic taper (we'll be using it to attenuate audio) & i2c (from the Pi), a DS1807 will do) Amplifiers (I used pre-built modules but feel free to build your own if you feel up to it) DC-DC converters (12v to 5v, 600mA output, isolated) Rotary encoders (from font panel, cursor movement and volume) An LCD (4 rows, 20 columns works for me, if you have songs with really long names maybe get a 40 column one) As for tools, you just need all the standard electronics and woodworking tools, a few others which may be useful: Bus Pirate (I don't actually have one, but they are very useful, alternatively you can do what I do and write Arduino scripts to make an Arduino act like a Pus Pirate to some degree) Laser cutter/engraver (not essential, but makes production of mounting hardware and front panels SO much easier) Router (for construction of enclosure) Accurate callipers (essential for measuring sizes for panels and mounting hardware) I think that is about it for specialist parts and tools, but of course I would highly recommend you read through the entire Instructable before starting work on this project.
[I will have a video here when I get a chance to shoot and edit one, most likely 27/06]The order in which I went about this project seemed fairly logical and seemed to work for me, so I'll go with that.
In that case first up is the electronics which control communication between the radio and the user, in my radio the included 6 buttons, two rotary encoders which also have a switch for when they are pressed and a 4 row, 20 column backlit LCD, the majority of this is controlled using a ATmega 328p which interfaces with the Raspberry Pi using RS232 (over a level converter, since the Pi has a logic level of 3.3v and the Arduino is 5v), the one exception is the LCD backlight which is switched on and off using a GPIO pin from the Pi.
So here is an overview of what IO devices were actually connected to the Arduino, how they were connected and why: Pins 0 and 1 connected to the Raspberry Pi GPO header through a MOSFET level converter, this was for the serial communication between the Pi and the Arduino. The front panel button were connected to ADC pins 0 to 5 with either an external pull up or pull down resistor (whichever is easiest, in hindsight pull up would have been easier then I would only need ground on my front panel board). The LCD is connected on digital pins 8 to 13, the actual pin assignment is not important at this stage as it can be configured in the Arduino script. The encoder buttons are on pins 6 and 7, using the internal pull up resistor. The encoders are on pins 3 and 5 and 2 and 4, it is important to have at least one interrupt pin per encoder, this will greatly improve the performance. Most of this can be seen easily on the schematic which has all of these relevant sections annotated, note that this is the schematic for the main board only, so the actual devices are shown as pin headers, I will go over wiring the actual devices in the next step.