IMA4 2018/2019 P44 : Différence entre versions
(→Fonctions) |
(→Fonctions) |
||
Ligne 40 : | Ligne 40 : | ||
Dans ce cas, il peut être intéressant d'alimenter l'ensemble du système de contrôle à cette tension. | Dans ce cas, il peut être intéressant d'alimenter l'ensemble du système de contrôle à cette tension. | ||
− | Ces | + | 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. <br> | idéalement allant de 10V à 30V, en cas d'utilisation sur une alimentation de laboratoire lors de tests. <br> | ||
Version du 25 novembre 2018 à 22:14
Sommaire
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 strictes, 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 accompagnée 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 resté 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,
- deux modules FTDI :
- Un pour la connexion USB,
- Un pour la connexion sans fil,
- Peut-être pourrons-nous utiliser un module sans-fil disposant d'une connexion I2C, SPI ou UART et ainsi nous dispenser de ce module supplémentaire
- 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,
- (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 :
- Une carte Arduino Mega couplée à un shield RAMPS :
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.
- Une carte basée sur un Atmega 2560 de type MKS :
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 |