Professional Documents
Culture Documents
Etudiant :
Patrick Clerc
Projet de semestre
LAI, EPFL
Partie matrielle..............................................................................................................................6 Choix des solutions et des composants ...................................................................................6 Tlcommande ...............................................................................................................6 Rcepteur ........................................................................................................................7 Schma de principe .........................................................................................................8 Tlcommande ...............................................................................................................9 Rcepteur ...................................................................................................................... 13 Carte dinterface ........................................................................................................... 16 3.1.1 3.1.2 3.1.3 3.2 3.2.1 3.2.2 3.2.3 3.3
Ralisation des PCB ............................................................................................................. 17 Communication IrDA ........................................................................................................... 20 Tlcommande ..................................................................................................................... 23 Rcepteur .............................................................................................................................. 30 Vue densemble des programmes ......................................................................................... 36 Bilan du projet ...................................................................................................................... 37 Bilan personnel ..................................................................................................................... 39
6 7
Bibliographie ................................................................................................................................ 40 Annexes ........................................................................................................................................ 41 7.1 7.2 7.3 7.4 Tlcommande ..................................................................................................................... 41 Rcepteur .............................................................................................................................. 47 Rcepteur modifi ................................................................................................................ 54 Carte dinterface ................................................................................................................... 61
Printemps 2011
Projet de semestre
LAI, EPFL
Introduction
Un hlicoptre double rotor en fibre de carbone a t ralis par Grgory Savioz lors dun projet de semestre en 2007 dans le laboratoire dactionneurs intgrs [1]. Lhlicoptre ralis ne pse que 7.2 grammes, comprend deux moteurs courant continu balais et est aliment par une batterie lithiumpolymre (voir Figure 1). Le but de ce projet est de raliser la commande distance de cet hlicoptre ultra-lger. Une tlcommande ainsi quune lectronique de commande ultra-lgre doivent donc tre construites. La tlcommande doit tre en mesure denvoyer des signaux de commande pour contrler laltitude, le lacet et le tangage de lhlicoptre, ainsi que dafficher le niveau de batterie de lhlicoptre afin dviter une dcharge irrversible des batteries lithium -polymres. Dans le projet prsent, le contrle du tangage sera uniquement implment de faon logicielle, tant donn que lhlicoptre ne possde pas la mcanique ncessaire la modification de son angle de tangage. La communication bidirectionnelle est faite laide de signaux infrarouges afin de minimiser la consommation lectrique du circuit lectronique embarqu sur lhlicoptre. Ce mode de communication doit permettre de diriger lhlicoptre une distance de 2 4 mtres. Le microcontrleur utilis dans cette application est le MSP430F2132 de Texas Instrument, dont la spcification principale est davoir plusieurs modes de veille qui garantissent une consommation trs faible, ce qui nous permettra dobtenir une autonomie maximale pour lhlicoptre. Ce microcontrleur possde galement un module de conversion UART/IrDA qui permettra dimplmenter facilement lenvoi des signaux infrarouges. Les points critiques de ce projet rsident principalement dans la conception dun circuit lectronique suffisamment lger et petit pour ne pas entraver le vol de lhlicoptre. De plus, la consommation doit tre la plus faible possible, les batteries lithium-polymre utilises ayant une faible capacit (50 70 mAh). Une synchronisation de la communication bidirectionnelle doit galement tre gre afin de minimiser les pertes de donnes envoyes par infrarouge.
Printemps 2011
Projet de semestre
LAI, EPFL
Ce projet demande un travail dans des domaines varis, tels que llectronique, la programmation de microcontrleurs, la communication par infrarouge ainsi quune partie de cration hardware.
Analyse fonctionnelle
Pour connaitre les besoins lectroniques et les fonctions logicielles de la tlcommande ainsi que du rcepteur embarqu, il est ncessaire de procder une analyse fonctionnelle du produit. Cette analyse est divise en trois parties : dabord une partie gnrale rappelant les besoins globaux satisfaire, ensuite une analyse spare pour la tlcommande et pour le rcepteur. Sur la base de cette analyse fonctionnelle un cahier des charges peut tre construit, ce qui nous permettra de dfinir les composants lectroniques ncessaires la ralisation de la tlcommande et du rcepteur.
Sur la base de ces besoins nous pouvons dfinir les fonctions propres la tlcommande et au rcepteur.
Printemps 2011
Projet de semestre
LAI, EPFL
2.2 Tlcommande
2.2.1 Fonctions
Les fonctions que la tlcommande doit raliser sont numres ci-dessous : Indiquer le statut de la tlcommande (allume/teinte) Lire des signaux analogiques donns par lutilisateur Communiquer avec lhlicoptre sans fil Synchroniser la communication sans fil avec l hlicoptre Envoyer les commandes au rcepteur de lhlicoptre Recevoir le signal (tension de la batterie de lhlicoptre) mis par lhlicoptre Interprter la tension de la batterie comme un rapport (batterie restante/batterie pleine) Afficher le niveau de la batterie de lhlicoptre Assurer une bonne autonomie (faible consommation) Etre ergonomique (taille, poids, forme)
Printemps 2011
Projet de semestre
LAI, EPFL
Printemps 2011
Projet de semestre
LAI, EPFL
Partie matrielle
Dans ce chapitre, les choix des solutions permettant de remplir les fonctions numres prcdemment ainsi que le choix des composants et des circuits lectroniques sont justifis. Un schma de principe prsentant les solutions choisies est prsent, puis nous tablirons une liste complte des composants lectroniques ncessaires, enfin nous pourrons construire le schma lectronique de la tlcommande et du rcepteur.
3.1.1 Tlcommande
Le choix de lalimentation de la tlcommande est principalement li aux caractristiques du microcontrleur qui supporte des tensions allant de 2.4 V 4.1 V. Lalimentation doit tre faite sans fil afin dassurer lergonomie et la transportabilit de la tlcommande. Trois accumulateurs AA (HR6) de 1.2 V chacun feront parfaitement laffaire. Ceci permet dobtenir 3.6 V pour alimenter l a tlcommande. Des piles AA de 1.5 V pourront galement tre utilises car une diode Schottky (CDBU0530) sera installe aprs lalimentation afin de faire baisser la tension de 0.5 V. Chaque accumulateur pesant 30 grammes, il restera une marge denviron 110 grammes pour la construction de la tlcommande, ce qui est largement suffisant. Un boitier pouvant contenir trois piles AA et muni dun bouton ON/OFF est utilis pour placer les accumulateurs sous la tlcommande. En ce qui concerne laffichage de statut (ON/OFF), la solution retenue est trs simple : une LED rouge (LH R974) est directement connecte la tension dentre. De cette manire ds que le bouton du boitier des piles est sur ON, la LED sallume indiquant que la tlcommande est enclenche. La LED LH R974 sallume sous une tension de 1.8 V avec un courant de 2 mA ce qui est ralisable avec les batteries choisies prcdemment. Afin de garantir une faible consommation et une lecture intuitive, laffichage du niveau de la batterie de lhlicoptre est implment laide de quatre LEDs vertes (CMD17-21). De cette manire, lorsque la batterie est pleine, les quatre LEDs sont allumes. Puis, au fur et mesure que la batterie diminue, les LEDs steignent en commenant par celle de droite. Lorsque les quatre LEDs sont teintes, cela signifie que lhlicoptre est entr dans un mode darrt des moteurs et ne rpond plus aux commandes de lutilisateur, afin de garantir la rutilisation des batteries lithium-polymre. Nous choisissons les LEDs CMD17-21 qui sallument sous une tension de 2.1 V avec un courant de 5 mA car les batteries permettent datteindre ces valeurs. Laltitude, le lacet ainsi que le tangage de lhlicoptre doivent pouvoir tre commands. Pour ce faire une solution simple et intuitive est de disposer dun potentiomtre linaire pour rguler laltitude et dun potentiomtre deux dimensions sous forme de joystick pour contrler le lacet et le tangage. En plaant les deux potentiomtres de part et dautre de la tlcommande, lutilisateur peut aisment commander lhlicoptre avec ses deux pouces. En montant, respectivement descendant, la position du potentiomtre linaire (positionn sur la gauche), il pourra augmenter, respectivement diminuer, laltitude de lhlicoptre. Laxe horizontal du joystick (gauche-droite) permet de commander le lacet Printemps 2011 6
Projet de semestre
LAI, EPFL
de lhlicoptre alors que laxe vertical (haut-bas) commande le tangage. Nous choisissons le potentiomtre linaire EWAP1 de Panasonic qui a une course de 45 mm et mesure 60 x 8 mm, et le joystick miniature de la srie 252 de CTS qui mesure 20 x 21 x 13 mm, car ces deux composants sont en accord avec les dimensions de la tlcommande (150 x 80 mm). Le Tableau 3, permet de comparer et de choisir un transceiver infrarouge du fabricant Vishay. Pour la tlcommande les restrictions sont moins importantes que pour le rcepteur de lhlicoptre. En effet, le poids et la taille du transceiver ne sont pas critiques, ce qui nous permet de choisir un metteur plus puissant afin de garantir un envoi de donnes une distance suffisante. Nous constatons que lmetteur/rcepteur offrant la plus grande distance dmission est le TFDU6103, cest pourquoi nous optons pour ce dernier pour la tlcommande.
3.1.2 Rcepteur
Les moteurs monts sur lhlicoptre sont de simples moteurs DC balais. Ces moteurs peuvent tre commands en vitesse grce des signaux PWM. Llectronique de commande de ces moteurs est donc rduite au minimum, savoir un transistor de puissance qui fournit le courant ncessaire au fonctionnement du moteur. Les transistors de puissance que nous allons utiliser sont des MOSFET IRLML2402. En effet, ce transistor est capable de fournir plus dun ampre avec une tension gatesource de 3 V, or les moteurs consomment environ 250 mA chacun. De plus, la taille du package est adapte notre application et il contient dj la diode de roue libre en parallle au transistor, ce qui nous vite den ajouter une au circuit lectronique. Pour le choix du transceiver infrarouge du rcepteur, nous pouvons nouveau consulter le Tableau 3. Les caractristiques adquates et celles qui ne conviennent pas sont mises en vidence, en vert et en rouge respectivement. Nous constatons quun seul transceiver rempli t toutes les contraintes (taille, poids et consommation), il sagit du TFBS4711. Le baud rate maximal est largement suffisant comme nous le verrons plus loin lors de limplmentation de la communication IrDA. Transceiver Caractristiques Taille H x L x W [mm] Poids [g] Consommation [mA] Distance [m] Baud rate max [kbps] Tension dalimentation [V] Prix* [CHF] TFBS4650
1.6 x 6.8 x 2.8 0.05 0.075 0.5 115.2 2.4 3.6 2.50
TFDU6300
2.5 x 8.5 x 3.1 0.075 2 19 4000 2.4 3.6 3.65
Printemps 2011
Projet de semestre
LAI, EPFL
Afin de confirmer le choix des deux transceivers (celui de la tlcommande et celui du rcepteur) nous pouvons calculer la distance de communication. Selon les datasheets du constructeur Vishay, nous pouvons dterminer la distance laquelle lhlicoptre peut tre contrl en connaissant les deux transceivers.
Pour des conditions dutilisation standards, pour le transceiver de la tlcommande et pour le rcepteur sur lhlicoptre. En prenant les deux valeurs minimales (130 mW/sr et 35 mW/m2) nous obtenons une distance denviron 2 mtres. Ceci nous laisse envisager quune distance suprieure peut tre atteinte dans de bonnes conditions et en augmentant le courant au maximum dans la LED mettrice, tant donn que les signaux sont envoyes sous forme de pulses.
Printemps 2011
Projet de semestre
LAI, EPFL
3.2.1 Tlcommande
Alimentation et dcouplage du microcontrleur Comme nonc plus haut, afin de pouvoir utiliser des piles au lieu des accumulateurs, il est ncessaire dabaisser la tension dalimentation du microcontrleur maximum 4.1 V, cest pourquoi une diode Schottky est place entre la entre la tension dalimentation et le microcontrleur. Cette diode cre une chute de tension de 0.5 V sans limiter le courant dalimentation. La chute de tension aux bornes du microcontrleur est donne par . Le terme
peut tre trs important si les signaux du circuit sont rapides et risque de gner le fonctionnement du microcontrleur qui demande une tension dalimentation continue. Afin de minimiser les effets des rsistances et des inductances parasites des fils (R et L), des capacits de dcouplage C1 et C2 sont montes en parallle du microcontrleur. Ces capacits devront tre situes le plus proche possible des pins. La Figure 3 reprsente le montage lectronique de lalimentation avec les deux capacits de dcouplage C1 et C2. Sur cette figure la tension dalimentation est de 3.6 V car nous allons utiliser des accumulateurs lors de ce projet. La tension lentre du microcontrleur (VCC MC) est donc de 3.1 V.
Printemps 2011
Projet de semestre
LAI, EPFL
LED de statut La LED qui permet de dterminer si la tlcommande est allume ou teinte est simplement connecte via une rsistance la tension dalimentation, comme le montre la Figure 4. La valeur de la rsistance R1 est dfinie en connaissant la tension Vcc, la tension aux bornes de la LED et le courant circulant dans la LED.
Affichage du niveau de la batterie Afin de garantir un courant suffisant dans la LED verte, celle-ci est connecte au microcontrleur par le biais dun transistor (BS170). La tension VGS du transistor tant faible (celle fournit par le pin du microcontrleur est de maximum 3.1 V), la tension de saturation VD,sat est ngligeable. Nous pouvons reprendre le calcul ci-dessus avec un courant de 5 mA et une tension VLED de 2.1 V et ainsi choisir une rsistance de 330 . La Figure 5 prsente le montage dune seule LED, les trois autres LED s sont connectes de la mme manire sur les pins P1.1, P1.2 et P1.3.
Figure 5 : Montage lectronique d'une LED servant l'affichage du niveau de batterie de lhlicoptre
Printemps 2011
10
Projet de semestre
LAI, EPFL
Conversions Analogique-Digitale (ADC) La lecture des potentiomtres est faite par le biais de lADC 10 bits du microcontr leur. Le convertisseur retourne la tension lue, Vin, de la faon suivante :
Pour ne pas tre dpendant de la tension des accumulateurs (qui diminue plus les accumulateurs se dchargent) nous utilisons, comme rfrence positive, la source tension interne du microcontrleur de 2.5 V qui est donne sur le pin P2.4. La rfrence ngative est simplement mise zro en connectant la patte P2.3 la terre. Nous obtiendrons donc des valeurs selon lquation suivante :
La configuration prcise de lADC sera prsente plus loin, dans la partie logicielle du rapport. Afin de filtrer les bruits de mesures, des capacits de 100 nF (C3, C4 et C5 de la Figure 6) sont connectes en parallle des entres de lADC. Sur la Figure 6, la tension des batteries est galement mesure par le pin P3.0. Comme nous avons choisi une tension de rfrence positive de 2.5 V, il est ncessaire que la tension lue se trouve entre 0 et 2.5 V. Un diviseur de tension form par R8 et R9 est mis en place pour diviser la tension par deux. De cette manire, lorsque les accumulateurs sont compltement chargs, la tension lentre de lADC est de 1.8 V. Les rsistances du diviseur de tension sont choisies grandes (100 k) pour minimiser les pertes de courant.
Printemps 2011
11
Projet de semestre
LAI, EPFL
Transceiver infrarouge La faon de connecter lmetteur/rcepteur infrarouge est dcrite dans les datasheets de ce dernier [5]. Comme prsent la Figure 7, les capacits C7, C8 et la rsistance R10 forment un filtre passe-bas pour lisser la tension dalimentation du transceiver. La capacit C6 permet de dcoupler lanode de la LED mettrice. Lanode de la LED infrarouge est connecte la tension dalimentatio n pour maximiser la tension aux bornes de la LED et ainsi le courant qui la traverse. La rsistance R11, quant elle est ncessaire, si la tension lanode est suprieure 3.3 V, le cas chant. Cette rsistance a pour but de limiter le courant circulant dans la LED. Le courant maximum support par la LED IR est de 600 mA et la tension ces bornes est de 3.6 V, la rsistance ncessaire doit donc tre de 6 , cest pourquoi nous pouvons utiliser une rsistance normalise de 10 . La patte 5 (SD) est tire la terre par la rsistance de pull-down R12. Ce pin peut tre mis un pour stopper le transceiver ou pour changer la vitesse de transmission infrarouge.
Connexion JTAG et bi-wire Le microcontrleur peut tre programm par le biais de deux connexions diffrentes. Il sagit dune connexion JTAG quatre fils ou dune connexion bi-wire deux fils. Texas Instrument a cr un programmateur (numro de rfrence : eZ430-RF2500) qui permet daccder au MSP430 laide dune connexion bi-wire. Afin de garantir une certaine flexibilit, les deux connexions sont implmentes sur le circuit lectronique de la tlcommande et du rcepteur. Lalimentation fournie par le programmateur est directement connecte au pin VCC du microcontrleur, car les tensions ne dpassent pas les valeurs admises par le MSP430. Selon les datasheets du fabricant, le pin dentre-sortie du connecteur bi-wire (SBWTDIO) doit tre mis VCC par le bais dune rsistance de pull-up de 47 k, afin de garantir un niveau haut par dfaut. La rsistance nulle R14 (voir Figure 8), connecte la patte de TEST du microcontrleur, reprsente un jumper que lon peut choisir de connecter ou non. Avec lutilisation de la connexion bi-wire, ce jumper est laiss en lair, car le programmateur gre lui-mme ltat de la ligne TEST. Par contre, lors de lutilisation de la connexion JTAG, il est ncessaire de mettre la ligne au niveau haut pour que le microcontrleur sache quune connexion JTAG est utilise sur les pattes P1.4 P1.7.
Printemps 2011
12
Projet de semestre
LAI, EPFL
La Figure 8 prsente la faon de placer les deux connecteurs pour le microcontrleur de la tlcommande, ceux du rcepteur sont connects de la mme manire aux pins correspondants.
3.2.2 Rcepteur
Alimentation et dcouplage du microcontrleur Pour les mmes raisons que celles de la tlcommande, la batterie de lhlicoptre, qui dlivre une tension maximale de 4.2 V, est connecte lalimentation du microcontrleur par le biais dune diode Schottky qui abaisse la tension de 0.5 V (voir Figure 9). A nouveau, le microcontrleur est dcoupl grce la capacit C1.
Printemps 2011
13
Projet de semestre
LAI, EPFL
LED de contrle Le LED de contrle, tant la seule LED du rcepteur et tant trs peu utilise, ne ncessite pas un montage spcifique. Le microcontrleur est capable de fournir un courant de 5 mA en sortie, la LED est donc simplement connecte au pin 3.0 en sortie par le biais dune rsistance qui limit e le courant, comme prsent en Figure 10. La tension fournie par le pin tant au maximum de 3.7 V (correspondant la tension dalimentation du microcontrleur) et le courant circulant dans la LED de 5 mA, nous pouvons calculer la valeur de la rsistance R9 :
Conversions Analogique Digitale (ADC) La lecture de la tension de la batterie Li-Po se fait de la mme manire que la lecture de la tension des accumulateurs de la tlcommande. Comme la tension de rfrence interne est de 2.5 V, il est ncessaire de diviser la tension lue par un facteur deux, ce qui est effectu grce au diviseur de tension form de R4 et R5 de la Figure 11.
Printemps 2011
14
Projet de semestre
LAI, EPFL
Contrle des moteurs Comme nonc plus haut, llectronique de commande des moteurs se rsume un transistor de puissance qui fourni le courant au moteur. La rsistance de pull-down R2 (voir Figure 12) est prsente pour assurer que le moteur ne tourne pas si le microcontrleur nenvoie pas un 1 la sortie (lors du dmarrage ou dun bug par exemple). Une diode de roue libre D3 est ncessaire pour que le courant puisse circuler lorsque le transistor ne conduit pas. Les capacits C4 et C5 permettent dviter les pics de courant sur la batterie dalimentation. Ces capacits fournissent une partie du courant durant un court instant lors de lenclenchement du transistor. Le deuxime moteur est connect de la mme manire sur le pin P1.3.
Transceiver infrarouge La connexion du transceiver infrarouge TFBS4711 est similaire celui de la tlcommande (voir Figure 13). Nous retrouvons le filtre passe-bas, form de la capacit C3 et de la rsistance R7. La capacit C2 permet de dcoupler le transceiver. A nouveau, lanode de la LED infrarouge est connecte la batterie pour maximiser la tension et le courant dans la LED. Le courant maximum support par la LED IR est de 430 mA et la tension ces bornes est de 4.2 V, la rsistance, R8, minimale ncessaire doit donc tre de 9.76 . Pour garantir une faible consommation du transceiver lors de lenvoi des donnes, la valeur de cette rsistance est choisie suprieure, 47 , ce qui limite le courant 90 mA, diminuant ainsi la distance de communication.
Printemps 2011
15
Projet de semestre
LAI, EPFL
Printemps 2011
16
Projet de semestre
LAI, EPFL
Printemps 2011
17
Projet de semestre
LAI, EPFL
La forme du rcepteur est galement particulire. La principale contrainte dimensionnelle concerne les cotes externes maximales ; lhlicoptre tant de petite taille, le rcep teur doit pouvoir tre fix sur ce dernier sans entraver son fonctionnement. Le poids tant galement un critre critique, le volume du rcepteur doit tre minimis, cest pourquoi un PCB de 0.1 mm dpaisseur est utilis. Comme dcrit prcdemment, les connecteurs de programmation de la carte dinterface sont des MOLEX, ceci permet dviter dutiliser des connecteurs standards, gros et lourds. Le rcepteur peut alors faire office de cble et aucun connecteur ny sera fix.
Printemps 2011
18
Projet de semestre
LAI, EPFL
La Figure 17 prsente, la forme gnrale du rcepteur, nous pouvons observer le corps principal du circuit, de 18 par 28 mm. Les deux pattes contiennent uniquement les pistes qui permettront la programmation du microcontrleur. La partie plus large sera dcoupe, elle sert uniquement au dessin des pistes. Selon le programmateur choisi, nous pourrons couper une de ses pattes pour allger le circuit.
Printemps 2011
19
Projet de semestre
LAI, EPFL
Partie logicielle
Ce chapitre est consacr lexplication des programmes implments sur les microcontrleurs qui permettent le contrle de lhlicoptre distance par le biais de l infrarouge. Pour commencer, le protocole de communication utilis est dcrit de manire gnrale. Puis, le logiciel de la tlcommande est explicit en dtail, suivi de la prsentation du logiciel du rcepteur de lhlicoptre. Enfin, une vue densemble permettra de synthtiser la communication entre les deux circuits.
IrLMP (Link Management Layer) IrLAP (Link Access Protocol) Framer IrPhy (Physical Layer)
Tableau 4 : Architecture du protocole de communication IrDA
La premire couche, IrPhy, permet de spcifier les caractristiques de transmission, telles que les proprits optiques, la forme des pulses et la vitesse de transmission, le baud rate en anglais. Ces proprits dpendent principalement du type dmetteur et de rcepteur utiliss. Les proprits physiques des transceivers choisis, telle que la longueur donde, langle dmission, la puissance dmission, la sensibilit, sont parfaitement dfinis et compatibles avec lapplication prsente. En ce qui concerne la vitesse de transmission, il existe quatre schmas de pulse qui permettent de modifier le baud rate (du plus lent, 9.6 kbps, au plus rapide, 16 Mbps) : SIR, MIR, FIR, VFIR. Dans notre application le transceiver infrarouge du rcepteur ne permet denvoyer et de recevoir des donnes quen mode SIR. De plus, le microcontrleur possde un module qui permet de convertir un signal UART en un signal IrDA en mode SIR, la vitesse de transmission est donc dfinie 9600 bps, ce qui largement suffisant pour cette application.
Printemps 2011
20
Projet de semestre
LAI, EPFL
La forme des pulses correspondant au modle SIR est cre par une modulation RZI (Return to Zero Inverted). Cette modulation comprend trois tapes principales pour transformer un signal UART en un signal IrDA : 1) Inversion de la valeur du bit 2) Gnration dun signal qui dure 3/16 du bit de donnes 3) Ajout dun bit de dbut (start) et dun bit de fin (stop)
La Figure 20 prsente la conversion UART / IrDA, nous observons que le bit de start de lIrDA est reprsent par la valeur logique 1 et que le bit de stop vaut 0. Le caractre d information contenu entre ses deux bits ne mesure que 8 bits. Pour chaque caractre envoyer, 10 bits au total sont donc gnrs et envoys. Ce schma de pulses reprsente la base de la communication IrDA. Les couches suprieures du protocole utilisent toutes cette forme et ne font que mettre bout bout diffrents caractres dinformation permettant dexcuter des communications complexes. La couche Framer donne la forme du paquet de pulses, elle transforme les paquets de donnes en les encadrant dans des bits de contrle. Ces bits de contrles permettent de dfinir si les bits ont tous t reus et donc si linformation reue est correcte. Le modle SIR du protocole de communication peut tre schmatis comme le montre la Figure 21. Start 1 bit Information 8 bits Stop 1 bit
Le Framer ajoute un byte de dpart, un byte de fin, ainsi que deux bytes de vrification autour des donnes envoyer. La suite de ces diffrents bytes forme un paquet de donnes, appel frame en anglais. BOF 8 bits Donne 8 bits .. CS 8 bits CS 8 bits EOF 8 bits
Printemps 2011
21
Projet de semestre
LAI, EPFL
La Figure 22, reprsente le schma dun paquet de base contenant le BOF (Beginning of Frame), souvent fix la valeur hexadcimale 0xC0, les diffrents bytes de donnes, les deux bytes de CS (Check Sum) qui ne sont rien dautre que la somme de tous les bytes de donnes, et le EOF (End Of Frame), qui est lui fix 0xC1. Le Check Sum doit bien videmment tre envoy sur deux bytes pour viter un overflow sur un seul byte lors de laddition des diffrentes donnes. Munis de ces caractres supplmentaires, le paquet de donnes peut tre analys la rception, car il est possible de dterminer quand il commence, si tous les bits sont reus correctement et quand il finit. Les couches suprieures ne sont pas implmentes dans ce projet, car il sagit dajouts de caractres qui permettent dtablir un change prcis et contrl dinformation s. Ces couches sont surtout utilises dans des applications dchange de documents de taille importa nte, comme par exemple, lenvoi dun document partir dun ordinateur vers une imprimante, ou lors dchange dinformations diverses entre plusieurs appareils pouvant fournir diffrents services. La couche IrLAP permet une transmission point point en halfduplex, c'est--dire quil y a un appareil maitre et un ou plusieurs appareils esclaves. Les informations sont envoyes lune aprs lautre et une rponse est chaque fois attendue pour continuer lchange. Cette rponse indique si le rcepteur a bien reu la donne prcdemment envoye et sil est prt recevoir la donne suivante. Cette couche permet galement la dcouverte d appareils qui possdent une connexion infrarouge active, la connexion avec un ou plusieurs de ces appareils ainsi que lchange dinformations entre les diffrents appareils actifs. La couche IrLMP, quant elle, permet plusieurs applications dun appareil dutiliser le lien infrarouge pour envoyer ou recevoir des informations. Chaque service que lappareil peut fournir possde une adresse, qui doit tre envoye dans le frame pour accder ce service. La couche IAS rend possible lenregistrement, la dcouverte et laccession aux diffrents services proposs par un appareil. Enfin, le Tiny TP ajoute un tage de contrle du flux au niveau de lIrLMP, c'est--dire quil permet de segmenter les donnes, de grer la priorit des envois et de rassembler les donnes de diffrents services. La description des fonctions des couches suprieures montre quelles ne sont pas applicables dans notre application. En effet, nous ne pouvons pas nous permettre dattendre la rponse de lhlicoptre, qui est un lment mobile, pour envoyer les commandes sur les moteurs, car la transmission en temps rel serait perdue. De plus, la tlcommande et lhlicoptre ne fournissent pas diffrents services auxquels nous voudrions accder indpendamment. Enfin, il est vident que la communication ne se fait quentre deux circuits qui possdent, de par leurs composants lectroniques et leur programmation, des caractristiques compatibles pour la communication IrDA.
Printemps 2011
22
Projet de semestre
LAI, EPFL
4.2 Tlcommande
Ce paragraphe prsente une description des choix de programmation ainsi que du fonctionnement gnral du programme qui est implment sur le MSP430 de la tlcommande. Le code, crit en langage C, tient dans un unique fichier regroupant le programme principal (main) ainsi que la dfinition des deux interruptions, linterruption ADC et linterruption de rception infrarouge. De plus amples informations sur la programmation et le fonctionnement du MSP430 peuvent tre trouves dans [3]. Le principe de fonctionnement du code de la tlcommande, ainsi que celui du rcepteur, repose sur une mise en veille, nomme Low-Power Mode , qui est stoppe lorsquune interruption est active. Ceci permet de diminuer la consommation du microcontrleur et de ragir en temps rel aux vnements extrieurs. Pour pouvoir implmenter ce mode de fonctionnement, le watchdog timer du microcontrleur est dsactiv, vitant ainsi une remise zro chaque fois que le microcontrleur se met en veille prolonge. La frquence de lhorloge principale du microcontrleur (MCLK) ainsi que la frquence auxiliaire (SMCLK) sont fixes 8 MHz et sont cadences grce loscillateur interne contrl numriquement. Lhorloge auxiliaire nous permet de passer au mode de veille le moins svre (Low-Power Mode 0) tout en excutant des tches de fond comme les mesures ADC, lincrmentation de compteur ainsi que lenvoi et la rception de signaux IrDA. La frquence de 8 MHz est amplement suffisante tant donn quil y a trs peu de calculs effectuer et que le programme est rythm par les interruptions, qui ont une frquence plus faible. Comme prcis dans la partie prcdente, la communication bidirectionnelle nest pas commande par des requtes et rponses, c'est--dire que nous ne nous assurons pas que le rcepteur ait reu linformation pour lui envoyer linformation suivante. Il est donc ncessaire de t rouver une solution pour que les deux appareils (la tlcommande et le rcepteur de lhlicoptre) puissent se synchroniser et ne pas envoyer des donnes nimporte quand. Les informations provenant de la tlcommande et contrlant la vitesse des moteurs tant plus importantes et demandant une plus grande ractivit, la tlcommande envoie les donnes de faon continue durant 950 ms puis stoppe lenvoi pour se mettre en mode de rception durant 50 ms. Durant ces 50 ms, le rcepteur peut envoyer la valeur de la batterie de lhlicoptre que la tlcommande affichera sur les LEDs vertes. Cette solution permet un bon contrle de lhlicoptre, en effet ltre humain est capable de se rendre compte dun changement et de ragir en consquence en 120 ms environ, cette coupure de 50 ms passera donc presque inaperue pour lutilisateur. Dautre part, ce stratagme garantit une consommation minimale du circuit situ sur lhlicoptre, car lenvoi des donnes ne se fait quune fois par seconde. Pour ajuster le temps denvoi, il suffit dobserver le frame infrarouge envoy par la tlcommande, de compter le temps denvoi dun frame et de dfinir combien de paquets peuvent tre envoys avant le mode de rception, le temps de rception, quant lui, est simplement dtermin par un compteur qui sincrmente jusqu la valeur correspondant 50 ms. Conversion Analogique Digitale (ADC) Linterruption principale du programme de la tlcommande est linterruption de la conversion AD, qui est dclenche lorsquune conversion, ou une srie de conversions, est termine. Le concept du logiciel tant denvoyer en continu les donnes lues par la tlcommande, il est ncessaire que ces donnes soit rgulirement mises jour. Cette conversion ne peut toutefois pas tre excute trs haute frquence, la priode dchantillonnage minimale tant donne dans les datasheets par :
Printemps 2011
23
Projet de semestre
LAI, EPFL
Dans notre cas (rsistance des potentiomtres) et donc , c'est--dire que la frquence dchantillonnage doit tre infrieure 4 MHz. De plus la transmission IrDA tant limite 9600 bps, la lecture des valeurs des potentiomtres peut se faire basse frquence. Cest pourquoi la frquence du module ADC (ADC10CLK) est choisie la valeur minimale possible, savoir 1.6 MHz, ce qui correspond lhorloge SMCLK divise par un prescaler de 5. Lchantillonnage quant lui se fait sur 64 coups dhorloge, afin de diminuer la cadence des interruptions de lADC. Nous obtenons finalement : , correspondant une frquence Comme nonc plus haut, la tension de rfrence de la conversion AD est programme comme tant la tension de rfrence interne de 2.5 V pour ne pas dpendre des fluctuations de la tension dalimentation. Pour tablir cette tension sur la patte P2.4, il faut attendre un dlai de 30 s, ce qui est ralis par linterruption du Timer A qui nest excute quune seule fois lors de linitialisation, en dbut de programme. Les quatre donnes devant tre rcoltes par lADC sont les suivantes : laltitude, donne par le potentiomtre linaire, le lacet et le tangage, par le biais du joystick et enfin ltat des batteries de la tlcommande. Linterruption ADC peut tre dclenche quaprs la lecture et la sauvegarde de ces quatre valeurs en utilisant le contrleur de transfert de donnes (en anglais Data Transfer Controller ou DTC), qui permet de stocker dans un tableau les valeurs lues par lADC. Ce contrleur fonctionne en parallle du fonctionnement principal du microcontrleur et peut donc tre actif lors de la veille de ce dernier. Les valeurs sont lues et stockes de manire dcroissante, cest--dire en commenant par le pin P3.0 puis en remontant jusquau pin P2.0. Le tableau ADC_buffer reoit donc les paramtres en commenant par ltat des batteries et en terminant par laltitude ( voir Tableau 5). Cette mthode rend obligatoire le passage par tous les pins de lintervalle mme sils ne sont pas configurs en entre ADC, ces pins ne seront pas chantillonns mais une incrmentation de ladresse suivante du tableau est effectue. Linterruption est dclenche lorsque le tableau ADC_buffer est rempli.
Patte du MSP430 / Source de lADC P3.0 / A5 P2.4 / A4 P2.3 / A3 P2.2 / A2 P2.1 / A1 P2.0 / A0
Adresse ADC_buffer ADC_buffer [0] ADC_buffer [1] ADC_buffer [2] ADC_buffer [3] ADC_buffer [4] ADC_buffer [5]
Tableau 5 : Stockage des valeurs lues par lADC dans le tableau l'aide du DTC
Printemps 2011
24
Projet de semestre
LAI, EPFL
Maintenant que linitialisation du module ADC est compltement dfinie, il est possible de calculer prcisment la frquence de linterruption ADC laide du tableau suivant, qui reprsente le temps de chaque tape pour une seule lecture ADC :
Etant donn que linterruption est dclenche lorsque que le tableau ADC_buffer est compltement rempli, le temps entre chaque interruption est de quatre conversions AD, savoir 193 s. La frquence de linterruption ADC se monte donc 5.18 kHz. Le microcontrleur est mis en veille et nest actif que toutes les 0.2 ms pendant quelques s, ce qui permet dconomiser de lnergie, bien que ce gain soit ngligeable face la consommation des LEDs daffichage.
Printemps 2011
25
Projet de semestre
LAI, EPFL
Les donnes lues par le module ADC sont codes sur 10 bits de la faon suivante :
Les donnes ne peuvent tre envoyes que par paquet de 8 bits, il est donc ncessaire de diminuer la taille des sorties de lADC avant l envoi. Il ne faut garder que les 8 bits de poids fort, en excutant un dcalage de 2 bits droite, correspondant une division par 4. Les donnes seront ensuite utilises et converties en vitesse des moteurs de manire adquate sur le rcepteur de lhlicoptre, grce au Tableau 7 qui contient les valeurs des conversions AD sur 8 bits pour les positions critiques des potentiomtres : Paramtres Potentiomtre Altitude Position Bas Haut Gauche Joystick Lacet Milieu Droite Bas Joystick Tangage Milieu Haut Valeur hexadcimale 0xFF 0x00 0xF8 0x7A 0x02 0xFF 0x7C 0x00 Valeur dcimale 255 0 248 122 2 255 124 0
Communication IrDA Pour limplmentation de lenvoi et de la rception du signal IrDA, le module USCI (Universal Serial Communication Interface) est configur pour la conversion UART / IrDA. Nous imposons ce module dutiliser lhorloge auxiliaire (SMCLK) 8MHz, de cette manire la rception et la transmission de donnes infrarouge pourra se faire durant le mode de veille. Pour former un pulse de 3/16 de bit, le module de conversion effectue un surchantillonnage 16 fois plus lev. Pour obtenir une vitesse de transmission de 9600 bps, la frquence du module doit donc tre de 9600 x 16 = 153.6 kHz. Lhorloge 8 MHz est donc divise par un prescaler de 52 pour obtenir une frquence de 153.8 kHz, un tage de modulation est activ pour se rapprocher le plus possible de la frquence dsire. Pour sassurer que le buffer denvoi de 8 bits est prt recevoir une nouvelle information, il suffit de vrifier la valeur du flag dinterruption du module USCI. Si ce dernier est 0 cest que lenvoi nest pas termin et que le buffer ne peut pas recevoir de nouvelles donnes, sil est 1, un nouveau byte peut tre plac dans le buffer pour tre envoy. Pour la rception, il suffit dactiver linterruption de rception du module USCI et lorsquun byte est reu et enregistr dans le buffer de rception, linterruption est automatiquement appele. Il est donc primordial de dsactiver linterruption de rception lors de lenvoi des donnes et de ne lactiver que lorsque que lon est prt recevoir des
Printemps 2011
26
Projet de semestre
LAI, EPFL
donnes. En effet, linterruption de rception tant dune priorit suprieur e celle de lADC, qui excute lenvoi des donnes lorsque ses valeurs sont toutes lues, le programme risque dtre interrompu un moment inopportun par linterruption de rception (voir Figure 24) Le frame dinformation envoy lhlicoptre est prsent la Figure 23 , il compte 70 bits au total, c'est--dire quil faudra environ 7.3 ms pour lenvoi total du frame une vites se de 9600 bps. Pour envoyer ces informations lhlicoptre durant 950 ms, il suffit donc de faire partir 130 paquets de donnes la suite. Dans le cas prsent, le Check Sum est quivalent la somme de la valeur de laltitude, du lacet et du tangage. Ces valeurs ne sont rien dautres que la lecture du potentiomtre et du joystick par lADC. Les donnes brutes sont envoyes, linterprtation et la conversion de ces donnes sont excutes par le rcepteur de lhlicoptre. BOF 8 bits Altitude 8 bits Lacet 8 bits Tangage 8 bits CS 8 bits CS 8 bits EOF 8 bits
Affichage des LEDs Laffichage des LEDs vertes remplit deux fonctions distinctes : premirement il permet dindiquer lutilisateur le niveau de batterie de lhlicoptre, deuximement il doit permettre de faire savoir que les niveaux des accumulateurs de la tlcommande sont faibles. La premire fonction est effectue dans linterruption de rception infrarouge (voir Figure 24) c'est--dire lorsquun signal infrarouge a t reu correctement par la tlcommande. La tension de la batterie de lhlicoptre peut varier entre 3.2 et 4.2 V, ce qui correspond des valeurs ADC codes sur 10 bits allant de 654 859, quivalant des valeurs sur 8 bits de 164 214. Effectivement, les valeurs retournes par le module ADC du rcepteur sont donne par :
Or dans le montage du rcepteur, la tension dentre de lADC est gale la moiti de la tension effective de la batterie, ce qui aboutit :
Le but est de pouvoir afficher le niveau de la batterie selon 5 tats grce un nombre cod sur 8 bits. La conversion pour laffichage sur les LEDs se fait donc de la manire suivante :
Puis, selon la valeur de LED_display, le bon nombre de LEDs sera illumin : Si LED_display > 200 4 LEDs allumes, si LED_display > 150 3 LEDs allumes, si LED_display > 100 2 LEDs allumes, si LED_display > 50 1 LED allume, et enfin, si LED_display <= 50 aucune LED allume
Printemps 2011
27
Projet de semestre
LAI, EPFL
La deuxime fonction quant--elle est excute lors de linterruption ADC, immdiatement ap rs la lecture de la tension des accumulateurs. Le montage de la lecture de la tension des accus est le mme que pour la batterie de lhlicoptre, nous pouvons donc rutiliser lquation ci -dessus. Les batteries de la tlcommande sont en fait trois accumulateurs de 1.2 V en srie, totalisant donc 3.6 V. Leur tension peut chuter jusqu 1 V lorsquils sont vides, baissant la tension totale 3 V, ce qui nous donne une valeur sur 10 bits de 613. Si le rsultat de la lecture ADC est en dessous de cette valeur, les quatre LEDs vertes changent dtat toutes les 2500 fois que linterruption ADC est appele, ce qui provoque un clignotement 1Hz environ. Droulement gnral du programme La Figure 24 est un schma explicatif du code implment sur la tlcommande. Ce programme est constitu de trois parties principales : le main, linterruption ADC et linterruption de rception IrDA. Le microcontrleur est dabord initialis, selon les instructions donnes prcdemment, il donne le dpart de la conversion ADC puis entre en mode de veille. La conversion ADC se fait durant la veille du microcontrleur. Linterruption ADC est appele rgulirement durant tout le fonctionnement du programme, bien que lutilisation de ses donnes ne se fasse que de temps en temps, quand le buffer denvoi du module IrDA est prt. Lactivation et la dsactivation de linterruption de rception IR est galement faite dans linterruption de lADC, permettant ainsi une synchronisation parfaite de lenvoi et de la rception. Une fois linterruption ADC termine, le microcontrleur sort du mode de veille pour relancer une conversion AD puis se remet en veille. Linterruption de rception est dclenche lorsquun byte de donnes est reu. Elle dbute par une analyse du byte reu afin de savoir sil sagit du dbut du paquet, dune information ou de la fin du paquet. Une fois que le frame complet est reu, la vrification de la donne est effectue en comparant la valeur de linformation avec celle du Check Sum reu. Si cette vrification est correcte lafficha ge des LEDs est excut comme expliqu plus haut. A la fin de cette interruption le microcontrleur se remet en veille. Un schma temporel, reprsentant la synchronisation entre les deux circuits est reprsent plus loin en Figure 29.
Printemps 2011
28
Projet de semestre
LAI, EPFL
NON
NON
Temps de rception 50 ms ? OUI Dsactivation de linterruption de rception IrDA, remise zro du nombre de frames envoyes
NON
Printemps 2011
29
Projet de semestre
LAI, EPFL
4.3 Rcepteur
La configuration logicielle du microcontrleur du rcepteur est trs semblable celle de la tlcommande, cest pourquoi dans cette partie, seuls les lments caractristiques au rcepteur seront dvelopps en dtail. Tout dabord, le programme repose sur le mme principe de fonctionnement que celui de la tlcommande, c'est--dire que le microcontrleur sinitialise, se met en veille et est activ grce aux interruptions. Les deux interruptions du rcepteur sont linterruption du Timer A et celle de la rception IrDA. Pour les mmes raisons qunonces prcdemment, lhorloge principale ainsi que le lhorloge auxiliaire sont cadences 8 MHz. Timer A et gnration du PWM Linterruption principale de ce programme est celle du Timer A, qui est dclenche lorsq ue le compteur atteint la valeur maximale, fixe par lutilisateur. Le Timer A sert galement la cration des deux signaux PWM qui forment la commande en tension des deux moteurs indpendamment. Le comparateur principal, TACCR0, est donc ajust de faon obtenir des commutations PWM 20 kHz, les rendant ainsi inaudibles pour ltre humain. Le mode du compteur est choisi en up-down c'est-dire quil sincrmente jusqua la valeur de TACCR0, puis se dcrmente jusqu atteindre zro et ainsi de suite (voir Figure 25). Le comparateur principal est donc dfini de la manire suivante :
avec , la frquence de lhorloge principale du microcontrleur et f, la frquence dsire. A cette frquence linterruption du Timer A est alors dclench toutes les 50 s. Cette interruption incrmente un compteur, pour savoir si la tlcommande a dmarr la pause de 50 ms, puis sort le microcontrleur de sa veille (voir Figure 27). Le compteur est remis zro par linterruption de rception IrDA, il narrive donc la valeur 400 que si aucune donne nest reue durant 20 ms.
Printemps 2011
30
Projet de semestre
LAI, EPFL
Les signaux PWM sont gnrs laide de deux comparateur s supplmentaires, TACCR1 et TACCR2, dont la valeur est modifie lors de la rception des donnes IR. Le mode de gnration est appel toggle/reset , c'est--dire que la sortie PWM est inverse lors du passage par la valeur du comparateur auxiliaire (TACCR1 ou TACCR2) et est mise zro lorsque le Timer atteint la valeur maximale, TACCR0, comme le montre la Figure 25. Ce mode permet davoir un rapport de cycle du PWM proportionnel la valeur du comparateur auxiliaire. Le moteur 1 sera donc rgul par le PWM gnr par le comparateur TACCR1 et le moteur 2 par celui du comparateur TACCR2, permettant ainsi dappliquer des vitesses diffrentes sur les deux hlices. En tenant compte des valeurs mesures par lADC de la tlcommande, prsentes dans le Tableau 7, il est possible de dfinir la valeur appliquer aux deux comparateurs. Laltitude est applique de faon identique sur les deux moteurs permettant dlever lhlicoptre la verticale. Le lacet quant lui est, sur un moteur, additionn, et sur lautre, soustrait, crant ainsi une diffrence de vitesse entre les deux hlices et entrainant un mouvement de rotation de lhlicoptre. Le coefficient du lacet doit tre dtermin en ralisant des essais avec le montage final. Dautre part, pour tenir compte des frottements mcaniques diffrents pour les deux hlices, il est ncessaire dajouter un coefficient de correction pour assur er que les hlices tourne la mme vitesse lorsque la consigne est la mme pour les deux moteurs. Ce coefficient est trouv en faisant la moyenne des ratios donns par le Tableau 8. Cette moyenne est de 0.73, mais elle est arrondie 0.75 afin de pouvoir facilement lappliquer laide de nombres entiers (3/4). Finalement nous obtenons les formules suivantes :
La position haut du potentiomtre linaire correspondant la valeur 0, il est ncessaire d inverser laltitude en la soustrayant la valeur maximale, 255. Il en est de mme pour le lacet, le zro doit correspondre la position mdiane du joystick. Le coefficient 200 reprsente simplement la valeur du comparateur TACCR0, le diviseur 1024 est quant lui, comme nonc ci-dessus, dterminer exprimentalement. Une vrification est effectue avant denvoyer c es rsultats sur les moteurs, pour sassurer que la valeur obtenue reste dans la plage autorise : [0 ; 200]. Valeur du comparateur du PWM 20 40 80 100 150 180 Vitesse de lhlice du dessous (1) [tr/min] 420 750 1000 1260 1560 1700 Vitesse de lhlice du dessus (2) [tr/min] 620 1000 1430 1650 2000 2500
Printemps 2011
31
LAI, EPFL
Le module ADC nest activ quune fois par seconde pour faire une mesure de la tension de la batterie de lhlicoptre. Cette activation est faite dans le main lorsque le rcepteur ne reoit plus aucune donne durant un intervalle de 20 ms, afin de garantir quil sagit de la pause intentionnelle de la tlcommande et non dune coupure de communication. La priode dchantillonnage doit tre la plus courte possible pour permettre la lecture de la tension de la batterie et lenvoi de cette information dans le laps de temps restant, savoir 30 ms. Comme dans la partie prcdente, la priode dchantillonnage minimum est donne par :
Cette fois-ci
est donne par le diviseur rsistif form par les deux rsistances de
et donc , c'est--dire que la frquence dchantillonnage doit tre infrieure 93 kHz. Pour obtenir une frquence dchantillonnage proche, lhorloge du module ADC, ADC10CLK, est fixe la moiti de lhorloge principale, savoir 4 MHz. Lchantillonnage se fait, quant - lui, sur 64 coups dhorloge, donnant ainsi une priode dchantillonnage de 16 s. Une fois que la conversion est termine, le module ADC est teint dans linterruption du Timer A, afin de diminuer la consommation du circuit lectronique. Le temps total pour quune conversion AD soit ralise est de 50 s. En effet, lchantillonnage commence directement une fois que le module est compltement configur. Cet chantillonnage dure 16 s, suivi de la conversion de la valeur lue ( ) et de son enregistrement ( ), mais la rcupration de la valeur ne se fait quaprs la prochaine interruption du Timer A qui se dclenche 20 KHz, c'est --dire toutes les 50 s. La conversion AD est directement suivie, dans le main, par la vrification de ltat de la batterie. Sagissant dune batterie lithium-polymre, il faut viter que sa tension descende au dessous de 3 V, sans quoi sa recharge est impossible. Pour garantir que la tension reste au dessus de cette valeur, le microcontrleur du rcepteur stoppe les moteurs, dsactive les interruptions et se met en veille, lorsque la tension de la batterie atteint 3.2 V, prenant ainsi compte dun facteur de scurit suffisant. La tension de 3.2 V, comme expliqu au chapitre prcdent, correspond une valeur sur 8 bits de 164.
Printemps 2011
32
Projet de semestre
LAI, EPFL
Communication IrDA Tous les paramtres dinitialisation de la communication IrDA sont les mmes que ceux de la tlcommande, garantissant ainsi la compatibilit des deux circuits. Seul le paquet de donnes envoy est diffrent (voir Figure 26). Le rcepteur de lhlicoptre, naya nt que la valeur de la batterie envoyer, le frame IR ne fait que 40 bits. Le Check Sum se rsume alors la simple rptition de la valeur de la tension de la batterie. La dure denvoi dun tel paquet une vitesse de 9600 bps se monte 4.2 ms, ce qui permet lenvoi de plusieurs frames dans le temps imparti, de 30 ms. Il est choisi denvoyer cette information trois fois, pour permettre la tlcommande de la recevoir au moins une fois correctement, mais galement de tenir compte de la minimisation de la consommation du rcepteur. La dure totale denvoi est donc de 12.6 ms. Lenvoi de linformation est ralis dans linterruption du Timer A condition que la conversion AD soit termine. BOF 8 bits Batterie 8 bits CS 8 bits EOF 8 bits
La synchronisation entre la rception et lenvoi des donnes infrarouge est galement implmente sur le rcepteur, dans le but dviter un chevauchement des interruptions de manire non contrl e (voir Figure 27). Linterruption de rception est donc active par dfaut, puis dsactive durant les 30 ms suivant lattente de 20 ms, permettant ainsi denvoyer les donnes laide du transceiver IR. Droulement gnral du programme Un schma explicatif du code implment sur le rcepteur est prsent sur les Figures 27 et 28. Ce programme est constitu de trois parties principales : le main, linterruption du Timer A et linterruption de rception IrDA. Tout comme pour la tlcommande, le microcontrleur est dabord initialis puis active les interruptions et se met en veille. Linterruption du Timer A est dclenche 20 kHz et permet de dfinir, laide dun compteur, si le rcepteur doit envoyer ltat de la batterie la tlcommande. Comme expliqu ci-dessus, le compteur est remis zros chaque interruption de rception IrDA. Aux moments o ce compteur atteint la valeur 400, correspondant 20 ms sans rception, linterruption de rception IrDA est dsactive, le module ADC est initialis puis la conversion est dmarre. La conversion nest ralise quune seule fois, la suite de quoi le module ADC est arrt. Linterruption de rception IR est ractive aprs lenvoi des trois frames dinformation. La Figure 27 montre que le microcontrleur est souvent sorti du mode de veille, mais quil neffectue une tche de conversion et denvoi, quune fois par seconde . Comme le montre la Figure 28, linterruption de rception ressemble fortement celle de la tlcommande, elle est dclenche lorsquun byte de donn es est reu. Elle effectue lanalyse du byte et ds que le paquet complet est reu, la somme des informations reues est calcule et compare au byte de Check Sum reu. Si les deux nombres sont gaux, les comparateurs du Timer A sont modifis, selon les explications prcdentes. A la fin de cette interruption le microcontrleur se remet en veille.
Printemps 2011
33
Projet de semestre
LAI, EPFL
Main
Initialisation - Sortie sur la LED - Horloge : 8MHz - ADC : 25 kHz - IrDA : 9600 bps - PWM : 20 kHz Activation de linterruption de rception IrDA
Interruption Timer A
NON
NON
NON
ADC off ? OUI Dmarrage du module ADC Conversion ADC Nombre de frames envoyes =3? NON
OUI Batterie faible ? OUI Arrt des moteurs Dsactivation des interruptions Mise en veille Fin de linterruption Sortie du mode de veille NON Activation de linterruption de rception IrDA, remise zro du nombre de frames envoyes
Printemps 2011
34
Projet de semestre
LAI, EPFL
NON
Printemps 2011
35
Projet de semestre
LAI, EPFL
Printemps 2011
36
Projet de semestre
LAI, EPFL
Conclusion
La consommation totale du rcepteur peut tre estime en additionnant la consommation des diffrents lments lectroniques et en considrant le temps de fonctionnement de chacun de ces lments. Le Tableau 10 rsume la consommation totale, en prsentant la consommation de courant des composants lectroniques, la puissance consomme de chaque lment avec lhypothse que la tension dalimentation est constante et de 3.7 V, et enfin le rapport de temps durant lequel chaque composant est actif (temps dactivit sur une seconde en pourcent). Nous observons que la consommation totale est de 1.852 W et quelle est principalement due au fonctionnement des deux moteurs, qui tournent en continu et consomment 250 mA chacun. Les efforts effectus pour diminuer la consommation du circuit sont donc visibles mais sont ngligeables face la consommation des moteurs. Avec une telle estimation, nous pouvons galement dfinir que le temps de vol espr avec une batterie de 50 mAh slve six minutes maximum. Il sagit bien sr dune surestimation tant donn quen ralit la tension dalimentation nest pas constante et que les batteries ne peuvent pas tre dcharges
Printemps 2011
37
Projet de semestre
LAI, EPFL
compltement, mais il est fortement probable que lhlicoptre puisse voler au-del des deux minutes espres. Elments Moteurs MSP430 veille MSP430 actif ADC LED Transceiver IR envoi Transceiver IR rception TOTAL avec ratio Courant consomm 500 mA 80 A 500 A 1.5 mA 5 mA 0.6 mA 0.1 mA 500.56 mA Puissance consomme 1.85 W 0.3 mW 1.85 mW 5.55 mW 18.5 mW 2.22 mW 0.37 mW 1.852 W Ratio [%] 100 70 30 0.007 5 1.26 95
Des problmes furent rencontrs lors des essais avec lhlicoptre : les moteurs, ayant une faible rsistance interne, provoquent des sauts de tension sur lalimentation, ce qui engendre un dysfonctionnement du microcontrleur, qui nest plus capable de recevoir correctement les informations IR. Ces perturbation peuvent galement se retrouves sur la masse du circuit, qui est commune pour tous les composants lectroniques. En utilisant des transistors rsistance ON relativement leve (au dessus du Ohm), ces problmes de communication disparaissent, mais les moteurs ne disposent plus de suffisamment de courant pour faire dcoller lhlicoptre. Au vu du bilan de ce projet, plusieurs amliorations peuvent y tre apportes. Tout dabord, la distance de communication entre le rcepteur et la tlcommande peut tre augmente, car, comme prsent dans la partie des schmas lectroniques, la rsistance sur la LED (R9) peut tre diminue 10 , au lieu des 47 actuels, augmentant ainsi le courant dans la LED mettrice ainsi que la consommation du transceiver. Nous sommes donc face un compromis entre la distance et la consommation, mais comme le Tableau 10 le montre, la consommation du circuit lectronique est ngligeable face celle des moteurs, il est donc envisageable de diminuer cette rsistance R9. Deuximement, pour corriger les problmes dus aux moteurs de lhlicoptre, il est possible d ajouter un rgulateur de tension de 3.3 V pour alimenter le microcontrleur. De cette manire les sauts de tension sur lalimentation naffecteront pas le fonctionnement du microcontrleur. De plus, pour supprimer les perturbations de la masse, deux plans de masse diffrents sont dessins et relis par une ferrite. Le premier plan de masse regroupe ltage de driver des moteurs, le deuxime plan de masse relie tous les autres composants du circuit. La taille du rcepteur peut galement tre diminue, afin de lallger un peu. Une deuxime version du rcepteur accueillant les modifications dcrites dans cette
Printemps 2011
38
Projet de semestre
LAI, EPFL
conclusion a t ralise et est prsente en annexes. La taille du circuit de cette version modifie est de 16x26 mm. Faute de temps, cette deuxime version na pas pu tre cre et teste sur lhlicoptre. Enfin, latterrissage de lhlicoptre lorsque les batteries sont faibles peut tre amlior de faon logicielle. En effet, au lieu de brutalement couper les moteurs, il est possible dimposer une vi tesse suffisante aux moteurs durant un certain laps de temps, permettant ainsi lhli coptre de se poser lentement. La vitesse imposer, ainsi que le temps de descente, sont dterminer exprimentalement, ce qui na pas pu tre fait au vu des problmes rencontrs lors des essais.
Patrick Clerc
Printemps 2011
39
Projet de semestre
LAI, EPFL
6
[1] [2] [3] [4] [5] [6]
Bibliographie
Savioz Grgory, "Design and construction of an ultra-light helicopter", EPFL, Projet de semestre, 2007 Charles D. Knutsonm, Jeffrey M. Brown, "IrDA Principles and Protocols", The IrDA library, Volume 1, MCL Press, 2004 "MSP430x2xx Family Users Guide", SLAU144F, Texas Instrument, 2010 "MSP430F21x2 Mixed signal microcontroller", SLAS578G, Texas Instrument, 2009 "Fast Infrared Transceiver Module for 2.4 V to 5.5 V Operation", TFDU6103, Vishay, 2009 "Serial Infrared Transceiver for 2.4 V to 5.5 V Operation", TFBS4711, Vishay, 2010
Printemps 2011
40
Projet de semestre
LAI, EPFL
Annexes
Les annexes sont divises en quatre parties : les documents concernant la tlcommande, le rcepteur, le rcepteur modifi ainsi que la carte d interface. Chaque partie est constitue des listes des composants lectroniques, du schma du circuit lectronique puis de diffrentes vue du routage du PCB (vue gnrale en taille relle, zoom de la vue de dessus, zoom de la vue de dessous).
7.1 Tlcommande
Liste des composants lectroniques : Dsignation Capacit Capacit Capacit polarise Connecteur JTAG Connecteur piles Connecteur TI Diode Schottky Joystick LED LED (on/off) Microcontrleur MSP430F2132 Potentiomtre Rsistance Rsistance Rsistance Rsistance Rsistance Transceiver TFDU6103 Transistor BS170 Valeur 100 nF 4.7 F 10 F 6 pins 2 pins 4 pins 0.5 V 10 k verte rouge 28 pins 10 k 330 1 k 20 k 10 47 k 8 pins Footprint 0805 0805 0805 JUMP6 JUMP2 JUMP4 0603 JOYSTICK 0805 0805 TSSOP28 pot_pta4543 0402 0402 0805 0805 0805 IRMS6452 SOT23_2 Quantit 5 2 1 1 1 1 1 1 4 1 1 1 4 1 1 2 1 1 4
Printemps 2011
41
J4 VCC
VCC GND D1 DIODE SCHOTTKY R1 1k POT R6 POT DUAL R7 + D2 LED C3 100 nF R8 100 k 2 U1 MSP430F2132-28P DVCC C5 100 nF C4 100 nF C1 10 uF C2 100 nF
1 2 VCC MC
Piles
R2 330
R3 330
R4 330
R5 330
D3 LED
D4 LED
D5 LED
D6 LED
VCC MC
J1
JTAG
VCC TCK TMS TDI TDO GND P1.4/SMCLK/TCK P1.5/TA0.0/TMS P1.6/TA0.1/TDI/TCLK P1.7/TA0.2/TDO/TDI
1 2 3 4 5 6
25 26 27 28
8 9 10 19 20 3
Q1
R9 100 k
Q2
21 22 23 24 P1.0/TACLK/ADC10CLK/CAOUT P1.1/TA0.0/TA1.0 P1.2/TA0.1 P1.3/TA0.2 P3.0/UCB0STE/UCA0CLK/A5 P3.1/UCB0SIMO/UCB0SDA P3.2/UCB0SOMI/UCB0SCL P3.3/UCB0CLK/UCA0STE P3.4/UCA0TXD/UCA0SIMO P3.5/UCA0RXD/UCA0SOMI P3.6/TA1.0/A6 P3.7/TA1.1/A7
VCC MC 6
11 12 13 14 15 16 17 18
TEST/SBWTCK
RST/NMI/SBWTDIO
R11 10
R10 10
U2 TFDU6103 3 4 5 R12 20 k 7 TXD RXD SD NC VCC1 VCC2/IRED_AN IRED_CAT GND 6 1 2 8 C6 4.7 uF C8 4.7 uF C7 100 nF
B
TP1
VIS
VIS
Rev Sheet 1
1
of
Projet de semestre
LAI, EPFL
7.2 Rcepteur
Liste des composants lectroniques : Une quantit de 0 signifie que seul le footprint a t utilis dans la cration du PCB, le composant nest donc pas soud sur le circuit. Dsignation Capacit Capacit Capacit Capacit Connecteur batterie Connecteur JTAG Connecteur moteur Connecteur TI Diode Schottky LED Microcontrleur MSP430F2132 MOSFET IRLML2402 Rsistance Rsistance Rsistance Rsistance Rsistance Transceiver TFBS4711 6 pins 2 pins 4 pins 0.5 V rouge 32 pins Valeur 100 nF 100 F 1 F 4.7 F Footprint 0402 1206 0402 0402 PILE_DIDEL_6MM molex51281-0694 SIL2_2MM MOLEX545480471 0603 0603 QFN5X5_33 SOT23_2 100 k 47 47 330 47 k 6 pins 0402 0402 0805 0402 0402 TFBS4711S Quantit 2 1 1 1 1 0 0 0 3 1 1 2 4 1 1 1 1 1
Printemps 2011
47
VCC
Batterie
VCC_MC
C1 1 uF
R5 100 k
Q1 MOSFET
30
R2 100 k
J1
JTAG
VCC TCK TMS TDI TDO GND P1.4/SMCLK/TCK P1.5/TA0.0/TMS P1.6/TA1.0/TDI/TCLK P1.7/TA0.2/TDO/TDI P1.0/TACLK/ADC10CLK/CAOUT P1.1/TA0.0/TA0.1 P2.1/TAINCLKSMCLK/A1/CA3 P2.2/TA0.0/A2/CA4/CAOUT P2.3/TA1.0/A3/VREF/VEREF/CA0 P2.4/TA2.0/A4/VREF/VEREF/CA1 21 22 7 8 18 19
1 2 3 4 5 6
25 26 27 28
R3 100 k
D2
R1 330
LED
VCC
9 10 11 12 15 16 P3.0/UCB0STE/UCA0CLK/A5 P3.1/UCB0SIMO/UCB0SDA P3.2/UCB0SOMI/UCB0SCL P3.3/UCB0CLK/UCA0STE P3.6/TA0.1/A6 P3.7/TA1.1/A7 P3.4/UCA0TXD/UCA0SIMO P3.5/UCA0RXD/UCA0SOMI DVSS 1 5 P2.5/ROSC/CA5 XOUT/P2.7/CA7 NC31 NC4 NC17 NC20 TEST/SBWTCK 29 RST/NMI/SBWTDIO Thermal 32 2 31 4 17 20
VCC_MC R9 0
13 14
33
R7 47
R8 47
R6 J3 47 k CON4
U2 2 3 4
VCC1
TXD
VCC2/IRED_AN
RXD
1 2 3 4
GND
SD
C3 100 nF
C2 4.7 uF
TFBS4711
Rev Sheet 1
1
of
Projet de semestre
LAI, EPFL
Printemps 2011
54
J2 U3 1 IN EN J4 + C5 100 nF MOT1 1 2 C4 100 uF D3 DIODE SCHOTTKY C8 100 nF R4 100 k OUT TPS73033 GND 2 NR 4
D
VCC
R10
ferrite
2 1
Batterie 3 + 5 C7 1 uF
VCC_MC
C6 100nF +
C1 1 uF
Q1 MOSFET
D4
30
R2 100 k
VCC TCK TMS TDI TDO GND P1.4/SMCLK/TCK P1.5/TA0.0/TMS P1.6/TA1.0/TDI/TCLK P1.7/TA0.2/TDO/TDI P1.0/TACLK/ADC10CLK/CAOUT P1.1/TA0.0/TA0.1 P2.1/TAINCLKSMCLK/A1/CA3 P2.2/TA0.0/A2/CA4/CAOUT P2.3/TA1.0/A3/VREF/VEREF/CA0 P2.4/TA2.0/A4/VREF/VEREF/CA1 21 22 7 8 18 19
1 2 3 4 5 6
25 26 27 28
D2
R1 330
LED
VCC
9 10 11 12 15 16 P3.0/UCB0STE/UCA0CLK/A5 P3.1/UCB0SIMO/UCB0SDA P3.2/UCB0SOMI/UCB0SCL P3.3/UCB0CLK/UCA0STE P3.6/TA0.1/A6 P3.7/TA1.1/A7 P3.4/UCA0TXD/UCA0SIMO P3.5/UCA0RXD/UCA0SOMI DVSS 1 5 33 P2.5/ROSC/CA5 XOUT/P2.7/CA7 NC31 NC4 NC17 NC20 TEST/SBWTCK 29 RST/NMI/SBWTDIO Thermal 32 2 31 4 17 20
DVCC
J1 XIN/P2.6/CA6
JTAG
VCC_MC R9 0
B
13 14
R7 47
R8 47
R6 J3 47 k CON4
U2 2 3 4
VCC1
TXD
VCC2/IRED_AN
RXD
1 2 3 4
GND
SD
C3 100 nF
C2 4.7 uF
TFBS4711
Rev Sheet 1
1
of
Projet de semestre
LAI, EPFL
Printemps 2011
61
VIS
VIS
VIS
J5 1 2 3 4 5 6
VIS
MOLEX 6
J6 1 2 3 4 5 6
2 7 5 3 1 9 11
4 6 8 10 12 13 14 HEADER 7X2
B
J7
Rev Sheet 1
1
of