Mesure de distance par RSSI : Différence entre versions
(→Semaine 9: Réaliser la fonction de SPI) |
(→Semaine 9: Réaliser la fonction de SPI) |
||
Ligne 71 : | Ligne 71 : | ||
== Semaine 9: Réaliser la fonction de SPI== | == Semaine 9: Réaliser la fonction de SPI== | ||
− | J’ai réussi de déverrouiller le composant. Dans cette séance,j’ai résolu le problème d’horloge par changant la configuration de USART. En même temps, j’ajoute les fonctions que j’ai rédigé dans la fonction main. Enfin, j’obtient le signal que je voudrais envoyer sur l’analyseur numérique. | + | J’ai réussi de déverrouiller le composant. Dans cette séance,j’ai résolu le problème d’horloge par changant la configuration de USART. En même temps, j’ajoute les fonctions que j’ai rédigé dans la fonction main. J'ai rédigé deux fonctions d'envoyer et de recevoir un signal pour l'émetteur-récepteur sans détection. Enfin, j’obtient le signal que je voudrais envoyer sur l’analyseur numérique. |
[[Fichier:IMG 1779.JPG|300px|left|thumb| l'horloge et le signal]] | [[Fichier:IMG 1779.JPG|300px|left|thumb| l'horloge et le signal]] |
Version du 12 avril 2014 à 21:43
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
- 8 Semaine 7:Programmer pour afficher le résultat de mesure sur le LCD
- 9 Semaine 8: Déverrouiller le chip EFM32
- 10 Semaine 9: Réaliser la fonction 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 d'abord programme la fonction de transmission un signal vers l’émetteur-récepteur SX1211. Ensuite,je continue à résoudre le problème sur l’horloge. Parce que s'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. Je pense que peut-être c’est le problème de broche,du coup,je change le broche d’horloge dans la programmation de configuration. mais il toujours ne marche pas.
Semaine 7:Programmer pour afficher le résultat de mesure sur le LCD
L'utilisation d'un afficheur à cristaux liquides ou LCD est assez courante sur les systèmes embarqués. C'est un écran de faible dimension employé pour informer l'utilisateur sur l'état du système ou pour afficher les mesures. On peut faire varier l’orientation en fonction du champ électrique. Dans les exemples, je trouve une programmation sur le LCD. Elle utilise des fonctions dans la bibliothèque à faire la configuration le LCD. Enfin, je change des configurations pour correspondre à mon projet.
Semaine 8: Déverrouiller le chip EFM32
Pour obtenir l’horloge sur le broche CLK de l’interface SPI, j’essaye de changer des configurations du micro-contrôleur EFM32. Par conséquent, le micro-contrôleur est verrouillé par erreur. C’est-à-dire je ne peut pas télécharger une programmation dedans. Je cherche la façon de déverrouillage la carte, et puis le tuteur me propose de déposer le question directement sur le site de la carte d’évaluation EFM32. Heureusement, à la fin quelqu’un me donne une programmation à initialiser la carte.
Semaine 9: Réaliser la fonction de SPI
J’ai réussi de déverrouiller le composant. Dans cette séance,j’ai résolu le problème d’horloge par changant la configuration de USART. En même temps, j’ajoute les fonctions que j’ai rédigé dans la fonction main. J'ai rédigé deux fonctions d'envoyer et de recevoir un signal pour l'émetteur-récepteur sans détection. Enfin, j’obtient le signal que je voudrais envoyer sur l’analyseur numérique.