For sometime now, I started a project called Arduino Camera using a Atmega328p and a OV7670 FIFO module (from ebay). The first 3 versions of the board are shown bellow:
Note: Arduino Camera project boards: version 0.1, 0.2 and 0.3.
Lately, decided to move to Atmega32 instead as I plan to use all 8 bits for image (while I was only able to use 6 bits due the pin limitations on Atmega328p, same chip used in Arduino boards). If planning only to do tracking will not be an issue, however, Atmega32 is pin compatible to Atmega1284P chip which come with more memory (RAM and FLASH). This will allow more features like comparing different frames and detect movement and track it or even use 2 cameras for stereoscopic vision capturing the images using a round-robin implementation. Long term may even consider a basic shape detection using predefined shapes stored in the large flash memory available on this chip.
For the “proof of concept” I am using a board I order from ebay for 12 SGD (!!!), see bellow the picture:
So far works great! Managed to get it stream data, cleanup the code to cut the overhead and stream frame-by-frame instead of continuous streaming and added the option to save the OV7670 settings in EEPROM instead of using he flash. This will allow changing and storing the changes between restarts/power-on cycles.
Once optimised the code, compiled will only take 1.7 Kbytes, which is pretty cool, may be able to “squeeze it” in a Attiny4313:
Hope will have more time to work on this and get a stable prototype and maybe even come up with a board, commercial version? ^_^