I'm a french student and with three friends we have to realize a project for our exams. We want to make a robot which uses a CMUCAM4 with Arduino. In the CMUCAM4 there is a test mod which track a color.
We have found this program (http://www.cmucam.org/docs/cmucam4/arduino_api/_c_m_ucam4_8cpp_source.html), and we don't know if it's the program of the test mod, because we need it. And I found another program and it's the same problem :
we don't know if these programs are really the CMUCAM4 test mode. We posted the same message on the CMUCAM forum and we received an answer. This new code is :
/***************************************************************************//**
* @file
* Color Tracking Template Code
*
* @version @n 1.0
* @date @n 8/14/2012
*
* @authors @n Kwabena W. Agyeman
* @copyright @n (c) 2012 Kwabena W. Agyeman
* @n All rights reserved - Please see the end of the file for the terms of use
*
* @par Update History:
* @n v1.0 - Initial Release - 8/14/2012
*******************************************************************************/
#include <CMUcam4.h>
#include <CMUcom4.h>
#define RED_THRESHOLD 30
#define GREEN_THRESHOLD 30
#define BLUE_THRESHOLD 30
#define LED_BLINK 5 // 5 Hz
#define WAIT_TIME 5000 // 5 seconds
CMUcam4 cam(CMUCOM4_SERIAL); // Replace this with what serial port you are using.... CMUCOM4_SERIAL, CMUCOM4_SERIAL1, CMUCOM4_SERIAL2, CMUCOM4_SERIAL3... etc.
void setup()
{
cam.begin();
// Wait for auto gain and auto white balance to run.
cam.LEDOn(LED_BLINK);
delay(WAIT_TIME);
// Turn auto gain and auto white balance off.
cam.autoGainControl(false);
cam.autoWhiteBalance(false);
// See automatic pan and tilt for more details.
cam.automaticPan(true, false);
cam.automaticTilt(true, false);
cam.colorTracking(true); // Go to YUV mode! False foir RGB mode!
cam.monitorSignal(false); // Operate in PAL mode. False for NTSC mode.
cam.LEDOn(CMUCAM4_LED_ON);
}
void loop()
{
while(!cam.getButtonPressed()); // Wait for the user to press the button...
CMUcam4_tracking_data_t data;
cam.trackWindow(RED_THRESHOLD, GREEN_THRESHOLD, BLUE_THRESHOLD);
for(;;)
{
cam.getTypeTDataPacket(&data); // Get a tracking packet.
// Process the packet data safely here.
}
// Do something else here.
}
/***************************************************************************//**
* @file
* @par MIT License - TERMS OF USE:
* @n Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
* @n
* @n The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
* @n
* @n THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*******************************************************************************/