Swarm Drons(The War of Dron)

by Devki Nandan Dalveer in Workshop > Science

1095 Views, 6 Favorites, 0 Comments

Swarm Drons(The War of Dron)

drone-swarm.jpg
Hey , now the coming revolution in the field of war (defence) is the revolution of dron.

Many countries has been developed that kind of swarm drons. Recently india has published their swarm drons project on 15 January 2021.

Also i have been developing swarm drons .But my project is not just a prototype but it's a real swarm dron project.

Please don't use this project for any illegal offences.so in my project these drons can coordinate with other dron in order to maintain proper distance with the other dron as well as object. You can see in picture

# Specifications of Swarm Dron

55f882b210518.image.jpg
1) these dron can avoid collision.
2) these dron use to kill enemny during.
3) these drons are compact in size.
4) can be use in military operation.
5) no radar can catch it .

# Components Needed

esp32-nodemcu-development-board.jpg
HMC5883l-1.jpg
BMP180.jpg
ultrasonic-sensor-hc-sr04-module-for-arduino-500x500.jpg
pir-motion-sensor-ada-189-b29.jpg
FMS-Motor-5060 KV300.JPG
8-7-2014_5-05-42_pm_1.jpg
00-750x750.jpg
batterie-lipo-compatible-arduino-74v-2000mah.jpg
ublox-neo-6m-gps-module-flight-control-500x500.jpg
311bGhoaiPL.jpg
1) one Esp32 Dev board.
2) one magnetometer sensor.(HMC5883)
3) one barometer sensor.(bmp085)
4) four ultrasonic sensor.
5) pir motion sensor .
6)four brushless motor.
7)flight controller.
8) jumper wire.
9) battery.
10) led .
11) blynk app.
12) gps module neo.( Arduino)
13) register

// If you are using brushless motor then use flight controller that is use for brushless motor.

// If you are using brushed motor use flight controller that is use for brushed motor.

# Circuit Diagram

PicsArt_08-03-09.27.36.jpg
IMG20210803211640.jpg
PicsArt_08-03-09.23.15.jpg
IMG_20210803_220600.jpg
IMG_20210803_220615.jpg
IMG_20210803_220921.jpg
We need to connect two battery one for esp 32 and one for flight controller.

In diagram 4 (upper view) and diagram 5(side view) and diagram 6(lower view).
1) U,L,R,B are ultrasonic sensor.
2)s1,s2 are battery.
3)m1,m2,m3,m4 Are motors.
4) o is led
5)X is explosive material.

# Working

mil-army-quadcopters-1200.jpg
best_drones_2020_thumb1200_4-3.jpg
Working is quite simple

User can on the dron or give latitude longitude of target with blynk aap.

This dron flys in two altitude first is takeoff altitude druring this dron stay or move at their top altitude, second war altitude during this dron comes at 5meter altitude after reaching their destination.
When user on this dron it takeoff and waites for latitude, longitude data.when it get data it start moving towards their destination.after reaching the destination it comes at war altitude then ,when pir sensor get detects human it distroy their self in order to kill enemny.
The used ultrasonic sensor make it stable to maintain proper distance among the other drons as well as working as obstacle avoider.


# Code ( Arduino Ied)

IMG_20210803_221503.jpg
// THIS IS GPS GUIDED DRON

// IT TAKE LATITUDE, LONGITUDE BY MOBILE AND THEN KILL HUMAN BY BLAST THEIRSELF
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


// CHANGES NEEDED
#include // make or amendment proper MOVESTOP()
#include
#include // included bmp condition please check according to u;
#include
#include // check ,and amendment ,takeoff,and waraltitude;
#define
#include // check auto distance maintaining sensor
#define BLYNK_PRINT Serial
#include //including library for ESP8266(NodeMCU).
#define //include blynk app library .( downlode it by link https://github.com/blynkk/blynk-library/releases/latest


Char auth[]=" "; //enter your authentication that you will get by Blynk app in your Gmail.
// or you should get directtly by Blynk app go to setting(nut icon).

char ssid[]=" "; //enter your wifi name(NodeMCU wifi name).
char pass[]=" "; //enter here your password.

///////////////////flight controller pin////////////////
i=;
j=; //define pin
k=;

////////////////////ultasonic pin/////////////////

#define trigpin A1;
#define ecopin A0;
#define trigpinL ; // write pin number
#define ecopinL ; // write pin number
#define trigpinR ;
#define ecopinR ; // write pin number
#define trigpinB ;
#define ecopinB ;

////// barometer//////////////

Altitude =bmp.readAltitude() // barometer;

//////////////PIR & gun triger PIN////////////////

int pirpin =8;
int pirstart =0; // pir motion sensor;
int guntriger =7;


/////////////ultrasonic distance, servo motor///////////////

#define maximum distanceU 200cm
int distanceU 100;
int distanceL 100;
int distanceR 100;
int distanceB 100;
long duration;
servo myservo;


////////////GPS HEADING/////////

float i,headingValue,diff;
float heading=0;
int heading=0;

AltSoftSerial gpsSerial(48,46); // 48,46 is arduino pin
TinyGPS gps;

int radius,X4=0;
#define waypoint 2
int waycont=1;
float x2lat;
float x2lon;

///////////MAGNETOMETER//////////////

HMC5883_Unifiedmag=HMC5883_unified(123456); // uniqe id to this sensor at same tim//

/////OUTOMATIC TRANSMITER PIN///////////////////

struct mydata;{
byte= k; //k=throttel
byte=j; //j=pitch // automatic transmitter
byte=i; //i=roll
}
mydata data;

void reset(){
data.k=0; // k=throtel
data.yaw=127;
data.i=127; // i=roll // transmitter
data.j=127; //j= pitch
}

void setup(){

///////////ULTRA SONIC PIN////////////
pinMode(ecopin, INPUT);
pinMode(trigpin ,OUTPUT);
pinMode(ecopinL, INPUT);
pinMode(trigpinL ,OUTPUT);
pinMode(ecopinR, INPUT);
pinMode(trigpinR ,OUTPUT);
pinMode(ecopinB, INPUT);
pinMode(trigpinB ,OUTPUT);
pinMode(pirpin, INPUT);
pinMode(guntriger ,OUTPUT);

/////////////flight controller pin////////////
pinMode(k,OUTPUT);
pinMode(j,OUTPUT);
pinMode(i,OUTPUT);
///////////////BAROMETER PIN//////////////////////
pinMode( ,INPUT);

if(bmp.begin()){
Serial.println("BMP active now"); // barometer;
}

////////////blynk app/////////////////////
Blynk.begin(auth ,ssid,pass); // here we can also specifies server.

//Blynk.begin(auth,ssid,pass,"blynk-cloud.com",8442);
//Blynk.begin(auth,ssid,pass,IPAddress(192,168,1,100),8442);



my servo.attach(9); //here 9 is pin number
myservo.write(110); //110 is degree
delay(1000);

distanceU=readping();
delay(200);
distanceU =readping();
delay(100);
distanceU =readping();
delay(50);

Serial.begin(9600);
gpsSerial.begin(9600);
Serial.println("HMC5883 Magnetometer Test");
Serial.print("");



//////////MAGNETOMETER/////////////////////
pinMode();
pinMode(); // give pinmode for

if(!mag.begin()){

Serial.println("oops no hmc detected.....");
while(1);
}
}
/////////////gps///////////
bool newdata(){
while(gpsSerial.available())
{
if(gps.encode(gpsSerial.read()) // FOR GPS;
return true ;
}
return false;
}


int map pilotvalue(int val,int,lower,int middle,int upper,bool reverse)
{
val=constrain(val,lower,upper);
if(val val=map(val,lower,middle,0,128); //AUTO CONTROOL DRONE
else
val=map(val,middle,upper,128,255);
return(reverse? 255-val:val);
}


void loop()
{
BLYNK_WRITE(V1){
DND1=param.asInt();
}
BLYNK_WRITE(V0){
DND2=param.asInt();
}
BLYNK_WRITE(V2){
DND3=param.asInt();
}
BLYNK_WRITE(V3){
DND4=param.asInt();
}
BLYNK_WRITE(V4){
DND5=param.asInt();
}
Blynk.run();
if (DND5==1)


float flat2=DND3; ///give pinmode
float flon2=DND4;///give pinmode

float flat3= DND1 ///give pinmode
float flon3 =DND2 ///give pinmode
delay(100);
takeoff();
delay(1000);
/////////////////////////// DRON GUN PART/////////////////

pirstart=digitalWrite(pirpin);
if(pirstart==HIGH)
{
movestop(); // CHECK MOVESTOP NEED TO CHANGE. we made it
Serial.print("i got target")
digitalWrite(guntriger , HIGH);
delay(600);
Serial.println("i fired but not sure target is distroyed or not");
}
else{
digitalWrite( guntriger ,LOW);
}
////////////////////////////////ULTRASONIC SENSOR////////////////////////
int distanceU=0;
int distanceU=0;
delay(50);



if(distanceL<30){
turnright();
}
if(distanceR<30){ // ultasonic sensors
turnleft():
}
if(distanceB<30){
goforword();
}
if(distanceU<=30){
movestop();
delay(100);
distanceURight =lookRight();
delay();
distanceULeft =LookLeft();
delay();
if(distanceU>=distanceULeft)
{
turnright();
movestop();}
else{
turnleft();
movestop();}
else{
goforword();}
distanceU =readping();
}

int lookRight();{
myservo.write(50);
delay(100);
int distanceU =readping();
delay(100);
myservo.write(115);
return distanceU;

}

int lookleft()
{
myservo.write(170);
delay(100);
int distanceU =readping();
delay(100);
myservo.write(115);
return distanceU;
delay(1000;
}
int readping(){
delay(70);
int cm=sonar.ping_cm();
if(cm=0){
cm =250;
}
return cm;}



/////////////////////////////GPS GUIDED PART//////////////////////
if(waycont==1)
{
x2lat=flat2;
x2lon=flon2;
}
if (waycont==2)
{
x2lat=flat3;
x2lon=flon3;
}
/////////////////............distance..............//

float diflat=0;
float diflon=0;
float dist_calc=0;
float dist_calc2=0;
float int_dist=0;
float final_dist=0;

diflat=radians(x2lat-flat);
flat=radians(flat);

diflon=radians(x2lon-flon);
x2lat=radians(x2lat);

dist_calc = (sin(diflat/2)*sin(diflat/2));
dist_calc2 = (cos(flat)*cos(x2lat)*sin(diflon/2)*sin(diflon/2));
Int_Dist = dist_calc + dist_calc2;
Final_Dist = (2*atan2(sqrt(Int_Dist),sqrt(1-Int_Dist)));
Final_Dist = Final_Dist*6371000; // distance is in meters
distance.meter = Final_Dist;
Serial.print("Distance:");
Serial.println(distance.meter);
if(distance.meter<5)
{
if(waycont==waypoints)
{
Stop(); // we can se yow
}
waycont+=1;
}

//////////////////////////////heading formula///////////////////////////

flon = radians(flon);
x2lat = radians(x2lat);
heading = atan2(sin(x2lon-flon)*cos(x2lat), cos(flat)*(sin(x2lat)-sin(flat))*cos(x2lat)*cos(x2lonflon));
//
heading = heading*180/3.1415926536; //convert radians to degrees
int head = heading;
if (head<0)
{
heading = ((head+360)); // If heading is negative make it positive
}
Serial.print("Formula Heading: ");
Serial.println(heading);

/////////////////compass//////////////////////

sensors_event_t event;
mag.getEvent(&event);
Serial.print("X: "); Serial.print(event.magnetic.x); Serial.print(" ");
Serial.print("Y: "); Serial.print(event.magnetic.y); Serial.print(" ");
Serial.print("Z: "); Serial.print(event.magnetic.z); Serial.print(" ");Serial.println("uT");

// Correct for when signs are reversed.
if(heading < 0)
heading += 2*PI;
// Check for wrap due to addition of declination.
if(heading > 2*PI)
heading -= 2*PI;
// Convert radians to degrees for readability.
float headingDegrees = heading * 180/M_PI;
Serial.print("Compass Heading: ");
Serial.println(headingDegrees);

//============Desired Heading=================

//============Desired Heading=================
x4 = headingDegrees - heading; //difference
if(x4<2)
{
x4 = x4+360; //if difference is negative
}
else
{
x4 = x4;
}
Serial.print("Difference Angle: ");
Serial.println(x4);
delay(500);
if(x4!=0)
{
if(x4>225&&x4<315) //Left Turn
{
turnleft();
Serial.println("Turn Left");
delay(300);
Stop();
delay(500);
}

else if(x4>=45&&x4<135) //Right Turn
{
turnright();
33
Serial.println("Turn Right");
delay(5000);
Stop();
delay(500);
}
else
if(headingDegrees>315&&headingDegrees<45)// Forward
{
goforward();
//Serial.print("Turn Left");
delay(1000);
Stop();
delay(600);
}
}
else
{
goforward();
delay(300);
}
if(distance.meter<1)
{
Stop(); // we can use takeoff if chances are with altitude function
Serial.println("Destination has reached coming to war altitude");
delay(56);
waraltidude();
}


data.k =map pilotvalue( val,13,524,1015,true);

data.i = map pilotvalue(val,34,522,1020,true);

data.j =map pilotvalue(val,12,544,1021, true);


void pilotvalue(){

void turn(){

turnleft(){
for(i=128;i<=0;i--)
}
turnright(){
for(i=128; i>=255; i++)
}
}

void go(){

goforword(){
for(j=128;j<=0;i--)}

gobackword(){
for(j=128;j>=255; i++}

}
void up(){
takeoff(){
if(altitude<15m) // according to original value change altitude value;
{
for(k=0;k<=255;k++)
}}
else land(){
for(k=0; k<=255;k--)
}
}
}



waraltitude(){
if(altitude<5m){
for(k=100;k<255;k++)}

if(altitude>5m){
for(k=100;k<255;k--)
}
}

movestop(){
if(altitude=13m){
takeoff();
}
if(altitude=5m){
waraltitude();
}
}

}
else{
Serial.print("dron not active");
}
}

Dron Working

IMG20210803221220.jpg
IMG20210803221243.jpg
Please look pictures!
It's about working of dron
Here
1) ( - -) is saying to decrease.
2) (++) saying to increase.



Thanks i hope it's help full 👍