Capteurs enfouis : Différence entre versions

De Wiki d'activités IMA
 
(4 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 185 : Ligne 185 :
  
  
=== Rapport ===
+
== Programmes ==
[[media:rapport_projet_CAPTEURS.pdf]]
+
 
 +
[[media:Interruption_bouton_poussoir.zip]]

Version actuelle datée du 7 août 2013 à 09:46

Liste du matériel

Présent

  • Carte Arduino Uno
  • Capteur température Dallas
  • Capteur Vibration TI
  • RTC Maxim
  • Carte de développement TI eZ430-RF2500-SEH
  • Divers composant pour le réveil passif

A acheter

  • à remplir

Avancement du projet

Séance 1 (8/02/12) :

  • Lecture des documentations relatives au MSP340F2274, horloge temps réel DS1391 et au module de communication CC2200.
  • Installation des drivers et logiciels des composants utilisés
  • Lecture de quelques programmes d'exemples avec compréhension des différents algorithmes
  • Bug au niveau du chargement du programme sur la carte ( erreur d'initialisation de l'interface )

Séance 2 (9/02/12) :

  • Lecture plus approfondie de la datasheet des horloges temps réel:
  • Le fonctionnement de l'horloge temps réel et de son type de communication est à peu près compris. Mais je me suis rendu compte que le composant à notre disposition (DS1391) ne possède pas de broche d'interruption. En effet sur les autres composants du même type (DS1390,DS1394,DS1392 et DS1393) il y a cette broche et il sera alors plus simple par la suite de configurer une date précise qui activera la broche d'interruption. [Alex]En effet, il pourrait être intéressant d'obtenir des échantillons auprès de Maxim (http://www.maxim-ic.com). En attendant, on laisse *provisoirement* de coté le réveil par RTC[/Alex]

  • Choix des broches utilisés sur la carte eZ430... et analyse du mode de communication SPI(synchronous peripheral interface):
  • L'horloge temps réel fonctionne avec le mode de communication SPI. Il a fallu donc choisir sur quels broches spécifiques de la carte eZ430 il faut relier celles de l'horloge.

  • Résolution du Bug du logiciel de programmation
  • Choix du mode de communication entre les différents capteurs et le microP. D'après les Datasheet des différents capteurs, on peut utiliser directement une liaison série de type SPI supportée par le microP.
  • Compréhension du fonctionnement du mode SPI ainsi que le rôle des différents registres à initialiser
  • Réalisation d'un premier algo permettant de lire les données retournées par deux capteurs
  • Codage de ce cet algo (initialisation des différents registres + configuration de la liaison série etc ...)

Séance 3 (13/02/12) :

  • compréhension du mode de communication RF ainsi que le fonctionnement du Timer A
  • modification du précédent algo en y rajoutant la partie qui géra la transmission des données via la com RF
  • début du codage de l'algo


Séance 4 (15/02/12) :

  • câblage d'un capteur de température afin de tester le programme permettant la com en mode SPI
  • modification du programme et vérification des différents registres d'initialisation

Séance 5 (16/02/12) :

  • n'ayant pas réussi à lire la température la séance précédente, on a continué nos testes (révision du programme, visualisation des sorties sur l'analyseur de signaux)
  • on a remarqué que le module MSP délivrait bien la bonne horloge et que les autres signaux de sortie sont correcte. le capteur quant à lui nous délivre des signaux incorrecte. je crains fort qu'il soit endommagé (peut être lors du câblage ?)

Entre temps :

  • Commande d'un nouveau composant RTC muni d'une interruption chez Maxim.

Séance 6 (6/03/12) :

  • Réalisation de la carte RTC sur papier avec réflexion sur les signaux et sur la tension d'alimentation.
  • Recherches sur l'utilisation de Altium pour la création de typon.

Séance 7 (7/03/12) :

  • Acquisition de la température
    Le microcontrôleur MSP430 est équipé d’un capteur de température intégré. On choisira ce capteur pour effectuer nos premiers tests. Lors de cette scéance on a pu faire l'acquisition de la température à travers le CAN du MSP430. En effet la température ressentie est convertie en tension en utilisant l’équation : Vtemp= 0,00355*(Tempc) +0,986 La tension de sortie du capteur est numérisée à travers le CAN du MSP430 - ADC10 – et stockée dans le registre ADC10MEM du CAN. En lisant ce dernier, on peut récupérer la tension. La conversion de la tension lue dans le registre en température s’effectue à l’aide de l’équation : Temp_en_degC = ((tension - 673) * 4230) / 1024;
  • Réalisation du schéma et du typon de la carte RTC sur Altium
  • SCHEMA
  • Schema rtc.png


  • TYPON
  • Typon rtc.png

Séance 8 (12/03/12) :

  • Architecure du réseau
  • Pendant cette scéance nous avons établi une architecture pour le réseau de capteur
  • Archi.png

    On aura deux algorithmes bien distincts celui de l’Access Point et celui de l’End Device.


  • Soudage de la carte RTC avec l'aide de Thierry Flamen
  • Test des alimentations
  • TOP (coté composants)
  • Photo 2.jpg

  • BOTTOM (coté soudure et composants CMS)
  • Photo1.jpg

Séance 9 (14/03/12) :

  • Description des algorithmes
  • Dans ce projet on aura deux algorithmes :
  • L’algorithme de l’Access Point
  • Le rôle d’un Access Point et de récupérer les données transmises par les différents End Device (capteurs) et de les envoyer par liaison série a un PC qui s’occupera de la collecte des informations.

    Algo AP.png


  • L’algorithme du End Device
  • A la première mise sous tension l’End Device s’occupera de la configuration du réseau sans fil et de son horloge temps réel, ensuite l’MSP430 va s’endormir en attendant une interruption qui sera générée par l’alarme. En effet une fois l’interruption détectée la routine d’interruption va mesurer la température à travers le convertisseur analogique numérique, lire la date via une liaison SPI, mettre en forme la donnée, la stocker dans la mémoire flash et ensuite tester s’il a atteint le nombre de mesures maximum. Si le teste est vrai la mémoire flash sera scruter et son contenu sera envoyé à l’Access Point. Sinon le microcontrôleur se remettra en mode basse consommation et attendra un nouveau réveil.

    Algo ED.png

Séance 10 (4/04/12) :

  • Liaison Sans fil
  • Lors de cette séance on a récupéré un programme de test fourni pas Texas Instrument permettant d'établir une communication entre un End Device et un Access Point. On a modifié ce programme afin d'envoyer les températures mesurées sur l'End device vers l'Access Point.
  • Une fois la communication établie, il a fallu stocker les données au niveau de l'access point. Pour cela on s'est documenté sur le mode de fonctionnement de la mémoire Flash du MSP430 et sur les différents registres à initialiser.
  • Création de deux fonctions write_flash() et read_flash permettants de lire et d'écrire dans un segment de la mémoire flash


Séance 11 (17/04/12) :

  • Test des interruptions et des modes basse consommation :
  • Avant de tester les interruptions on s'est documenté sur le fonctionnement des interruptions et sur les différents modes basse consommation (LPM). Il exsite cinq modes basse consommation LPM0-4.
  • Pour tester l'interruption on a configuré le bouton poussoir comme entrée d'interruption. à chaque appui sur le bouton poussoir, le MSP430 sort du mode LPM (basse consommation) pour executer la routine d'interruption. En effet la routine d'interruption consiste à effectuer une mesure de la stocker dans la mémoire flash et de l'envoyer à l'Access Point.

Séance 12 (18/04/12) :

  • Configuration de l'horloge temps réel :
  • Le rôle de l'horloge temps réel est de génerer des interruptions et de fournir la date pour chaque mesure.
  • La communication avec l'horloge temps réel s'effectue par liaison SPI. Avant de réaliser les fonctions de lecture et d'écriture on s'est documenté sur les différents registres à initialiser.
  • une fois que les entrées/sorties du MSP430 sont correctement configurées et cablées à l'horloge temps réel on a testé nos deux fonction read_SPI() et write_SPI() pour la configuration de l'horloge et de l'alarme.
  • la configuration de l'horloge s'effectue correctement. On obtient bien une interruption à l'heure demandée.
  • Chronogramme de l'écriture d'un registre suivi de la lecture de ce même registre (ici les minutes)
  • Scope 1 modif.jpg



Maquette complète

Maquette.jpg


Programmes

media:Interruption_bouton_poussoir.zip