Mesure de distance par RSSI : Différence entre versions
(→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
Sommaire
- 1 Présentation
- 2 Semaine 1: identification du matériel utilisé
- 3 Semaine 2: Étude de faisabilité du projet
- 4 Semaine 3: Prise en main du logiciel et connu la structure interne de la carte d’évaluation
- 5 Semaine 4:Programmer pour configurer l’interface de SPI
- 6 Semaine 5:Programmer pour envoyer une horloge via l’interface de SPI
- 7 Semaine 6:Programmer pour envoyer un signal via l’interface de SPI
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:
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
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.
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.
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.
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.