Robots jardiniers
Sommaire
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 œuvre une démarche de reverse-engineering pour la prise en main du matériel ;
- mettre en œuvre une démarche DD-RSE, afin d'évaluer la réparabilité des plateformes robotiques utilisées ;
- 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 et notamment mise à jour du Wiki ;
- présentation + démonstration technique finale du projet ;
- examen écrit (QCM, sans document) - jeudi 4 mai ;
Outils à utiliser
- wiki : explication et documentation du projet ;
- projet GitLab (serveur de TSE) : sauvegarde et suivi de version des différents code ;
- ToDoList avec les missions de chaque étudiant, au fur et à mesure des séances ;
Missions des robots jardiniers
Les robots jardiniers devront réaliser les actions suivantes :
- départ de la base du robot 1 ;
- exploration de l'environnement en évitant les obstacles ;
- évaluation des paramètres environnementaux : lumière, UV, température, humidité, humidité du sol\ldots
- si détection de paramètres propices, communication vers les robots 2 et 3 ;
- cheminement des robots 2 et 3 jusqu'au point de sinistre, à partir des informations fournies par le robot 1 ;
- action des robots 2 et 3 au point cible : arrosage, forage du sol\ldots
Décomposition initiale du travail
Pour le début de ce projet, nous avons décidé de décomposer le groupe en plusieurs sous-groupes de travail, chacun constitué d'un chef. Egalement, nous avons décidé d'inclure un chef global de groupe qui permettra de faciliter le communication entre les groupes en gardant un œil sur les différents groupes. Ces groupes sont les suivants:
- Groupe 1: Robot 1 (robot détecteur équipé de plusieurs capteurs permettant de créer une carte à suivre pour les autres robots): 6 étudiants
- Groupe 2: Robot 2 (robot arroseur qui suivra le chemin créé par le robot 1): 3 étudiants
- Groupe 3: Robot 3 (robot planteur qui suivra le chemin créé par le robot 1): 3 étudiants
Cette composition sera très vite amenée à changer
Algorithmes des robots
Choix des capteurs
Afin de pouvoir mesurer au mieux les caractéristiques du terrain pour déterminer où il devra planter et où il devra arroser, notre robot aura besoin de plusieurs capteurs:
- Un capteur à UV pour la luminosité
- Un capteur d'humidité de l'air
- Un capteur de température
- Un capteur pour mesurer d'humidité du sol
- 4 capteurs de proximité à ultrason pour détecter les obstacles
Capteur UV
Capteur humidité et température
Capteur humidité du sol
Après étude, nous avons choisi d'utiliser le capteur "Grove moisture sensor".
Sa forme de fourche lui permet de se planter dans le sol plus facilement. Son fonctionnement est simple, plus le sol est humide, plus le courant pourra passer entre les 2 dents de la fourche
| Etat du sol | Valeur mesurée par le capteur |
|---|---|
| Terre sèche | 300 |
| Terre sèche avec herbe | 350 |
| Terre avec herbe (pluie la veille) | 600 |
| Terre sèche après avoir été humidifiée | 650 |
| Terre trempée | 720 |
Ces mesures nous permettent alors de déterminer les valeurs pour lesquelles le sol a besoin d'être arrosé ou non. On détermine alors que lorsque le sol a besoin d'être arrosées, nos valeurs de retour seront inférieures à 400, et lorsque le seuil a été arrosé récemment, nos valeurs seront supérieures à 400.
On décide alors de fixer le seuil du capteur à 400 .
Capteur de gouttes de pluie
Choix des cartes
Robot 1
Ce robot utilise les cartes de développement suivantes : Arduino Due et Teensy.
Arduino Due :
Nous avons choisi une carte Arduino car nous trouvons que la programmation est plus facile.
Nous avons pris le modèle Due car la Arduino Uno ne possédait pas assez de ports d'interruptions (seulement 2).
L'inconvénient est que la carte est grande par rapport à notre robot.
Teensy :
Premièrement, nous avons choisi la Teensy car c'est la carte utilisée par les années précédentes. Ainsi, nous disposons de tous les codes pour faire tourner les moteurs.
Ses avantages sont sa polyvalence et sa petite taille.
Robot 2
Ce robot utilise les cartes de développement suivantes : Esp32 Thing et Teensy.
Esp32 Thing :
Nous avons choisi cette carte car elle possède une communication BLE.
Teensy :
Nous avons choisi la Teensy pour les mêmes raisons que précedemment.
Prise en main des plateformes
Alimentation
- Le robot maître :
- Il possède un convertisseur de tension 9-18 à 5VDC. Il s'alimente à l'aide d'une batterie de 9.6V composée de 8 cellules Ni-Mh, la tension maximale est d'environ 10.7V.
- Les moteurs fonctionnent jusqu'à un maximum de 7.2V, ils consomment chacun à 0.5A en fonctionnement à vide et jusqu'à 1.3A en fonctionnement nominal (à un couple de 2 kgf-cm) : Documentation du moteur
- Les robots esclaves ont deux sources d'alimentation :
- 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.
- La partie puissance est alimentée par un ensemble de 8 piles Ni-Mh, qui délivre 9.6V. Elles sont connectés au port Pvex1 (et à la masse juste en dessous) d'après cette représentation du PCB.
- Les deux parties sont séparées sur le PCB à l'aide du cavalier placé du côté du coté du connecteur d'alimentation.
Robot 1
Ce robot utilise les cartes de développement suivantes : Arduino Due et Teensy.
Arduino Due :
Nous avons choisi une carte Arduino car nous trouvons que la programmation est plus facile.
Nous avons pris le modèle Due car la Arduino Uno ne possédait pas assez de ports d'interruptions (seulement 2).
L'inconvénient est que la carte est grande par rapport à notre robot.
Teensy :
Premièrement, nous avons choisi la Teensy car c'est la carte utilisée par les années précédentes. Ainsi, nous disposons de tous les codes pour faire tourner les moteurs.
Ses avantages sont sa polyvalence et sa petite taille.
Robot 2
Ce robot utilise les cartes de développement suivantes : Esp32 Thing et Teensy.
Esp32 Thing :
Nous avons choisi cette carte car elle possède une communication BLE.
Teensy :
Nous avons choisi la Teensy pour les mêmes raisons que précedemment.