Project tutorial
Human Detection Robotics System Using Arduino Uno

Human Detection Robotics System Using Arduino Uno © CC BY-NC

This System design a mobile rescue robotic Vehicle system based on Arduino to help the people on time which are trapped in natural calamity

  • 469 views
  • 0 comments
  • 3 respects

Components and supplies

Necessary tools and machines

26w6260 40
Multitool, Screwdriver
09507 01
Soldering iron (generic)
66y6421 40
Solder Flux, Soldering
4966285
Solder Wire, Lead Free
Hy gluegun
Hot glue gun (generic)

Apps and online services

Ide web
Arduino IDE
10
Microsoft Windows 10
Control Center Android App

About this project

This System design a mobile rescue robotic Vehicle system based on Arduino to help the people on time which are trapped in natural calamity like disaster, earthquake, floods etc.It gives timely & accurately reflect dynamic situation of human in disaster region like in the underground regions to control room, so that rescue team of Experts & doctors can be sending to the victim’s location for primary treatment and can be sent to the safe place or hospital. The entire process takes place within a few seconds as the system is controlled by a Arduino unit. PIR sensors are passive infrared sensors which detects movement of people with the help of changes in the infrared (heat) levels emitted by surrounding objects. The human body emits thermal radiation at a wavelength of about 10 microns. It is received and manipulated by the PIR sensor to detect human beings. It operates at 5V DC. The motion of the human being can be detected by checking for a sudden change in the surrounding IR patterns. Obstacle sensor detects the obstacle and sends the analog signals to the Arduino. Arduino is programmed to guide the robot automatically depending on the obstacle detected and to send the human being information to remote control place through the Bluetooth Technology. The Data is received in the Base Station(Control Center). Analyzing the data the Rescue team can take necessary steps to rescue the trapped human Beings.

Code

Human Detection.inoArduino
#include <NewPing.h> // 
#include <AFMotor.h> // You can download the code library below
#include <Servo.h> //
 
// Ultranic Pin Configuration
 
#define TRIG_PIN A0
#define ECHO_PIN A1
 
#define MAX_DISTANCE 400
#define MAX_SPEED 255
#define MAX_SPEED_OFFSET -8
 
#define COLL_DIST 20
#define TURN_DIST COLL_DIST+10
#define ACT_TIME 250
 int calibrationTime = 30;        

//the time when the sensor outputs a low impulse
long unsigned int lowIn;         

//the amount of milliseconds the sensor has to be low 
//before we assume all motion has stopped
long unsigned int pause = 5000;  

boolean lockLow = true;
boolean takeLowTime;  

int pirPin = A3;    //the digital pin connected to the PIR sensor's output
int ledPin = A2;
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE); 
 
AF_DCMotor motorR(1, MOTOR12_1KHZ); // Set motor #1, 1kHz PWM
AF_DCMotor motorL(4, MOTOR12_1KHZ); // Set motor #2, 1kHz PWM
 
Servo myservo;  // Set servo object to control a servo 
String motorSet = "";
 
int curDist = 0, pos, speedSet = 0;
//int pos;
//int speedSet = 0;
 
void setup() {
  Serial.begin(9600);
  pinMode(pirPin, INPUT);
  pinMode(ledPin, OUTPUT);
  digitalWrite(pirPin, LOW);

  //give the sensor some time to calibrate
  Serial.print("calibrating sensor ");
    for(int i = 0; i < calibrationTime; i++){
      Serial.print(".");
      delay(1000);
      }
    Serial.println(" done");
    Serial.println("SENSOR ACTIVE");
    delay(50);
  myservo.attach(9);  // Set to attach the servo on pin 9 
  myservo.write(90);  // Write 90 to face servo forward
  delay(2000);
 
  motorSet = "FORWARD";
  moveForward();
  
}
 
void loop() {
  
  checkPath();
  if(digitalRead(pirPin) == HIGH){
       digitalWrite(ledPin, HIGH);   //the led visualizes the sensors output pin state
       if(lockLow){  
         //makes sure we wait for a transition to LOW before any further output is made:
         lockLow = false;            
         Serial.println("---");
         Serial.print("motion detected at ");
         Serial.print(millis()/1000);
         Serial.println(" sec"); 
         delay(50);
         }         
         takeLowTime = true;
       }

     if(digitalRead(pirPin) == LOW){       
       digitalWrite(ledPin, LOW);  //the led visualizes the sensors output pin state

       if(takeLowTime){
        lowIn = millis();          //save the time of the transition from high to LOW
        takeLowTime = false;       //make sure this is only done at the start of a LOW phase
        }
       //if the sensor is low for more than the given pause, 
       //we assume that no more motion is going to happen
       if(!lockLow && millis() - lowIn > pause){  
           //makes sure this block of code is only executed again after 
           //a new motion sequence has been detected
           lockLow = true;                        
           Serial.print("motion ended at ");      //output
           Serial.print((millis() - pause)/1000);
           Serial.println(" sec");
           delay(50);
           }
       }
  
}
 
void checkPath() {
  
  int curLeft = 0; int curRight = 0; int curFront = 0;
  curDist = 0;
  
  checkForward();
  myservo.write(135);
  delay(100);
  for (pos = 135; pos >= 45; pos -= 45) {
    myservo.write(pos);
    delay(170);
    curDist = readPing();
    
    if (curDist < COLL_DIST) { checkCourse(); break; }
    if (curDist < TURN_DIST) { changePath(); } 
  
  }    
}  
 
int readPing() {
  int cm = 0;
  while (cm < 2) {int uS = sonar.ping(); cm = uS/US_ROUNDTRIP_CM;}
  return cm;
}
 
void checkForward() { 
  if (motorSet=="FORWARD") { motorR.run(FORWARD); motorL.run(FORWARD); } 
}    
void changePath() {
 
  if (pos < 90) { veerLeft(); } 
  if (pos > 90) { veerRight(); }
  
}
 
void veerRight() {
  motorR.run(BACKWARD);  motorL.run(FORWARD); 
  delay(ACT_TIME); 
  motorR.run(FORWARD);   motorL.run(FORWARD);
  motorSet = "FORWARD";
}
 
void veerLeft() {
  motorL.run(BACKWARD);  motorR.run(FORWARD); 
  delay(ACT_TIME); 
  motorL.run(FORWARD);   motorR.run(FORWARD);
  motorSet = "FORWARD";
}
 
void checkCourse() {
  moveBackward();
  delay(ACT_TIME);
  moveStop();
  setCourse();
}
 
void setCourse() {
  if (pos < 90) { turnRight(); } 
  if (pos > 90) { turnLeft(); }
}
 
void moveBackward() {
  motorSet = "BACKWARD";
  
  motorR.run(BACKWARD); // Turn right motor backward    
  motorL.run(BACKWARD);  // Turn left motor backward
  
  for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2)
  {
    motorL.setSpeed(speedSet);
    motorR.setSpeed(speedSet+MAX_SPEED_OFFSET);
    delay(5);
  }
}  
 
void moveForward() {
  motorSet = "FORWARD";
  checkForward();
  for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2)  {
    motorL.setSpeed(speedSet);
    motorR.setSpeed(speedSet+MAX_SPEED_OFFSET);
    delay(4);
  }
}
 
void moveStop() { motorR.run(RELEASE); motorL.run(RELEASE); }
 
void turnRight() {
  motorSet = "RIGHT";
  motorR.run(FORWARD);      // Turn right motor forward
  motorL.run(BACKWARD);     // Turn left motor backward
  delay(ACT_TIME);
  motorSet = "FORWARD";
  checkForward();
}  
 
void turnLeft() {
  motorSet = "LEFT";
  motorR.run(BACKWARD);     // Turn right motor backward
  motorL.run(FORWARD);      // Turn left motor forward
  delay(ACT_TIME);
  motorSet = "FORWARD";
  checkForward();
}  

Schematics

BLOCK DIAGRAM -I
This Block Diagram shows the interfacing between the Sensors and the Arduino Board
Block diagram 1 ysdurkafrr
Connection Diagram between the Sensors and the Arduino board
This Circuit Diagram shows the connection configurations between various Sensors with the Arduino Uno Board
Circuit diagram 2 a4dyyplc7j
Flow Chart Of the System
This Flow Chart shows how the system Works
Flow chart 8jnftc3po5

Comments

Similar projects you might like

Human Following Bot

Project tutorial by mohammadsohail0008

  • 734 views
  • 0 comments
  • 5 respects

Earth_Analyzer

Project tutorial by gowthamkishoreindukuri

  • 7,317 views
  • 10 comments
  • 39 respects

A fall detection system based on Arduino, Windows and Azure

Project tutorial by Jiong Shi

  • 34,042 views
  • 7 comments
  • 60 respects

Arduino Uno Debugging

Project tutorial by arduinocc

  • 2,930 views
  • 0 comments
  • 5 respects

Home Automation with Arduino Uno and SmartEdge Agile

Project tutorial by AYUSHMAN SAHA

  • 2,643 views
  • 0 comments
  • 4 respects

Forest Fire Monitoring & Detection System (with SMS Alerts)

Project tutorial by Ashad Ahmed

  • 7,646 views
  • 7 comments
  • 21 respects
Add projectSign up / Login