示例#1
0
int main()
{
    //Turn off the IR proximity sensors and the IR sharp sensor.
    DDRH |= (1 << 2) | (1 << 3);
    PORTH |= (1 << 2) | (1 << 3);

    //Turn off the white line sensors.
    DDRG |= (1 << 2);
    PORTG |= (1 << 2);

    set_motors();

    while(1)
    {
        velocity(forwardLeftSpeed, forwardRightSpeed);
        forward_mm(1000);

        stop();
        _delay_ms(3000);

        velocity(backLeftSpeed, backRightSpeed);
        back_mm(1000);

        stop();
        _delay_ms(3000);

        velocity(leftLeftSpeed, leftRightSpeed);
        left_degrees(90);

        stop();
        _delay_ms(3000);

        velocity(rightLeftSpeed, rightRightSpeed);
        right_degrees(90);

        stop();
        _delay_ms(3000);

        right_degrees(90);

        stop();
        _delay_ms(3000);

        velocity(leftLeftSpeed, leftRightSpeed);
        left_degrees(90);

        stop();
        _delay_ms(3000);
    }
}
void rotate_right_slowly()
{
	//velocity(150,150);

	while(1)
	{
		stop();
		read_sensor();

		// For center black line
		if(Center_white_line>0x20)
		{
			break;	
		}

		else
		{
			right_degrees(10);			
		}

	}

	//velocity(130,130);
	//stop();

}
void turn_right(int degree){
	pen_up();
	_delay_ms(100);
	move_straight(245,1);
	right_degrees(degree);
	move_straight(255,0);
	
	pen_down();
}
示例#4
0
void turnRight()	//turns the robo right
{
	velocity(turn_v,turn_v);
	
	forward_mm(85);
	right_degrees(90);
	dir = (dir + 1) % 4;
	//..printf("Turn Right \n");
}
示例#5
0
void turnLeft()	//turns the robo left
{
	velocity(turn_v,turn_v);

	forward_mm(85);
	right_degrees(90);
	
	//..printf("Turn Left\n");
}
void terminalCheck2()
{
	if (flag == 0)
	{
		if (dir == 0)
			if (ot == 0 || ot == 1)
				forward_mm(30);
			else back_mm(30);
		else if (ot == 0 || ot == 1)
			back_mm(30);
		else forward_mm(30);
		flag = 1;
	}

	if (((ct == 0 || ct == 1) && dir == 0) || ((ct == 2 || ct == 3) && dir == 2))
	{
		left_degrees(30);
		velocity(turn_v, turn_v);
		while (ADC_Conversion(1)<70)
		left();
		//	_delay_ms(100);
		stop();
	}
	else if (((ct == 0 || ct == 1) && dir == 2) || ((ct == 2 || ct == 3) && dir == 0))
		{
			right_degrees(30);
			velocity(turn_v, turn_v);
			while (ADC_Conversion(1)<70)
				right();
			//	_delay_ms(100);
			stop();	
		}
	else {
		left_degrees(150);
		velocity(turn_v, turn_v);
		while (ADC_Conversion(1)<70)
		left();
		//	_delay_ms(100);
		stop();
		
			}
	//printf("Enter term[%d][%d]\n", ct, 1);
	//scanf("%d", &term[ct][1]);
	term[ct][1] = scan();
	if(term[ct][1]==-1)
		lcd_print(2,11,9, 1);
	else
		lcd_print(2,11, term[ct][1], 1);
	_delay_ms(1000);
	if (term[ct][1] == -1 || term[ct][1] == color[ct])
		total--;
	visited[ct] = 1;
	visitedCount++;
}
示例#7
0
int main() {

	init_devices();
	while(1){
		forward_mm(50);
		back_mm(50);
		left_degrees(90);
		right_degrees(90);
	}

 return 0;
}
void turnRight()	//turns the robo right
{
	if ((dir == 3 && (ot == 0 || ot == 1)) || (dir == 1 && (ot == 2 || ot == 3)))
	{
		velocity(turn_v, turn_v);
		right_degrees(90);
	}
	else
	{
		right_degrees(30);
		velocity(turn_v, turn_v);
		while (ADC_Conversion(2)<70)
			right();
	//	_delay_ms(100);
		stop();	
	}
	lcd("Right turn");
	//_delay_ms(2000);
	dir = (dir + 1) % 4;
	//printf("Turn Right \n");
	angle += 90;
}
void turn_bot(char ch) {
get_vector();
velocity(VELOCITY_MIN,VELOCITY_MIN);
/*
if (ch == 'l') {
velocity(VELOCITY_MAX,VELOCITY_MIN);
_delay_ms(2000);
}
else if (ch == 'r') {
velocity(VELOCITY_MIN,VELOCITY_MAX);
_delay_ms(2000);
}
*/
stop();
_delay_ms(1000);
if (ch == 'l') 
left_degrees(90); 
else 
right_degrees(90); 
/*
while (1) {
get_vector();

lcd_cursor(1,1);
lcd_string("LorR           ");
L_velocity = VELOCITY_MIN; 
R_velocity = VELOCITY_MIN;
if (Center_white_line > THRESHOLD) {
if (Left_white_line > THRESHOLD)
L_velocity = VELOCITY_MIN;
else if (Right_white_line > THRESHOLD)
R_velocity = VELOCITY_MIN;
}
else {
if (Left_white_line > THRESHOLD)
L_velocity = 20;
else if (Right_white_line > THRESHOLD)
R_velocity = 20;
}
velocity(L_velocity, R_velocity);
if (Center_white_line > THRESHOLD  && Left_white_line < THRESHOLD && Right_white_line < THRESHOLD) {
break;
}
}
*/
} 
int main(void)
{
	init_devices();

	while(1)
	{
		forward_mm(100); //Moves robot forward 100mm
		stop();
		_delay_ms(500);			
		
		back_mm(100);   //Moves robot backward 100mm
		stop();			
		_delay_ms(500);
		
		left_degrees(90); //Rotate robot left by 90 degrees
		stop();
		_delay_ms(500);
		
		right_degrees(90); //Rotate robot right by 90 degrees
		stop();
		_delay_ms(500);
		
		soft_left_degrees(90); //Rotate (soft turn) by 90 degrees
		stop();
		_delay_ms(500);
		
		soft_right_degrees(90);	//Rotate (soft turn) by 90 degrees
		stop();
		_delay_ms(500);

		soft_left_2_degrees(90); //Rotate (soft turn) by 90 degrees
		stop();
		_delay_ms(500);
		
		soft_right_2_degrees(90);	//Rotate (soft turn) by 90 degrees
		stop();
		_delay_ms(500);
	}
}
void terminalCheck1()
{
	forward_mm(30);
	flag = 1;
	if (ct != ot)
	{
		if (dir == 1 || dir == 3)
		{
			if (ot == 3 || ot == 0)
				turnRight();
			else turnLeft();
		}
		if (((ct == 0 || ct == 1) && dir == 2) || ((ct == 2 || ct == 3) && dir == 0))
			turn();
		front();
		ot = ct;
	}
	right_degrees(50);
	velocity(turn_v, turn_v);
	while (ADC_Conversion(1)<70)
		right();
	//	_delay_ms(100);
	stop();
	term[ct][0] = scan();
	if(term[ct][0]==-1)
		lcd_print(2,11,9, 1);
	else
		lcd_print(2,11, term[ct][0], 1);
	_delay_ms(1000);
	//printf("Enter term[%d][%d]\n", ct, 0);
	//scanf("%d", &term[ct][0]);



	lcd((char*)term[ct][0]);
	if (term[ct][0] == -1 || term[ct][0] == color[ct])
		total--;
}
示例#12
0
//Main Function
int main()
{ 
   init_devices();
   while(1)
   {
     if(receive_data=='<')
     {
       lcd_cursor(1,1);
       lcd_string("Drawing Completed");
       lcd_cursor(2,1);
       lcd_string("NEX ROBOTICS IND");
     }
     if(receive_data=='[')
	 {
	    S2=0x78;
		_delay_ms(1000);
	 }

	 if(receive_data==']')
	 {
	    S2=0x7F;
		_delay_ms(1000);
	 }

     if(receive_data == 'r'||receive_data == 'g'||receive_data == 'b')      
     {
        //uart0_clr();
        color=receive_data;
		receive_data='0';
        //continue;
     }  	 
     if(receive_data == 'w'||receive_data == 'a'||receive_data == 'd'||receive_data == 's')      
     {
        //uart0_clr();
        flag=receive_data;
		receive_data='0';
        //continue;
     }
	 if(receive_data == 't'||receive_data == 'h')
	 {
	     digit=receive_data;
         receive_data='0';
	 }	 
	 if(color=='r'&&flag=='w'&&digit=='h')
	 {
	     if(receive_data=='1')
		 {
		    forward_mm(100);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='2')
		 {
		    forward_mm(200);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='3')
		 {
		    //S2=0x78; // 90 degree
            //_delay_ms(1000);
		    forward_mm(300);
			//_delay_ms(1000);
			//S2=0x7F; // 180 degree
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='4')
		 {
		    forward_mm(400);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='5')
		 {
		    forward_mm(500);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='6')
		 {
		    forward_mm(600);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='7')
		 {
		    forward_mm(700);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='8')
		 {
		    forward_mm(800);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='9')
		 {
		    forward_mm(900);
			receive_data='0';
			//UDR='x';
		 }

	 }
	 if(color=='r'&&flag=='w'&&digit=='t')
	 {
	     if(receive_data=='1')
		 {
		    forward_mm(11);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='2')
		 {
		    forward_mm(20);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='3')
		 {
		    forward_mm(30);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='4')
		 {
		    forward_mm(40);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='5')
		 {
		    forward_mm(50);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='6')
		 {
		    forward_mm(60);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='7')
		 {
		    forward_mm(70);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='8')
		 {
		    forward_mm(80);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='9')
		 {
		    forward_mm(90);
			receive_data='0';
			//UDR='x';
		 }

	 }
     if(color=='r'&&flag=='s'&&digit=='h')
	 {
	     if(receive_data=='1')
		 {
		    back_mm(170);
			receive_data='0';
			//UDR='x';
		 }
     }
     if(color=='r'&&flag=='a'&&digit=='t')
	 {
	     if(receive_data=='1')
		 {
		    left_degrees(10);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='2')
		 {
		    left_degrees(20);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='3')
		 {
		    left_degrees(30);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='4')
		 {
		    left_degrees(40);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='5')
		 {
		    left_degrees(50);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='6')
		 {
		    left_degrees(60);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='7')
		 {
		    left_degrees(70);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='8')
		 {
		    left_degrees(80);
			receive_data='0';
			//UDR='x';
		 }
         if(receive_data=='9')
		 {
		    left_degrees(90);
			receive_data='0';
			//UDR='x';
		 }
	 }
	 if(color=='r'&&flag=='a'&&digit=='h')
	 {
	     if(receive_data=='1')
		 {
		    left_degrees(100);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='2')
		 {
		    left_degrees(200);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='3')
		 {
		    left_degrees(300);
			receive_data='0';
			//UDR='x';
		 }
	 }
	 if(color=='r'&&flag=='d'&&digit=='t')
	 {
	     if(receive_data=='1')
		 {
		    right_degrees(10);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='2')
		 {
		    right_degrees(20);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='3')
		 {
		    right_degrees(30);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='4')
		 {
		    right_degrees(40);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='5')
		 {
		    right_degrees(50);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='6')
		 {
		    right_degrees(60);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='7')
		 {
		    right_degrees(70);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='8')
		 {
		    right_degrees(80);
			receive_data='0';
			//UDR='x';
		 }
         if(receive_data=='9')
		 {
		    right_degrees(90);
			receive_data='0';
			//UDR='x';
		 }
	 }
	 if(color=='r'&&flag=='d'&&digit=='h')
	 {
	     if(receive_data=='1')
		 {
		    right_degrees(100);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='2')
		 {
		    right_degrees(200);
			receive_data='0';
			//UDR='x';
		 }
		 if(receive_data=='3')
		 {
		    right_degrees(300);
			receive_data='0';
			//UDR='x';
		 }
	 }
   }     
}
示例#13
0
//Main Function
int main()
{
	init_devices();
	
	while(1)
	{
		Left_white_line = ADC_Conversion(3);	//Getting data of Left WL Sensor
		Center_white_line = ADC_Conversion(2);	//Getting data of Center WL Sensor
		Right_white_line = ADC_Conversion(1);	//Getting data of Right WL Sensor
		
		if((Left_white_line>0x20) && (Center_white_line>0x20) && (Right_white_line>0x20))
		{
			if(lf == 1)
			{
				motion_set(0x05);
			}
			if (rf == 1)
			{
				motion_set(0x0A);
			}
			else
			{
				left_degrees(200);
			}
		}

		if((Left_white_line<0x20) && (Center_white_line>0x20) && (Right_white_line<0x20))
		{
			forward();
			_delay_ms(50);
		}

		if((Left_white_line>0x20) && (Center_white_line<0x20) && (Right_white_line<0x20))
		{
			left_degrees(5);
			forward();
		}

		if((Left_white_line<0x20) && (Center_white_line<0x20) && (Right_white_line>0x20))
		{
			right_degrees(5);
			forward();
		}
		
		if((Left_white_line>0x20) && (Center_white_line>0x20) && (Right_white_line<0x20))
		{
			left_degrees(5);
			forward();
		}

		if((Left_white_line<0x20) && (Center_white_line>0x20) && (Right_white_line>0x20))
		{
			right_degrees(5);
			forward();
		}
		
		if((Left_white_line>0x20) && (Center_white_line<0x20) && (Right_white_line>0x20))
		{
			stop();
		}

		if((Left_white_line<0x20) && (Center_white_line<0x20) && (Right_white_line<0x20))
		{
			/*if(flag == 0)
			{
				if(lf == 1)
				{
					right_degrees(120);
				}
				if(rf == 1)
				{
					left_degrees(120);
				}
				else
				{
					left_degrees(200);
					//right_degrees(240);
					//left_degrees(120);
					//flag = 1;
				}
			}
			else
				stop();*/
		}
		//else
		//	flag = 0;		
	}
}
//Main Function
int main()
{
	init_devices();
	init_encoders();
	lcd_set_4bit();
	lcd_init();
	int value=0;
	forward();
	velocity(130,130);
	lcd_print(2,1,130,3);
	lcd_print(2,5,130,3);
	lcd_print(2,9,pathindex,2);
	lcd_print(2,13,dirn,3);


	while(1)
	{	
		read_sensor();
		follow();
		
		if(isPlus())
		{	
			read_sensor();
			value = path[pathindex++];
			
			// Code inserted for calculation of actual location wrt initial starting point , 
			// It will consider direction also.

			if (value == F)
			{
				// Move the bot forward, for location only , No movement on ground.
				move_bot(FR);
			}
			else if (value == L)
			{
				// Move the bot left , for location only , No movement on ground.
				move_bot(LT);
			}
			else if (value == R)
			{
				// Move the bot right, for location only , No movement on ground.
				move_bot(RT);
			}
			else if (value == M)
			{
				// To stop the Bot and then break out
				stop();
				break;
			}
					
			orient(value);

/*			lcd_print(2,9,pathindex,2);
			lcd_print(2,13,dirn,3);
			lcd_print(1,13,turnL,1);
			lcd_print(1,15,turnR,1);
*/
			
		}
		
		if(turnL == 1)
		{/*
		lcd_print(1,13,turnL,1);
		forward_mm(20);
		stop();
		velocity(180,180);
		left_degrees(95);
		//_delay_ms(120);
		read_sensor();
		//	 while(Left_white_line <0x40)
		// {
		//	read_sensor();
		//	left();
		// }
		 stop();
	 	 forward();
		velocity(180,180);
		 turnL = 0;
		 */

		 back_mm(50);
		//stop();
		//velocity(130,130);
		stop();
		left_degrees(50);
		rotate_left_slowly();
	 	forward();
		velocity(130,130);
		turnL = 0;
		}
		
		if(turnR == 1)
		{
		/*
		lcd_print(1,15,turnR,1);
		forward_mm(20);
		stop();
		velocity(180,180);
		right_degrees(95);
		//_delay_ms(200);
		read_sensor();
		// while(Right_white_line <0x30)
		// {
		// read_sensor();
		// right();
		// }
		stop();
		forward();
		//follow();
		velocity(180,180);
		 turnR = 0;
		*/

		back_mm(50);
		//stop();
		//velocity(130,130);
		stop();
		right_degrees(50);
		rotate_right_slowly();
	 	forward();
		velocity(130,130);
		turnR = 0;
		}
	
	}


	// Three Beeps for Interval
	buzzer_on();
	_delay_ms(100);
	buzzer_off();
	_delay_ms(100);

	buzzer_on();
	_delay_ms(100);
	buzzer_off();
	_delay_ms(100);

	buzzer_on();
	_delay_ms(100);
	buzzer_off();
	_delay_ms(100);

	//code to head-back to starting position , i.e. Origin
	return_path_counter = reach_origin();
	
	forward();
	velocity(130,130);
	int counter = 0;
	int intermediate_value = 0;

	while(counter < return_path_counter)
	{	
		read_sensor();
		follow();
		
		if(isPlus())
		{	
			read_sensor();
			value = path_to_origin[counter];
			counter++;
			
			// Code inserted for calculation of actual location wrt initial starting point , 
			// It will consider direction also.

			if (intermediate_value == FR)
			{
				// Move the bot forward, for location only , No movement on ground.
				value = F;
			}
			else if (value == LT)
			{
				// Move the bot left , for location only , No movement on ground.
				value = L;
			}
			else if (value == RT)
			{
				// Move the bot right, for location only , No movement on ground.
				value = R;
			}
			else if (value == ST)
			{
				value = M;
				// specially inserted as break will not allow the bot to stop using "orient(value)".
				orient(value);
				break;
			}
					
			orient(value);
		
		}
		
		if(turnL == 1)
		{
		 back_mm(50);
		//stop();
		//velocity(130,130);
		stop();
		left_degrees(50);
		rotate_left_slowly();
	 	forward();
		velocity(130,130);
		turnL = 0;
		}
		
		if(turnR == 1)
		{
		back_mm(50);
		//stop();
		//velocity(130,130);
		stop();
		right_degrees(50);
		rotate_right_slowly();
	 	forward();
		velocity(130,130);
		turnR = 0;
		}
	
	}


	// Three beeps for Finish
	buzzer_on();
	_delay_ms(100);
	buzzer_off();
	_delay_ms(100);

	buzzer_on();
	_delay_ms(100);
	buzzer_off();
	_delay_ms(100);

	buzzer_on();
	_delay_ms(100);
	buzzer_off();
	_delay_ms(100);

}
	int follow_wall()
	{
		 
		unsigned long int ShaftCount;
		unsigned long int Div;
		ShaftCountRight = 0;
	    ShaftCountLeft = 0;
		int row,state;
		
		
		value_front = ADC_Conversion(11);
		
		if(value_front>150)
		{ 
			                                                                        //compute row and return 
			stop();
			ShaftCount=(ShaftCountLeft+ShaftCountRight)/2;
			row= ShaftCount/Div + 2 ;
			state=1;
			return(row) ;
			
		}
		
		
		value_1sens=ADC_Conversion(9);
		if(value_1sens > 25 && value_1sens <50 )
				 {
					 
					 
				   velocity(forwardLeftSpeed, forwardRightSpeed);
			       forward();
					 
				 }		
				 
				 else if(value_1sens < 25 && value_2sens > 50 )
				 {
					                                                                                       //right
					 right_degrees(5);
					 
					 leftSpeed=0;
					 rightSpeed=30;
					 
					  // leftSpeed = forwardLeftSpeed - error*kp;
                       //rightSpeed = forwardRightSpeed + error*kp;

                      velocity(leftSpeed, rightSpeed);
				 }
				 
				 else if(value_1sens >50 && value_2sens <25 )
				 {
					 
					  left_degrees(5);
					 
					 leftSpeed=30;
					 rightSpeed=0;
					 //leftSpeed = forwardLeftSpeed - error*kp;
                       //rightSpeed = forwardRightSpeed + error*kp;

                      velocity(leftSpeed, rightSpeed);
					                                                                                                //left
					 
				 }
				 return(0);
	}
int main(void)
{
	data = UDR0; 				//making copy of data from UDR0 in 'data' variable 

	UDR0 = data; 				//echo data back to PC
        
        init_devices();

	velocity (246, 250); //Set robot velocity here. Smaller the value lesser will be the velocity
						 //Try different valuse between 0 to 255

        while(1)
         {

		if(data == 0x38) //ASCII value of 8
		{
			forward_mm(90); //Moves robot forward 100mm
			stop();
			_delay_ms(700);
		}

		if(data == 0x32) //ASCII value of 2
		{
			back_mm(90);   //Moves robot backward 100mm
			stop();
			_delay_ms(700);
		}

		if(data == 0x34) //ASCII value of 4
		{
			left_degrees(90); //Rotate robot left by 90 degrees
			stop();
			_delay_ms(700);
		}

		if(data == 0x36) //ASCII value of 6
		{
			right_degrees(90); //Rotate robot right by 90 degrees
			stop();
			_delay_ms(700);
		}
		if(data == 0x67) //ASCII value of g
		{
			soft_left_degrees(90); //Rotate robot left by 90 degrees
			stop();
			_delay_ms(500);
		}
		if(data == 0x68) //ASCII value of h
		{
			soft_right_degrees(90); //Rotate robot right by 90 degrees
			stop();
			_delay_ms(500);
		}
		if(data == 0x69) //ASCII value of i
		{
			left_degrees(180); //Rotate robot left by 90 degrees
			stop();
			_delay_ms(500);
		}

		if(data == 0x70) //ASCII value of j
		{
			right_degrees(180); //Rotate robot right by 90 degrees
			stop();
			_delay_ms(500);
		}        
		if(data == 0x35) //ASCII value of 5
		{
			stop();						
		        _delay_ms(500);//stop
		}

		if(data == 0x37) //ASCII value of 7
		{
			buzzer_on();
		}

		if(data == 0x39) //ASCII value of 9
		{
			buzzer_off();
		}
                if(data == 0x61) //ASCII value of a
                {
                        redled_on();
                }
                if(data == 0x62) //ASCII value of b
                {
                        redled_off();
                }
                if(data == 0x63) //ASCII value of c
                {
                        blueled_on();
                }
                if(data == 0x64) //ASCII value of d
                {
                        blueled_off();
                }
                if(data == 0x65) //ASCII value of e
                {
                        greenled_on();
                }
                if(data == 0x66) //ASCII value of f
                {
                        greenled_off();
                }

}

}
示例#17
0
int main(void)
{
  port_init();
  init_devices();
  
int k=240;
 int i=0;
 while(i<3)
   {
     
     servo_1(180);//for opening the gripper
     _delay_ms(200);
	 
     backward_mm_ext(290);//for releasing the thread as gripper goes down
     stop();
     _delay_ms(300);
    	

     servo_1(100);//for closing the gripper
     _delay_ms(300);

     forward_mm_ext(225);//for winding the thread so that gripper comes up
     _delay_ms(200);
	  
     servo_1_free();//making servo free to rotate
     _delay_ms(300);

     velocity(170,200);
     back_mm(k);
     stop();
     _delay_ms(300);
	     
     velocity(190,240);
     right_degrees(100);
     _delay_ms(200);
     stop();
	    
     velocity(145,200);
     forward_mm(400);//for moving robot in x direction
     stop();
     _delay_ms(300);

     backward_mm_ext(225);
     _delay_ms(600);
     _delay_ms(1200);
     

     servo_1(180);
     _delay_ms(300);

     forward_mm_ext(290);
     stop();
     _delay_ms(100);
  
     velocity(170,200);
     back_mm(400);
     _delay_ms(300);
     stop();

     velocity(190,240);
     left_degrees(90);
     stop();
     _delay_ms(60);

     velocity(190,240);
     forward_mm(k);//for moving robot in y direction
     stop();
     _delay_ms(300);
      
          k=k-120;
	  i=i+1;//for 3 iteration
      }
	 	  
	    stop();
     
    }