Professional Documents
Culture Documents
Robotic Mechanism: We are using ESP8266 as main controller and L298N as a motor
driver to control geared motor.
Sensor Network: We are using various sensors like motion sensor, temperature sensor,
humidity sensor, gas sensor, metal detector and these values are sent to receiver using RF
technology.
HC-12 HC-12
#define MOTOR_A1_PIN 13
#define MOTOR_B1_PIN 12
#define PWM_MOTOR_1 3
#define MOTOR_A2_PIN 8
#define MOTOR_B2_PIN 7
#define PWM_MOTOR_2 5
int lr,x,y;
int bf, motor1_speed, motor2_speed;
int mode;
String input;
int boundLow;
int boundHigh;
const char delimiter = ',';
void setup() {
pinMode(MOTOR_A1_PIN, OUTPUT);
pinMode(MOTOR_B1_PIN, OUTPUT);
pinMode(PWM_MOTOR_1, OUTPUT);
pinMode(MOTOR_A2_PIN, OUTPUT);
pinMode(MOTOR_B2_PIN, OUTPUT);
pinMode(PWM_MOTOR_1, OUTPUT);
Serial.begin(9600);
HC12.begin(9600);
void loop() {
if(HC12.available())
{
input = HC12.readStringUntil('\n');
if (input.length() > 0)
{
Serial.println(input);
boundLow = input.indexOf(delimiter);
x = input.substring(0, boundLow).toInt();
mode = input.substring(boundHigh+1).toInt();
delay(10);
} } }
void forward()
{
motor1_speed=100;
motor2_speed=100;
analogWrite(PWM_MOTOR_1, motor1_speed);
analogWrite(PWM_MOTOR_2, motor2_speed);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
digitalWrite(MOTOR_A2_PIN, HIGH);
digitalWrite(MOTOR_B2_PIN, LOW);
Serial.println("Moving Forward");
}
void backward()
{
motor1_speed=100;
motor2_speed=100;
analogWrite(PWM_MOTOR_1, motor1_speed);
analogWrite(PWM_MOTOR_2, motor2_speed);
digitalWrite(MOTOR_A1_PIN, LOW);
digitalWrite(MOTOR_B1_PIN, HIGH);
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, HIGH);
Serial.println("Moving Forward");
}
void fforward()
{
motor1_speed=255;
motor2_speed=255;
analogWrite(PWM_MOTOR_1, motor1_speed);
analogWrite(PWM_MOTOR_2, motor2_speed);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
digitalWrite(MOTOR_A2_PIN, HIGH);
digitalWrite(MOTOR_B2_PIN, LOW);
Serial.println("Moving Forward");
}
void fbackward()
{
motor1_speed=255;
motor2_speed=255;
analogWrite(PWM_MOTOR_1, motor1_speed);
analogWrite(PWM_MOTOR_2, motor2_speed);
digitalWrite(MOTOR_A1_PIN, LOW);
digitalWrite(MOTOR_B1_PIN, HIGH);
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, HIGH);
Serial.println("Moving Backward");
}
void stop()
{
motor1_speed=0;
motor2_speed=0;
analogWrite(PWM_MOTOR_1, motor1_speed);
analogWrite(PWM_MOTOR_2, motor2_speed);
digitalWrite(MOTOR_A1_PIN, LOW);
digitalWrite(MOTOR_B1_PIN, LOW);
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, LOW);
Serial.println("Stop");
}
void ffrontright()
{
motor1_speed=255;
motor2_speed=50;
analogWrite(PWM_MOTOR_1, motor1_speed);
analogWrite(PWM_MOTOR_2, motor2_speed);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
digitalWrite(MOTOR_A2_PIN, HIGH);
digitalWrite(MOTOR_B2_PIN, HIGH);
Serial.println("Front Right");
}
void ffrontleft()
{
motor1_speed=50;
motor2_speed=255;
analogWrite(PWM_MOTOR_1, motor1_speed);
analogWrite(PWM_MOTOR_2, motor2_speed);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, HIGH);
digitalWrite(MOTOR_A2_PIN, HIGH);
digitalWrite(MOTOR_B2_PIN, LOW);
Serial.println("Front Left");
}
void frontright()
{
motor1_speed=150;
motor2_speed=50;
analogWrite(PWM_MOTOR_1, motor1_speed);
analogWrite(PWM_MOTOR_2, motor2_speed);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
digitalWrite(MOTOR_A2_PIN, HIGH);
digitalWrite(MOTOR_B2_PIN, HIGH);
Serial.println("Front Right");
}
void frontleft()
{
motor1_speed=50;
motor2_speed=150;
analogWrite(PWM_MOTOR_1, motor1_speed);
analogWrite(PWM_MOTOR_2, motor2_speed);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, HIGH);
digitalWrite(MOTOR_A2_PIN, HIGH);
digitalWrite(MOTOR_B2_PIN, LOW);
Serial.println("Front Left");
}
void left()
{
motor1_speed=100;
motor2_speed=100;
analogWrite(PWM_MOTOR_1, motor1_speed);
analogWrite(PWM_MOTOR_2, motor2_speed);
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, HIGH);
Serial.println("Moving Left");
}
void right()
{
motor1_speed=100;
motor2_speed=100;
analogWrite(PWM_MOTOR_1, motor1_speed);
analogWrite(PWM_MOTOR_2, motor2_speed);
digitalWrite(MOTOR_A1_PIN, LOW);
digitalWrite(MOTOR_B1_PIN, HIGH);
digitalWrite(MOTOR_A2_PIN, HIGH);
digitalWrite(MOTOR_B2_PIN, LOW);
Serial.println("Moving Right");
}
void low_speed()
{
if ((bf <= 100) && (lr > 100) && (lr < 700))
{
backward();
}
else if ((bf >= 700) && (lr > 100) && (lr < 700))
{
forward();
}
else if ((lr <= 100) && (bf > 100) && (bf < 700))
{
right();
}
else if ((lr >= 700) && (bf > 100) && (bf < 700))
{
left();
}
if ((bf <= 100) && (lr > 100) && (lr < 700))
{
fbackward();
}
else if ((bf >= 700) && (lr > 100) && (lr < 700))
{
fforward();
}
else if ((lr <= 100) && (bf > 100) && (bf < 700))
{
right();
}
else if ((lr >= 700) && (bf > 100) && (bf < 700))
{
left();
}
Mastering the domain of a system always gives the tester an edge over someone with limited
domain knowledge. Unlike black-box testing, where the tester only tests the application's user
interface; in grey-box testing, the tester has access to design documents and the database. Having
this knowledge, a tester can prepare better test data and test scenarios while making a test plan.
6.3 Test Cases
6.3.1 Test Cases for Hardware
No. Module Expected Result Actual Result Status
1. Forward control Robot Should move in Robot is moving in Success
Forward Direction. forward direction.
Chapter 8
Result
8.1 Outcomes and Results
Chapter 9
Conclusion
9.1 Conclusion
This type of robot can perform difficult and repetitive works for humans. It can have a very risky
job and such dangerous job could be done by using small spy robot. But it is useful to check and
look out the places where dangerous to the humans. Spy robot can also be used in searching
people who are in building destroyed by the earthquake. Because of the wireless camera is
installed in spy robots, it can be used remotely to enter and exit dangerous place that human
cannot. When the user controls by remote controller, the spy robot will move to desired
destination and spy images around the robot. The user can check and recommend from computer
with the wireless remote controller.