Mesure de distance par RSSI : Différence entre versions

De Wiki d'activités IMA
(Semaine 4:Programmer pour contrôler l’interface de SPI)
 
(37 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
<include nopre noesc src="/home/pedago/pimasc/include/video-DistanceParRSSI-iframe.html" />
 +
__TOC__
 +
<br style="clear: both;">
 
== Présentation ==
 
== Présentation ==
  
Ligne 14 : Ligne 17 :
 
Matériels: deux SX1211s, un EFM32 zerogecko;
 
Matériels: deux SX1211s, un EFM32 zerogecko;
  
 
+
==Semaine 1:Identification du matériel utilisé==
==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.  .  
 
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.  .  
  
Ligne 22 : Ligne 24 :
 
<br>-Data acquisition board : J-link
 
<br>-Data acquisition board : J-link
 
<br>-logiciel tester et télécharger : Simplicity Studio
 
<br>-logiciel tester et télécharger : Simplicity Studio
[[Fichier:Logiciel_IAR_et_SIMPLICITY.jpg|left|400px|thumb|Logiciels_IAR_et_SIMPLICITY]]
+
[[Fichier:Logiciel_IAR_et_SIMPLICITY.jpg|300px|thumb|Logiciels_IAR_et_SIMPLICITY]]
[[Fichier:EFM32.JPG|300px|centre|thumb|EFM32ZG222F32]]
+
[[Fichier:EFM32.JPG|400px|centre|thumb|EFM32ZG222F32]]
  
 
== Semaine 2:  Étude de faisabilité du projet ==
 
== Semaine 2:  Étude de faisabilité du projet ==
Ligne 43 : Ligne 45 :
 
[[Fichier:132632.jpg|450px|left|thumb|Structure de EFM32]]          [[Fichier:0405132406.jpg|400px|centre|thumb|Schematique de EFM32]]
 
[[Fichier:132632.jpg|450px|left|thumb|Structure de EFM32]]          [[Fichier:0405132406.jpg|400px|centre|thumb|Schematique de EFM32]]
  
== Semaine 4:Programmer pour contrôler l’interface de SPI ==
+
== 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.
 
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.
+
<br>Premièrement, il faut trouver la bibliothèque pour utiliser les fonctions relatives.
Deuxièmement, il faut chercher comment configurer l'interface.
+
<br>Deuxièmement, il faut chercher comment configurer l'interface.
 +
 
 +
[[Fichier:381px-SPI single slave.svg.png|500px|centre]]
 +
 
 +
== 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.
 +
<br>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.
 +
 
 +
[[Fichier:IMG 17999.JPG|400px]]
 +
 
 +
== 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.
 +
 
 +
[[Fichier:28011300.jpg|500px|left|thumb|The device is locked]]
 +
 
 +
[[Fichier:405232010.jpg|450px|centre|thumb|déposer le question sur le site]]
 +
[[Fichier:Capture.PNG|450px|centre|centre|thumb|déposer le question sur le site]]
 +
 
 +
== 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.
 +
 
 +
[[Fichier:IMG 1779.JPG|300px|centre|thumb| l'horloge et le signal]]
 +
 
 +
== Rapport ==
  
[[Fichier:381px-SPI single slave.svg.png|400px|left]]
+
[[Fichier:Projet 26 Rapport.pdf]]

Version actuelle datée du 4 juin 2014 à 10:47


Vidéo HD


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

IMG 17999.JPG

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.

The device is locked
déposer le question sur le site
déposer le question sur le site

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.

l'horloge et le signal

Rapport

Fichier:Projet 26 Rapport.pdf