Articles

Affichage des articles associés au libellé InfraredSensor

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