Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Relevant microcontroller specs for (very) simple image processing

My and my fellow students are deciding on a choosing a simple microcontroller to do very basic image processing. We are basically trying to implement template matching to find a set of objects in specific portions of the image. We'd like to use a connect a webcam to the microcontroller to do the job take the pictures and look for the objects. We also require basic wireless communication (e.g. bluetooth or wifi).

I don't think we will have the luxury of using state-of-the-art microcontroller, but something thats been around for a while (due to budget and stuff). Could anyone please advise on which specs of the microcontrolelr would be the most relevant for the above task (e.g. CPU, MIPS, etc).

Thanks a lot!

like image 435
larry Avatar asked May 07 '11 21:05

larry


People also ask

What is the simplest microcontroller?

PIC10F200 Microcontroller Overview For the simple microcontroller, I decided on the PIC10F200 microcontroller. This is the most primitive microcontroller that is still in production and can be easily bought. It's an 8 bit microcontroller and one of the cheapest microcontrollers available.

Which microcontroller is best for beginners?

Step 3: Arduino (Uno) A robust, open-source microcontroller and programming environment designed for beginners with some knowledge of circuits. There are lots of different types of Arduino boards. This is the Arduino Uno, the best fit for beginners!


2 Answers

For this kind of a task, I would say the amount of RAM is the most relevant spec.

  • A microcontroller with an external memory interface allows you to extend the data space with additional SRAM to hold your image data.

  • Also note, that memory is needed for any protocol stacks you need to implement (Bluetooth, TCP/IP even more so).

  • You probably want to have total RAM in tens of kilobytes, preferably 100+ kB.

It is also nice to have plenty of program memory available when learning and experimenting.
Later on you can try to optimize and squeeze your code into a more confined device.

As for the architecture, choose something you can easily find development tools and examples for.
ARM, AVR and PIC are all good candidates among others.

Also find out what interfaces you need to use to

  • control the camera (e.g. I2C or SPI)
  • read pixel data (e.g. parallel or analog)

Connecting directly to a webcam's USB interface would not be a straightforward task, as the microcontroller would need to act as a USB host.

Good luck with your project!

like image 118
makes Avatar answered Sep 28 '22 02:09

makes


You may need a microcontroller with following features:

  1. USB 2.0 Host controller
  2. 1.2MB of memory for buffer 640*480*2(bytes per pixel)*2(double buffer) (you may use lower resolution if there are not enough memory)
  3. Wifi controller
  4. CPU power strong enough for your task
  5. Ready open source code

It seems that broadcom controllers may be useful here. Also, you can by off-the-shell Wifi router with usb port and use it for your project (i.e. Linksys E3000 )

like image 24
ilia Avatar answered Sep 28 '22 03:09

ilia