The Terminator

The Terminator

A low-cost disinfectant robot that is easy to operate, help control the increase of coronavirus cases and prevent harm to others.

  • 1,048 views
  • 0 comments
  • 3 respects

Components and supplies

Necessary tools and machines

About this project

Introduction:

The idea of the disinfection robot comes from the concept of the spray gates or known as the disinfection gates. Many countries use the spray gates nowadays believing it will prevent the spread of coronavirus, by sanitizing people before entering any place.

Eventually, the world health organization (WHO) said: “Spraying alcohol or chlorine all over your body will not kill viruses that have already entered your body”; therefore, that will not help control the cases of coronavirus. Besides, WHO also mentioned that sprinkling these substances can be dangerous to clothing or the eyes and mouth but are beneficial for disinfecting surfaces; consequently, sanitizing surfaces are important than sanitizing people as everyone touches the surface. Therefore, sanitizing the objects around the person will destroy any virus on it, control the spread of the virus, and protect people.

Therefore, there are several ways to sanitize the surrounding; for example, getting group of man to sanitize by the sanitize gun. However, this might be an expensive process, as sanitizing must be an everyday process for the case of coronavirus and it can take time to sanitize the whole place if it is a mall or university or other huge places. Accordingly, the disinfection robot is programmed to sanitize everywhere automatically; when a person switch the button on, it moves around and rotates as it consists or sensors that manages not to hit anything. In addition, the disinfectant robot can be used in several places; for example, malls, cafes, schools, universities, hospitals, and it can also be used at home.

Materials

To build the robot, some materials and fabrication methods are needed. The materials have been selected for the purpose of achieving the design requirement. We chose affordable materials to meet our prototype design requirement (Affordability).

  • 4P3 Power 2200mAh 12V Lipo Pack

Quantity: 1

Source: Electronic store

Price: 950 EGP

  • LiPo Battery Charger 3s

Quantity: 1

Source: Electronic store

Price: 350 EGP

  • Micro Metal Gearmotor HP 6V 298:1

Quantity: 2

Source: Electronic store

Price: 190 EGP

  • Micro Metal Gearmotor Bracket Pair

Quantity: 1

Source: Electronic store

Price: 50 EGP

  • Wheel 42×19mm Pair

Quantity: 1

Source: Electronic store

Price: 30 EGP

  • Arduino Nano Board

Quantity: 1

Source: electronic store

Price: 110 EGP

  • Breadboard

Quantity: 1

Source: Electronic store

Price: 30 EGP

  • HL-52S Relay Module

Quantity: 1

Source: Electronic store

Price: 40 EGP

  • H-bridge L298 Dual Motor Driver

Quantity: 1

Source: Electronic store

price: 65 EGP

  • Sharp Distance Sensor GP2Y0A41SK0F (4 - 30cm)

Quantity: 3

Source: Electronic store

Price: 100 EGP

  • Motor Pump

Quantity: 1

Source: Electronic store

Price: 150 EGP

  • Water Sensor

Quantity: 1

Source: Electronic store

Price: 35 EGP

  • Heat shrink

Source: Electronic store

Price: 15 EGP

  • LEDs

Quantity: 2

Source: Electronic store

Price: 5 EGP

  • On/Off Switch

Quantity: 1

Source: Electronic store

Price: 2.50 EGP

  • M3 bolts with (3mm diameter)

Quantity: 20

Source: Electronic store

Price: 10 EGP

  • M3 nuts

Quantity: 20

Source: Electronic store

Price: 10 EGP

  • #8-32 screw

Quantity: 2

Source: Electronic store

Price: 2 EGP

total cost = 2, 544.5 EGP

Material Selection:

PLA:

This thermoplastic type is affordable and the most important reason to choose it, that it does not corrode from cleaning disinfectants such as chlorine and alcohol.

Some characteristics why we choose this type:

  • It is a type of thermoplastic

If any mistake happened, reheat the material and it can be reshaped.

  • Easy to print

As temperatures are flexible, warping is minimal, and is also known for its print quality.

  • Environmentally-friendly plastic

Having good biodegradability, which biodegrade within water in 48 months, and 50 days in industrial composers.

The design:

Specification

o Large sterilizer tank 0.5 L

o Powerful motor to help robot to move on any surface

o Large battery 2200 mAh to keep it running for 5 hours

o Automatic shutoff when the sterilizer tank is empty

o Sterilizer sprayer cover the whole area under the robot

o 3 IR sensor to move autonomously indoor

Manufacturing Process

® The design was done so that all the parts could be 3d printed.

® The robot consists of 2 parts.

® Printing settings:

0.32 mm layer height

1.2 mm shell thickness

30% fill density

190°C printing temperature

Support type everywhere

Retraction: 50 mm/s 0.7mm

Printing Speed 60mm/s

Assembly:

The cad design is integrated which help to assembly the whole robot is just 30 minute.

Circuit assembly

The circuit is assembled as shown below using a breadboard or a DIY craft PCB

Arduino:

  • Take order from sharp distance sensor
  • Give order to H bridge

Pump

  • Take order from Arduino indirectly through the relay

Water sensor

  • Take order from tank
  • Give order to Arduino

Sharp distance sensor

  • Take order from surrounding
  • Give order to Arduino

H bridge

  • Take order from Arduino
  • Give order to motor

On/off switch

  • Take order from a person

How it works?

  • Movement

1. When the sharp IR sensor which is in front and on the sides senses anything near, it sends orders to the Arduino to move left or right.

2. Arduino then sends the H bridge orders.

3. H Bridge then send it to the motor.

4. It then changes the direction.

  • Disinfectant solution finishes

1. Water sensor send orders to the Arduino

2. When the sensor signal in lower than threshold value that means the fluid level inside the tank is low.

3. The relay switch the pump off.

4. Pump will stop spraying.

  • Pump is constantly spraying the disinfectant when the robot is moving.

Arduino Code

//Distance Analog Sensors (Sharp)
const int SD1 = 2; //left sensor
const int SD2 = 1; //right sensor
const int SD3 = 4; //front side sensor
const int SD4 = 3; //front side sensor
// fluid sensor
const int tank_level = 5; //fluid sensor
// Define motor pins
#define in1 6
#define in2 7
#define in3 4
#define in4 5
const int pump = 3; // Pump relay pin
int green_led = 12; // geen led indicator
int red_led = 9; // red led indicator
void setup() {
// define motor pins as OUTPUT
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
// define led indicator as output
pinMode(green_led, OUTPUT);
pinMode(red_led, OUTPUT);
// define sharp ir sensor as input
pinMode(SD1, INPUT);
pinMode(SD2, INPUT);
pinMode(SD3, INPUT);
pinMode(SD4, INPUT);
// define pump as an output
pinMode(pump, OUTPUT);
// start serial comunication to print sensor values
Serial.begin(9600);
}
// turn the robot left
void left() {
digitalWrite ( in1 , HIGH);
digitalWrite ( in2 , LOW);
digitalWrite ( in3 , HIGH);
digitalWrite ( in4 , LOW);
digitalWrite ( red_led , HIGH);
digitalWrite ( green_led , LOW);
}
// go back
void back() {
digitalWrite ( in1 , HIGH);
digitalWrite ( in2 , LOW);
digitalWrite ( in3 , HIGH);
digitalWrite ( in4 , LOW);
digitalWrite ( red_led , LOW);
digitalWrite ( green_led , LOW);
}
// go forward
void forward() {
digitalWrite ( in1 , LOW);
digitalWrite ( in2 , HIGH);
digitalWrite ( in3 , HIGH);
digitalWrite ( in4 , LOW);
digitalWrite ( green_led , HIGH);
digitalWrite ( red_led , LOW);
}
// turn right
void right() {
digitalWrite ( in1 , LOW);
digitalWrite ( in2 , HIGH);
digitalWrite ( in3 , LOW);
digitalWrite ( in4 , HIGH);
digitalWrite ( red_led , HIGH);
digitalWrite ( green_led , LOW);
}
// stop the robot
void STOP() {
digitalWrite ( in1 , LOW);
digitalWrite ( in2 , LOW);
digitalWrite ( in3 , LOW);
digitalWrite ( in4 , LOW);
}
void loop() {
// start to read data from ir sensor
float volts_front_1 = analogRead(SD3) * 0.0048828125; // value from sensor * (5/1024)
int dist_front_1 = 13 * pow(volts_front_1, -1); // worked out from datasheet graph
//**********************
float volts_front_2 = analogRead(SD4) * 0.0048828125; // value from sensor * (5/1024)
int dist_front_2 = 13 * pow(volts_front_2, -1); // worked out from datasheet graph
//**********************
float volts_right = analogRead(SD2) * 0.0048828125; // value from sensor * (5/1024)
int dist_right = 13 * pow(volts_right , -1); // worked out from datasheet graph
//**********************
float volts_left = analogRead(SD1) * 0.0048828125; // value from sensor * (5/1024)
int dist_left = 13 * pow(volts_left , -1); // worked out from datasheet graph
Serial.println(dist_front_2);
//Serial.println(sdSHARP(SD2));
if (dist_front_1 && dist_front_2 > 8) { // go forward
forward();
// turn the pump on
digitalWrite(pump, HIGH);
Serial.println ("forward");
}
if ( dist_front_2 < 5) {
right();
// turn the pump on
digitalWrite(pump, HIGH);
Serial.println ("rigth ");
}
if ( dist_front_1 < 5) {
left();
// turn the pump on
digitalWrite(pump, HIGH);
Serial.println ("left");
}
else {
}
//delay(100);
}

Conclusion

Robot is very important invention that cleanses the place without harming any person. It does not consume time and it do not need a specialist to operate it.

This robot can be in any size, but the size we did allows us to move it anywhere and it can be carried around. In addition, it is low-cost invention that allows anyone to have it; even at home.

References

Dejan. (2018, August 4). Control High Voltage Devices - Arduino Relay Tutorial. Retrieved from https://howtomechatronics.com/tutorials/arduino/control-high-voltage-devices-arduino-relaytutorial/.

Desk, W. (2020, April 16). Coronavirus: Are disinfectant walk-through gates effective? Retrieved July 15, 2020, from https://www.thenews.com.pk/latest/645289-can-disinfectant-walk-through-gates-help-halt-coronavirus.

February, D. (2019, February 8). Arduino DC Motor Control Tutorial - L298N: PWM: H-Bridge. Retrieved from https://howtomechatronics.com/tutorials/arduino/arduino-dc-motor-controltutorial-l298n-pwm-h-bridge/.

Green, J. (2019, April 9). Arduino and MPU6050 Accelerometer and Gyroscope Tutorial. Retrieved from https://howtomechatronics.com/tutorials/arduino/arduino-and-mpu6050-accelerometer-andgyroscope-tutorial/.

Junaidi, I. (2020, April 09). More walk-through gates could help prevent spread of coronavirus: Experts. Retrieved July 15, 2020, from https://www.dawn.com/news/1547605/more-walk-through-gates-could-help-prevent-spread-of-coronavirus-experts.

Code

Arduino codeArduino
all explanation is in the story
//Distance Analog Sensors (Sharp)
const int SD1 = 2; //left  sensor
const int SD2 = 1; //right  sensor
const int SD3 = 4; //front side sensor
const int SD4 = 3; //front side sensor

// fluid sensor
const int tank_level = 5; //fluid sensor

// Define motor pins
#define in1 6
#define in2 7
#define in3 4
#define in4 5


const int pump =  3;      // Pump relay pin
int green_led = 12;   // geen led indicator
int red_led = 9;     // red led indicator



void setup() {

  // define motor pins as OUTPUT
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);

  // define led indicator as output
  pinMode(green_led, OUTPUT);
  pinMode(red_led, OUTPUT);

  // define sharp ir sensor as input
  pinMode(SD1, INPUT);
  pinMode(SD2, INPUT);
  pinMode(SD3, INPUT);
  pinMode(SD4, INPUT);

  // define pump as an output
  pinMode(pump, OUTPUT);

  // start serial comunication to print sensor values
  Serial.begin(9600);


}

// turn the robot left
void left() {
  digitalWrite ( in1 , HIGH);
  digitalWrite ( in2 , LOW);
  digitalWrite ( in3 , HIGH);
  digitalWrite ( in4 , LOW);
  digitalWrite ( red_led , HIGH);
  digitalWrite ( green_led , LOW);

}
// go back
void back() {
  digitalWrite ( in1 , HIGH);
  digitalWrite ( in2 , LOW);
  digitalWrite ( in3 , HIGH);
  digitalWrite ( in4 , LOW);
  digitalWrite ( red_led , LOW);
  digitalWrite ( green_led , LOW);
}

// go forward
void forward() {
  digitalWrite ( in1 , LOW);
  digitalWrite ( in2 , HIGH);
  digitalWrite ( in3 , HIGH);
  digitalWrite ( in4 , LOW);
  digitalWrite ( green_led , HIGH);
  digitalWrite ( red_led , LOW);

}
// turn right
void right() {
  digitalWrite ( in1 , LOW);
  digitalWrite ( in2 , HIGH);
  digitalWrite ( in3 , LOW);
  digitalWrite ( in4 , HIGH);
  digitalWrite ( red_led , HIGH);
  digitalWrite ( green_led , LOW);
}
// stop the robot
void STOP() {
  digitalWrite ( in1 , LOW);
  digitalWrite ( in2 , LOW);
  digitalWrite ( in3 , LOW);
  digitalWrite ( in4 , LOW);
}


void loop() {
  // start to read data  from ir sensor
  float volts_front_1 = analogRead(SD3) * 0.0048828125; // value from sensor * (5/1024)
  int dist_front_1 = 13 * pow(volts_front_1, -1); // worked out from datasheet graph
  //**********************
  float volts_front_2 = analogRead(SD4) * 0.0048828125; // value from sensor * (5/1024)
  int dist_front_2 = 13 * pow(volts_front_2, -1); // worked out from datasheet graph
  //**********************
  float volts_right = analogRead(SD2) * 0.0048828125; // value from sensor * (5/1024)
  int dist_right = 13 * pow(volts_right , -1); // worked out from datasheet graph
  //**********************
  float volts_left = analogRead(SD1) * 0.0048828125; // value from sensor * (5/1024)
  int dist_left = 13 * pow(volts_left , -1); // worked out from datasheet graph



  Serial.println(dist_front_2);
  //Serial.println(sdSHARP(SD2));
  if (dist_front_1 && dist_front_2 > 8) {  // go forward
    forward();
    // turn the pump on
    digitalWrite(pump, HIGH);

    Serial.println ("forward");
  }

  if ( dist_front_2 < 5) {
    right();
    // turn the pump on
    digitalWrite(pump, HIGH);

    Serial.println ("rigth ");
  }
  if ( dist_front_1 < 5) {
    left();
    // turn the pump on
    digitalWrite(pump, HIGH);

    Serial.println ("left");
  }

  else {

  }
  //delay(100);

}

Custom parts and enclosures

cad_2_Swc5jWemuF.jpeg
Cad 2 swc5jwemuf
cad_3_RSl7hcR3lb.jpeg
Cad 3 rsl7hcr3lb

Schematics

circuit assembly
explanation is in the story
Assembly tnz5welmww

Comments

Similar projects you might like

Terminator Glasses

Project tutorial by Michael Darby - 314Reactor

  • 3,323 views
  • 1 comment
  • 11 respects

Terminator HK Tank

Project tutorial by Michael Darby - 314Reactor

  • 3,030 views
  • 3 comments
  • 12 respects

A DIY Tangible Coding Robot

Project tutorial by Tart Robotics

  • 2,518 views
  • 1 comment
  • 10 respects

Line Follower Robot V4

by drakerdg

  • 3,495 views
  • 1 comment
  • 7 respects

Message Box Influence for Non-Disabled

Project in progress by 5 developers

  • 2,327 views
  • 0 comments
  • 8 respects
Add projectSign up / Login