IMA4 2018/2019 P44 : Différence entre versions

De Wiki de Projets IMA
(Objectifs)
(Objectifs)
Ligne 11 : Ligne 11 :
 
==Objectifs==
 
==Objectifs==
  
La plateforme possède un cahier des charges stricte, elle peut être alimentée via une batterie 24V (ou équivalent lipo, soit 22,2V ou 26V, c'est-à-dire une batterie 6S ou 7S), elle est programmable par USB, elle possède à minima deux contrôleurs moteurs à courant continu et une connexion sans fil afin de la reprogrammer et de communiquer, elle possède également les entrées/sorties inhérentes à ce microcontrôleur
+
La plateforme possède un cahier des charges stricte, elle peut être alimentée via une batterie 24V (ou équivalent lipo, soit 22,2V ou 26V, c'est-à-dire une batterie 6S ou 7S), elle est programmable par USB, elle possède à minima deux contrôleurs moteurs à courant continu et une connexion sans fil afin de la reprogrammer et de communiquer, elle possède également les entrées/sorties inhérentes à ce microcontrôleur.
  
 
Une documentation doit accompagner la carte quant à ses limites en termes de tensions et de puissances admissibles.<br>
 
Une documentation doit accompagner la carte quant à ses limites en termes de tensions et de puissances admissibles.<br>

Version du 25 novembre 2018 à 23:18


Présentation générale

Création d'une platine programmable basée sur un Atmega 2560 à destination de l'association Robotech

Description

Le club Robotech de Polytech Lille conçoit et programme comme leur nom le suggère des robots sous diverses formes (bras, automates, robots sur roue, etc.). Afin de répondre à leurs besoins, une plateforme de programmation basée sur un atmega2560 leur est nécessaire afin de simplifier la commande et l'intégration des robots.

Objectifs

La plateforme possède un cahier des charges stricte, elle peut être alimentée via une batterie 24V (ou équivalent lipo, soit 22,2V ou 26V, c'est-à-dire une batterie 6S ou 7S), elle est programmable par USB, elle possède à minima deux contrôleurs moteurs à courant continu et une connexion sans fil afin de la reprogrammer et de communiquer, elle possède également les entrées/sorties inhérentes à ce microcontrôleur.

Une documentation doit accompagner la carte quant à ses limites en termes de tensions et de puissances admissibles.
Elle doit être fabriquée entièrement à partir de composants CMS. Bien qu'aucune limite de taille n'ait été prononcée, elle doit bien évidemment rester dans un format suffisamment compact pour être embarquée.

Fonctions

La carte regroupant différentes fonctions, nous devrons gérer efficacement les différents étages d'alimentations, ainsi que faire attention à la consommation générale pour garantir une autonomie correcte. Nous utiliserons donc différents chipsets et composants passifs important:

  • bien évidemment, un microcontrôleur Atmega 2560,
  • un module de type ESP82XX pour la partie sans-fil,
  • un module FTDI pour la connexion USB
  • différents transistors FET pour le contrôle des moteurs
OU
  • un contrôleur moteur courant continu de type L298 ou équivalent,
  • quelques circuits logiques pour gérer les interruptions d'alimentation et éviter les conflits,
  • quelques DELs de contrôles (alimentation, émission/réception de données, etc.),
(conflits du type plusieurs sorties voulant piloter une unique entrée ou retour d'alimentation)
  • plusieurs régulateurs de tensions dont :
    • des régulateurs de 5V supportant 1A (ou plus) en sortie pour alimenter le microcontrôleur,
    • un régulateur de tension 24V (ou tension proche) en sortie pour les moteurs,
    • éventuellement un ou plusieurs régulateurs 3V3 pour les différents modules comme le FTDI, ou le module sans-fil,


Ces derniers n'interviendront que si les modules nécessitent une alimentation plus faible. Dans ce cas, il peut être intéressant d'alimenter l'ensemble du système de contrôle à cette tension.

Ces régulateurs devront accepter une grande plage de tensions, idéalement allant de 10V à 30V, en cas d'utilisation sur une alimentation de laboratoire lors de tests.

Contraintes

Comme la carte peut se programmer via USB, une attention toute particulière doit être porter quant à l'alimentation de celle-ci.
En effet, il faut éviter toute surtension lors du branchement à l'ordinateur en désactivant l'alimentation de la batterie si jamais celle-ci est connectée.
De plus, les pistes doivent être bien dimensionnées afin d'éviter la surchauffe des pistes et, par conséquent, celle de la carte. Ce matériel étant amené à piloter des puissances relativement importantes (jusqu'à 50W par moteur), il est également judicieux de faire attention à sa température et aux effets joules présents.
Également, il faudra faire attention aux tensions d'alimentations, aux courants et leurs sens, et les niveaux d'alimentations pour ne pas abimé ni la batterie ni la carte. Pour cela, un ensemble de diodes judicieusement choisies sera connecté à chacune des fonctions. Par exemple, des diodes zener en série sur la batterie pour s'assurer d'avoir une tension minimale et/ou ajouter également un circuit logique désactivant la carte si l'alimentation est trop basse.


Les E/S (entrées/sorties) doivent également être facilement accessibles. Ainsi, pour connecter les moteurs, j'ai décidé d'utiliser des borniers à vis, cela permettant de connecter et déconnecter à volonté et facilement les moteurs. Pour l'alimentation, il peut être judicieux d'adapter directement une connexion XT(30 par exemple) pour brancher directement dans un format standard des batteries lipo. Ce point pourra être revu avec Robotech et les encadrants. Pour le reste des E/S, des headers seront utilisés.

Analyse du projet

Positionnement par rapport à l'existant

Cette carte n'a en soit rien de nouveau. En effet il existe déjà quelques cartes de ce type, par exemple à destination des imprimantes 3D, ou encore différents modules (shield) Arduino qu'il suffit alors d'empiler les uns sur les autres.
Pour l'analyse des concurrents, j'utiliserai donc ces deux exemples. Cependant, l'avantage de posséder une telle carte propre à Polytech Lille est intéressant, la carte pourra :

  • être améliorée au gré des besoins des différents étudiants et du club Robotech,
  • fournir une base d'étude solide pour différents modules d'enseignements (microprocesseur, temps réel, systèmes, etc, conception de circuit électronique, parmi d'autres)
  • être entièrement réalisable à l'école, offrant l'occasion d'améliorer ses compétences pratiques pour l'utilisation des machines spécifiques à ce type de projets tels que les fers à souder, les fours CMS et les appareils de gravure PCB.
  • ainsi être répliquée "à l'infini"


Et c'est quand même plus fun et plus sympa de réaliser ce genre de carte de A à Z plutôt que de jouer aux lego ou de commander une carte entière qui ne sera pas forcément adaptée à tous nos besoins.

Analyse du premier concurrent

Shield arduino basé sur un L298

Une première solution pour réaliser ce projet relève bien un peu du bricolage. Il est possible de commander chacune des pièces qui seraient nécessaire au projet. Il existe pour cela des contrôleurs moteurs courant continu tel que celui-ci. Il suffit par la suite de le fixer sur un arduino uno ou mega.
Ce shield est basé sur un L298, un contrôleur moteur dont l'architecture est un pont en H contrôlé par un circuit logique OU Exclusif. Bien que le chipset soit assez vieux, sa conception robuste le rend encore d'actualité. Il permet de piloter deux moteurs jusqu'à 46V à un courant de 2A par voie. La puissance totale pouvant être dissipée est de l'ordre de 50W.


Ce sera d'ailleurs probablement l'un des contrôleur adopté sur la carte. Cependant, comme le circuit est assez simple à mettre en oeuvre, il peut être intéressant à la place de construire un pont en H utilisant des transistors FET doté d'un circuit logique équivalent.
Cela permettrait d'utiliser des transistors supportant une plus grande puissance ou possédant un meilleur rendement.


Analyse du second concurrent

Carte basée sur un atmega 2560 à destination d'une imprimante 3D de type RAMPS

Cela pourrait être Tevo, comme Anet, ou pour citer plus connu Ultimaker ou encore Dagoma, il existe beaucoup de points communs entre la carte que je souhaite réaliser et ce type de matériel. Tous deux disposent de contrôleurs moteurs, même s'il s'agit de moteurs pas à pas, d'une alimentation continue pouvant être importante et de plusieurs E/S possibles supplémentaires.
Bien que basée sur un système d'exploitation (nommé Marlin pour les différentes cartes opensource), rien n'empêche de programmer ces cartes manuellement.

Il existe deux grandes versions :

Shield RAMPS v1.4 destiné à l'Arduino Mega
Arduino Mega

Ce shield se fixe sur l'arduino Mega, et il contient alors toutes les E/S découplées aux fonctions que proposent le RAMPS. Ce projet étant opensource, il est suffisamment documenté pour s'en servir à ses besoins. Il pourrait donc offrir une solution alternative en ajoutant un module d'alimentation pour gérer la batterie.

Le coût total de revient est de 110€ pour une solution officielle comprenant également les contrôleurs moteurs.
Plutôt cher pour une solution qui ne répond pas complètement à nos besoins, et qui est vraiment un "second" choix.


MKS Base 1.0

Cette carte reprend les fonctionnalités du couple précédent, à la différence que celui-ci est intégré sur une seule carte.
Également opensource, le prix est souvent plus faible du fait de l'intégration de tous les composants, empêchant alors toute modification si jamais une fausse manipulation est opérée dessus.

A un tarif d'environ 40€, cette carte est plus accessible, mais comme la précédente ne répond pas tout à fait aux besoins du projet actuel.


Scénario d'usage du produit ou du concept envisagé

Premier scénario : Projet CREP

Le projet de Pierre et Thibault est de participer à la Coupe Robotique des Ecoles Primaires (CREP), et de montrer aux enfants ce qu'il est possible de faire à "haut niveau" lorsqu'on souhaite s'amuser avec ce genre de projet.
Leur sujet repose sur la programmation d'un robot utilisant un microcontrôleur communiquant avec divers capteurs installés sur la piste.
Ce robot doit se rapprocher du fonctionnement d'un Lego MindStorm et se base sur le cahier des charges fourni par la CREP aux écoles primaires.
Ils choisissent d'utiliser une carte contenant donc plusieurs E/S et possédant également de quoi piloter deux moteurs à courant continu. Cette carte, alimentée par une batterie lipo 6S, s'adapte bien à leur problématique de conception et est programmable en C, un langage qu'ils maîtrisent.
Ébahis par les possibilités de ce robot et son apparente simplicité, les enfants décident alors tous de s'inscrire à Polytech Lille après leur bac et presque tous de poursuivre leur cursus en IMA.
A chaque difficulté rencontrée, ils se rappelleront avec émotion la merveilleuse journée passée dans cette école qu'ils ont maintenant intégrée et découvriront à leur tour les envers du métier d'ingénieur en Informatique, Micro-électronique et Automatique avec un plaisir sans pareil.

Second scénario : Projet Robotech

Ça y est, Juliette est décidée. Membre à part entière de Robotech, elle se lancer aujourd'hui dans la programmation d'un robot en vue de participer à une compétition. Mais Polytech Lille a un avantage par rapport aux autres écoles, elle possède une plateforme facile à intégrer et à programmer qui contient déjà tout ce dont elle aura besoin : une alimentation par batterie, une connexion sans-fil, deux contrôleurs moteurs et une multitude d'E/S faciles à utiliser car toutes connectées à des headers.
Elle n'a plus qu'à ajouter les différents capteurs qui lui manquent et éventuellement d'autres contrôleurs. Gagnant un précieux temps, car n'ayant plus besoin de s'inquiéter des contraintes d'intégration, elle peut s'attaquer tout de suite la programmation du robot tout en testant son code au fur à et mesure sur une platine documentée. Sa seule inquiétude est maintenant de finir à la première place de ce concours !

Réponse à la question difficile

Préparation du projet

Cahier des charges

Choix techniques : matériel et logiciel

Liste des tâches à effectuer

Calendrier prévisionnel

Réalisation du Projet

Feuille d'heures

Tâche Prélude Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Total
Analyse du projet 0


Prologue

Semaine 1

Semaine 2

Documents Rendus