• Home  / 
  • High-Tech
  •  /  Coder son propre drone et le rendre intelligent avec JavaScript

Coder son propre drone et le rendre intelligent avec JavaScript

programmer coder son drone ar.drone

Avez-vous déjà rêvé de coder un drone, le votre ? Parrot, avec son Ar.Drone 2.0 vous le permet. Et avec la sortie des nouveaux drones de la célèbre marque Française Parrot, l’Ar.Drone se vend pour quasiment rien !

De plus, je vous propose de coder en Javascript qui est un langage assez simple à prendre en main. Attachez vos ceintures, ont décollent !

Pour les incultes (je rigole 🙂 ) coder un drone n’est pas à but « pratique » mais réellement dans le sens d’un bidouilleur geek. Mis à part que, en codant son drone, nous pouvons le rendre « intelligent », ou plutôt « autonome » en l’automatisant pour certaines actions.

Je pars du principe que vous disposez déjà d’un Ar.Drone 2.0, la manipulation est sensée fonctionner aussi avec les 1.0, mais je ne vous promets rien.

Installer Node.js

Comme dit plus haut, nous allons utiliser Javascript par Node.js. C’est un petit interpréteur Javascript et très léger qui s’utilise en ligne de commande.

Pour le télécharger, rendez-vous ici puis installez le. Lorsque vous l’exécutez, Node.js ressemble à ça :

Node.js Coder son propre drone et le rendre intelligent avec JavaScript

L’interface de Node.js

C’est une console. Ce n’est pas évident à utiliser du premier coup d’oeil, mais vous comprendrez aisément que c’est d’une simplicité déconcertante une fois qu’on a compris comment ça marche.

Il faut aussi installer la bibliothèque nécessaire pour que l’Ar.Drone soit détecté par Node, qui s’appelle « NodeCopter ».

Pour cela, allez dans l’invite de commande (recherchez CMD dans le menu démarrer sous Windows), tapez cd chemin/vers/node (dans mon cas, cd C:\Program Files\nodejs), entrée, puis npm install ar-drone.

Pour contrôler votre Ar.Drone depuis votre ordinateur, branchez la batterie, attendez 30 secondes et recherchez le ensuite dans vos réseaux WiFi.

WiFi-ArDrone-Connect-211x300 Coder son propre drone et le rendre intelligent avec JavaScript

Contrôlez votre Ar.Drone avec Node.js et NodeCopter

Après avoir installé la bibliothèque NodeCopter et vous être connecté au réseau WiFi, démarrez Node.js et entrez les lignes de commandes suivantes :

var Drone = require("ar-drone");
var Sender = Drone.createClient();

Ces deux lignes permettront à votre programme de contrôler le drone. On se servira ensuite de Sender pour envoyer des instructions à notre engin.

Par exemple, essayez ces deux lignes, l’une après l’autre, pour faire respectivement décoller et atterrir le drone :

Sender.takeoff();
Sender.land();

Attention, l’exécution est instantanée : dès que vous appuyez sur entrée, le drone va décoller. Prévoyez donc une pièce dégagée, et la coque d’intérieur pour ne pas abîmer ni le drone ni les éléments extérieurs.

Vous avez désormais compris à quoi servait la console Node.js : on peut saisir du code directement dedans.

Vous pouvez aussi essayer la commande suivante, pour faire tourner le drone :

javascript">Sender.clockwise(0.5);

Ou carrément lui faire faire un flip :

Sender.animate('flipLeft', 15);

Les scripts pour que le drone soit « autonome »

La console ainsi que tout faire manuellement, c’est bien. Mais automatiser, c’est mieux !

Je vous invite à télécharger Notepad++, bien que ce ne soit pas obligatoire : vous pouvez tout faire au bloc-note, ce petit éditeur de texte minimaliste de Windows !

Rentrons dans le vif du sujet : jusqu’ici, vous codiez avec des commandes dans une console. Maintenant, on va commencer à vraiment coder, c’est-à-dire à créer des scripts : des listes de commandes qui s’exécutent toutes seules, les unes à la suite des autres.

Par exemple, vous voulez que votre drone décolle et que 2 secondes plus tard il fasse un tour sur lui même et que 3 secondes plus tard il atterrisse.

Pour que le programme attende, il faut utiliser Sender.after(temps, function() {}), en mettant le code à exécuter entre les accolades. Dans les accolades, Sender est renommé en this (ce qui veut dire « ce truc là » en anglais) car c’est sur ce Sender qu’on demande au programme d’attendre.

Et, dans notre exemple, on mettrait ça dans Notepad++ (ou le bloc note) :

var Drone = require('../Program Files/nodejs/node_modules/ar-drone');
var Sender = Drone.createClient();
// Sender.takeOff();
Sender.after(2000, function() {
this.clockwise(1.0);
});
Sender.after(3000, function() {
 this.land();
});

Enregistrez ce programme sous le nom de ScriptDrone.js (le nom importe peu, mais il faut que l’extension soit .js) dans un emplacement facilement repérable. Pour l’exemple je vais prendre C:\Drone\.

Save-script-1024x459 Coder son propre drone et le rendre intelligent avec JavaScript

Sauvegarder le script

Vient ensuite le moment de l’exécuter : cela ce fait sous la console Windows (CMD), c’est pour cela qu’il est important de garder un chemin court (plus rapide).

Dans la console Windows, vous devrez écrire node chemin\vers\votre\script.js, et donc dans le cas de l’exemple que je vous ai donné : node C:\Drone\ScriptDrone.js.

Et là, comme par magie, votre drone s’anime !

Pour aller plus loin, vous pouvez apprendre le JavaScript et Node.js sur OpenClassrooms, et aller voir toutes les fonctions disponibles sur le site de NodeCopter.

Coder son propre drone et le rendre intelligent avec JavaScript
Note

Comment empêcher la surchauffe de votre ordinateur (et pourquoi c’est Important)

Voir notre article

Garder votre ordinateur à une température sûre lorsqu’il tourne est important, surtout quand la température monte à l’extérieur. Voici comment s’assurer que votre ordinateur ne surchauffe pas  — et comment résoudre ce problème, si c’est le cas.

About the author

    Baptiste HUTTEAU

    9 comments

    Leave a comment:


    Scroll Up