« SE3Trinome2022-2 » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 138 : | Ligne 138 : | ||
=== Premier Programme : Allumer les LED === | === 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. | 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 | Nous avons pris comme base les fichiers C présent dans cette [https://wiki-ima.plil.fr/mediawiki/index.php/IMA4_2018/2019_SEC4 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. | 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. | ||
Ligne 170 : | Ligne 170 : | ||
/*code...*/ | /*code...*/ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Voici une vidéo du fonctionnement des LED (téléversement) : | |||
[[Fichier:Trim.93D10B0D-0B29-4F67-BBC7-8D14EE9F3769.mov|vignette|352x352px|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 === | === Moteur DC : avancer/reculer/arrêter === | ||
Version du 4 juin 2023 à 00:48
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 :
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 :
PCB
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.
Ci-dessous les images de la carte en 3D.
Vous pouvez télécharger le dossier comportant la partie CAO Fichier:Pcb binome2.zip.
Voici ci-dessous une image de notre PCB :
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 :
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.
Moteur pas à pas : direction
Programmation via USB/LUFA