« SE3Trinome2022-2 » : différence entre les versions

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 179 : Ligne 179 :
[[Fichier:Trim.93D10B0D-0B29-4F67-BBC7-8D14EE9F3769.mov|vignette|352x352px|Téléversement]]
[[Fichier:Trim.93D10B0D-0B29-4F67-BBC7-8D14EE9F3769.mov|vignette|352x352px|Téléversement]]
</center>
</center>





Version du 4 juin 2023 à 00:50


GIT

Voici le lien vers notre GIT : https://archives.plil.fr/ccariat/SE3Trinome2022-2_Projet_2km.git

Projections

  • Dimensions : voiture 1:43 dans la mesure du possible l'électronique sera caché sous la carrosserie
  • Contrôle de la voiture : déplacement programmé (Bluetooth si le temps nous le permet)
  • Énergie : batterie LiPo accrochée sur le toit, il n'y aura qu'un port USB pour l'information et le rechargement de la batterie intégrée à la voiture
  • Éclairage : deux phares avant via deux LED RGB qui pourront servir d'IHM (infos sur la charge de la batterie par exemple)
  • Direction : roues avant orientables grâce à un moteur pas à pas glissière


Liste du matériel :

  • Voiture 1:43
  • Atmega 16u2
  • Mini-moteur continu avec réducteur + pilote DRV8210DRLR
  • Moteur pas à pas glissière
  • Connecteur USB_A
  • 2 Leds RGB
  • Batterie LiPo
  • Chargeur MAX1811
  • Module de communication Bluetooth BM71BLE01FC2

Réalisation de la carte

Schématique

Contrainte

Pour pouvoir assurer le bon fonctionnement du moteur DC, il est primordial d'utiliser une broche de l'atmega qui puisse délivrer un signal PWM. Leurs noms sont de la forme "OC.**".

Composants créés

Pour mener à bien la conception assistée par ordinateur nous avons dû créer la schématique de composants directement via Kicad :

Empreintes créés

Afin de se rendre compte de la place que prend chaque composant, il a fallu trouver/créer des empreintes pour chaque élément du montage. Pour créer une empreinte, il est nécessaire de mesurer les dimensions du composant en question. Nous avons aussi pu trouver des empreintes sur le site SnapEDA.

Voici celles que nous avons construite/trouvées :

Images de la schématique

Voici le schéma électronique produit pour ce projet :

Schéma pour une voiture télécommandée 1:43 avec roue avant orientable

Malheureusement, nous n'avons pas pu garder cette schématique : les LED RGB prenaient beaucoup trop de place et nous avons changé quelques connexions de pins afin de nous faciliter la tâche pour le PCB. Voici le schéma final :

Schématique final

PCB

Placement de l'antenne (image tirée de la datasheet)

Contraintes

Pour assurer le bon fonctionnement de la carte, nous avons dû respecter des conditions :

  • Condensateurs proches du microcontrôleur
  • Axe du moteur DC pile au niveau des roues arrières
  • Condensateurs/résistance du quartz proches de ce dernier, avec la même disposition que sur la schématique
  • Pistes USB D+ et D- de même longueur, le temps de transmission doit être à peu près le même, pour éviter des erreurs
  • Antenne Bluetooth dans un bord de la carte isolée des autres composants (voir image)


Le PCB doit au maximum comporter 2 types de piste. Il a fallu faire attention à ne pas trop rapprocher les vias. Nous avons aussi veillé à placer le moteur glissière à la verticale et les LED au bord de la carte.


Images

Ci-dessous les images de la carte routée.

face n°1
face n°2

Ci-dessous les images de la carte en 3D.

PCB de face (vue 3D)
PCB de dos (vue 3D)



Vous pouvez télécharger le dossier comportant la partie CAO Fichier:Pcb binome2.zip.

Voici ci-dessous une image de notre PCB :

Notre carte imprimée

Programmation de la voiture

Nous avons utilisé une carte du trinôme 6 pour la soudure et la programmation. Voici au cas-où un schéma des E/S utilisées dans cette carte, ainsi que la carte avant soudure :


Connectique de l'atmega 16u2 du groupe 6
Carte utilisée, faite par le trinôme 6



Premier Programme : Allumer les LED

Une fois la carte imprimée et soudée avec les premiers composants, nous la testons avec un premier programme de test pour clignoter les leds. Nous avons pris comme base les fichiers C présent dans cette page (tout en bas), notamment pour gérer les entrées sorties. Il a été nécessaire de l'adapter : l'atmega 16u2 ne possède que 3 registres d'E/S, le B, le C et le D.

L'étape suivante est d'adapter le makefile en mettant le bon nom de CPU la bonne fréquence et destination. Enfin, il est nécessaire de configurer les registres DDR* en sorties pour les broches concernées (PB4,PB5,PB6 et PB0 soit DDRB = 0x71)

Il suffit alors d'utiliser les fonctions output_set et output_unset comme dans cet exemple :

/*code...*/
#define MAX_LED	4

#define PORTB_OUTPUT	0x71

unsigned char led1[]={0x01,0x00,0x00};//led arrière à gauche
unsigned char led2[]={0x10,0x00,0x00};//led avant à droite
unsigned char led3[]={0x20,0x00,0x00};//led arrière à droite
unsigned char led4[]={0x40,0x00,0x00};//led avant à gauche

unsigned char *leds[]={led1,led2,led3,led4}; //tableau de leds

/*code...*/

while(1)
{
   // Allumer pendant 1 seconde la LED 4 (indice 3 du tableau) :
   output_set(leds,3);
   _delay_ms(1000);
   // Éteindre pendant 1 seconde la LED 4 (indice 3 du tableau) :
    output_unset(leds,3);
   _delay_ms(1000);
}

/*code...*/

Voici une vidéo du fonctionnement des LED (téléversement) :










NB : Pour tester le programme, après avoir téléversé, il est nécessaire de déconnecter puis reconnecter la carte au port USB.


Moteur DC : avancer/reculer/arrêter



Viens ensuite la programmation d'un moteur à courant continu.













carte soudée




Moteur pas à pas : direction







Programmation via USB/LUFA

Moteur DC tourne dans les 2 sens + arrêt






Conclusion