Color object tracking with an 8-bit microcontroller

[Craig] sent in a link to this project which manages to implement color tracking on an 8-bit microcontroller at 60 frames per second. That’s some pretty incredible performance, but we’re also not talking about using a hobby-grade microcontroller. The C8051F360 is an ARM microcontroller with 100 MIPS throughput and with a system clock that can operate at up to 100 MHz. You also must consider that the chip will be able to do nothing else while in the tracking mode. Even with those gotchase, it’s still pretty incredible.

The setup uses an Omnivision OV7720 camera module. It has its own 24 MHz clock, which is used as the clock signal on the microcontroller’s PLL to generate a 96 MHz system clock. The code, which is written in a combination of C and assembly language, pushes captured tracking data to a PC via a serial port connection. After the break you can watch a bare-bones demo video that illustrates what the camera sees and what data shows up on the PC.

If you had the system in hand, what would you use it for? Perhaps it’s a perfect addition to that paintball sentry gun at which you’ve been hacking away?

I am designing for a $2 (BOM) vision system including processor. Some of the methods I use on other projects include no frame buffers and no random-order memory accesses, so no DMA needed. Check out the ChipSight slides: http://ChipSight.com/chipsight-slides/

If a microcontroller like the F360 (or Stellaris or MSP430) had a pixel-processing peripheral, you would get the best of both worlds – easy, low-cost, low-power vision with high resolution, high frame rate, multiple object targeting.

Right not I am building a camera module (4Cam) with a $10 BOM, includes camera and pixel processing. Connect it to your microcontroller via I2C. The main idea being that for vision functions you want object information from the image, not pixels.