Пример #1
0
int main(int argc, char** argv) {
    startup_servos();
    //wait_for_light(0);
    scanf("%s", NULL);
    printf("waiting for light\n");
    while (analog(0) > 200) {}
    shut_down_in(700000);
    
    raise_scoop_level();
    
    drive_straight(900);
    drive_straight(-50);//old value 320
    /*//to be replaced with tick thing
    motor(kMotorPortDriveLeft, 100);
    motor(kMotorPortDriveRight, 5);
    msleep(2430);
    motor(kMotorPortDriveLeft, 0);
    motor(kMotorPortDriveRight, 0);*/
    //dump();
    //close_scoop_doors();
    //open_scoop_doors();
    //dump();
    //msleep(800);
    turn_ticks_in_place(50, 890);
    
    // pile 1
    open_scoop_doors();
    lower_scoop_level();
    drive_straight(250);
    close_scoop_doors();
    raise_scoop_level();
    
    
    
    //Reverse to pile 2
    
    
    drive_straight(-290);
    turn_ticks(50, -700);
    drive_straight(-250);
    //set_servo_position(kServoPortScoopTiltLeft, kServoPositionScoopTiltHighBack);
    //set_servo_position(kServoPortScoopTiltRight, 2047 - kServoPositionScoopTiltHighBack);
    turn_ticks(50, 770);//this value
    lower_scoop_level();
    open_scoop_doors();
    
    //pick up pile 2
    drive_straight(270);
    close_scoop_doors();
    raise_scoop_level(); 
    drive_straight(80);
    
    raise_scoop_very_high();
    
    drive_straight(170);
    turn_ticks(50, 500);
    drive_straight(-90);
    turn_ticks_in_place(50, 650);
    drive_straight(100);

    //set_servo_position(kServoPortScoopTiltLeft, kServoPositionScoopTiltHigh - 300);
    //set_servo_position(kServoPortScoopTiltLeft, (2047 - kServoPositionScoopTiltHigh) + 300);
    // turn_ticks(50, 555);
    
    
    // drive_straight(50);
    
    //set_servo_position(kServoPortScoopTiltLeft, 1000);
    //set_servo_position(kServoPortScoopTiltRight, 2047 - 1000);
    msleep(200);
    open_doors_wide();
    dump();
    msleep(500);
    dump_shake();
    dump();
    dump_shake();
    dump();
    
    //raise_scoop();
    drive_straight(-400);
    return 0;
    raise_scoop_level();
    close_doors_wide();
    raise_scoop_very_high();
    turn_ticks_in_place(50, -1350);
    drive_straight(100);
    
    //drive to pile 3
    raise_scoop_level();
    turn_ticks_in_place(50, 700);
    turn_ticks_in_place(50, -400);
    lower_scoop_level();
    turn_ticks_in_place(50, -300);
    drive_straight(100);
    
    //pick up pile 3
    open_scoop_doors();
    drive_straight(400);
    close_scoop_doors();
    turn_ticks_in_place(50, -100);
    drive_straight(-400);
    raise_scoop_level();
    turn_ticks_in_place(50, -100);
    drive_straight(-400);
    turn_ticks_in_place(50, -200);
    drive_straight(-290);
    lower_scoop_level();
    turn_ticks_in_place(50, 1150);
    turn_ticks_in_place(50, -100);
    raise_scoop_level();
    
    // drive to/pick up pile 4
    drive_straight(500);
    turn_ticks_in_place(50, 400);
    mid_scoop_level();
    turn_ticks_in_place(50, -900);
    raise_scoop_level();
    turn_ticks_in_place(50, 400);
    lower_scoop_level();
    turn_ticks_in_place(50, 500);
    turn_ticks_in_place(50, -50);
    open_scoop_doors();
    drive_straight(230);
    close_scoop_doors();
    raise_scoop_level();
    
    // dump other load
    turn_ticks_inverse(50, 500);
    drive_straight(-100);
    turn_ticks_in_place(50, -100);
    drive_straight(-150);
    raise_scoop_very_high();
    turn_ticks_in_place(50, 700);
    drive_straight(200);
    
    set_servo_position(kServoPortScoopTiltLeft, 1000);
    set_servo_position(kServoPortScoopTiltRight, 2047 - 1000);
    msleep(200);
    open_doors_wide();
    dump();
    msleep(500);
    dump_shake();
    dump();
    dump_shake();
    dump();
    return 0;
    
    turn_ticks_in_place(50, -475);
    drive_straight(-200);
    turn_ticks_in_place(50, 475);
    drive_straight(400);
    //pick up pile 4
    lower_scoop_level();
    
    drive_straight(500);
    open_scoop_doors();
    
}
Пример #2
0
void runop()
{

#define D_F 0
#define D_S 2
#define D_T 1
	//*
	int n = 9;
	int m = 11;
	int direc[] = {D_T, D_T,   D_F,  D_T, D_F, D_T,  D_F, D_T, D_F,    D_F, D_T};
	int ticks[] = {270,-270,  1377,-1080,1315,1080,-3005,1080,1315,  -2630,-540};

	// go get balls
	for(int i=0;i<n;i++)
	{
		//ticks[i] *= TEAM;
		if(direc[i]==D_F)
		{
			forward_ticks(ticks[i]);
		}
		//else if(direc[i]==D_S)
		//{
		//	sideways_ticks(TEAM*ticks[i]);
		//}
		else if(direc[i]==D_T)
		{
			turn_ticks(TEAM*ticks[i]);
		}
		if(i==n-1)
		{
			intakecontrol(1, 0);
		}
	}
	//come back
	for(int i=n-1;i>=0+2;i--)
	{
		if(i==n-1)
		{
			intakecontrol(0, 0);
		}
		//ticks[i] *= TEAM;
		if(direc[i]==D_F)
		{
			forward_ticks(ticks[i]*(-1));
		}
		//else if(direc[i]==D_S)
		//{
		//	sideways_ticks(TEAM*ticks[i]);
		//}
		else if(direc[i]==D_T)
		{
			turn_ticks(TEAM*ticks[i]*(-1));
		}
	}
	//into launch position
	for(int i=n;i<m;i++)
	{
		//ticks[i] *= TEAM;
		if(direc[i]==D_F)
		{
			forward_ticks(ticks[i]);
		}
		//else if(direc[i]==D_S)
		//{
		//	sideways_ticks(TEAM*ticks[i]);
		//}
		else if(direc[i]==D_T)
		{
			turn_ticks(TEAM*ticks[i]);
		}
	}
	//*/

	flywheelmotors(WHEELSPEED);
	delay(4000);
	while(1)
	{
		printf("--------------Conveyor on--------\n\r");
		intakecontrol(1, 0);
		delay(1000);
		printf("--------------Conveyor off-------\n\r");
		intakecontrol(0, 0);
		delay(1000);
	}



	/*
	int forward  = 1377;
	int right    = 1315;
	int turn     = 1080;
	int left     = 3005;
	int forward2 = 1315;
	forward_ticks(AUTO_SPEED, forward);
	sideways_ticks(AUTO_SPEED*team, right*team);
	turn_ticks(AUTO_SPEED*team, turn*team);
	sideways_ticks(-AUTO_SPEED*team, -left*team);
	forward_ticks(AUTO_SPEED, forward2);
	//*/

}