« Previous - Version 49/77 (diff) - Next » - Current version
Adam Goode, 04/14/2007 04:05 pm

= CMUcam2 Emulation =

The CMUcam2 has the following capabilities: * Track user defined color blobs at up to 50 Frames Per Second (frame rate depends on resolution and window size settings) * Track motion using frame differencing at 26 Frames Per Second * Find the centroid of any tracking data * Gather mean color and variance data * Gather a 28 bin histogram of each color channel * ~Process Horizontally Edge Filtered Images~ * Transfer a real-time binary bitmap of the tracked pixels in an image * Arbitrary image windowing * Image Down Sampling * Adjust the camera's image properties * Dump a raw image (single or multiple channels) * Up to 176 x 255 Resolution * Supports baudrates of: 115,200 57,600 38,400 19,200 9,600 4,800 2,400 1,200 * Control 5 servo outputs * ~Slave parallel image processing mode off of a single camera bus~ * Automatically use servos to do two axis color tracking * B/W Analog video output (PAL or NTSC, depending on camera module used) * Flexible output packet customization * Power Down Mode * Multiple pass image processing on a buffered image

[cmucam2_lpc2106-cmucam3.hex Compiled Firmware Image (115,200 8N1)] (Right click and save) BR

[cmucam2.c Source File] (Right click and save) BR

There are several differences between the CMUcam2 emulation and the actual CMUcam2. Below is a list of all CMUcam2 functionality with non-supported features crossed off. Many crossed off features will be supported in the near future.

BM Buffer ModeBR
CR Camera RegisterBR
CP Camera PowerBR
DC Difference ChannelBR
DS Down SampleBR
FD Frame DifferenceBR
FS Frame StreamBR
GB Get ButtonBR
GH Get HistogramBR
GI Get Aux IO inputsBR
GM Get MeanBR
GS Get Servo PositionsBR
GT Get Tracking ParametersBR
GV Get VersionBR
GW Get WindowBR
HC Historgram ConfigureBR
HD High Resolution DifferenceBR
HR Hi-Res ModeBR
~HT Set Histogram TrackBR~
L0 Led ControlBR
LF Load Frame to DifferenceBR
''LM Line ModeBR''
~MD Mask DifferenceBR~
NF Noise FilterBR
OM Output Packet MaskBR
~PD Pixel DifferenceBR~
PF Packet FilterBR
PM Poll ModeBR
RF Read Frame into BufferBR
RM Raw ModeBR
RS ResetBR
SF Send FrameBR
SM Servo MaskBR
SO Servo OutputBR
SP Servo ParametersBR
ST Set Track CommandBR
SV Servo PositionBR
TC Track ColorBR
TI Track InvertedBR
TW Track WindowBR
~UD Upload Difference bufferBR~
VW Virtual WindowBR

'''The following commands will not be supported in the near future:'''BR
CT Set Camera TypeBR
DM Delay ModeBR
L1 Led Control (look at SO instead)BR
PS Packet SkipBR
SD Sleep DeeplyBR
SL Sleep CommandBR

= CMUcam2 Emulation Differences =
  • '''Servo Input Range''' * Servos are now 0-255 8bit values.
  • '''Jumpers''' * Due to the lack of jumpers on the CMUcam3, baudrate and servo direction changes need to be done at compile time. These are controlled by #defines at the top of cmucam.c
  • '''Set Input (SI ''pin'') Command''' * sets the ''pin'' to be an input
  • '''Software Color Space (CS ''value'') Command''' * CS 0 sets the color space to the hardware default (RGB or YCrCb) * CS 1 does a software conversion to the HSV color space * Conversion assumes hardware is set to RGB for correct results * HSV space is integer where all values are scaled between 16 and 240 * Note, this is only available in r504 and higher
  • '''Set Output Can Control the Blue and Orange LEDs''' * Servos 2 and 3 will stop working * so 2 1 -> Blue on * so 2 0 -> Blue off * so 3 1 -> Orange on * so 3 0 -> Orange off
  • '''No Slave Mode.''' * It is possible, but we currently don't support it.
  • '''Output Mask (OM)''' * only supports T and S packets (type 0 and 1)
  • '''Line Mode (LM)''' * only supports track color mode
  • '''Send JPEG (SJ)''' * sends a jpeg compressed frame, header and all
  • '''Demo Mode''' * Since holding down the programming button puts the CMUcam3 into programming mode, you need to press the button half a second after startup to enter demo mode.
  • '''Hi-Res Frame Difference''' * This now works the same as low-res frame differencing, just at a higher resolution.

cmucam2_lpc2106-cmucam3.hex - CMUcam2 already compiled hex file (268.5 kB) Anthony Rowe, 07/02/2007 11:26 pm

cmucam2_115200.hex - CMUcam2 r553 115200 baud (251.4 kB) Anthony Rowe, 03/16/2008 03:17 pm

cmucam2_57600.hex - CMUcam2 r553 57600 baud (251.4 kB) Anthony Rowe, 03/16/2008 03:19 pm

cmucam2_38400.hex - CMUcam2 r553 38400 baud (251.4 kB) Anthony Rowe, 03/16/2008 03:20 pm

cmucam2_19200.hex - CMUcam2 r553 19200 baud (251.4 kB) Anthony Rowe, 03/16/2008 03:20 pm

cmucam2_9600.hex - CMUcam2 r553 9600 baud (251.4 kB) Anthony Rowe, 03/16/2008 03:21 pm

cmucam2_4800.hex - CMUcam2 r553 4800 baud (251.4 kB) Anthony Rowe, 03/16/2008 03:22 pm

cmucam2_2400.hex - CMUcam2 r553 2400 baud (251.4 kB) Anthony Rowe, 03/16/2008 03:23 pm

cmucam2_1200.hex - CMUcam2 r553 1200 baud (251.4 kB) Anthony Rowe, 03/16/2008 03:24 pm

cmucam2_300.hex - CMUcam2 r553 300 baud (251.4 kB) Anthony Rowe, 03/16/2008 03:24 pm

cmucam2.c - CMUcam2 Emulation Source (44.2 kB) Anthony Rowe, 03/16/2008 03:32 pm

cmucam2_115K2_servo_reverse.hex (303.3 kB) Anthony Rowe, 05/02/2010 12:04 am

cmucam2_115K2_servo_normal.hex (303.3 kB) Anthony Rowe, 05/02/2010 12:07 am