Robots pompiers

De Learning Lab Environnements Connectés
Révision datée du 5 avril 2022 à 17:50 par Amoutaa (discussion | contributions) (Prise en main des plateformes)
Sauter à la navigation Sauter à la recherche

Présentation

Objectifs pédagogiques

Les objectifs pédagogiques de l'option Robotique sont les suivantes :

  • découvrir la robotique en s'appuyant sur une démarche pratique et concrète ;
  • savoir mettre en œuvre des capteurs analogiques et numériques ;
  • acquérir des notions sur la commande des moteurs et leur asservissement ;
  • maîtriser les spécificités des interfaces de puissance à base de commutation (hacheurs, pont en H) ;
  • prendre conscience des difficultés pratiques et technologiques de mise en œuvre de robots ;
  • mettre en oeuvre une démarche de reverse-engineering pour la prise en main du matériel ;
  • savoir programmer des scénarios de comportement prenant en compte l’environnement ;
  • bonne pratique de programmation C ou Python : commentaires, noms intelligibles de variables ou fonctions, utilisation d'un dépôt Git...
  • méthodologie de gestion de projet, en groupe : gestion des ressources, gestion du temps, plan de tests...
  • s’initier à une démarche de Design Thinking pour la conception de projet.

Modalités d'évaluation

Les modalités d'évaluation du module seront :

  • avancée du projet : intérêt porté au projet, travail pendant et en dehors des séances, efficacité du travail en groupe, utilisation des outils demandés...
  • utilisation des outils et notamment mise à jour du Wiki ;
  • présentation + démonstration technique finale du projet ;
  • examen écrit (QCM, sans document) - jeudi 12 mai ;

Outils à utiliser

  1. wiki : explication et documentation du projet ;
  2. projet GitLab (serveur de TSE) : sauvegarde et suivi de version des différents code ;
  3. ToDoList avec les missions de chaque étudiant, au fur et à mesure des séances ;

Missions des robots pompiers

Les robots pompiers devront réaliser les actions suivantes :

  1. départ de la base du robot 1 ;
  2. exploration de l'environnement en évitant les obstacles ;
  3. évaluation des paramètres environnementaux : taux de CO2, température, rayonnement UV...
  4. si détection de paramètres anormaux, communication vers les robots 2 et 3 ;
  5. cheminement des robots 2 et 3 jusqu'au point de sinistre, à partir des informations fournies par le robot 1 ;

En fonction de l'avancée du projet, d'autres types d'action pourront être ajoutés.

Décomposition initiale du travail

Première partie :

  1. S'approprier les plateformes (Maître et esclave) : batteries, test moteurs, communication UART entre PC et Teensy
  2. Programmation Raspberry + Caméra
  3. Définir précisément quels capteurs utiliser (en fonction du matériel mis à disposition)

Prise en main des plateformes

Alimentation

Le robot maitre

Les robots esclaves ont deux sources d'alimentation :

  1. La partie logique est alimentée par une pile 9V au travers d'une carte TRACO POWER (4.5-9V -> 3.3V). Celle-ci alimente la carte Teensy et la carte Sparkfun ESP32 Thing.
  2. La partie puissance est alimentée par un ensemble de 8 piles Ni-Mh, qui délivre 12V. Elle est connectée au PCB à l'aide du connecteur d'alimentation situé dans l'angle inférieur gauche.

Les deux parties sont séparées sur le PCB à l'aide du cavalier placé du côté du coté du connecteur d'alimentation.

Déplacement du robot

Programmation carte Raspberry Pi 3

La première étape consiste à installer un système d'exploitation sur la Raspberry Pi 3 :

  1. Téléchargement de l’image sur le site de Raspbian
  2. Utilisation de Balenaetcher pour flasher l’image sur la carte S
  3. Premier boot du Raspberry Pi : configuration initiale

Tests de la caméra et essais initiaux :

  1. Mettre à jour le système et activer la caméra avec le menu "Configuration du Raspberry Pi"
  2. Premier tests en local avec : raspistill -o photo.jpg (enregistrement d’une photo avec retardateur de 5sec), puis raspivid -o video.h264 (enregistre une vidéo)
  3. Premier stream avec : raspivid -o - -t 0 -w 800 -h 600 -fps 12 | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8080/}' :demux=h264 sur Raspberry, et avec VLC sur PC : menu Ouvrir un flux réseau, y mettre : rtsp://@IPpi:8080/

Premiers résultats :

streaming de la caméra sur un PC connecté au même réseau wifi