What kind of components are needed to build a simple digital camera? One that processes a JPEG image and can transfer over one of USB (in mass-storage mode), Bluetooth or WiFi. When could I get them? Is there an open source camera?
You will need the following things to make a simple digital camera:
- A camera module. These contain the actual CCD (or CMOS) imaging chip, and optics all nicely integrated. There are a few options available. For example the LinkSprite module. The good thing about this is that it contains an on board JPEG compressor, so it actually outputs the image already in JPEG format.
The downside to this module is that it has terrible resolution of 160x100 pixels, and costs about $50. A better option (but harder to solder by hand) is this CMOS camera module.
It also outputs in JPEG format, but has a resolution of 1300x1040. Both of these camera modules are available from SparkFun.
- Something to store the image on. Easy, stick it on an SD card.
SD cards have an SPI interface which is supported by a great many microcontrollers. So you should easily be able to write to it. Assuming you want to be able to read the images off it, then you'll need to store the data as actual files in FAT32 format. There's a good tutorial about that. Also, don't forget to read the SD Card Specification.
- A microcontroller to control everything. This will detect the button press, command the camera module to take a photo, and copy the JPEG from the camera module to the SD card. There are so many microcontrollers out there, that it's hard to recommend one. The tutorial I mentioned uses an ATMEGA, so why not go for that? Alternatively, use a [PSoC3], which actually has an SD card component which can handle a [FAT32 file system] on up to 4 SD cards at the same time. Alternatively, use a PSoC3, which actually has an SD card component which can handle a FAT32 file system on up to 4 SD cards at the same time.
- A button, batteries, SD card holder.
- Finally, obviously, you'll need to design a PCB to connect all of these things together.
You also mentioned sending the image over USB, Bluetooth or WiFi. If I were you, I'd stick to this for now. It's already a fairly complex project, and as I understand it, you're fairly new to electronics. You can simply take the SD card out and put it in a card reader.
- You may be interested in looking at the Elphel cameras, "high performance cameras based on free software and hardware designs". a b c Their video cameras are quite likely overkill and have many "extra" parts that you don't need, but you might be one of the many people who find it easier to take a complete paper design and chop off the stuff you don't need, than to try to build up a working system from a blank sheet of paper.
- You might be able to add a little hardware to an off-the-shelf camera, wiring a small microcontroller to the big "take a picture" button to get it to do what you want -- see the CamMan project.
- You might be able to re-program some off-the-shelf camera to do what you want without any hardware mods -- perhaps using the open-source CHDK firmware for Canon PowerShot cameras. http://chdk.wikia.com/