Changeset 499

Show
Ignore:
Timestamp:
02/28/07 14:37:23 (2 years ago)
Author:
anthony_rowe
Message:

CMUcam2 demo mode control law update

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/projects/cmucam2/cmucam2.c

    r498 r499  
    1515 
    1616// Uncomment line below to reverse servo direction for auto-servo and demo mode  
    17 #define SERVO_REVERSE_DIRECTION 
     17#define SERVO_REVERSE_DIRECTION_PAN 
     18#define SERVO_REVERSE_DIRECTION_TILT 
    1819 
    1920//#define SERIAL_BAUD_RATE  CC3_UART_RATE_230400 
     
    296297  servo_settings.x = SERVO_MID; 
    297298  servo_settings.y = SERVO_MID; 
    298   servo_settings.pan_range_far = 16
    299   servo_settings.pan_range_near = 8
    300   servo_settings.pan_step = 10; 
    301   servo_settings.tilt_range_far = 30
    302   servo_settings.tilt_range_near = 15
    303   servo_settings.tilt_step = 10; 
     299  servo_settings.pan_range_far = 32
     300  servo_settings.pan_range_near = 20
     301  servo_settings.pan_step = 20; 
     302  servo_settings.tilt_range_far = 32
     303  servo_settings.tilt_range_near = 20
     304  servo_settings.tilt_step = 20; 
    304305 
    305306 
     
    322323 
    323324  if (demo_mode) { 
     325        cc3_led_set_state (0, true); 
     326        cc3_timer_wait_ms (5000); 
     327        cc3_camera_set_auto_exposure (false); 
     328        cc3_camera_set_auto_white_balance (false); 
    324329    // Wait for second button press as target lock 
    325330    while (1) { 
     
    329334      cc3_timer_wait_ms (100); 
    330335      if (cc3_button_get_state () == 1) 
    331       { 
    332         cc3_camera_set_auto_exposure (false); 
    333         cc3_camera_set_auto_white_balance (false); 
    334         break; 
    335       } 
     336        break; 
    336337    } 
    337338 
     
    12381239  cc3_image_t img; 
    12391240  uint16_t x_mid, y_mid; 
     1241  int8_t t_step; 
    12401242 
    12411243  bool prev_packet_empty = true; 
     
    13251327      if (t_pkt->int_density > 5 && servo_settings != NULL) { 
    13261328        if (servo_settings->x_control) { 
    1327           int8_t t_step; 
    13281329          t_step = 0; 
    13291330          if (t_pkt->centroid_x > x_mid + servo_settings->pan_range_far) 
     
    13381339 
    13391340 
    1340 #ifdef SERVO_REVERSE_DIRECTION 
     1341#ifdef SERVO_REVERSE_DIRECTION_PAN 
    13411342          servo_settings->x -= t_step; 
    13421343#else 
    13431344          servo_settings->x += t_step; 
    13441345#endif 
    1345  
     1346        t_step=0; 
    13461347          if (servo_settings->x > SERVO_MAX) 
    13471348            servo_settings->x = SERVO_MAX; 
     
    13521353        if (servo_settings->y_control) { 
    13531354          if (t_pkt->centroid_y > y_mid + servo_settings->tilt_range_far) 
    1354             servo_settings->y += servo_settings->tilt_step; 
     1355            t_step = servo_settings->tilt_step; 
    13551356          else if (t_pkt->centroid_y > 
    13561357                   y_mid + servo_settings->tilt_range_near) 
    1357             servo_settings->y += servo_settings->tilt_step / 2; 
     1358            t_step = servo_settings->tilt_step / 2; 
    13581359 
    13591360          if (t_pkt->centroid_y < y_mid - servo_settings->tilt_range_far) 
    1360             servo_settings->y -= servo_settings->tilt_step
     1361            t_step = -(servo_settings->tilt_step)
    13611362          else if (t_pkt->centroid_y < 
    13621363                   y_mid - servo_settings->tilt_range_near) 
    1363             servo_settings->y -= servo_settings->tilt_step / 2; 
     1364            t_step = -(servo_settings->tilt_step / 2); 
     1365 
     1366#ifdef SERVO_REVERSE_DIRECTION_TILT 
     1367          servo_settings->y -= t_step; 
     1368#else 
     1369          servo_settings->y += t_step; 
     1370#endif 
    13641371 
    13651372          if (servo_settings->y > SERVO_MAX)