Train de véhicules : Différence entre versions

De Wiki de Projets IMA
(Liste de matériel)
(Liste des tâches)
Ligne 146 : Ligne 146 :
 
==Liste des tâches==
 
==Liste des tâches==
  
* Etudier la partie puissance
+
* Étudier la partie puissance
 
** Déterminer la source d'énergie
 
** Déterminer la source d'énergie
** Régulateur 6 V pour alim driver moteur
+
** Régulateur 6 V pour alim driver moteur ?
 
** Choix du driver moteur
 
** Choix du driver moteur
* Etudier la communication infrarouge
+
* Étudier la communication infrarouge
** Circuit d'émission: LED IR + resistance
+
** Circuit d'émission: LED IR + résistance
** Circuit réception: Phototransistor IR + resistance
+
** Circuit réception: Phototransistor IR + résistance
 
** Déterminer la portée du signal ?
 
** Déterminer la portée du signal ?
** Etudier l'influence de la lumière ambiante ?
+
** Étudier l'influence de la lumière ambiante ?
** Etudier la directivité du signal émis ? De la détection ?
+
** Étudier la directivité du signal émis ? De la détection ?
 
** En déduire la disposition des détecteurs
 
** En déduire la disposition des détecteurs
 
** Programmer cette communication sur Arduino
 
** Programmer cette communication sur Arduino
* Etude de l'ESP8266
+
* Étude de l'ESP8266
 
** Nombre de GPIOs disponibles
 
** Nombre de GPIOs disponibles
 
** Comment coder ?
 
** Comment coder ?
 
* Développement d'un code PID numérique
 
* Développement d'un code PID numérique
 
** Sur IDE, possibilité de faire une classe PID
 
** Sur IDE, possibilité de faire une classe PID
** En code c, une librairie
+
** En code C, une librairie
  
 
==Répartition du travail==
 
==Répartition du travail==

Version du 4 février 2016 à 09:43


Cahier des charges

Présentation générale du projet

L'objectif de ce projet est de développer une douzaine de robots mobiles capables de se suivre afin de former un train de véhicules. Le véhicule de tête sera téléguidé par WiFi, alors que les autres suivront le véhicule de devant de façon autonome.

Les robots seront des robots roulants à deux roues. Le corps du robot sera monté à partir de châssis à bas coût: les 2WD Robot Car chassis.

Texte alternatif
2WD Robot Car Chassis

Ce châssis comprend déjà deux moteurs 6V, deux roues et un support de 4 piles 1.5V. Il faudra ajouter deux odomètres, un driver de puissance pour les moteurs, ainsi qu'un microcontrôleur. Le véhicule de tête sera commandé par un micro-contrôleur avec WiFi intégré de type ESP8266. Les autres par un Arduino Uno. Le véhicule de tête se comportera comme un point d'accès WiFi et implantera un mini-serveur Web pour permettre le contrôle via un smartphone ou un ordinateur.

Chaque véhicule possède un numéro d'identification N, et doit suivre celui de numéro N-1. Pour cela, il doit détecter et identifier un véhicule dans une zone définie. Le véhicule à suivre émet des ondes infrarouges modulées par son numéro d'identification, donc chaque robot émettra à une fréquence différente. Un capteur infrarouge doit être installé à l'avant du robot suiveur afin de récupérer ces informations tandis que l’émetteur IR sera situé à l'arrière du robot. Le suivi se fera à une distance prédéfinie. Le robot suiveur sera équipé d'un capteur ultrason pour asservir sa distance avec le véhicule suivi. Il faudra que l'arrière des véhicules soit bien plan pour que le télémètre ultra-son puisse prendre une mesure fiable.

Un véhicule suiveur doit tourner sur lui-même pour détecter les balises IR. Si une balise est détectée, on tente de l'identifier. S'il s'agit de la bonne balise, on commence la poursuite, sinon on continue à chercher les balises. Tant que la bonne balise est dans le champ de vision, il faut la garder le plus au centre. Plusieurs capteurs IR seront utilisés pour assurer la bonne direction du robot. La vitesse est régulée par rapport à la distance retournée par le télémètre. Nous utiliserons un régulateur PID pour limiter les oscillations en vitesse des robots.

Train de robots

Liste de matériel

Matériel Quantité requise Quantité disponible A commander Commentaires
Chassis 2WD 4 4 0 Corps + motoreducteurs 6V + roues + odomètres
Piles / batteries 4x4x1.5V Suffisamment 0
Arduino Uno 3 3 0
ESP8266 1 1 0
LED IR 20 0 20 RS [1], angle de diffusion : 130°, longueur d'onde : 880nm
Phototransistors IR 20 0 20 RS [2], angle de sensibilité : 50°, gamme spectrale de sensibilité : 740-1070nm
Ultrasons SR04 3 3 0
Drivers moteur Pololu 1 0 1 GoTronic [3]
Drivers moteur TB6612FNG 3 0 3 Mouser [4]
Boutons poussoirs 4 4 0
LEDs couleur 10 0 10 RS [5]
Résistances 220 Ohms CMS 6 0 6 Mouser [6]
Résistances 470 kOhms CMS 20 0 20 Mouser [7]
Fils m-m 1 lot de 65 0 1 lot de 65 Farnell [8]
Capacités 10µF CMS 10 0 10 Mouser [9]
Capacités 0.1µF CMS 10 0 10 Mouser [10]
Embases CI 40 contacts 1 rangée 4 0 4 RS [11]
Borniers à vis 15 0 15 Farnell [12]
Cartes électroniques 3 0 3 A faire nous-même

Liste des tâches

  • Étudier la partie puissance
    • Déterminer la source d'énergie
    • Régulateur 6 V pour alim driver moteur ?
    • Choix du driver moteur
  • Étudier la communication infrarouge
    • Circuit d'émission: LED IR + résistance
    • Circuit réception: Phototransistor IR + résistance
    • Déterminer la portée du signal ?
    • Étudier l'influence de la lumière ambiante ?
    • Étudier la directivité du signal émis ? De la détection ?
    • En déduire la disposition des détecteurs
    • Programmer cette communication sur Arduino
  • Étude de l'ESP8266
    • Nombre de GPIOs disponibles
    • Comment coder ?
  • Développement d'un code PID numérique
    • Sur IDE, possibilité de faire une classe PID
    • En code C, une librairie

Répartition du travail

Avant le début du projet, nous avons étudié les objectifs de celui-ci, imaginé et identifié quelques solutions techniques et établi une première liste de matériel.

Lundi 14-16h Mercredi 14-18h jeudi 10-12h
Semaine 4 25/01: Organisation du projet 27/01: Etude préalable de l'IR 28/01: Liste de matériel
Semaine 5 01/02: Finalisation de la liste de matériel 03/02: Liste définitive du matériel, test des Pololu 04/02:

Avancement du Projet

Travaux Avancement Commentaires
Etude préalable de la communication infrarouge En cours Montages d'émission et de réception déterminés
 émission: Puissance délivrée par Arduino suffisante, LEDs grande directivité nécessaires (130°)
 réception: Bonne sensibilité, reste à définir la répartition sur le robot
 influence relativement importante du bruit IR ambiant, prévoir un "chapeau"
Etude de l'alimentation Fait Deux solutions confrontées:
 Alim 9V (6x1.5V) et linéariseur 6V
 Alim 6V (4x1.5V) directe --> Solution retenue pour sa simplicité. Etude fonctionnelle à prévoir 
Electronique de puissance En cours Utilisation de drivers moteur Pololu TB6612FNG
Montage général A faire
Prise en main de ESP8266 A faire
Gestion informatique de la communication infrarouge A faire
Asservissement PID numérique pour déplacements A faire
Pilotage du robot de tête par WIFI A faire

1: Étude de la communication infrarouge

Émission

Nous déterminons ici le schéma d'émission infrarouge:

Montage émetteur

La tension de commande de ce montage sera délivrée par un pin numérique de l'Arduino. Celui ci accepte un courant max de sortie de 30mA. Nous fixons donc le courant dans le montage à environ 20mA afin de conserver une bonne puissance d'émission sans risquer d'endommager l'Arduino.

On a Ud = 1V,Ve = 5V, donc Vr = 4V. Nous avons Ir =\frac{Vr}{R}, en choisissant R à 220 Ohms, nous obtenons un courant de 18mA.

Afin que le signal infrarouge puisse être capté le mieux possible par un véhicule suiveur, nous choisissons d'émettre le signal avec une directivité très large. Les LEDS IR que nous avons sélectionnées ont donc un angle de diffusion de 130°.

Réception

Nous déterminons ici le schéma de réception infrarouge:

Montage récepteur

La tension au collecteur du transistor est proportionnelle à l'intensité IR captée par le phototransistor. La valeur de la résistance de pull-up permet de régler le gain du montage. Celui ci doit rester raisonnable afin de rejeter le bruit ambiant, et suffisant pour capter le signal utile même à bonne distance. Nous avons expérimentalement déterminé R à 470 kOhms. Néanmoins le bruit ambiant représente toujours un partie non négligeable du signal (rapport S/B ~ 2). Ce bruit étant principalement issu de l'éclairage, nous prévoyons de positionner une protection opaque au dessus de chaque récepteur.

Cette tension sera lue sur un convertisseur Analogique/Numérique de l'Arduino. Nous déterminerons ensuite une valeur seuil en dessous de laquelle on considère l'absence de signal IR, et au dessus de laquelle on considère qu'un signal est reçu.

Nous choisissons cette fois-ci une directivité restreinte pour la réception Infrarouge. L'objectif étant de situer le robot suivi, plusieurs récepteurs sont placés à l'avant. En fonction du ou desquels reçoivent le signal, il sera possible de connaitre la position approximative du robot suivi. Nous avons donc sélectionné des récepteur dont l'angle de détection est d'environ 50°.

Voici un premier schéma de disposition des récepteurs à l'avant du robot:

//Faire schéma

La position de l'émetteur sera déterminé par quel(s) récepteur(s) reçoivent le signal émis. En fonction de cette position, le robot suiveur sera commandé de façon à suivre le plus précisément possible le robot de tête.

2: Étude de l'alimentation et de l'électronique de puissance

  • Besoins moteur
    • Tension max
  • Choix de la source de tension (piles 4x1.5V ou 9V)
  • Nécessité du linéariseur 6V
  • Choix des hacheurs moteur

3: Montage général

  • Robot de tête
  • Robots de queue

4: Programmation

  • ESP8266
    • Programmation c ou IDE ?
    • Prise en main
  • Application de contrôle
    • Définir un support (Android, iOS, page web, c)
    • Coder!
  • Arduino
    • Affichage ID
    • Communication IR
    • Fréquencemètre numérique
    • Ultrasons SRF04
    • PID moteurs
    • Algo de fonctionnement

Fichiers Rendus