Wiki » History » Version 19

Florent Zonta, 10/23/2015 04:32 PM

1 7 Romain Desternes
Wiki Carte commande 8 servos moteurs sur PIC18f4550
2 1 Nicolas Dagieu
3 1 Nicolas Dagieu
Sommaire :
4 5 Florent Zonta
A) Sous-traitance 2014
5 4 Florent Zonta
  I. Fonctions principales de la carte
6 4 Florent Zonta
  II. Schéma de la carte
7 4 Florent Zonta
  III. Guide utilisateur code source
8 1 Nicolas Dagieu
9 4 Florent Zonta
B) Sous-traitance 2015
10 6 Romain Desternes
  I. Sujet et objectifs fixés
11 6 Romain Desternes
  II. Commande des composants manquants 
12 6 Romain Desternes
  III. Recherche d'erreurs
13 11 Romain Desternes
  IV. Commande des PWMs
14 15 Romain Desternes
  V. Projet de nouvelle carte
15 16 Romain Desternes
  Bilan dernière séance
16 5 Florent Zonta
17 1 Nicolas Dagieu
A) Sous-traitance 2014
18 10 Romain Desternes
A-I. Fonctions principales de la carte :
19 1 Nicolas Dagieu
20 1 Nicolas Dagieu
   Durant la sous-traitance 2014, nous avons été amené à réaliser une carte fonctionnelle permettant la commande de plusieurs servos moteurs (8 par carte). Ce projet s'inscrit dans la mise en place d nouveaux TP d'AURO avec MrLengagne. La carte doit pouvoir :
21 1 Nicolas Dagieu
   -Contrôler 8 servos
22 1 Nicolas Dagieu
   -Echanger par USB des informations et ordres de commande
23 1 Nicolas Dagieu
   -Permettre un identification de la carte par "PIN" physiques
24 1 Nicolas Dagieu
   -Permettre l'interface avec un vieux boitier matlab analogique
25 1 Nicolas Dagieu
   -Permettre l'utilisation d'un module gyro/accel et d'un autre BT
26 1 Nicolas Dagieu
  -Diverses fonctions ....
27 1 Nicolas Dagieu
28 1 Nicolas Dagieu
Nous avons donc découpé le travail par importance des tâches :
29 1 Nicolas Dagieu
30 1 Nicolas Dagieu
 Réalisation de la carte sous proteus et mise en place de la liaison USB + PWMS des servos afin de permettre un fonctionnement "minimale" du dispositif. Nous avons par la suite ajouté des fonctions et l'étage analogique.
31 1 Nicolas Dagieu
32 10 Romain Desternes
A-II. Schéma de la carte :
33 1 Nicolas Dagieu
34 1 Nicolas Dagieu
Le schéma est réalisé sous proteus ( isis+ares ). La carte est imprimée et soudée, L'ICSP et l'USB sont fonctionnels (oct 2014). Vous trouverez dans le dépôt la carte finale.
35 1 Nicolas Dagieu
36 10 Romain Desternes
A-III. Guide utilisateur code source :
37 1 Nicolas Dagieu
38 2 Nicolas Dagieu
Notre but est d'expliquer comment paramétrer la carte en fonction de nos besoins.
39 2 Nicolas Dagieu
40 2 Nicolas Dagieu
TRAMES USB :
41 2 Nicolas Dagieu
42 2 Nicolas Dagieu
A:34FE //permet de modifier la valeur d'une PWM
43 2 Nicolas Dagieu
A?        //permet de lire la valeur d'une PWM
44 2 Nicolas Dagieu
A#3435 //permet d'utiliser des fonctions particulières selon les PWMs
45 2 Nicolas Dagieu
46 1 Nicolas Dagieu
Les PWMs sont disponibles de la lettre A à H inclut ( 8 PWMs)
47 1 Nicolas Dagieu
48 1 Nicolas Dagieu
La lettre "I" permet l'identification de la carte avec : I? ("i" majuscule)
49 1 Nicolas Dagieu
Les lettres "M,N,O,P" sont réservés pour les opérations sur les I/O de libre. ( M:0001 = met la sortie à 1 et M:0000 = met la sortie à zéro)
50 4 Florent Zonta
51 4 Florent Zonta
52 1 Nicolas Dagieu
53 1 Nicolas Dagieu
54 1 Nicolas Dagieu
55 1 Nicolas Dagieu
B) Sous-traitance 2015 (Desternes\Zonta)
56 10 Romain Desternes
B-I. Sujet et objectifs fixés.
57 1 Nicolas Dagieu
58 6 Romain Desternes
Le projet confié par M.Langagne consiste à déterminer la phase de développement et de test de la carte UIO développée en sous traitance l'année passée.
59 6 Romain Desternes
60 1 Nicolas Dagieu
Notre premier objectif était de commander les composants manquants à partir de la version Proteus de la carte. Ensuite, nous devions trouver d'éventuelles erreurs sur la carte, qu'elles concernent la conception (routage) ou le choix des composants.
61 6 Romain Desternes
Ensuite nous devions remédier si possible à ces problèmes de manière à pouvoir valider chaque partie de la carte. Si toutes ces étapes sont validées, il nous était proposé de créer un PCB plus compact.
62 6 Romain Desternes
63 6 Romain Desternes
Au final nous nous sommes concentrés sur la partie "Génération de 8 PWMs"
64 6 Romain Desternes
65 10 Romain Desternes
B-II. Commande des composants manquants
66 6 Romain Desternes
Voici la liste des composants qui ont été commandés pour la carte :
67 6 Romain Desternes
-TL084CN x1
68 6 Romain Desternes
-CNY74-4 x2
69 1 Nicolas Dagieu
-TL082 x2
70 6 Romain Desternes
-MCP4922 x1
71 6 Romain Desternes
-TMA0505S x1
72 6 Romain Desternes
73 6 Romain Desternes
Tous les composants sont donc à disposition pour tester toutes les parties de la carte.
74 6 Romain Desternes
75 10 Romain Desternes
B-III. Recherche d'erreurs
76 1 Nicolas Dagieu
77 1 Nicolas Dagieu
Le premier problème rencontré a été le problème d'alimentation avec le Jack. En effet la tension fournie ne permettait pas d'alimenter le PIC18F4550. En se référant à la documentation du régulateur, nous avons vu que la valeur des capacités de découplage n'était pas les bonnes, il y avait 2 capacités de 1nF alors que la documentation propose 330nF et 100nF. Les changements ont été effectués et l'alimentation par Jack est fonctionnelle.
78 7 Romain Desternes
79 8 Romain Desternes
Nous avons vite vu un problème de taille concernant la commande des PWMs.
80 1 Nicolas Dagieu
!Capture.JPG!
81 18 Florent Zonta
En effet, pour pouvoir avoir une tension PWM0, il faut une tension 6VMOT, le problème réside dans le fait que sur le routage il n'y a pas d'alimentation 6VMOT, les tests sur les optocoupleurs ne peuvent pas être réalisés sur cette carte. De même, il manquait GNDMOT. L'ajout de cette alimentation ("6VMOT" et "GNDMOT") a été faite sur le fichier Proteus. Et sur la carte, nous avons donc soudé deux fils. De plus nous avons remarqué que la carte avait uniquement quatre sorties PWM utilisables (Pw0 -Pw3). 
82 8 Romain Desternes
83 1 Nicolas Dagieu
Après ces deux erreurs rectifiées, nous pensions pouvoir faire nos tests de PWMs sur la carte. Par simple mise un 1 de tout le portD, nous avons remarqué que les broches avaient des états variables (0 , 2v, environ 2.5v, 5V), alors que l'on aurait du avoir des sorties à 5V. Les essais sur la carte de synthèse fonctionnaient. Nous avons contrôlé les soudures et essayé de débugger la carte UiO, sans succès. Les tests sont donc, à partir de maintenant, réalisés sur une carte de synthèse, avec une plaque à trous pour pouvoir utiliser les composants complémentaires. 
84 11 Romain Desternes
85 13 Romain Desternes
En changeant notre PIC de carte, nous avons remarqué que sur la carte UiO, le support du PIC était soudé dans le sens inverse. La modification n'a pas été encore apportée donc il faut veiller à mettre le PIC dans le bon sens, à savoir dans le sens inverse à celui indiqué par le support.
86 1 Nicolas Dagieu
87 17 Florent Zonta
Pour pouvoir connecter le PicKit sur la carte UiO, nous avons ajouté un témoin (petite flèche) sur une broche. La flèche sur la carte et la flèche sur le pickit doivent être alignées.
88 16 Romain Desternes
89 15 Romain Desternes
90 1 Nicolas Dagieu
B-IV. Commande des PWMs
91 1 Nicolas Dagieu
92 15 Romain Desternes
On rappelle que le PIC18F4550 n'a que deux sorties PWM, or le cahier des charges impose la commande de 8 servomoteurs, il faut donc 8 sorties PWMs, nous utiliserons donc ainsi les interruptions du timer pour générer des PWMs. On rappelle que pour commander un servomoteur, il faut une impulsion de 1 à 2ms périodique (T=20ms). Le projet MPLAB est disponible  sur "Dépôt", à noter que le compilateur utilisé est le compilateur C18. Le programme test (seulement pour les PWMs) est le plus simple possible. Le programme étant commenté, nous ne nous attarderons pas ici sur l'explication du programme.
93 15 Romain Desternes
94 1 Nicolas Dagieu
B-V. Projet de nouvelle carte
95 1 Nicolas Dagieu
96 19 Florent Zonta
Etant donné que nous nous sommes concentrés sur la partie PWM, nous avons réalisé la CAO d'une carte dédiée à la commande de 8 servomoteurs.
97 16 Romain Desternes
98 16 Romain Desternes
99 16 Romain Desternes
Bilan.
100 16 Romain Desternes
101 16 Romain Desternes
Nous avons descellé des erreurs, celle-ci ont été corrigées sur la carte ou sur Proteus. Les tests ont été réalisés sur une carte de synthèse, le programme permet de commander les différentes PWMs et donc de commander les servomoteurs un par un avec un identifiant et une consigne en degrés. La CAO d'une carte dédiée aux PWMs est réalisée.