Node.Js Et Leap Drone
Total Page:16
File Type:pdf, Size:1020Kb
UFR DES SCIENCES Node.js et Leap Drone Procédure d’installation et d’utilisation Jaleed RIAZ 12/13/2013 Ce document a pour but de vous pré senter la dé marche per mettant d’installer et utiliser le paquet Node Package Manager (NPM) et Node.js pour pouvoir interagir avec l’AR drone à l’aide du Leap motion. Sommaire Introdution .......................................................................................................................................... 2 Moteur V8 ....................................................................................................................................... 2 Le modèle non bloquant ................................................................................................................. 2 Procédure d’installation et d’utilisation du paquet ............................................................................ 3 Sous Windows ................................................................................................................................. 3 Sous Linux ........................................................................................................................................ 3 Sous Mac ......................................................................................................................................... 3 Leapdrone-master ............................................................................................................................... 4 Connexion en mode sécurisé WPA2 ................................................................................................... 4 Phase de test ....................................................................................................................................... 5 Erreurs ................................................................................................................................................. 6 Erreur 1 : .......................................................................................................................................... 6 Erreur 2 : .......................................................................................................................................... 6 Erreur 3 : .......................................................................................................................................... 7 1 Introdution Node.js est un environnement côté serveur permettant de programmer du JavaScript sur le serveur, donc en dehors du navigateur. Le langage JavaScript étant toujours utilisé côté client jusque-là, grâce à Node.js, le développement côté serveur permettant de générer des pages webs est maintenant possible sans programmer avec les langages serveur. Node.js remplace donc les langages serveur tel que PHP, Java EE, etc. Il ne s’agit pas là d’un framework mais d’un environnement très bas niveau. Étant donné que le langage JavaScript est basé sur les évènements, de ce fait Node.js l’est aussi. C’est pourquoi, la création d’applications comme : un serveur de chat ou un système d’upload très rapide peuvent tirer profit de cet environnement de développement. La rapidité de Node.js vient du moteur V8 et son fonctionnement non bloquant. Pour en savoir plus sur cet environnement, Node.js dispose d’un site web : http://nodejs.org/ Moteur V8 Le moteur V8 est un outil open source crée par Google dont le rôle est d’analyser et exécuter du code JavaScript très rapidement. Avant la sortie de Chrome, les navigateurs perdaient beaucoup de temps à lire le code JavaScript et à le transformer en langage machine compréhensible pour le processeur. Cependant, le moteur V8 de Google Chrome réutilisé par Node.js fonctionne différemment. Il fait ce qu’on appelle de la compilation JIT ( Just In Time ). Il tranforme le code JavaScript très rapidement en code machine et l’optimise en utilisant des procédés complexes ( code inlining, copy elision, etc ). Le modèle non bloquant Prenons un exemple de programme dont le but est de télécharger un fichier sur Internet, d’afficher ce fichier et ensuite effectuer d’autres tâches. Avec le modèle non bloquant, le programme lance le téléchargement du fichier en question, effectue d’autres actions et une fois le téléchargement terminé, affiche le fichier. Une fonction appelée fonction de callback est appelée pour effectuer les actions (pour notre exemple, la fonction de callback va permettre d’afficher le fichier). NPM est le gestionnaire de paquets de Node.js (équivalent de la commande apt sous linux mais pour les extensions Node.js) permettant d’installer de nouveaux modules (ou paquets) développés par la communauté. De plus, NPM gère également les dépendances des paquets, ce qui signifie que si un module requiert l’installation d’un autre module pour fonctionner, alors NPM le téléchargera automatiquement. NPM dispose d’un site web séparé à Node.js : http://npmjs.org 2 Procédure d’installation et d’utilisation du paquet Sous Windows Rendez-vous à l’adresse suivante pour installer Node.js : http://nodejs.org/download/ Choisissez la version correspondant à votre système d’exploitation. Si vous avez un doute, choisissez la version 32 bits. Néanmoins, vous pouvez télécharger le fichier .exe ou le .msi, le résultat restera le même. Une fois le téléchargement effectué, lancez-le et laissez-vous guider par les étapes. Pour l’utiliser, lancez « Node.js command prompt » : il s’agit d’un interpréteur de commande pour Windows. Remarque : À l’installation de Node.js, le gestionnaire de paquets de Node.js (NPM) a également été installé avec. Sous Linux Pour l’installation sous Linux, il est recommandé d’installer plusieurs autres commandes si celles-ci ne figurent pas dans votre système. Il faudra peut-être télécharger installer les paquets python-software-properties, python, g++ et software-properties-common, pour cela, effectuez la ligne de commande suivante : sudo apt-get install python-software-properties python g++ make sudo apt-get install software-properties-common Ce dernier paquet (sotfware-properties-common) permet d’avoir la commande add-apt- repository, utile pour la suite. Sur un terminal, tapez ces quelques commandes pour installer le paquet nodejs : sudo apt-get install python-software-properties python g++ make sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-cache showpkg nodejs sudo apt-get install nodejs Remarque 2 : Le paquet nodejs installe également le gestionnaire de paquets à savoir NPM. Sous Mac La procédure d’installation est quasiment la même que sous Windows. Il suffit de se rendre sur le site de Node.js, sur la page de téléchargements : 3 http://nodejs.org/download/ Choisissez le .pkg, car celui-ci ouvre un assistant d’installation, facile d’utilisation. Leapdrone -master Afin de pouvoir piloter le drone avec le leap motion, il faut télécharger le paquet correspondant à l’adresse suivante : https://github.com/liebeskind/leapdrone Ensuite, il suffit de décompresser l’archive dans un dossier. Si vous ne souhaitez pas établir une connexion sécurisé sur le réseau de votre drone ou bien si vous manipulez sous Windows, alors vous pouvez passer l’étape suivante et vous reporter à la Phase de test. Cette étape consiste à mettre en pratique les différents paquets et configuration mises au point jusque-là. Connexion en mode sécurisé WPA2 La connexion en mode sécurisé WPA sur le réseau du drone est compatible uniquement sous Linux et Mac. Pour ce faire, rendez-vous à l'adresse suivante pour savoir la procédure d’installation du module : https://github.com/daraosn/ardrone-wpa2 Téléchargez le zip et décompressez-le et rendez-vous dans ce dossier. Effectuez les procédures d'installation comme indiqué sur le projet en ligne github à savoir : script/install Si vous rencontrez une erreur du type : « curl : commande introuvable », reportez-vous à l’erreur n°3. Après avoir suivi les instructions indiquées à la section de l’erreur n°3, relancez la commande ci-dessus. Pour effectuer une connexion sécurisée WPA2, vous devez être connecté au réseau du drone au préalable, et effectuez la ligne de commande suivante : script/connect "<essid>" -p "<password>" -a <address> -d <droneip> Pour avoir de l’aide : script/connect -h 4 Phase de test Pour démarrer le drone, voici les étapes à suivre : 1. Sur votre console, vous devez vous rendre dans le dossier leapdrone-master précédemment extrait. 2. Positionnez votre main au-dessus du leap motion 3. Exécutez la commande suivante sur votre console : node server.js 4. Ensuite, vous devez simuler un clic gauche avec l’index de la main situé au-dessus du leap motion pour faire décoller le drone 5. Pour le diriger, une inclinaison de la main vers la droite, gauche, vers l’avant, ou l’arrière devrait avoir un effet notoire sur le drone dans les directions respectives. 6. Pour l’atterrissage, il s’agit de la même étape que pour le décollage : simulation d’un clic gauche avec l’index de la main situé au-dessus du leap motion Pour en savoir plus sur le mode de pilotage, vous pouvez vous rendre à l’adresse suivante, qui explique brièvement en vidéo le fonctionnement : http://startupdestiny.com/2013/11/19/why-i-hacked-an-ar-drone-with-leap-motion-and- node-js-part-1-of-2/comment-page-1/#comment-149 5 Erreurs Erreur 1 : Si vous rencontrez des problèmes du type « npm http 304 … » pour installer un quelconque paquet, effectuez les lignes de commandes suivantes sur un terminal : rm ~/tmp Ou bien sudo npm cache clear sudo npm install –g <votre paquet> Après avoir effectué l’une des deux méthodes, l’installation du