Fuci mirabiles. Vere fruor ludere cum quad mea, imagines et videos accipiens, vel tantum ludis. Sed vehicula aerea inanibus (UAVs) pluribus quam iustis oblectamentis adhibentur. In cinematographico, studio molibus laborant, et a militaribus et repraesentativis regiones agriculturae utuntur.
In hoc doceo videbimus rationem creandi quae te fucum regere sinet. voce utens imperat. Imo faciet copter quod tu narras. In fine articuli programmata prompta facta est et video imperii UAV.
ferrum
Sequenti opus est:
Psittacus ARDrone 2.0;
Aer cable;
bonum tortor ligula.
Progressio et procuratio in operibus Windows/Mac/Ubuntu exercebuntur. Personaliter cum Mac et Ubuntu 18.04 laboravi.
Conemur intelligere quomodo opera Parrot ARDrone. Hic coptra quattuor motores habet.
Eadem directione operantur contraria motorum. Unum par horologico, alterum counterclockwise gyrat. Fucus movetur mutando angulum inclinationis respectu superficiei terrae, mutando celeritatem rotationis motorum et plurium aliorum motuum discurrendorum.
Ut videre est in schemate supra, varias varias parametros mutando ducit ad directionem motus aeris. Exempli gratia rotationis sinistrae et dextrae velocitatem decrescentes vel augentes rotors volumen creat. Hoc fucum vel retro vel retro avolare permittit.
Mutando velocitatem et directionem motorum constituimus angulos beniculos, qui coptra in alias partes movere permittunt. Profecto in praesenti incepto opus non est studere aerodynamica, vos iustus postulo ut elementa elementa intellegamus.
Ut Parrot ARDrone operatur
Fucus Wi-FI hotspot est. Ad mandatum coptri accipiendum et mittendum, hoc loco coniungere debes. Multae variae applicationes sunt quae te quadcopters regere permittunt. Res omnes sic spectat:
Cum fucus coniungitur, terminalem et telnet aperi 192.168.1.1 - hoc IP coptri est. Pro Linux uti potes Linux Busybox.
Applicationem architectura
Codex noster in modulos sequentes dividetur:
usor interface cum loquela API pro voce detectio;
eliquare imperia et cum vexillo comparare;
mandata ad fucum mittens;
Vivamus eget molestie lacus.
API laborat modo dum nexus interreti est. Hoc ut fiat, nexum Aer addimus.
Tempus est applicationem creare!
Code
Primum, novam folder faciamus et ad eam terminatio utens commutandum.
Tunc Node inceptis mandatis infra utentes creamus.
Primum, debitas clientelas instituimus.
install npm
Mandata sequentia adiuvabimus;
takeoff;
appulsum;
fucus surgit dimidii metri et uncis;
deorsum — dimidius metri cadit et coit;
ad lævam - vadit dimidium metri ad sinistram;
ad dextram - vadit dimidium metri ad dextram;
gyratio - in horologio horologico 90 gradus;
procedat - goes forward dimidium metri;
retro - redit dimidium metri;
prohibere.
Hic est signum quod tibi permittit ut mandata accipias, ea colas et fucum domas.
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);
Et hic est codice HTML et JavaScript qui auscultat utentem et mandatum servo Nodi mittit.
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Voice Controlled Notes App</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/shoelace-css/1.0.0-beta16/shoelace.css">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<h1>Voice Controlled Drone</h1>
<p class="page-description">A tiny app that allows you to control AR drone using voice</p>
<h3 class="no-browser-support">Sorry, Your Browser Doesn't Support the Web Speech API. Try Opening This Demo In Google Chrome.</h3>
<div class="app">
<h3>Give the command</h3>
<div class="input-single">
<textarea id="note-textarea" placeholder="Create a new note by typing or using voice recognition." rows="6"></textarea>
</div>
<button id="start-record-btn" title="Start Recording">Start Recognition</button>
<button id="pause-record-btn" title="Pause Recording">Pause Recognition</button>
<p id="recording-instructions">Press the <strong>Start Recognition</strong> button and allow access.</p>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="script.js"></script>
</body>
</html>
Atque etiam in codice JavaScript ad operandum voce praecipit, eos ad Nodum servo mittit.
try {
var SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
var recognition = new SpeechRecognition();
}
catch(e) {
console.error(e);
$('.no-browser-support').show();
$('.app').hide();
}
// other code, please refer GitHub source
recognition.onresult = function(event) {
// event is a SpeechRecognitionEvent object.
// It holds all the lines we have captured so far.
// We only need the current one.
var current = event.resultIndex;
// Get a transcript of what was said.
var transcript = event.results[current][0].transcript;
// send it to the backend
$.ajax({
type: 'POST',
url: '/command/',
data: JSON.stringify({command: transcript}),
success: function(data) { console.log(data) },
contentType: "application/json",
dataType: 'json'
});
};
Deductis ad applicationem
Progressio sic deduci potest (id est magni momenti efficere ut coptra cum Wi-Fi et funis Ethernet cum computatorio iunctus sit).
Aperi localhost: 3000 in navigatro et deprime Recognitio Committitur.
Conamur fucum regere et laeti sumus.
Lorem video a fucus
In documento, fasciculum novum crea et hunc codicem ibi imita:
Codicis scripturae ac deinde machinae vigilantes incipiunt: parere tibi placuere dabo! Nunc figuratum est quomodo docere fucum audire iubeat. Re vera, sunt multo plura possibilitates: usus vultus agnitio, volatus sui iuris, gestus cognitio et multo magis.