Mesure de distance par RSSI : Différence entre versions

De Wiki de Projets IMA
(Semaine 5:Programmer pour envoyer un signal via l’interface de SPI)
(Semaine 6:Programmer pour envoyer un signal via l’interface de SPI)
Ligne 55 : Ligne 55 :
  
 
== Semaine 6:Programmer pour envoyer un signal via l’interface de SPI ==
 
== Semaine 6:Programmer pour envoyer un signal via l’interface de SPI ==
 +
Dans cette séance, je continue à résoudre le problème sur l’horloge, et en même temps, programme la fonction de transmission un signal vers l’émetteur-récepteur SX1211. Parce qu’il n’ y a pas d’horloge, je ne peut pas tester si le fonction de transmission est correct ou pas. Dans ce case, je demande à mon tuteur pour m’aider. Malheureusement, on n’a pas réussi de le résoudre. Du coup, je pense que peut-être c’est le problème de broche, je change le broche d’horloge, mais il marche non plus.

Version du 5 avril 2014 à 20:16

Présentation

Cahier des charges

Objectif :

Réaliser un démonstrateur de mesure de distance par RSSI sur microcontrôleur ultra-faible consommation.

Description :

Dans ce projet, il s'agit de contrôler deux types de carte, le microcontrôleur EFM32 zerogecko (carte d'évaluation disponible) et la carte SX1211 (l'émetteurs-récepteur). Le positionnement est un défi important à relever dans de nombreuses situations, notamment dans les réseaux de capteurs. Une solution intéressante et relativement simple est d'utiliser la puissance radio reçue pour estimer la distance (signal RSSI). Ce projet compose de deux cartes SX1211, l'une pour émettre le signal RSSI et l'autre pour recevoir. Enfin, il conviendra de mesurer la distance entre les deux SX1211s sur le microcontrôleur EFM32 en fonction de la puissance reçu. Le graphe de structure principal est comme ci-dessous:

A.jpg

Matériel et outil requis

Outil/logiciel: langage C, Simplicity studio;

Matériels: deux SX1211s, un EFM32 zerogecko;


Semaine 1: identification du matériel utilisé

Pendant la première semaine ,j’ai récupéré le matériel nécessaire pour le projet, mais je manque encore la carte SX1211. J’ai récupéré la documentations sur le composant et aussi téléchargé les logiciels pour programmer vers la carte d’évaluation EFM32. .


Phase de découverte de l'environnement du projet :
-programmable logiciel : IAR embedded workbench IDE
-Data acquisition board : J-link
-logiciel tester et télécharger : Simplicity Studio

Logiciels_IAR_et_SIMPLICITY
EFM32ZG222F32

Semaine 2: Étude de faisabilité du projet

Dans ce projet, il était nécessaire de démontrer la faisabilité du système de communication entre deux cartes, le microcontrôleur EFM32 et l’émetteur-récepteur SX1211.
Les informations sont échangées par le SPI entre les deux carte. D’abord, on fait le microcontrôleur envoyer une valeur à l’émetteur-récepteur pour contrôler la puissance radio émis. L’autre émetteur-récepteur va recevoir une valeur de puissance (RSSI), puis on utilise la formule : d=10^((ABS(RSSI)-A)/10*n) pour calculer la distance.
d=distance à l’émetteur ;
A=valeur absolue de la puissance à un mètre de distance à l ‘émetteur ;
n=coefficient de perte de trajet (n=2.2);
RSSI=valeur de puissance reçu ;

En première partie, je doit connecter le module EFM32 et le PC par la ligne de sonde de débogage J-LINK. En deuxième partie, il faut télécharger la programmation par le logiciel SIMPLICITY STUDIO vers le microcontrôleur. A la fin, on peut récupérer la valeur de distance entre l’émetteur et le récepteur sur l’écran de LCD du module EFM32.

Théorie de RSSI

Semaine 3: Prise en main du logiciel et connu la structure interne de la carte d’évaluation

Simplicity studio logiciel permet de faciliter l’utilisation du module EFM 32, il comporte des exemples de programmations à télécharger dans le microcontrôleur. Le logiciel IAR est pour créer notre projet en langage C par utilisant nombreux fonctions dans la bibliothèque. L’application de la catre EFM32 consiste à envoyer un signal vers l’émetteur-récepteur SX1211 et récupérer un signal en même temps, donc premièrement il faut commencer à connaître la structure interne du micro-contrôleur via les documents « data sheet » et « schematic ».

Après avoir lu tous les documents de datasheets et les manuels, j’ai proposé des questoins à mon tuteur. Il m’a conseillé d’utiliser l’interface SPI dans ce projet. Une liaison SPI (pour Serial Peripheral Interface) est un bus de données série synchrone.

Structure de EFM32
Schematique de EFM32

Semaine 4:Programmer pour configurer l’interface de SPI

Les circuits communiquent selon un schéma maître-esclaves, où le maître s'occupe totalement de la communication. Plusieurs esclaves peuvent coexister sur un même bus, dans ce cas, la sélection du destinataire se fait par une ligne dédiée entre le maître et l'esclave appelée chip select. Mais dans ce projet, on a seulement un esclave et un maître, dans ce cas, le maître doit émettre un signal directement à un esclave.
Premièrement, il faut trouver la bibliothèque pour utiliser les fonctions relatives.
Deuxièmement, il faut chercher comment configurer l'interface.

381px-SPI single slave.svg.png

Semaine 5:Programmer pour envoyer une horloge via l’interface de SPI

Après avoir configuré le SPI, j’ai déclaré quatre broches PD7, PD8, PC15, PC14 comme les sorties de TX, RX, CLK, et CS respectivement. Avant envoyer un signal, il faut donner une horloge à un esclave. Par défaut, les horloges de cahque module du chip sont inactives.
Donc, d’abord, on doit initialiser le chip, et puis, on démarre l’horloge du module USART1 qu’on utilise. Enfin on définit la vitesse de l’horloge. Jusqu’à ici, j’ai pensé que l’horloge a été mis sur le broche PC15. Du coup, je le connecte avec l’analyseur numérique. En conséquence, il n’y a pas rien sur le broche PC15. Puis je commence à trouver la résolution.

Semaine 6:Programmer pour envoyer un signal via l’interface de SPI

Dans cette séance, je continue à résoudre le problème sur l’horloge, et en même temps, programme la fonction de transmission un signal vers l’émetteur-récepteur SX1211. Parce qu’il n’ y a pas d’horloge, je ne peut pas tester si le fonction de transmission est correct ou pas. Dans ce case, je demande à mon tuteur pour m’aider. Malheureusement, on n’a pas réussi de le résoudre. Du coup, je pense que peut-être c’est le problème de broche, je change le broche d’horloge, mais il marche non plus.