Microcontrôleur Renesas » History » Version 1

Version 1/4 - Next » - Current version
Amaury Bendaoud-Joubert, 03/24/2012 11:37 AM


Microcontrôleur Renesas

Matériel

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.

Fonctionnement général

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.
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.
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.

Programmation

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.
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.
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.
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.

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.

h2.