Microcontrôleur Renesas » History » Version 2

Amaury Bendaoud-Joubert, 03/24/2012 11:41 AM

1 1 Amaury Bendaoud-Joubert
h1. Microcontrôleur Renesas
2 1 Amaury Bendaoud-Joubert
3 1 Amaury Bendaoud-Joubert
h2. Matériel
4 1 Amaury Bendaoud-Joubert
5 1 Amaury Bendaoud-Joubert
Afin de développer la partie sur microcontrôleur, nous nous sommes servis du matériel que nous avons utilisé tout au long de l’année en TP de système embarqué. Nous avons choisi de programmer sur microcontrôleur Renesas M32C, car il s’agissait d’un kit de développement que nous connaissions très bien. De plus, la documentation, qui est une part importante dans ce type de développement, nous était déjà familière. Ainsi qu’au niveau logiciel, où l’IDE utilisé était également celui utilisé lors des TP, c’est-à-dire High-Embedded Workshop (HEW). Cet IDE est fourni pour développer sur microcontrôleur Renesas.
6 1 Amaury Bendaoud-Joubert
7 1 Amaury Bendaoud-Joubert
h2. Fonctionnement général
8 1 Amaury Bendaoud-Joubert
9 1 Amaury Bendaoud-Joubert
Le microcontrôleur Renesas est le coeur du drone. En effet, il s’agit de la partie qui va recevoir les données provenant du module Wi-Fi, les analyser et renvoyer l’état du drone par le module Wi-Fi.
10 1 Amaury Bendaoud-Joubert
L’analyse de ces données va permettre au drone d’évoluer dans son environnement conformément aux données rentrées par l’utilisateur, mais elle va également lui permettre de se stabiliser et de rester en vol même sans intervention humaine.
11 1 Amaury Bendaoud-Joubert
Le microcontrôleur dispose également de nombreuses entrées/sorties qui lui permettent d’analyser l’environnement grâce à un sonar, des gyromètres et une caméra. Les données venant de ces périphériques une fois traitées sont renvoyées vers l’utilisateur pour l’informer de la situation courante du drone.
12 1 Amaury Bendaoud-Joubert
13 1 Amaury Bendaoud-Joubert
h2. Programmation
14 1 Amaury Bendaoud-Joubert
15 1 Amaury Bendaoud-Joubert
Concrètement, la programmation d’un tel programme s’effectue en deux parties. La première étant la configuration du microcontrôleur, et la seconde l’implémentation des fonctions.
16 1 Amaury Bendaoud-Joubert
Le contrôle des moteurs au travers du microcontrôleur Renesas se fait en envoyant des impulsions. En effet, nous avons dû configurer le microcontrôleur pour pouvoir lui envoyer des impulsions. C’est à dire que pour actionner le moteur nous envoyons, une impulsion électrique.
17 1 Amaury Bendaoud-Joubert
Nous sommes donc aujourd’hui uniquement capables de traiter les informations liées à l’altitude afin d’agir sur un moteur, plus précisément de le faire accélérer et ralentir.
18 1 Amaury Bendaoud-Joubert
Le fonctionnement technique du programme est que lorsque le programme reçoit un ordre de monter, alors il actionne les moteurs pour s’élever d’une certaine hauteur et reprend son régime stationnaire, et pour descendre c’est le même principe sauf qu’il suffit de faire ralentir les moteurs.
19 1 Amaury Bendaoud-Joubert
20 1 Amaury Bendaoud-Joubert
Pour exécuter tout cela, nous avons dû utiliser le timer ta1 du microcontrôleur, que nous avons programmé en sortie, en mode one-shot. Les périodes des impulsions que l’on peut envoyer au moteur sont comprises entre 0.5ms et 1.5ms, et les valeurs à affecter au registre ta1 (sortie) sont comprises entre 4000 et 8000. Pour nos tests, nous avons alors découpé cette plage en dix, ce qui nous donnait des paliers de 400. Par la suite, nous avons découvert que la valeur à affecter afin de démarrer le moteur est 400, ce qui veut donc dire qu’il faut dans un premier temps affecter 400 au registre ta1 pour pouvoir interagir avec le moteur. Une fois cette initialisation effectuée, nous pouvons faire varier la vitesse du moteur grâce à l’application Android, par palier de 400.
21 1 Amaury Bendaoud-Joubert
22 2 Amaury Bendaoud-Joubert
23 2 Amaury Bendaoud-Joubert
Ci-dessus, nous pouvons voir la partie du code correspondant à l’explication précédente.
24 2 Amaury Bendaoud-Joubert
« alt » est récupéré dans la variable globale reception_RS, qui est ce que l’on récupère du port série.
25 2 Amaury Bendaoud-Joubert
26 2 Amaury Bendaoud-Joubert
Dans le registre ta1 nous mettons la valeur souhaitée. Afin d’activer et lancer le timer il faut mettre « 1 » dans ta1os. Et la dernière ligne correspond à l’affectation de la valeur correspondant à l’altitude.
27 2 Amaury Bendaoud-Joubert
28 2 Amaury Bendaoud-Joubert
29 2 Amaury Bendaoud-Joubert
!http://forge.clermont-universite.fr/attachments/download/1237/code1.png!
30 2 Amaury Bendaoud-Joubert
31 1 Amaury Bendaoud-Joubert
h2.