Arduino Uno Board
Sensor Shield
Servo Motor
DC Motors
L298N H-Bridge
Ultrasonic Sensor
Line Tracking Sensor
Jumper Wires
Lithium Battery
Battery Pack
Chassis
Wheels
//Setup for Servo Motor#include <Servo.h>Servo myservo;void setup() { Serial.begin(9600); myservo.attach(11); }void loop() { myservo.write(90); delay(500); myservo.write(0); delay(1000); myservo.write(180); delay(1000);}//Setup for Ultrasonic sensor#include <SR04.h>#define trig_pin 13#define echo_pin 12SR04 sr04 = SR04(echo_pin,trig_pin);int pos = 0;int leftDis = 0;int rightDis = 0;int forward = 0;void setup() { Serial.begin(9600); }void loop() { myservo.write(80); delay(500); forward = sr04.Distance(); Serial.println(forward); myservo.write(0); delay(1000); rightDis = sr04.Distance(); Serial.println(leftDis); delay(1000); myservo.write(180); delay(1000); leftDis = sr04.Distance(); Serial.println(rightDis); delay(1000); }//Setup for Wheel Motors#define enA 6#define in1 7#define in2 5#define enB 3#define in3 4#define in4 2void go() { analogWrite(enA, 175); analogWrite(enB, 175); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, HIGH); digitalWrite(in4, LOW);}void left() { analogWrite(enA, 150); analogWrite(enB, 150); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, HIGH);}void right() { analogWrite(enA, 150); analogWrite(enB, 150); digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, HIGH); digitalWrite(in4, LOW);}void stopp() { digitalWrite(enA, LOW); digitalWrite(enB, LOW);}void setup() { Serial.begin(9600); pinMode(enA, OUTPUT); pinMode(enB, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); }void loop() { go(); delay(1000); stopp(); delay(1000);}//Setup for Wheel Motors#define enA 6#define in1 7#define in2 5#define enB 3#define in3 4#define in4 2void go(int t) { analogWrite(enA, 175); analogWrite(enB, 175); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); delay(t); stopp(250);}void left(int t) { analogWrite(enA, 150); analogWrite(enB, 150); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); delay(t); stopp(250);}void right(int t) { analogWrite(enA, 150); analogWrite(enB, 150); digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); delay(t); stopp(250);}void stopp(int t) { digitalWrite(enA, LOW); digitalWrite(enB, LOW); delay(t);}void setup() { Serial.begin(9600); pinMode(enA, OUTPUT); pinMode(enB, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); }void loop() { go(1000); right(500); }//Ultrasonic Setup#include <SR04.h>#define echo_pin 12#define trig_pin 13SR04 sr04 = SR04(echo_pin,trig_pin);int distance = 0;int rightDis = 0;int leftDis = 0;//Setup for Servo Motor#include <Servo.h>Servo myservo;//Setup for Wheel Motors#define enA 6#define in1 7#define in2 5#define enB 3#define in3 4#define in4 2void go() { analogWrite(enA, 175); analogWrite(enB, 175); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, HIGH); digitalWrite(in4, LOW);}void left() { analogWrite(enA, 150); analogWrite(enB, 150); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, HIGH);}void right() { analogWrite(enA, 150); analogWrite(enB, 150); digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, HIGH); digitalWrite(in4, LOW);}void stopp() { digitalWrite(enA, LOW); digitalWrite(enB, LOW);}void setup() { Serial.begin(9600); myservo.attach(11); pinMode(enA, OUTPUT); pinMode(enB, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); }void loop() { myservo.write(90); distance = sr04.Distance(); if (distance < 50) { Serial.println("Stop"); myservo.write(0); delay(1000); rightDis = sr04.Distance(); Serial.print("Right: "); Serial.println(rightDis); else { Serial.println("Go"); } delay(500);}//Setup for Ultrasonic sensor#include <SR04.h>#define trig_pin 13#define echo_pin 12SR04 sr04 = SR04(echo_pin,trig_pin);//Setup for Servo Motor#include <Servo.h>Servo myservo;int leftDis = 0;int rightDis = 0;int forwardDis = 0;//Setup for Wheel Motors#define enA 6#define in1 7#define in2 5#define enB 3#define in3 4#define in4 2void go() { //Forward Movement analogWrite(enA, 175); analogWrite(enB, 175); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, HIGH); digitalWrite(in4, LOW);}void back() { //Reverse Movement analogWrite(enA, 175); analogWrite(enB, 175); digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, LOW); digitalWrite(in4, HIGH);}void left() { //Turning Left analogWrite(enA, 150); analogWrite(enB, 150); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, HIGH);}void right() { //Turning Right analogWrite(enA, 150); analogWrite(enB, 150); digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, HIGH); digitalWrite(in4, LOW);}void stopp() { //Stops robot digitalWrite(enA, LOW); digitalWrite(enB, LOW);}void setup() { Serial.begin(9600); myservo.attach(11); pinMode(enA, OUTPUT); pinMode(enB, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); }void loop() { myservo.write(80); delay(500); forwardDis = sr04.Distance(); Serial.println(forwardDis); if (forwardDis < 75) { //Object is in front of robot stopp(); //Stops robot movement delay(250); back(); //backs away from object slightly delay(500); stopp(); delay(1000); myservo.write(0); //Moves US Sensor to the right delay(1000); rightDis = sr04.Distance(); //Measures Distance Serial.println(leftDis); //Optional print to Serial Monitor delay(1000); myservo.write(180); //Moves US Sensor to the left delay(1000); leftDis = sr04.Distance(); //Measures Distance Serial.println(rightDis); //Optional print to Serial Monitor delay(1000); if(rightDis > leftDis){ //Path is clearest to the right right(); //turns robot to the right 90ish degrees delay(15); } else if(rightDis < leftDis) { //Path clearest to the left left(); //turns robot to the left 90ish degrees delay(15); } myservo.write(80); //Moves US Sensor back to the forward position delay(250); } else{ //While there is not objects in the way go(); //Moves robot forward } }unsigned char Bluetooth_val; //defining variable val#define Lpwm_pin 6 //adjusting speed #define Rpwm_pin 3 //adjusting speed //int pinLB=7; // defining pin2 left rearint pinLF=5; // defining pin4 left frontint pinRB=4; // defining pin7 right rearint pinRF=2; // defining pin8 right frontunsigned char Lpwm_val = 255;unsigned char Rpwm_val = 255;int Car_state=0;void M_Control_IO_config(void){ pinMode(pinLB,OUTPUT); // IN1 pinMode(pinLF,OUTPUT); // IN2 pinMode(pinRB,OUTPUT); // IN3 pinMode(pinRF,OUTPUT); // IN4 pinMode(Lpwm_pin,OUTPUT); // pin 6 (PWM) pinMode(Rpwm_pin,OUTPUT); // pin 3 (PWM) }void Set_Speed(unsigned char Left,unsigned char Right){ analogWrite(Lpwm_pin,Left); analogWrite(Rpwm_pin,Right);}void advance() // going forward { Set_Speed(200,200); digitalWrite(pinRB,HIGH); // making motor move towards right rear digitalWrite(pinRF,LOW); digitalWrite(pinLB,HIGH); // making motor move towards left rear digitalWrite(pinLF,LOW); Car_state = 1; }void turnR() //turning right(dual wheel) { Set_Speed(150,150); digitalWrite(pinRB,HIGH); //making motor move towards right rear digitalWrite(pinRF,LOW); digitalWrite(pinLB,LOW); digitalWrite(pinLF,HIGH); //making motor move towards left front Car_state = 4; }void turnL() //turning left(dual wheel) { Set_Speed(150,150); digitalWrite(pinRB,LOW); digitalWrite(pinRF,HIGH ); //making motor move towards right front digitalWrite(pinLB,HIGH); //making motor move towards left rear digitalWrite(pinLF,LOW); Car_state = 3; } void stopp() //stop { digitalWrite(pinRB,HIGH); digitalWrite(pinRF,HIGH); digitalWrite(pinLB,HIGH); digitalWrite(pinLF,HIGH); Car_state = 5; }void back() //back up { Set_Speed(200,200); digitalWrite(pinRB,LOW); //making motor move towards right rear digitalWrite(pinRF,HIGH); digitalWrite(pinLB,LOW); //making motor move towards left rear digitalWrite(pinLF,HIGH); Car_state = 2; } void setup() { M_Control_IO_config(); Set_Speed(Lpwm_val,Rpwm_val); Serial.begin(9600); //initialized serial port , using Bluetooth as serial port, setting baud at 9600 stopp(); }void loop() { if(Serial.available()) //to judge whether the serial port receives the data. { Bluetooth_val=Serial.read(); Serial.print(Bluetooth_val);//reading (Bluetooth) data of serial port,giving the value of val; switch(Bluetooth_val) { case 'U':advance(); //UP break; case 'D': back(); //back break; case 'L':turnL(); //Left break; case 'R':turnR(); //Right break; case 'S':stopp(); //stop break; case 'I':stopp(); //stop break; } } }