-
-
Save iamnasirudeen/b45bae4d52b75bf9937d3a7ed44afb46 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const express = require('express'); | |
const bodyparser = require('body-parser'); | |
var arDrone = require('ar-drone'); | |
const router = express.Router(); | |
const app = express(); | |
const commands = ['takeoff', 'land','up','down','goleft','goright','turn','goforward','gobackward','stop']; | |
var drone = arDrone.createClient(); | |
// disable emergency | |
drone.disableEmergency(); | |
// express | |
app.use(bodyparser.json()); | |
app.use(express.static(__dirname + '/public')); | |
router.get('/',(req,res) => { | |
res.sendFile('index.html'); | |
}); | |
router.post('/command',(req,res) => { | |
console.log('command recieved ', req.body); | |
console.log('existing commands', commands); | |
let command = req.body.command.replace(/ /g,''); | |
if(commands.indexOf(command) !== -1) { | |
switch(command.toUpperCase()) { | |
case "TAKEOFF": | |
console.log('taking off the drone'); | |
drone.takeoff(); | |
break; | |
case "LAND": | |
console.log('landing the drone'); | |
drone.land(); | |
break; | |
case "UP": | |
console.log('taking the drone up half meter'); | |
drone.up(0.2); | |
setTimeout(() => { | |
drone.stop(); | |
clearTimeout(); | |
},2000); | |
break; | |
case "DOWN": | |
console.log('taking the drone down half meter'); | |
drone.down(0.2); | |
setTimeout(() => { | |
drone.stop(); | |
clearTimeout(); | |
},2000); | |
break; | |
case "GOLEFT": | |
console.log('taking the drone left 1 meter'); | |
drone.left(0.1); | |
setTimeout(() => { | |
drone.stop(); | |
clearTimeout(); | |
},1000); | |
break; | |
case "GORIGHT": | |
console.log('taking the drone right 1 meter'); | |
drone.right(0.1); | |
setTimeout(() => { | |
drone.stop(); | |
clearTimeout(); | |
},1000); | |
break; | |
case "TURN": | |
console.log('turning the drone'); | |
drone.clockwise(0.4); | |
setTimeout(() => { | |
drone.stop(); | |
clearTimeout(); | |
},2000); | |
break; | |
case "GOFORWARD": | |
console.log('moving the drone forward by 1 meter'); | |
drone.front(0.1); | |
setTimeout(() => { | |
drone.stop(); | |
clearTimeout(); | |
},2000); | |
break; | |
case "GOBACKWARD": | |
console.log('moving the drone backward 1 meter'); | |
drone.back(0.1); | |
setTimeout(() => { | |
drone.stop(); | |
clearTimeout(); | |
},2000); | |
break; | |
case "STOP": | |
drone.stop(); | |
break; | |
default: | |
break; | |
} | |
} | |
res.send('OK'); | |
}); | |
app.use('/',router); | |
app.listen(process.env.port || 3000); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment