Robots pompiers

De Learning Lab Environnements Connectés
Révision datée du 6 avril 2022 à 12:17 par Amoutaa (discussion | contributions) (Alimentation)
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 :
  1. Il possède un convertisseur de tension 9-18 à 5VDC. Il s'alimente à l'aide d'un pile de 12V relié au convertisseur.
  2. Les moteurs fonctionnent jusqu'à un maximum de 7.2V, ils consomment chacun 500mA
  • 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.

Programmation des cartes

  • ESP32 :
- Ajouter le support de la carte dans l'IDE Arduino en insérant ce lien dans Fichier → Préférences → URL de gestionnaire de carte supplémentaire : https://dl.espressif.com/dl/package_esp32_index.json
- Dans Outils → Type de carte → Gestionnaire de cartes, rechercher et installer ESP32
- Dans Outils → Type de carte sélectionner la carte ESP32
  • Teensy :
- ToDo

Déplacement du robot

  1. Téléverser ce code fourni sur la carte teensy.
  2. Téléverser un programme vide dans l'ESP32 thing
  3. Connecter les pin RX de la teensy sur le pin RX de l'ESP32, respectivement pour TX. En effet, les deux cartes sont branchées en parallèle, la carte ESP32 étant logiquement transparente, elle nous permet simplement d'envoyer des commandes série sur la teensy
  4. Connecter un pc à la carte ESP32 via le port micro USB
  5. Ouvrir une console série (par exemple la série arduino) sur le port concerné et tester les moteurs avec les commandes suivantes :
    - am1 pour démarrer le moteur 1, (resp. am2, ...)
    - st pour stopper tous les moteurs
  6. Tester les mouvements entiers :
    • Robot 4 moteurs :
    - ToDo
    • Robot 3 moteurs :
    - amXXX pour définir la direction XXX (en degrés) de déplacement du robot
    - ho3 pour avancer dans la direction définie précédemment


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