Articles

Affichage des articles du janvier, 2020

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