« SE3Binome2023-5 » : différence entre les versions

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 84 : Ligne 84 :


[[Fichier:Moteur et roues.jpg|thumb|center|300px|Moteurs et roues]]
[[Fichier:Moteur et roues.jpg|thumb|center|300px|Moteurs et roues]]
[[Fichier:Voiture appui bouton.mp4|vignette|Voiture fonctionnant sur batterie]]
Pour tester toute notre carte, nous avons crée un code sous le nom de helloworld.c qui rempli différente fonction, allumer ou faire clignoter les LEDs en fonction du déplacement de la voiture et, bien évidemment, déplacer la voiture. La voiture réagissant comme nous le souhaitons, nous décidons donc de passer à l'étape suivante, le fonctionnement sur batterie. Ce n'est pas la partie la plus compliquée, il suffit de brasé les broches permettant d'accueillir la batterie puis celles destinées au cavalier. Une fois le tout installé sur notre carte, nous la testons et tout fonctionne normalement.
et comme nous avons encore un peu de temps, nous décidons de nous attaqués à la dernière partie, la recharge de la batterie.


== GIT ==
== GIT ==
Vous trouverez dans le lien [https://archives.plil.fr/rboursau/premier-systeme-embarque.git GIT] de notre projet, tous les fichiers se trouvent dans le dossier projet_voiture.
Vous trouverez dans le lien [https://archives.plil.fr/rboursau/premier-systeme-embarque.git GIT] de notre projet, tous les fichiers de création de la carte se trouvent dans le dossier projet_voiture, le code envoyé pour tester la voiture dans le dossier cod.





Version du 11 juin 2024 à 14:11

Projet Groupe 5 : Voiture Programmable

Cette page est consacrée à la présentation du projet SE3 réalisé par BOURSAULT Rémi & LECOMTE Antoine, qui est porté sur la création d'une voiture contrôlé par programmation.

Présentation :

Objectifs

Les objectifs du projets sont :

  • Concevoir une voiture fonctionnant sur batterie, avec un ATMega.
  • Intégrer des clignotants fonctionnels.
  • Permettre à la voiture d'avancer ou reculer, toujours en utilisant l'ATMega.
  • Ajout d'un gyrophare.

Ressources

Pour atteindre ces différents objectifs, nous aurons besoins des ressources suivantes :

  • Un microcontrôleur ATMega16U4/ATMega32U4
  • Des LEDS
  • Deux moteurs à courant continu
  • Un châssis
  • Des dipôles classiques
  • Un gyrophare


Après avoir choisi notre projet et nos différents objectifs pour ce projet, nous avons commencé à travailler sur le schéma de montage sur KiCAD afin de pouvoir ensuite faire le PCB et le routage qui sera envoyé à une usine pour imprimer nos cartes. Les fonctions et composants principaux de notre projet sont les suivants.

Fonction sur le schéma :

Microcontrôleur

La partie indispensable de tous montages électroniques, le cerveau de la voiture. Sans le microcontrôleur rien dans ce projet n'est possible, il permet de gérer les informations. qui sont transmises dans toutes la carte. C'est un microcontrôleur ATMega32u4, ce n'est pas le plus puissant, mais pour la taille du projet que nous faisons c'est bien assez. Il possède assez d'entrées/sorties pour ce que nous voulons en faire.

Schéma du microcontrôleur
Configuration des pins sur l'atmega

Commande Moteur

Ce bloc est celui qui actionne les moteurs et leur dit quand s'arrêter. Celui-ci est composé d'un TB6612FNG, un driver pour moteur qui ne sert qu'à ça. Il prend sept signaux en entrée trois pour gérer chaque moteur et un signal de standby. Nous avons utilisé la datasheet pour savoir comment le schématiser et quels composants utilisé pour que celui-ci fonctionne dans des conditions optimales.

Il est nécessaire d'ajouter ce composant, car les signaux de sortie délivrés par l'ATMega sont trop faibles pour alimenter un moteur. Ce driver vient, à partir d'une tension d'alimentation Vcc amplifier le signal de commande délivré par l'ATMega pour que les moteurs aient l'alimentation adéquate.



PCB routé de la carte
Schéma du bloc de commande des moteurs





Chargeur LI-PO

Comme notre voiture fonctionnera sur batterie, il faut un moyen de la recharger, ceci se faisant par l'intermédiaire d'un port USB, il faut un bloc pour adapter le courant que reçoit l'USB pour que cela corresponde aux caractéristiques de notre batterie.


Schéma du chargeur


Utilisation de la Batterie

Ce bloc permet de séparer l'alimentation en USB et sur batterie. Lorsqu'un cavalier est présent sur J6, VBAT est directement relié à Vcc et ainsi la batterie sert d'alimentation pour la carte. Il est impératif de débrancher l'USB avant de mettre le cavalier, pour éviter tout court-circuit. Lorsqu'on enlève le cavalier, on peut brancher l'USB et la carte fonctionne en filaire.

Schéma du switch batterie

Connecteur USB

On dispose de deux connecteurs USB, un pour recharger la batterie, et un autre pour transmettre les données, qui servira à implanter un programme dans notre microcontrôleur.

Schéma des connecteur USB

Connecteur ISP

Pour charger le bootloader sur le microcontrôleur si besoin.

Schéma du connecteur ISP

Diodes Électroluminescentes

Schéma des LEDS

PCB et routage :

Après avoir fini toutes nos fonctions et le schéma, nous nous sommes attaqué au PCB de la carte, il nous a fallu quelque essais pour obtenir une disposition qui nous convienne et qui facilite le routage.

Vue 3D de la carte
PCB routé de la carte


Brasage des composants

Une fois les cartes reçues, nous nous sommes attaqués à la brasure des différents composants. Nous avons commencé par le microcontrôleur, le cristal et les résistances et capacités associées. Dès le départ nous avons eu des problèmes avec le brasage, des pattes soudées entre elles, le cristal mal posé. Mais notre plus gros problème a été l'allocation des pins du microcontrôleur. Nous ne le savions pas au moment de la création de notre PCB et nous n'y avons pas fait attention, mais des pins sont spécialement attribuées au MISO, MOSI et SOCKET. Pins que nous devons utilisés pour envoyer le bootloader sur la microcontrôleur via le programmateur ISP (en orange sur le schéma). Nous avons donc dû improviser une solution. Nous avons coupé les pistes et relié par des fils les broches de l'ISP aux pins correspondantes. A cause de cette erreur nos LEDs D2 et D3 ne sont plus utilisables.

Pins de l'atmega utilisés pour l'ISP


Une fois ce problème réglé, nous avons pu passer à la suite, la gestion des moteurs. Pour ce faire il n'y a pas eu autant de problèmes que sur la partie microcontrôleur, nous avons simplement soudé le contrôleur de moteurs, un TB6612FNG, puis les broches sur lesquelles nous allons venir brancher les moteurs, et enfin les fils directement sur les broches des moteurs. Nous avons également utilisé du plastique thermo rétractable pour que les fils soient protégés et restent soudés aux moteurs durant toute la durée du projet. Les moteurs étant prêt à l'emploi, nous les avons testé pour savoir si tout était fonctionnelle. Une fois confirmé, nous avons pris des bouchons de bouteilles comme roues et mis des élastiques autour pour avoir de la traction lors de nos différents essais.

Moteurs et roues

Pour tester toute notre carte, nous avons crée un code sous le nom de helloworld.c qui rempli différente fonction, allumer ou faire clignoter les LEDs en fonction du déplacement de la voiture et, bien évidemment, déplacer la voiture. La voiture réagissant comme nous le souhaitons, nous décidons donc de passer à l'étape suivante, le fonctionnement sur batterie. Ce n'est pas la partie la plus compliquée, il suffit de brasé les broches permettant d'accueillir la batterie puis celles destinées au cavalier. Une fois le tout installé sur notre carte, nous la testons et tout fonctionne normalement.



et comme nous avons encore un peu de temps, nous décidons de nous attaqués à la dernière partie, la recharge de la batterie.


GIT

Vous trouverez dans le lien GIT de notre projet, tous les fichiers de création de la carte se trouvent dans le dossier projet_voiture, le code envoyé pour tester la voiture dans le dossier cod.



dfu-programmer atmega16u4 erase

dfu-programmer atmega16u4 flash helloworld.hex

dfu-programmer atmega16u4 reset

puis débranché et rebranché la voiture

appuyé sur le bouton HWB puis RESET, relaché RESET puis HWB pour que la voiture repasse en mode DFU bootloader

appuyé sur le bouton reset pour arreter le cycle de la voiture au milieu