ನಾವು Node.js ಮತ್ತು ARDrone ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕಾಪ್ಟರ್‌ನ ಧ್ವನಿ ನಿಯಂತ್ರಣವನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡುತ್ತೇವೆ

ನಾವು Node.js ಮತ್ತು ARDrone ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕಾಪ್ಟರ್‌ನ ಧ್ವನಿ ನಿಯಂತ್ರಣವನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡುತ್ತೇವೆ

ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ ನಾವು Node.js ಮತ್ತು ವೆಬ್ ಸ್ಪೀಚ್ API ಅನ್ನು ಬಳಸಿಕೊಂಡು ಧ್ವನಿ ನಿಯಂತ್ರಣದೊಂದಿಗೆ ಡ್ರೋನ್‌ಗಾಗಿ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ರಚಿಸುವುದನ್ನು ನೋಡುತ್ತೇವೆ. ಕಾಪ್ಟರ್ - ಗಿಳಿ ARDrone 2.0.

ನಾವು ನೆನಪಿಸುತ್ತೇವೆ: ಎಲ್ಲಾ Habr ಓದುಗರಿಗೆ - Habr ಪ್ರೊಮೊ ಕೋಡ್ ಬಳಸಿಕೊಂಡು ಯಾವುದೇ ಸ್ಕಿಲ್‌ಬಾಕ್ಸ್ ಕೋರ್ಸ್‌ಗೆ ದಾಖಲಾಗುವಾಗ 10 ರೂಬಲ್ ರಿಯಾಯಿತಿ.

ಸ್ಕಿಲ್‌ಬಾಕ್ಸ್ ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ: ಪ್ರಾಯೋಗಿಕ ಕೋರ್ಸ್ "ಮೊಬೈಲ್ ಡೆವಲಪರ್ ಪ್ರೊ".

ಪರಿಚಯ

ಡ್ರೋನ್‌ಗಳು ಅದ್ಭುತವಾಗಿವೆ. ನನ್ನ ಕ್ವಾಡ್‌ನೊಂದಿಗೆ ಆಟವಾಡುವುದು, ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳನ್ನು ತೆಗೆಯುವುದು ಅಥವಾ ಮೋಜು ಮಾಡುವುದನ್ನು ನಾನು ನಿಜವಾಗಿಯೂ ಆನಂದಿಸುತ್ತೇನೆ. ಆದರೆ ಮಾನವರಹಿತ ವೈಮಾನಿಕ ವಾಹನಗಳನ್ನು (UAV) ಕೇವಲ ಮನರಂಜನೆಗಿಂತ ಹೆಚ್ಚಿನದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಅವರು ಸಿನೆಮಾದಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಾರೆ, ಹಿಮನದಿಗಳನ್ನು ಅಧ್ಯಯನ ಮಾಡುತ್ತಾರೆ ಮತ್ತು ಮಿಲಿಟರಿ ಮತ್ತು ಕೃಷಿ ಕ್ಷೇತ್ರದ ಪ್ರತಿನಿಧಿಗಳು ಬಳಸುತ್ತಾರೆ.

ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ ನಾವು ಡ್ರೋನ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ರಚಿಸುವುದನ್ನು ನೋಡುತ್ತೇವೆ. ಧ್ವನಿ ಆಜ್ಞೆಗಳನ್ನು ಬಳಸುವುದು. ಹೌದು, ನೀವು ಏನು ಮಾಡಲು ಹೇಳುತ್ತೀರೋ ಅದನ್ನು ಕಾಪ್ಟರ್ ಮಾಡುತ್ತದೆ. ಲೇಖನದ ಕೊನೆಯಲ್ಲಿ ಯುಎವಿ ನಿಯಂತ್ರಣದ ಸಿದ್ಧ ಪ್ರೋಗ್ರಾಂ ಮತ್ತು ವೀಡಿಯೊ ಇದೆ.

ಕಬ್ಬಿಣ

ನಮಗೆ ಈ ಕೆಳಗಿನವುಗಳು ಬೇಕಾಗುತ್ತವೆ:

  • ಗಿಳಿ ARDrone 2.0;
  • ಎತರ್ನೆಟ್ ಕೇಬಲ್;
  • ಉತ್ತಮ ಮೈಕ್ರೊಫೋನ್.

Windows/Mac/Ubuntu ಜೊತೆಗೆ ವರ್ಕ್‌ಸ್ಟೇಷನ್‌ಗಳಲ್ಲಿ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ನಿರ್ವಹಣೆಯನ್ನು ಕೈಗೊಳ್ಳಲಾಗುತ್ತದೆ. ವೈಯಕ್ತಿಕವಾಗಿ, ನಾನು ಮ್ಯಾಕ್ ಮತ್ತು ಉಬುಂಟು 18.04 ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಿದ್ದೇನೆ.

ಸಾಫ್ಟ್ವೇರ್

Node.js ನ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ ಅಧಿಕೃತ ಸೈಟ್.

ಸಹ ಅಗತ್ಯವಿದೆ Google Chrome ನ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿ.

ಕಾಪ್ಟರ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು

ಗಿಳಿ ARDrone ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸೋಣ. ಈ ಕಾಪ್ಟರ್ ನಾಲ್ಕು ಮೋಟಾರ್ ಹೊಂದಿದೆ.

ನಾವು Node.js ಮತ್ತು ARDrone ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕಾಪ್ಟರ್‌ನ ಧ್ವನಿ ನಿಯಂತ್ರಣವನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡುತ್ತೇವೆ

ಎದುರಾಳಿ ಮೋಟಾರ್‌ಗಳು ಒಂದೇ ದಿಕ್ಕಿನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಒಂದು ಜೋಡಿ ಪ್ರದಕ್ಷಿಣಾಕಾರವಾಗಿ, ಇನ್ನೊಂದು ಅಪ್ರದಕ್ಷಿಣಾಕಾರವಾಗಿ ಸುತ್ತುತ್ತದೆ. ಡ್ರೋನ್ ಭೂಮಿಯ ಮೇಲ್ಮೈಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಇಳಿಜಾರಿನ ಕೋನವನ್ನು ಬದಲಾಯಿಸುವ ಮೂಲಕ ಚಲಿಸುತ್ತದೆ, ಮೋಟಾರ್ಗಳ ತಿರುಗುವಿಕೆಯ ವೇಗವನ್ನು ಮತ್ತು ಹಲವಾರು ಇತರ ಕುಶಲ ಚಲನೆಗಳನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ.

ನಾವು Node.js ಮತ್ತು ARDrone ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕಾಪ್ಟರ್‌ನ ಧ್ವನಿ ನಿಯಂತ್ರಣವನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡುತ್ತೇವೆ

ಮೇಲಿನ ರೇಖಾಚಿತ್ರದಲ್ಲಿ ನಾವು ನೋಡುವಂತೆ, ವಿವಿಧ ನಿಯತಾಂಕಗಳನ್ನು ಬದಲಾಯಿಸುವುದು ಕಾಪ್ಟರ್ನ ಚಲನೆಯ ದಿಕ್ಕಿನಲ್ಲಿ ಬದಲಾವಣೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಎಡ ಮತ್ತು ಬಲ ರೋಟರ್ಗಳ ತಿರುಗುವಿಕೆಯ ವೇಗವನ್ನು ಕಡಿಮೆ ಮಾಡುವುದು ಅಥವಾ ಹೆಚ್ಚಿಸುವುದು ರೋಲ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ. ಇದು ಡ್ರೋನ್ ಅನ್ನು ಮುಂದಕ್ಕೆ ಅಥವಾ ಹಿಂದಕ್ಕೆ ಹಾರಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಮೋಟಾರುಗಳ ವೇಗ ಮತ್ತು ದಿಕ್ಕನ್ನು ಬದಲಾಯಿಸುವ ಮೂಲಕ, ನಾವು ಟಿಲ್ಟ್ ಕೋನಗಳನ್ನು ಹೊಂದಿಸುತ್ತೇವೆ ಅದು ಕಾಪ್ಟರ್ ಅನ್ನು ಇತರ ದಿಕ್ಕುಗಳಲ್ಲಿ ಚಲಿಸುವಂತೆ ಮಾಡುತ್ತದೆ. ವಾಸ್ತವವಾಗಿ, ಪ್ರಸ್ತುತ ಯೋಜನೆಗೆ ಏರೋಡೈನಾಮಿಕ್ಸ್ ಅನ್ನು ಅಧ್ಯಯನ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ, ನೀವು ಮೂಲಭೂತ ತತ್ವಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು.

ಗಿಳಿ ARDrone ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

ಡ್ರೋನ್ ವೈ-ಫೈ ಹಾಟ್‌ಸ್ಪಾಟ್ ಆಗಿದೆ. ಕಾಪ್ಟರ್‌ಗೆ ಆಜ್ಞೆಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಮತ್ತು ಕಳುಹಿಸಲು, ನೀವು ಈ ಹಂತಕ್ಕೆ ಸಂಪರ್ಕಿಸಬೇಕು. ಕ್ವಾಡ್‌ಕಾಪ್ಟರ್‌ಗಳನ್ನು ನಿಯಂತ್ರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಹಲವು ವಿಭಿನ್ನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿವೆ. ಇದೆಲ್ಲವೂ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

ನಾವು Node.js ಮತ್ತು ARDrone ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕಾಪ್ಟರ್‌ನ ಧ್ವನಿ ನಿಯಂತ್ರಣವನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡುತ್ತೇವೆ

ಡ್ರೋನ್ ಸಂಪರ್ಕಗೊಂಡ ತಕ್ಷಣ, ಟರ್ಮಿನಲ್ ಮತ್ತು ಟೆಲ್ನೆಟ್ 192.168.1.1 ಅನ್ನು ತೆರೆಯಿರಿ - ಇದು ಕಾಪ್ಟರ್‌ನ ಐಪಿ. Linux ಗಾಗಿ ನೀವು ಬಳಸಬಹುದು ಲಿನಕ್ಸ್ ಬ್ಯುಸಿಬಾಕ್ಸ್.

ಅಪ್ಲಿಕೇಶನ್ ಆರ್ಕಿಟೆಕ್ಚರ್

ನಮ್ಮ ಕೋಡ್ ಅನ್ನು ಈ ಕೆಳಗಿನ ಮಾಡ್ಯೂಲ್‌ಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ:

  • ಧ್ವನಿ ಪತ್ತೆಗಾಗಿ ಸ್ಪೀಚ್ API ನೊಂದಿಗೆ ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್;
  • ಆಜ್ಞೆಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡುವುದು ಮತ್ತು ಪ್ರಮಾಣಿತದೊಂದಿಗೆ ಹೋಲಿಸುವುದು;
  • ಡ್ರೋನ್‌ಗೆ ಆಜ್ಞೆಗಳನ್ನು ಕಳುಹಿಸುವುದು;
  • ನೇರ ವೀಡಿಯೊ ಪ್ರಸಾರ.

ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವಿರುವವರೆಗೆ API ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ನಾವು ಈಥರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸುತ್ತೇವೆ.

ಅಪ್ಲಿಕೇಶನ್ ರಚಿಸಲು ಇದು ಸಮಯ!

ಕೋಡ್

ಮೊದಲಿಗೆ, ನಾವು ಹೊಸ ಫೋಲ್ಡರ್ ಅನ್ನು ರಚಿಸೋಣ ಮತ್ತು ಟರ್ಮಿನಲ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಅದಕ್ಕೆ ಬದಲಾಯಿಸೋಣ.

ನಂತರ ನಾವು ಕೆಳಗಿನ ಆಜ್ಞೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನೋಡ್ ಯೋಜನೆಯನ್ನು ರಚಿಸುತ್ತೇವೆ.

ಮೊದಲಿಗೆ, ನಾವು ಅಗತ್ಯವಿರುವ ಅವಲಂಬನೆಗಳನ್ನು ಸ್ಥಾಪಿಸುತ್ತೇವೆ.

npm ಸ್ಥಾಪನೆ 

ನಾವು ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತೇವೆ:

  • ಉಡ್ಡಯನ;
  • ಲ್ಯಾಂಡಿಂಗ್;
  • ಮೇಲಕ್ಕೆ - ಡ್ರೋನ್ ಅರ್ಧ ಮೀಟರ್ ಏರುತ್ತದೆ ಮತ್ತು ಸುಳಿದಾಡುತ್ತದೆ;
  • ಕೆಳಗೆ - ಅರ್ಧ ಮೀಟರ್ ಬೀಳುತ್ತದೆ ಮತ್ತು ಹೆಪ್ಪುಗಟ್ಟುತ್ತದೆ;
  • ಎಡಕ್ಕೆ - ಎಡಕ್ಕೆ ಅರ್ಧ ಮೀಟರ್ ಹೋಗುತ್ತದೆ;
  • ಬಲಕ್ಕೆ - ಅರ್ಧ ಮೀಟರ್ ಬಲಕ್ಕೆ ಹೋಗುತ್ತದೆ;
  • ತಿರುಗುವಿಕೆ - ಪ್ರದಕ್ಷಿಣಾಕಾರವಾಗಿ 90 ಡಿಗ್ರಿ ತಿರುಗುತ್ತದೆ;
  • ಮುಂದಕ್ಕೆ - ಅರ್ಧ ಮೀಟರ್ ಮುಂದಕ್ಕೆ ಹೋಗುತ್ತದೆ;
  • ಹಿಂದೆ - ಅರ್ಧ ಮೀಟರ್ ಹಿಂದಕ್ಕೆ ಹೋಗುತ್ತದೆ;
  • ನಿಲ್ಲಿಸು.

ಆಜ್ಞೆಗಳನ್ನು ಸ್ವೀಕರಿಸಲು, ಅವುಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಲು ಮತ್ತು ಡ್ರೋನ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಕೋಡ್ ಇಲ್ಲಿದೆ.

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);

ಮತ್ತು ಇಲ್ಲಿ HTML ಮತ್ತು JavaScript ಕೋಡ್ ಬಳಕೆದಾರರನ್ನು ಕೇಳುತ್ತದೆ ಮತ್ತು ನೋಡ್ ಸರ್ವರ್‌ಗೆ ಆಜ್ಞೆಯನ್ನು ಕಳುಹಿಸುತ್ತದೆ.

<!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>

ಮತ್ತು ಧ್ವನಿ ಆಜ್ಞೆಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್, ಅವುಗಳನ್ನು ನೋಡ್ ಸರ್ವರ್‌ಗೆ ಕಳುಹಿಸುತ್ತದೆ.

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'
 });
};

ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ

ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಪ್ರಾರಂಭಿಸಬಹುದು (ಕಾಪ್ಟರ್ Wi-Fi ಗೆ ಸಂಪರ್ಕಗೊಂಡಿದೆ ಮತ್ತು ಈಥರ್ನೆಟ್ ಕೇಬಲ್ ಕಂಪ್ಯೂಟರ್ಗೆ ಸಂಪರ್ಕಗೊಂಡಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು ಮುಖ್ಯವಾಗಿದೆ).

ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಲೋಕಲ್ ಹೋಸ್ಟ್:3000 ತೆರೆಯಿರಿ ಮತ್ತು ಗುರುತಿಸುವಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ.

ನಾವು Node.js ಮತ್ತು ARDrone ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕಾಪ್ಟರ್‌ನ ಧ್ವನಿ ನಿಯಂತ್ರಣವನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡುತ್ತೇವೆ

ನಾವು ಡ್ರೋನ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತೇವೆ ಮತ್ತು ಸಂತೋಷವಾಗಿದ್ದೇವೆ.

ಡ್ರೋನ್‌ನಿಂದ ವೀಡಿಯೊವನ್ನು ಪ್ರಸಾರ ಮಾಡಲಾಗುತ್ತಿದೆ

ಯೋಜನೆಯಲ್ಲಿ, ಹೊಸ ಫೈಲ್ ಅನ್ನು ರಚಿಸಿ ಮತ್ತು ಈ ಕೋಡ್ ಅನ್ನು ಅಲ್ಲಿ ನಕಲಿಸಿ:

const http = require("http");
const drone = require("dronestream");
 
const server = http.createServer(function(req, res) {
 
require("fs").createReadStream(__dirname + "/public/video.html").pipe(res);
 });
 
drone.listen(server);
 
server.listen(4000);

ಮತ್ತು HTML ಕೋಡ್ ಇಲ್ಲಿದೆ, ನಾವು ಅದನ್ನು ಸಾರ್ವಜನಿಕ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಇರಿಸುತ್ತೇವೆ.

<!doctype html>
 <html>
 <head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8">
 <title>Stream as module</title>
 <script src="/dronestream/nodecopter-client.js" type="text/javascript" charset="utf-8"></script>
 </head>
 <body>
 <h1 id="heading">Drone video stream</h1>
 <div id="droneStream" style="width: 640px; height: 360px"> </div>
 
<script type="text/javascript" charset="utf-8">
 
new NodecopterStream(document.getElementById("droneStream"));
 
</script>
 
</body>
</html>

ಮುಂಭಾಗದ ಕ್ಯಾಮರಾದಿಂದ ವೀಡಿಯೊವನ್ನು ವೀಕ್ಷಿಸಲು ಲೋಕಲ್ ಹೋಸ್ಟ್:8080 ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಸಂಪರ್ಕಪಡಿಸಿ.

ನಾವು Node.js ಮತ್ತು ARDrone ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕಾಪ್ಟರ್‌ನ ಧ್ವನಿ ನಿಯಂತ್ರಣವನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡುತ್ತೇವೆ

ಸಹಾಯಕವಾಗಿದೆಯೆ ಸಲಹೆಗಳು

  • ಈ ಡ್ರೋನ್ ಅನ್ನು ಒಳಾಂಗಣದಲ್ಲಿ ಹಾರಿಸಿ.
  • ಹೊರಡುವ ಮೊದಲು ಯಾವಾಗಲೂ ನಿಮ್ಮ ಡ್ರೋನ್‌ನಲ್ಲಿ ರಕ್ಷಣಾತ್ಮಕ ಕವರ್ ಅನ್ನು ಇರಿಸಿ.
  • ಬ್ಯಾಟರಿ ಚಾರ್ಜ್ ಆಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ.
  • ಡ್ರೋನ್ ವಿಚಿತ್ರವಾಗಿ ವರ್ತಿಸಿದರೆ, ಅದನ್ನು ಹಿಡಿದುಕೊಳ್ಳಿ ಮತ್ತು ಅದನ್ನು ತಿರುಗಿಸಿ. ಈ ಕ್ರಿಯೆಯು ಕಾಪ್ಟರ್ ಅನ್ನು ತುರ್ತು ಮೋಡ್‌ಗೆ ಹಾಕುತ್ತದೆ ಮತ್ತು ರೋಟರ್‌ಗಳು ತಕ್ಷಣವೇ ನಿಲ್ಲುತ್ತವೆ.

ರೆಡಿ ಕೋಡ್ ಮತ್ತು ಡೆಮೊ

ಲೈವ್ ಡೆಮೊ

ಡೌನ್ಲೋಡ್

ಸಂಭವಿಸಿದ!

ಕೋಡ್ ಬರೆಯುವುದು ಮತ್ತು ನಂತರ ಯಂತ್ರವು ಪಾಲಿಸಲು ಪ್ರಾರಂಭಿಸುವುದನ್ನು ನೋಡುವುದು ನಿಮಗೆ ಸಂತೋಷವನ್ನು ನೀಡುತ್ತದೆ! ಧ್ವನಿ ಆಜ್ಞೆಗಳನ್ನು ಕೇಳಲು ಡ್ರೋನ್ ಅನ್ನು ಹೇಗೆ ಕಲಿಸುವುದು ಎಂದು ಈಗ ನಾವು ಕಂಡುಕೊಂಡಿದ್ದೇವೆ. ವಾಸ್ತವವಾಗಿ, ಹೆಚ್ಚಿನ ಸಾಧ್ಯತೆಗಳಿವೆ: ಬಳಕೆದಾರರ ಮುಖ ಗುರುತಿಸುವಿಕೆ, ಸ್ವಾಯತ್ತ ವಿಮಾನಗಳು, ಗೆಸ್ಚರ್ ಗುರುತಿಸುವಿಕೆ ಮತ್ತು ಇನ್ನಷ್ಟು.

ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಸುಧಾರಿಸಲು ನೀವು ಏನು ಸಲಹೆ ನೀಡಬಹುದು?

ಸ್ಕಿಲ್‌ಬಾಕ್ಸ್ ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ:

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ