Articles

Affichage des articles associés au libellé Lego MindStorm EV3

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

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

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():    ...

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