Articles

Configurer VSCode pour programmer et déboguer Python sur PiStorms

Image
PiStorms est un composant qui permet de programmer, sur un Raspberry Pi, des robots basés sur les moteurs et les capteurs Lego. La programmations d'applications robotiques sur PiStorms peut s'effectuer avec les outils de programmation habituels disponibles sur le Raspberry Pi, soit directement en connectant sur celui-ci un clavier et un écran (ce qui n'est pas très pratique pour des applications embarquées sur un robot), soit en utilisant une session VNC à distance. Mais une autre solution consiste à utiliser un IDE plus performant que les outils embarqués, comme Visual Studio Code. Sur le site ev3dev.org , une version de l'API Ev3Dev2, déjà utilisées dans plusieurs articles de ce blog pour programmer la brique Lego EV3 en Python, dédié à PiStorm est disponible en téléchargement. Malheureusement, cette version ne semble pas aboutie est comporte de nombreux bogues : Les capteurs ne sont pas reconnus automatiquement. Il es nécessaire de les configurer explicitem...

PIStorm — Un Raspberry Pi pour piloter un robot Lego MindStorm

Image
Le PiStorm-v2 est un kit permettant de piloter un robot MindStorm avec un micro-contrôleur Raspberry PI en lieu et place de la brique EV3 ou NXT. Ce kit offre un réel avantage dans le sens ou le processeur utilisé est considérablement plus puissant que sur les briques originales tout en permettant la connexion des moteurs et des capteurs Lego. Ce qui permet d'envisager des applications beaucoup plus performantes.  Voici une documentation en français pour assembler le PiStorm-v2. C'est la traduction trouvée sur le site du constructeur http://www.mindsensors.com/blog/how-to/pistorms-frame-assembly , agrémentée de remarques personnelles. Le kit PiStorm-v2 Après déballage, le kit contient les éléments présentés dans la figure ci-dessous. Afin de désigner chaque élément, une lettre leur a été attribuée. En ce qui concerne le Raspberry Pi ( H ), Il s'agit d'un modèle 3B+. Il ne faut absolument pas coller des radiateurs de dissipation de chaleur sur les processeurs. Il...

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

Embarquer un serveur Web dans un robot en Python

Image
Dans un article, la modification d'une page Web dans un script Python ait été présentée. Mais celle-ci ne pouvait être consultée que si un serveur Web avait été démarré sur la brique EV3 dans une session SSH. Dans cet article, le serveur Web sera embarqué sur le robot et démarré avec celui-ci. Et, évidemment, arrêté lorsque que le robot lui-même est arrêté. Comme tous les scripts Python qui pilotent un robot MindStorm, le script présenté ici est basé sur les classes Robot et RobotTask du module robot . Ce module fournit un FrameWork commun à tous les programmes de robotique basée sur Lego MindStorm EV3 où les parties importantes du programme sont constituées de tâches parallèles managées. Le module robot et son utilisation ont été présentés dans une série d'articles de ce blog : Squelette d'un programme de robotique (I - La classe Robot ) Squelette d'un programme de robotique (II - La classe RobotTask ) Squelette d'un programme de robotique (III - La cl...

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