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

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 7 : Ligne 7 :
Nous partons sur la voiture 1/43.
Nous partons sur la voiture 1/43.


Voici le modèle de carte de que nous choisissons :
Notre voiture comportera les éléments ci-dessous :  


* 2  moteurs pour le contrôle (1 DC à l'arrière et un pas à pas à l'avant),
* 2  moteurs pour le contrôle (1 DC à l'arrière et un pas à pas à l'avant),
Ligne 13 : Ligne 13 :
* des leds (4 : deux phares avants ainsi que deux arrières),
* des leds (4 : deux phares avants ainsi que deux arrières),
* une batterie
* une batterie
L'idée est, avec le module Bluetooth, de pouvoir piloter la voiture grâce à une application mobile.   
L'idée est, avec le module Bluetooth, de pouvoir piloter la voiture à distance.   


L'objectif à la fin des semaines de ce projet est d'être capable de gérer les différentes leds, les moteurs et d'avoir une batterie fonctionnelle.   
L'objectif à la fin des semaines de ce projet est d'être capable de gérer les différentes leds, les moteurs et d'avoir une batterie fonctionnelle.   
Ligne 50 : Ligne 50 :
[[Fichier:Carte imprimée et soudée.png|centré|Carte imprimée|sans_cadre]]
[[Fichier:Carte imprimée et soudée.png|centré|Carte imprimée|sans_cadre]]
   
   
Avant de souder tous les composants, l'idée était de vérifier si le PC détectait bien la carte, nous avons souder un fil sur le Pin 4 et le Pin 5 pour pouvoir alimenter l'ATMega16u2.  
<u>Remarque :</u>  un des pins du moteur n'a pas était relié au microcontrôleur lors du routage de la carte, nous avons donc connecté un fil entre le moteur et la pin 25 du microcontrôleur.
 
Avant de souder tous les composants, l'idée est de vérifier si le PC détecte bien la carte. Pour pouvoir alimenter notre carte via l'usb sans avoir a souder le régulateur et ces condensateurs, nous avons simplement souder un fil entre le port USB et l'alimentation du microcontrôleur.  
== Carte fonctionnelle ==
== Carte fonctionnelle ==
Premièrement, afin de vérifier si la carte est fonctionnelle nous n'avons soudé que l'atmega, le quartz et le port usb, pour s'assurer avec la commande "''lsusb"''  que la carte est bien vue par le PC.  
Premièrement, afin de vérifier si la carte est fonctionnelle nous n'avons soudé que l'atmega, le quartz et le port usb, pour s'assurer avec la commande "''lsusb"''  que la carte est bien vue par le PC.  
Ligne 143 : Ligne 145 :
- rooter de manière cohérant, en prenant en compte les perturbations que chaque composants engendre sur les autres, notamment au niveau de l'antenne.
- rooter de manière cohérant, en prenant en compte les perturbations que chaque composants engendre sur les autres, notamment au niveau de l'antenne.
Ce projet nous a aussi permit d'apprendre a souder des composants monté en surface (led, microcontrôleur, résistance).
Ce projet nous a aussi permit d'apprendre a souder des composants monté en surface (led, microcontrôleur, résistance).
Nous avons aussi eu un problème lors de la soudure du moteur, ou celui-ci à était endommagé, probablement à cause d'une exposition prolongé au fer à souder, qui a endommagé la bobine.
La voiture est loin d'être fini, nous n'avons malheureusement pas pu traiter la partie Bluetooth et la partie batterie. Néanmoins, ce projet nous à permit d'avoir une première approche de ce en quo consiste un projet de système embarqué, de sa conception, à sa réalisation, et nous somme maintenant bien plus à l'aise avec la créations des PCB.

Version du 4 juin 2023 à 14:15

Premier Système SE3

Voici le lien de notre Git :

https://archives.plil.fr/mnorman1/PSE_trinome_6

Introduction et objectif

Nous partons sur la voiture 1/43.

Notre voiture comportera les éléments ci-dessous :

  • 2 moteurs pour le contrôle (1 DC à l'arrière et un pas à pas à l'avant),
  • 1 module Bluetooth,
  • des leds (4 : deux phares avants ainsi que deux arrières),
  • une batterie

L'idée est, avec le module Bluetooth, de pouvoir piloter la voiture à distance.

L'objectif à la fin des semaines de ce projet est d'être capable de gérer les différentes leds, les moteurs et d'avoir une batterie fonctionnelle.

Schéma électronique

Pour faire notre schéma électronique ainsi que notre routage, nous avons utilisé le logiciel Kikad.

Vous trouverez différentes blocs :

  • L'ATMega16u2 qui est alimenté en +5V
  • L'alimentation et la charge batterie, avec un MAX1811 et un USB pour brancher directement la carte sur le PC pour l'alimentation et le téléversement du programme en C.
  • Un bloc AVR qui est un connecteur femele pour se brancher directement à l'autre carte.
  • Les 4 leds (qui sont les phares de notre voiture)
  • Les moteurs : nous avons choisi d'utiliser un moteur pas à pas bipolaire et un moteur à courant continu (avec des PWM qui sont connectés aux Pins PWM du microcontroleur)
  • Le Bluetooth avec un BM71BLE01FC2 (nous l'avons créé nous même sur Kikad) et son antenne (créée également par nous-même)
Schéma entier

Nous avons choisi de créer un circuit à part pour l'AVR car il ne sera utilisé que pour la programmation et pas pour le fonctionnement de la voiture.

Schéma ISP


Routage

  1. Carte de la voiture


La carte se connectera directement sur une prise USB pour téléverser le programme dans l'atMega16u2. Les deux faces sont des plans de masse, ce qui facile le routage. Pour faire notre routage, nous avons dû créer certains footprint tels que celui de l'antenne, du moteur continu et du BM71BLE01FC2 (le module bluetooth).

Routage
Top
Bottom
  1. Carte de l'ISP
Routage ISP

Carte imprimée

Voici la carte imprimée et partiellement soudée (uC, Leds, moteur pas à pas, USB) :

Carte imprimée

Remarque : un des pins du moteur n'a pas était relié au microcontrôleur lors du routage de la carte, nous avons donc connecté un fil entre le moteur et la pin 25 du microcontrôleur.

Avant de souder tous les composants, l'idée est de vérifier si le PC détecte bien la carte. Pour pouvoir alimenter notre carte via l'usb sans avoir a souder le régulateur et ces condensateurs, nous avons simplement souder un fil entre le port USB et l'alimentation du microcontrôleur.

Carte fonctionnelle

Premièrement, afin de vérifier si la carte est fonctionnelle nous n'avons soudé que l'atmega, le quartz et le port usb, pour s'assurer avec la commande "lsusb" que la carte est bien vue par le PC.

Fonction lsusb

On voit ici que l'atmega16u2 est bien détecté.

Maintenant que l'on sait que notre carte fonctionne, on peut passer à la partie programmation des différents composants de la voiture.

Programmation

Les PINS dont nous allons avoir besoin sont les suivants :

LED 1 B6/20
LED 2 B5/19
LED 3 B4/18
LED 4 B1/14
MOT1 D4/10
MOT2 D5/11
MOT3 D6/12
MOT4 C5/25

Makefile

Tout d'abord, nous avons écris notre Makefile comme ceci :

Makefile

Gestion des LEDS

Nous avons repris la base du programme que nous avons utilisé en TPI (manette) pour configurer les Leds ainsi que le programme io.c pour utiliser les fonctions présentes dans celui-ci (output_toogle(), output_set(), ...).

Nous avons également repris les configurations des Pins des entrées/sorties des Leds ainsi que les moteurs , comme ci-dessous.

Config entree/sortie

Par la suite, afin de faire clignoter les Leds, voici le programme (fonctionnel) que nous avons écrit :

Prog leds

Gestion du moteur pas à pas

Pour poursuivre, afin de faire fonctionner le moteur pas à pas, nous avons fait quelques recherches pour la programmation. Pour ce faire, nous nous sommes aidés du chronogramme de l'activité du moteur bipolaire suivant :

chrono des pas

Le fonctionnement est simple, les 4 pines du moteur sont connecté directement à 4 pattes du microcontrôleur. et il suffit alors de mettre à 1 chacune des sorties selon le chronogramme ci-dessus.

Voici le code final fonctionnel du moteur pas à pas :

prog mots

On trouve l'initialisation des sorties avec DDRX, et la mise à 1 des sorties avec PORTX. On peut alors configurer les pins du microcontrôleur pour commander le moteur selon le chronogramme.

Dans ce cas, le code permet au moteur de tourner dans un sens puis dans l'autre.

USB/LUFA

Par la suite, l'idée est de faire fonctionner le moteur directement avec les commandes de l'ordinateur. Pour se faire, on a récupéré les programmes faits en TPI Manette.

Evidemment, nous devons changer quelques informations, telles que le idVendor et le idProduct.

lsusb -vvv

Enfin, nous avons ajouter une fonction principale dans lib.c afin de controler, grâce aux octets, l'allumage des leds et du moteur :   

Fonction lib.c.png

Dans data[] : on a 2 octets : le premier qui sert à gérer les Leds et le moteur et la 2ème qu'on n'utilisera pas.

Les 4 bits de poids faibles servent à allumer les Leds (chaque bit commande une led).

Les 4 bits de poids forts servent à gérer le moteur(1 pour un un sens, 2 pour l'autre sens)

Dans le fichier Voiture.c, on a repris les lignes de test_leds.c (notre programme de tests) et les avons mis dans la fonction HandlePCReceive() de Voiture.c.

Vidéos système

Les vidéos étant trop lourdes, voici un lien Drive de nos vidéos : https://drive.google.com/drive/folders/1xb7-hz1aA-z115mloMOLafnvyD3ojA3p?usp=share_link

Conclusion

A la fin du projet, notre carte est détecté par le PC, et nous sommes en mesure de programmer le microcontrôleur pour commander les leds et le moteur pas a pas. Il est également possible de commander les leds et le moteur via l'USB.


La principale difficulté de ce projet à était la réalisation du PCB sur Kicad, ou nous avons appris plusieurs aspects de la conception d'un PCB :

- créer des footprint, en allant chercher les dimensions dans les datasheets.

- s'assurer que notre schéma est cohérant, et que chaque composant est correctement câblé, sans quoi la carte final n'a aucune chance de fonctionner.

- rooter de manière cohérant, en prenant en compte les perturbations que chaque composants engendre sur les autres, notamment au niveau de l'antenne. Ce projet nous a aussi permit d'apprendre a souder des composants monté en surface (led, microcontrôleur, résistance).

Nous avons aussi eu un problème lors de la soudure du moteur, ou celui-ci à était endommagé, probablement à cause d'une exposition prolongé au fer à souder, qui a endommagé la bobine.

La voiture est loin d'être fini, nous n'avons malheureusement pas pu traiter la partie Bluetooth et la partie batterie. Néanmoins, ce projet nous à permit d'avoir une première approche de ce en quo consiste un projet de système embarqué, de sa conception, à sa réalisation, et nous somme maintenant bien plus à l'aise avec la créations des PCB.