KEMBAR78
CODING IN ARDUINO | DOCX
CODING IN ARDUINO:
The open-source Arduino Programming (IDE) makes it simple to compose code and transfer it
to the board. It keeps running on Windows, Macintosh OS X, and Linux. Nature is composed in
Java and in light of Handling and other open-source programming.
For auto mode:
void AutoMode()
{
if(ResetCheck == 0)
{
if(PIRValue == 1)
{
radio.stopListening();
unsigned long time = 1;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
MotorsStop();
while(1)
{
PIRSensor();
if ( radio.available() )
{
unsigned long data = 0;
radio.read( &data, sizeof(unsigned long) );
Serial.println(data);
if(data == 9){direc = 6;}
}
if(direc == 6)
{
ResetCheck = 1;
direc = 0;
radio.stopListening();
unsigned long time = 0;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
break;
}
if(PIRValue == 0){break;}
}
}
if(PIRValue == 0)
{
//Serial.println("YES");
radio.stopListening();
unsigned long time = 0;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
}
if(FrontSensor > 50 ){ MotorsForward(); }
if(FrontSensor < 50)
{
MotorsStop();
delay(1000);
if(((RightSensor > 30) && (LeftSensor > 30)) && (TurnCheck == 0))
{
MotorsLeft();
delay(3500);
MotorsStop();
delay(1000);
//MotorsForward();
TurnCheck = 1;
}
if((RightSensor < 30) && (LeftSensor < 30))
{
radio.stopListening();
unsigned long time = 1;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
MotorsStop();
StopCheck = 1;
}
if(StopCheck == 0)
{
if((RightSensor < 30) && (TurnCheck == 0))
{
MotorsLeft();
delay(3500);
MotorsStop();
delay(1000);
//MotorsForward();
TurnCheck = 1;
}
if((LeftSensor < 30) && (TurnCheck == 0))
{
MotorsRight();
delay(3500);
MotorsStop();
delay(1000);
//MotorsForward();
TurnCheck = 1;
}
}
StopCheck = 0;
TurnCheck = 0;
}
}
For Manual Mode:-
void ManualMode()
{
if(direc == 1){MotorsForward();}
if(direc == 2){MotorsBackward();}
if(direc == 3){MotorsLeft();}
if(direc == 4){MotorsRight();}
if(direc == 5){MotorsStop();}
if(PIRValue == 1)
{
radio.stopListening();
unsigned long time = 1;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
MotorsStop();
while(1)
{
PIRSensor();
if(PIRValue == 0){break;}
}
}
if(PIRValue == 0)
{
//Serial.println("YES");
radio.stopListening();
unsigned long time = 0;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
}
Human Detection Using PIR And Sonar:-
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
RF24 radio(9,10);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
#define trigPin1 4
#define echoPin1 6
#define trigPin2 7
#define echoPin2 8
#define trigPin3 A4
#define echoPin3 A5
#define pirPin 2
#define motorR1 A0
#define motorR2 A1
#define motorL1 A3
#define motorL2 A2
#define PwmLeft 3
#define PwmRight 5
int calibrationTime = 30;
long unsigned int lowIn;
long unsigned int pause = 5000;
boolean lockLow = true;
boolean takeLowTime;
int PIRValue = 0;
long duration, distance, RightSensor,FrontSensor,LeftSensor;
int TurnCheck = 0;
int mode = 0;
int direc = 0;
int StopCheck = 0;
int ResetCheck = 0;
void setup()
{
Serial.begin(57600);
radio.begin();
radio.setRetries(15,15);
radio.openReadingPipe(1,pipes[1]);
radio.startListening();
radio.printDetails();
radio.openWritingPipe(pipes[0]);
radio.openReadingPipe(1,pipes[1]);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin3, INPUT);
pinMode(pirPin, INPUT);
digitalWrite(pirPin, LOW);
pinMode(motorR1, OUTPUT);
pinMode(motorR2, OUTPUT);
pinMode(motorL1, OUTPUT);
pinMode(motorL2, OUTPUT);
pinMode(PwmLeft, OUTPUT);
pinMode(PwmRight, OUTPUT);
analogWrite(PwmLeft, 0);
analogWrite(PwmRight, 0);
delay(1000);
}
void loop() {
SonarSensor(trigPin1, echoPin1);
LeftSensor = distance;
SonarSensor(trigPin2, echoPin2);
FrontSensor = distance;
SonarSensor(trigPin3, echoPin3);
RightSensor = distance;
PIRSensor();
if(PIRValue == 0){ResetCheck = 0;}
//radio.startListening();
if ( radio.available() )
{
unsigned long data = 0;
radio.read( &data, sizeof(unsigned long) );
Serial.println(data);
if(data == 2){mode = 1;}
if(data == 3){mode = 2;}
if(data == 4){direc = 1;}
if(data == 5){direc = 2;}
if(data == 6){direc = 3;}
if(data == 7){direc = 4;}
if(data == 8){direc = 5;}
// radio.stopListening();
}
if(mode == 1)
{
AutoMode();
}
if(mode == 2)
{
ManualMode();
}
}
PIR Sensor:-
void PIRSensor()
{
if(digitalRead(pirPin) == HIGH)
{
if(lockLow)
{
PIRValue = 1;
lockLow = false;
Serial.println("Motion detected.");
delay(50);
}
takeLowTime = true;
}
if(digitalRead(pirPin) == LOW)
{
if(takeLowTime){lowIn = millis();takeLowTime = false;}
if(!lockLow && millis() - lowIn > pause)
{
PIRValue = 0;
lockLow = true;
Serial.println("Motion ended.");
delay(50);
}
}
}
Sonar Sensor:-
void SonarSensor(int trigPin,int echoPin)
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
delay(100);
}
Motors Routine:-
void MotorsBackward()
{
digitalWrite(motorL1, HIGH);
digitalWrite(motorL2, LOW);
digitalWrite(motorR1, HIGH);
digitalWrite(motorR2, LOW);
}
void MotorsForward()
{
digitalWrite(motorL1, LOW);
digitalWrite(motorL2, HIGH);
digitalWrite(motorR1, LOW);
digitalWrite(motorR2, HIGH);
}
void MotorsStop()
{
digitalWrite(motorL1, HIGH);
digitalWrite(motorL2, HIGH);
digitalWrite(motorR1, HIGH);
digitalWrite(motorR2, HIGH);
}
void MotorsRight()
{
digitalWrite(motorR1, HIGH);
digitalWrite(motorR2, HIGH);
digitalWrite(motorL1, LOW);
digitalWrite(motorL2, HIGH);
}
void MotorsLeft()
{
digitalWrite(motorR1, LOW);
digitalWrite(motorR2, HIGH);
digitalWrite(motorL1, HIGH);
digitalWrite(motorL2, HIGH);
}
Human Detection Using Sonar and PIR :-
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int buzzer = 8;
RF24 radio(9,10);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
typedef enum { role_ping_out = 1, role_pong_back } role_e;
const char* role_friendly_name[] = { "invalid", "Ping out", "Pong back"};
role_e role = role_pong_back;
void setup(void)
{
Serial.begin(9600);
pinMode(buzzer,OUTPUT);
digitalWrite(buzzer,HIGH);
radio.begin();
radio.setRetries(15,15);
radio.openReadingPipe(1,pipes[1]);
radio.startListening();
radio.printDetails();
radio.openWritingPipe(pipes[1]);
radio.openReadingPipe(1,pipes[0]);
}
void loop(void)
{
if ( radio.available() )
{
unsigned long data = 0;
radio.read( &data, sizeof(unsigned long) );
Serial.println(data);
if(data == 1)
{digitalWrite(buzzer,LOW);
}
if(data == 0)
{digitalWrite(buzzer,HIGH);
}
}
if(Serial.available())
{
char sdata = Serial.read();
if(sdata == 'a')
{
radio.stopListening();
unsigned long time = 2;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'm')
{
radio.stopListening();
unsigned long time = 3;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'f')
{
radio.stopListening();
unsigned long time = 4;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'b')
{
radio.stopListening();
unsigned long time = 5;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'l')
{
radio.stopListening();
unsigned long time = 6;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'r')
{
radio.stopListening();
unsigned long time = 7;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 's')
{
radio.stopListening();
unsigned long time = 8;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'R')
{
radio.stopListening();
unsigned long time = 9;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
}
}

CODING IN ARDUINO

  • 1.
    CODING IN ARDUINO: Theopen-source Arduino Programming (IDE) makes it simple to compose code and transfer it to the board. It keeps running on Windows, Macintosh OS X, and Linux. Nature is composed in Java and in light of Handling and other open-source programming. For auto mode: void AutoMode() { if(ResetCheck == 0) { if(PIRValue == 1) { radio.stopListening(); unsigned long time = 1; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); MotorsStop(); while(1) { PIRSensor(); if ( radio.available() ) { unsigned long data = 0; radio.read( &data, sizeof(unsigned long) ); Serial.println(data);
  • 2.
    if(data == 9){direc= 6;} } if(direc == 6) { ResetCheck = 1; direc = 0; radio.stopListening(); unsigned long time = 0; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); break; } if(PIRValue == 0){break;} } } if(PIRValue == 0) { //Serial.println("YES"); radio.stopListening(); unsigned long time = 0; radio.write( &time, sizeof(unsigned long) ); radio.startListening();
  • 3.
    } } if(FrontSensor > 50){ MotorsForward(); } if(FrontSensor < 50) { MotorsStop(); delay(1000); if(((RightSensor > 30) && (LeftSensor > 30)) && (TurnCheck == 0)) { MotorsLeft(); delay(3500); MotorsStop(); delay(1000); //MotorsForward(); TurnCheck = 1; } if((RightSensor < 30) && (LeftSensor < 30)) { radio.stopListening(); unsigned long time = 1; radio.write( &time, sizeof(unsigned long) );
  • 4.
    radio.startListening(); MotorsStop(); StopCheck = 1; } if(StopCheck== 0) { if((RightSensor < 30) && (TurnCheck == 0)) { MotorsLeft(); delay(3500); MotorsStop(); delay(1000); //MotorsForward(); TurnCheck = 1; } if((LeftSensor < 30) && (TurnCheck == 0)) { MotorsRight(); delay(3500); MotorsStop(); delay(1000); //MotorsForward();
  • 5.
    TurnCheck = 1; } } StopCheck= 0; TurnCheck = 0; } } For Manual Mode:- void ManualMode() { if(direc == 1){MotorsForward();} if(direc == 2){MotorsBackward();} if(direc == 3){MotorsLeft();} if(direc == 4){MotorsRight();} if(direc == 5){MotorsStop();} if(PIRValue == 1) { radio.stopListening(); unsigned long time = 1; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); MotorsStop();
  • 6.
    while(1) { PIRSensor(); if(PIRValue == 0){break;} } } if(PIRValue== 0) { //Serial.println("YES"); radio.stopListening(); unsigned long time = 0; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } } Human Detection Using PIR And Sonar:- #include <SPI.h> #include "nRF24L01.h" #include "RF24.h"
  • 7.
    RF24 radio(9,10); const uint64_tpipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }; #define trigPin1 4 #define echoPin1 6 #define trigPin2 7 #define echoPin2 8 #define trigPin3 A4 #define echoPin3 A5 #define pirPin 2 #define motorR1 A0 #define motorR2 A1 #define motorL1 A3 #define motorL2 A2 #define PwmLeft 3 #define PwmRight 5 int calibrationTime = 30;
  • 8.
    long unsigned intlowIn; long unsigned int pause = 5000; boolean lockLow = true; boolean takeLowTime; int PIRValue = 0; long duration, distance, RightSensor,FrontSensor,LeftSensor; int TurnCheck = 0; int mode = 0; int direc = 0; int StopCheck = 0; int ResetCheck = 0; void setup() { Serial.begin(57600); radio.begin(); radio.setRetries(15,15); radio.openReadingPipe(1,pipes[1]); radio.startListening(); radio.printDetails(); radio.openWritingPipe(pipes[0]); radio.openReadingPipe(1,pipes[1]);
  • 9.
    pinMode(trigPin1, OUTPUT); pinMode(echoPin1, INPUT); pinMode(trigPin2,OUTPUT); pinMode(echoPin2, INPUT); pinMode(trigPin3, OUTPUT); pinMode(echoPin3, INPUT); pinMode(pirPin, INPUT); digitalWrite(pirPin, LOW); pinMode(motorR1, OUTPUT); pinMode(motorR2, OUTPUT); pinMode(motorL1, OUTPUT); pinMode(motorL2, OUTPUT); pinMode(PwmLeft, OUTPUT); pinMode(PwmRight, OUTPUT); analogWrite(PwmLeft, 0); analogWrite(PwmRight, 0); delay(1000); } void loop() {
  • 10.
    SonarSensor(trigPin1, echoPin1); LeftSensor =distance; SonarSensor(trigPin2, echoPin2); FrontSensor = distance; SonarSensor(trigPin3, echoPin3); RightSensor = distance; PIRSensor(); if(PIRValue == 0){ResetCheck = 0;} //radio.startListening(); if ( radio.available() ) { unsigned long data = 0; radio.read( &data, sizeof(unsigned long) ); Serial.println(data); if(data == 2){mode = 1;} if(data == 3){mode = 2;} if(data == 4){direc = 1;} if(data == 5){direc = 2;} if(data == 6){direc = 3;} if(data == 7){direc = 4;}
  • 11.
    if(data == 8){direc= 5;} // radio.stopListening(); } if(mode == 1) { AutoMode(); } if(mode == 2) { ManualMode(); } } PIR Sensor:- void PIRSensor() { if(digitalRead(pirPin) == HIGH) { if(lockLow) { PIRValue = 1; lockLow = false; Serial.println("Motion detected."); delay(50);
  • 12.
    } takeLowTime = true; } if(digitalRead(pirPin)== LOW) { if(takeLowTime){lowIn = millis();takeLowTime = false;} if(!lockLow && millis() - lowIn > pause) { PIRValue = 0; lockLow = true; Serial.println("Motion ended."); delay(50); } } } Sonar Sensor:- void SonarSensor(int trigPin,int echoPin) { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10);
  • 13.
    digitalWrite(trigPin, LOW); duration =pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; delay(100); } Motors Routine:- void MotorsBackward() { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } void MotorsForward() { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); }
  • 14.
    void MotorsStop() { digitalWrite(motorL1, HIGH); digitalWrite(motorL2,HIGH); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, HIGH); } void MotorsRight() { digitalWrite(motorR1, HIGH); digitalWrite(motorR2, HIGH); digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); } void MotorsLeft() { digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); digitalWrite(motorL1, HIGH); digitalWrite(motorL2, HIGH); }
  • 15.
    Human Detection UsingSonar and PIR :- #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" int buzzer = 8; RF24 radio(9,10); const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }; typedef enum { role_ping_out = 1, role_pong_back } role_e; const char* role_friendly_name[] = { "invalid", "Ping out", "Pong back"}; role_e role = role_pong_back; void setup(void) { Serial.begin(9600); pinMode(buzzer,OUTPUT); digitalWrite(buzzer,HIGH); radio.begin(); radio.setRetries(15,15); radio.openReadingPipe(1,pipes[1]); radio.startListening(); radio.printDetails(); radio.openWritingPipe(pipes[1]);
  • 16.
    radio.openReadingPipe(1,pipes[0]); } void loop(void) { if (radio.available() ) { unsigned long data = 0; radio.read( &data, sizeof(unsigned long) ); Serial.println(data); if(data == 1) {digitalWrite(buzzer,LOW); } if(data == 0) {digitalWrite(buzzer,HIGH); } } if(Serial.available()) { char sdata = Serial.read(); if(sdata == 'a')
  • 17.
    { radio.stopListening(); unsigned long time= 2; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'm') { radio.stopListening(); unsigned long time = 3; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'f') { radio.stopListening(); unsigned long time = 4; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'b')
  • 18.
    { radio.stopListening(); unsigned long time= 5; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'l') { radio.stopListening(); unsigned long time = 6; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'r') { radio.stopListening(); unsigned long time = 7; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 's')
  • 19.
    { radio.stopListening(); unsigned long time= 8; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'R') { radio.stopListening(); unsigned long time = 9; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } } }