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++; }
int main() { init_devices(); while(1){ forward_mm(50); back_mm(50); left_degrees(90); right_degrees(90); } return 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); } }
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); } }
//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'; } } } }
//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 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(); }
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(); } } }
void position(int armNo, int side) { if (ct == ot) { if (((ct == 0 || ct == 1) && dir == 0) || ((ct == 2 || ct == 3) && dir == 2)) { if (armNo != side) turn(); } else if (((ct == 0 || ct == 1) && dir == 2) || ((ct == 2 || ct == 3) && dir == 0)) { if (armNo == side) turn(); } else if (((ct == 0 || ct == 1) && dir == 1) || ((ct == 2 || ct == 3) && dir == 3)) { if (armNo != side) turnRight(); else turnLeft(); } else if (((ct == 0 || ct == 1) && dir == 3) || ((ct == 2 || ct == 3) && dir == 1)) if (armNo == side) turnRight(); else turnLeft(); if (flag == 1 && (dir == 0 || dir == 2)) { back_mm(30); flag = 0; } } else { if (dir == 1 || dir == 3) if (ct == 0 || ct == 3) turnRight(); else turnLeft(); if (dir == 0 || dir == 2) { if ((dir == 0 && (ct == 0 || ct == 1)) || (dir == 2 && (ct == 2 || ct == 3))) { if (ot != 4 && ot != 5) { turnLeft(); front(); } if (armNo == side) { front(); } else { front(); turn(); } } else { if (ot != 4 && ot != 5) { turnLeft(); front(); } if (armNo == side) { turn(); front(); } else { turn(); front(); turn(); } } } ot = ct; } }