Articles

Affichage des articles du novembre, 2019

Programmation d'un robot MindStorm par héritage d'une classe de robot existante en Python

Image
L'intérêt de la programmation objet est d'utiliser l'héritage pour créer une nouvelle classe à partir d'une classe de base en ne programmant que ce qui constitue la différence entre les deux classes. Dans le présent article, on va créer une nouvelle classe de robot en remplaçant la classe MoveTank qui commande les moteurs animant les chenilles, par la classe MoveSteering . Il est évident que l'utilisation de la classe MoveSteering pour commander un robot à chenille à l'aide de la télécommande infra-rouge ne présente pas un intérêt pratique. En effet cette classe a été conçu pour un robot doté d'une commande de direction dont on peut gérer progressivement la valeur par un paramètre steering qui peut varier de -100 (complètement à gauche) à +100 (complètement à droite) en passant par 0 (tout droit). Ce qui nécessite un capteur supplémentaire de type potentiomètre actionné par un volant par exemple. En revanche cela va permettre d'illustrer le pr...

Programmation objet d'un robot MindStrom en Python

Image
Bien que le langage python permette une programmation linéaire, il est d'une bonne pratique de structurer le programme en classes d'objet. Car le langage Python est un puissant langage à objet. L'API (Application Programming Inteface) ev3dev2 est elle-même architecturée en classes d'objet. Utiliser les classes python pour programmer un robot permet de réutiliser celle-ci pour y ajouter ou modifier des fonctionnalité tout en conservant la classe initiale. Le présent article reprend le programme présenté sous forme linéaire dans l'article intitulé « Pilotage d'un robot à chenille avec la télécommande infra-rouge » pour le structuré dans une classe Python. Programmation Dans l'IDE VSCode, créer un nouveau fichier nommé remoteir2.py . Codage #!/usr/bin/env python3 #1# from ev3dev2.motor import MoveTank, OUTPUT_B, OUTPUT_C from ev3dev2.sensor.lego import InfraredSensor from ev3dev2.sensor import INPUT_4 #2# class IRControlledTank():    ...

Pilotage d'un robot à chenille avec la télécommande infra-rouge en Python

Image
Cet article présente un programme Python qui permet de piloter un robot à chenille à l'aide de la télécommande infra-rouge Lego. Le robot utilisé est construit sur une base standard de robot à chenille telle que présentée dans la documentation Lego MindStorm EV3. Quelques modifications ont été apportées pour permettre, d'une part d'utiliser la batterie rechargeable qui est plus épaisse que l'espace embarquant les piles R6 normales, et d'autre part pour libérer un peu d'espace pour connecter une clef WiFi sur le port USB placé sur le coté de la brique et dédié à cet usage. Le construction de ce robot est décrite dans l'article intitulé « Construction du robot Explorateur ». Le moteur contrôlant la chenille gauche est connecté sur le port B, celui contrôlant la chenille droite sur le port C. Le capteur infra-rouge est connecté sur le port 4. La télécommande infra-rouge du Lego MindStorm est utilisé pour contrôler le robot. Celle-ci doit être c...

Connecter Visual Studio Code à un robot MindStorm EV3 avec ev3dev-browser

Image
Pour développer des programmes avec Visual Studio Code en Python, puis les déployer sur des robot MindStorm, il faut établir une connexion entre Visual Studio Code et la brique EV3. Pré-requis Pour la brique Lego EV3 L'environnement EV3DEV2 doit être installé sur la brique EV3. Pour cela, il suffit de démarrer la brique EV3 en y insérant une carte microSD sur laquelle a été flashée le système EV3DEV2 comme indiqué sur le site ev3dev.org . Suivre les instructions sur ce site. La brique EV3 doit être connectée en réseau avec l'ordinateur sur lequel VSCode est utilisé. La connexion peut être effectuée soit par un câble USB, soit en WiFi, soit en BlueTooth. L'adresse IP affichée sur l'écran LCD de la brique est celle qu'il faudra utiliser dans VSCode. Consulter les articles suivants pour établir et tester une telle connexion : Connecter ev3dev2 à Internet via le cable USB. Connecter ev3dev2 à Internet en WiFi. Pour l'ordinateur Le logiciels suiva...

Construction du robot Explorateur

Image
Pour donner un support aux divers articles de ce blog, voici un robot construit avec le kit Lego MindStorm EV3. La base du robot est une base classique d'un robot tank telle que présentée dans la documentation du kit. Quelques différences sont néanmoins à signaler : Une entretoise a été ajoutée aux étapes 9 et 10 de la construction. Ceci afin de pouvoir utiliser la batterie rechargeable de la brique EV3 qui est plus épaisse de 1U par rapport au boitier des piles standard. Dans le même ordre d'idée, la brique EV3 a été déplacée de 1U vers l'avant afin de libérer la place pour l'insertion d'un dongle Wifi (type Edimax). Le capteur infra-rouge été maintenu à sa place initiale. Cependant, situé sur l'arrière du robot, il n'est pas utilisé pour la détection d'obstacle. Sa présence ne se justifie, en fait, que pour l'exercice utilisant la télécommande. Un capteur ultra-son a été ajouté au modèle. Celui-ci a l'avantage d'être beaucoup plus...

Connecter ev3dev2 à Internet en WiFi

Image
Pour pouvoir configurer ev3dev sur la brique EV3, mais aussi y télécharger et exécuter des programmes, celle-ci doit être connectée à l'ordinateur. La connexion filaire par un câble USB n'est pas très pratique, car le port USB, situé à coté des ports d'entrée A à D,  n'est pas forcément facilement accessible selon la complexité de la construction du robot. La brique EV3 présente sur le coté un autre port USB sur lequel peut être connecté une clef WiFi. Cette dernière permet à la brique EV3de se connecter sans fil à l'ordinateur. Le présent article explique comment établir une connexion sans fil entre la brique EV3 et l’ordinateur. Configuration de la connexion WiFi sur la brique EV3 Pré-requis La brique EV3 doit être démarrée sous ev3dev après avoir inséré la carte microSD dans la fente de la brique dédiée à cet usage. Une clef Wifi doit être connectée sur le port USB sur le coté de la brique (ne pas confondre avec le port mini-USB utilisé habituellemen...

Connecter ev3dev2 à Internet via le cable USB

Image
Lorsque la brique EV3 du Lego MindStorm est démarré sous ev3dev2 (avec une carte microSD), la connexion en réseau de la brique n'est pas aussi immédiate que lorsqu'elle démarre avec le firmware par défaut. Relier l'ordinateur et la brique par le câble n'est pas suffisant. Le présent article explique comment installer et configurer la brique EV3 et l'ordinateur pour établir une connexion fiable entre les deux. Installation L'installation se fait d'une part sur l'ordinateur, et d'autre part sur la brique EV3. Sur l'ordinateur : Ouvrir la fenêtre Périphériques et imprimantes dans le menu Démarrer de Windows. Dans la fenêtre : Connecter la brique sur un port USB du PC. Un nouveau périphérique Périphérique d'entrée USB apparaît. Faire un clic-droit pour lancer la commande Propriétés pour vérifier qu'il s'agit bien de la brique EV3. Puis fermer la fenêtre de propriétés. Refaire un clic-droit pour lancer la comma...

Installer les modules EV3DEV2 sur Python

Image
Le développement d'un programme en langage Python, pour faire fonctionner un robot Lego MindStorm EV3, se fait en général avec l'IDE Visual Studio Code . Outil téléchargeable gratuitement, il est couramment utilisé pour les applications destinées aux Nano Ordinateurs (Arduino, Raspberry Pi) et, entre autres,  aux programmes pour la brique EV3 de Lego. De nombreux modules de toutes sortes y sont installables. Malheureusement, lorsque l'on importe des modules ev3dev dans le programme Python, leur référence apparaît soulignée en erreur dans VSCode. Ce qui empêche de compiler et de télécharger le programme sur la brique EV3 pour le tester. La cause de ce problème est que les modules Python ev3dev ne sont pas connus en standard par l'interpréteur. L'objet de cet article est de décrire les opérations à effectuer pour installer ces modules. Pré-requis Pour la brique Lego EV3 L'environnement EV3DEV2 doit être installé sur la brique EV3. Pour cela, il suffit...