Articles

Exécuter la boucle loop du robot dans une tâche en parallèle en Python

Dans les articles précédents, à partir du moment où le robot est lancé par l'invocation de la méthode run() , le seul moyen de l'arrêter est de procéder à une interruption brutale du programme, soit en cliquant le petit carré rouge de la barre de debug de VSCode, soit en cliquant le bouton retour de la brique EV3. Pourtant il est légitime de vouloir contrôler l'arrêt du robot par programmation. Le présent article, présente une astuce pour conserver le contrôle du robot en exécutant la boucle sans fin dans une tâche en parallèle. Description du problème Lorsqu'on examine le programme de l'article intitulé « Programmation objet d'un robot MindStrom en Pyhton », la cause évidente de l'impossibilité d'interrompre le programme est la boucle sans fin while True: . En effet, la constante True de Python satisfait définitivement la condition de l'instruction while . Et celle-ci boucle à l'infini. Intuitivement, il est facile de remplacer la ...

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