Articles

Affichage des articles associés au libellé Ev3Dev2

Créer un serveur Web Lighttpd sur la brique EV3

Image
Pourquoi installer un serveur Web sur la brique EV3 La brique EV3 étant utilisée pour construire des robots à l'aide de briques Lego, la question peut se poser. Mais, OUI, il peut y avoir un intérêt à installer un serveur Web sur la brique. En effet, les robots Lego Mindstorm disposent de nombreux capteurs permettant de collecter des données dans son environnement. Ces données peuvent être exploitées par programmation, ou statiquement, a posteriori. Mais l'existence d'un serveur Web permet Lorsqu'on veut consulter des données collectées par le capteurs en temps réel. Lorsqu'on veut commander un robot à distance. Le serveur Web peut être consulté à distance avec un navigateur et le langage HTML permet de créer des interfaces conviviales. Installation du serveur Web Pré-requis La brique EV3 doit être configurée pour fonctionner avec EV3Dev2 . La brique doit être accessible en SSH via une connexion WiFi .  Choix du serveur Web La version de Li...

Modification du contenu d'une page Web en Python

Image
Dans l'article précédent, un serveur Web avait été créé pour exposer des pages Web sur un réseau domestique. Pages Web que l'on peut consulter sur un autre ordinateur connecté au même réseau avec un simple navigateur en tapant simplement l'adresse IP de la brique comme url. Afficher des pages Web exposées par une brique Lego EV3 ne présente aucun intérêt car les pages Web étant statiques, leur contenu doit être déterminé a priori. Cependant, le langage HTML et les technologies associées (CSS, JavaScript), utilisés pour la construction de celles-ci, permettent de créer des IHM (Interface Homme-Machine) extrêmement conviviales, dépassant de très loin ce que permet l'écran LCD minuscule noir & blanc dont est dotée la brique. De plus, ces données sont consultables à distance sans avoir à courir après le robot, quand celui-ci est mobile, pour tenter d'apercevoir les données collectées par les capteurs utilisés. Encore faut-il pouvoir formaliser ces données dans un...

Créer un serveur Web statique en Python sur la brique EV3

Image
Pourquoi installer un serveur Web sur la brique EV3 La question est légitime. En effet, la brique Lego MindStorm EV3 est utilisée pour construire des robots avec des briques Lego. Autant dire que le concept est plutôt perçu comme un jouet. Cependant, au vu de tous les capteurs et moteurs disponibles, il est possible de construire des robots extrêmement sophistiqués. D'autant qu'il est possible d'y connecter une multitude d'accessoires non Lego pour en étendre les possibilités de base. Malgré tout les données collectées par les capteurs doivent être exploitée en temps réel par le programme, et si l'on veut les consulter on ne peut que les afficher sur un écran LCD minuscule noir & blanc de 178x128 pixels. Encore faut-il courir après le robot avec une loupe si on veut y arriver. Équiper la brique EV3 d'un serveur Web permet, entre autres, de publier des données statiques au format HTML consultables à distance sur un ordinateur à l'aide d'un navi...

Ouvrir une session SSH sur la brique Lego EV3

Image
L'utilisation de la bibliothèque ev3dev2 sur la brique Lego EV3 nécessite de démarrer celle-ci en Linux Debian. Ce système d'exploitation, disponible en téléchargement ici , est installé sur une carte microSD. Le fait d'insérer cet carte dans la fente dédiée à cet usage (sur le coté gauche de la brique EV3) et de redémarrer la brique EV3 va utiliser ce système plutôt que celui installé par défaut dont l'utilisation passe par le logiciel Lego. L'utilisation de ce système Linux Debian permet, entre autres, d'utiliser le langage Python pour programmer des robots. Cependant, il est souvent nécessaire de se connecter en SSH sur la console du système pour procéder à des opérations de mise à jour du système ou pour installer de nouveaux composants de la constellation Linux Debian. Cet article présente deux façons d'ouvrir une session SSH sur la brique EV3 démarré sur ev3dev2 . Adresse IP de la brique EV3 Pour pouvoir se connecter à la brique EV3, il faut...

Un robot EV3 qui parle

Image
Comme évoqué dans l'article traitant de la classe Sound de la bibliothèque ev3dev2 , celle-ci dispose d'une méthode speak() permettant à la brique EV3 de prononcer un texte fourni en paramètre. Methode speak() La méthode speak() utilise le narrateur Linux Debian espeak lancé normalement en ligne de commande. La méthode est déclarée comme ci-dessous  : speak(text, espeak_opts='-a 200 -s 130', volume=100, play_type=0) Les paramètres passés sont les suivants : text est la chaîne de caractères à afficher. espeak_opts  est un paramètre de type chaîne de caractères qui permet de passer les options de la ligne de commande de l'instruction espeak .  volume  est exprimé en % et permet de régler le volume du son. play_type  définit ce que fait le programme pendant que le son est joué. Voici un exemple simple de l'utilisation de cette méthode : #!/usr/bin/env python3 from ev3dev2.sound import Sound HP = Sound() HP.speak("Bonjour tout le mond...

Accéder aux dictionnaires de musique de la classe Sound

Image
Comme vu dans l'article intitulé « Un robot MindStorm EV3 musicien », la méthode play_song() de la classe Sound utilise deux dictionnaires Python, _NOTE_FREQUENCIES et _NOTE_VALUES , respectivement utilisés pour ranger les données relatives aux fréquences et aux durées des notes de musique. Malheureusement, ces deux dictionnaires ne sont pas accessibles à partir des instances de la classe Sound . En effet, le caractère de soulignement, en langage Python, indique que la variable est déclarée Protected . Cette syntaxe supprime l’accès aux variables d'une classe à partir des instances pour empêcher un usage non approprié de celles-ci et obliger le programmeur utilisant la classe de ne passer que l'interface Public prévue par celle-ci. En revanche, les variables Protected restent accessibles à partir des classes dérivées. L'astuce, pour permettre un accès à ces dictionnaires, consiste donc à créer une nouvelle classe MySound en dérivant la classe Sound , pour exposer c...

Un robot MindStorm EV3 musicien (en Python)

Image
Généralités sur la musique électronique Un son est une vibration. La note dépend de la fréquence émise. Pour synthétiser une note en électronique, on utilise un séquenceur. C'est un composant électronique qui génère un signal ondulatoire selon une fréquence donnée. En informatique, il existe des séquenceurs suffisamment  précis pour être utilisés dans la fabrication d’instruments de musique. Chaque ordinateur moderne est équipé d'un séquenceur MIDI capable de moduler le signal pour imiter tous les instruments de musique et même de superposer plusieurs signaux pour simuler tout un orchestre. Ces composants sont toutefois limités musicalement. Le séquencement lui-même n'est pas instantané. Le fraction infime de temps, qui dépend de la qualité des composants électroniques, induit une légère imprécision sur les fréquences générées, surtout dans les hautes fréquences qui approchent la fréquence de l'horloge qui cadence le système électronique. Par ailleurs, certaines...