Projet

Général

Profil

Carte ArduPilot et capteurs » Historique » Version 27

Anonyme, 24/03/2013 14:58

1 1 Anonyme
h1. Carte ArduPilot
2 5 Anonyme
3 20 Anonyme
!http://forge.clermont-universite.fr/attachments/2099/APM_2_5.jpg!
4
5 3 Anonyme
h2. Descriptif
6 4 Anonyme
7 3 Anonyme
Nos recherches préliminaires sur les nouveaux composants nous ont amené vers l'ArduPilot. Cette carte de prototypage rapide est basée sur un Arduino Mega 2560. Dans sa dernière révision(2.5), l'ArduPilot se compose d'une seule carte (plusieurs shields auparavant) intégrant les composants nécessaires au vol d'un avion ou d'un hélicoptère comme une centrale inertielle 6 axes (3 gyroscopes, 3 accéléromètre),d'une boussole 3 axes, d'un baromètre et d'une puce GPS. Cet ensemble étant rassemblé sur une seule et même carte permet d'optimiser la place nécessaire sur le drone et diminue les câblages. 
8 5 Anonyme
Cette carte possède de nombreuses entrées/sorties et ports:
9
* 8 entrées PWM(RC)
10
* 8 sorties PWM/PPM(Moteurs)
11
* 9 entrées/sorties analogiques
12
* 4 ports séries(UART0 : USB et Xbee par défaut, UART1 : GPS, UART2: Xbee après modification, UART3 : ...)
13
* 1 port I2C pour des circuits externes
14
* 1 port SPI
15
16
Pour toutes les entrées/sorties, les broches se composent de 3 pins, un pin +5V,GND et un dernier pour le signal.
17 6 Anonyme
18
h2. Modifications apportées.
19 7 Anonyme
20 25 Anonyme
Afin de permettre une alimentation de l’ArduPilot par les moteurs à la place de l’USB, un dispositif a été mis en place par les concepteurs. Il a suffit de placer un cavalier sur les broches JP1 comme montré sur le schéma ci-dessous. 
21
Cette modification permet alors d’avoir l’alimentation par les moteurs et de pouvoir rester connecter en USB.
22 1 Anonyme
!APM2_JP1.jpg!
23
24 25 Anonyme
Pour la mise en place des communications série, nous devions utiliser un port série libre. Le port 0 étant réservé à l’USB, le port 1 pour le GPS, nous avons décidé d’utiliser le port 2, initialement prévu pour la communication Xbee, et qui disposait déjà d’un connecteur. 
25
Initialement, ce connecteur était relié au port 0, le même que le port USB. Il a donc fallu modifier la carte pour fixer le port 2 à cette connectique. 
26
Pour cela des soudures et des coupures de pistes étaient nécessaires  (comme indiqué sur le schéma ci-dessous), ces interventions furent réalisées par M. KAUFFMANN.
27 7 Anonyme
28
h2. Schéma de montage
29 24 Anonyme
30 7 Anonyme
!montage_sicopter.jpg!
31 1 Anonyme
32 7 Anonyme
h2. Centrale inertielle, MPU-6000
33 1 Anonyme
34 25 Anonyme
La MPU-6000, fabriquée par Invensense, fait partie des meilleurs composants utilisés dans les tablettes, smartphones et différents capteurs. Elle est très appréciée car elle a un faible coût, une faible consommation et de hautes performances. 
35 1 Anonyme
36 25 Anonyme
C'est une centrale inertielle 6 axes, c'est-à-dire qu'elle associe selon les axes X,Y,Z: 3 gyroscopes (vitesse angulaire) et 3 accéléromètres (accélérations). Cette génération intègre un DMP (Digital Motion Processor) afin d'ajouter 3 axes supplémentaires avec l'utilisation de magnétomètres externes dans le but de corriger la dérive des mesures. Pour communiquer, elle peut utiliser 2 systèmes de bus: I2C et SPI. De plus, on peut configurer leur sensibilité que cela soit pour les gyroscopes et les accéléromètres.
37
38
Désormais intégrée à la carte ArduPilot, nous avons utilisée la bibliothèque mise à disposition qui utilise la communication SPI pour récupérer les valeurs des capteurs.. Une tache future possible sera de réécrire cette bibliothèque. 
39
40 1 Anonyme
h2. Puce GPS, MediaTek MT3329
41
42 27 Anonyme
!MT3329-01-2.jpg!
43 25 Anonyme
Cette puce fabriquée par MediaTek fait partie des composants les plus utilisés dans les systèmes de localisation. Sa faible consommation et sa haute précision, même dans les milieux urbains (<3m dans 50% des cas), sont des atouts majeurs.
44
45
Son taux de rafraichissement peut varier de 1 à 10 kHz, et il lui faut au plus 35 secondes à froid pour se localiser. Par défaut on utilise le port avec une vitesse de 38400 bauds.
46 10 Anonyme
47 7 Anonyme
48
h2. Détecteurs d'obstacles et altitude, Sonar SRF-04
49
50 17 Anonyme
!http://forge.clermont-universite.fr/attachments/2095/srf_04_face.jpg!
51 11 Anonyme
Afin de permettre à notre drone de voler sans dommage, nous avons choisi d'utiliser de multiples sonars afin de détecter les obstacles environnants. Nous avons pris les sonar SRF-04 que nous utilisons en TP. Ces composants conçu par la société Devantech permettent de mesurer des distances entre 3cm et 3m. Notre drone possèdera 5 sonars, 1 situé dessous pour nous donner son altitude (dans le cas de faibles hauteurs) et 1 entre chaque bras du quadricoptère, cela permettant d'éviter un obstacle qui passerait entre les bras. Le spectre de ce sonar n'étant pas trop large (cf. diagramme ci-contre), les bras n'entraineront pas de perturbations dans les mesures.
52 19 Anonyme
!http://forge.clermont-universite.fr/attachments/2098/beam.gif!
53 12 Anonyme
Ce capteur peut être utilisé avec une communication I2C ou par des entrées/sorties analogiques. Nous utilisons cette dernière.
54
Pour cela, nous avons 4 broches :
55 19 Anonyme
!http://forge.clermont-universite.fr/attachments/2097/srf_conect.jpg!
56 12 Anonyme
* 5V
57
* ECHO
58
* TRIGGER
59
* Ground (Masse)
60 1 Anonyme
61 12 Anonyme
Son fonctionnement est assez simple, comme le montre le diagramme ci dessous.
62 18 Anonyme
!http://forge.clermont-universite.fr/attachments/2096/timing.gif!
63 12 Anonyme
On envoie une impulsion pendant au moins 10µs sur le TRIGGER pour démarrer la mesure. Ensuite il envoie 8 cycles d'ultrasons à 40 kHz et met la voie ECHO au niveau haut. Il écoute alors et dès que l'écho revient, il la passe au niveau bas. L'écho est donc une pulsation proportionnelle à la distance de l'objet. Si rien n'est détecté alors le SRF04 baissera sa voie ECHO de toute façon après 36ms d'attente.
64
65
Voici un code d'exemple pour l'arduino:
66
//Mettre screen du code.
67
68 13 Anonyme
La possibilité d'utiliser le même port TRIGGER pour les différents sonars a permis d'économiser le nombre de broches, car sinon il aurait fallu 4*5 = 20 broches et donc 10 broches de signal alors que nous n'en avons que 9 libres.
69 12 Anonyme
70 21 Anonyme
h2. Sonde de température
71
72
Afin de contrôler la température de la batterie, nous avons décidé d'utiliser la sonde utilisée en TP. En cas de surchauffe, la température
73
74 14 Anonyme
h2. Bilan sur ce choix.
75
76 16 Anonyme
Par la qualité de ces composants, les nombreuses entrées/sorties et sa facile prise en main, le choix de l'ArduPilot semble incontestable. Lors de son acquisition, une idée supplémentaire était évoquée, c'était de faire du retro engineering sur le code fourni avec, mais la complexité et l’obscurité de ce dernier n'ont pas permis de le faire. Pour les successeurs, réécrire les bibliothèques pourrait être une nouvelle piste de travail. 
77
Au final, nous utiliserons cette carte comme un macro-capteur intelligent qui enverra simplement les valeurs de ses capteurs au RX62T par le port série UART2.
78 1 Anonyme
79 15 Anonyme
_
80 14 Anonyme
Dernière mise à jour : 05/03/15h46
81 15 Anonyme
Auteur : Pierre GUINAULT_