Wiki » History » Version 16
Romain Desternes, 10/23/2015 02:39 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 | 8 | Romain Desternes | 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. |
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 | 16 | Romain Desternes | Pour pouvoir connecter le PicKit sur la carte UiO, nous avons ajouté un témoin (petite flèche) sur une broche. C'est sur celle-ci que doit être connectée la broche indiqué par une flèche sur le PicKit. |
88 | 16 | Romain Desternes | |
89 | 15 | Romain Desternes | La version modifiée est disponible sur "Dépôt". |
90 | 15 | Romain Desternes | |
91 | 1 | Nicolas Dagieu | B-IV. Commande des PWMs |
92 | 1 | Nicolas Dagieu | |
93 | 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. |
94 | 15 | Romain Desternes | |
95 | 1 | Nicolas Dagieu | B-V. Projet de nouvelle carte |
96 | 1 | Nicolas Dagieu | |
97 | 16 | Romain Desternes | 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. Le fichier Proteus correspondant est disponible sur "Dépôt". |
98 | 16 | Romain Desternes | |
99 | 16 | Romain Desternes | |
100 | 16 | Romain Desternes | Bilan. |
101 | 16 | Romain Desternes | |
102 | 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. |