P32 Récupération d'énergie pour balise BLE

De Wiki d'activités IMA
Révision datée du 3 décembre 2015 à 12:20 par Qsultana (discussion | contributions) (Semaine 11 (07/12/2015))

Objectif

Mon projet consiste à réaliser un système électronique autonome, composé de différents capteurs et capable de recueillir et de transmettre les données mémorisées vers un système centralisé.

Etude préalable

L’énergie est le point de difficulté dans la réalisation de ce projet. Chaque élément devra être choisi non seulement pour ses performances mais également pour sa faible consommation.


Organisation générale

Le système est organisé autour d’une source d’énergie, d’un contrôleur, de capteurs, de mémoire et d’un protocole de communication.

On cherche à minimiser l'énergie consommée par l'ensemble du système.

Architecture












Chaine de l’énergie

L’énergie pour ce module autonome est constituée de quatre phases importantes :

P32Energie.PNG

La récupération de l'énergie dans l'environnement

Il existe de nombreux moyens pour récupérer de l'énergie dans l'environnement. L'objectif est de trouver les sources les plus adaptées à l'environnement de l'application recherchée.

On peut citer:

  • La récupération de l'énergie par différence de température
  • Les panneaux photovoltaïques
  • La récupération de l'énergie des ondes radio
  • La Piézoélectricité

Dans ce projet nous utiliserons la piézoélectricité, le module de récupération ayant déjà fait partie d'une étude de IRCICA précédent le projet.

Le stockage de l’énergie

Le choix du système de stockage de l'énergie constitue une partie importante de la réalisation du système. La problématique de cette partie sera de déterminer quel type de stockage nous utiliserons : batterie, super-capacité ou un hybride et de les dimensionner. Il faudra tenir compte des problèmes de décharge partielle influent sur la durée de vie du stockage.

Le management/mise en forme de l’énergie

L'objectif de cette partie est d'étudier la nécessité de la mise en place d'une régulation tout en préservant des contraintes de consommation très faibles.

L'utilisation de l'énergie mise en forme

On cherche à minimiser l'énergie consommée par l'ensemble du système.

Contrôleur

Le microprocesseur : il existe différents types de microprocesseurs. L'objectif est de choisir un support capable de consommer un minimum d'énergie tout en conservant une taille minimale. Nous avons déjà utilisé dans d'autres projets des micro-contrôleurs de type Arduino et Raspberry pie. Ceux-ci ont pour avantage d’être prêts à l'emploi et faciles de prise en main. On peut s’orienter également vers un contrôleur ultra low power comme le STM32L4.

Consommation Facilité de développement Miniaturisation
Arduino
faible à très faible
bonne
faible
Raspberry pi
importante
très bonne
très faible
Ultra low power
très, très faible
difficile
forte

Capteurs

On peut imaginer différents types de capteurs :

  • Accéléromètre
  • Gyroscope
  • Pression atmosphérique et altitude
  • Température
  • GPS

Mémoire

Le système doit être autonome et donc conserver un minimum de mesures pour les cas où la connexion est impossible. La mémoire doit être dimensionnée en fonction du nombre de capteurs, l’intervalle d’acquisition et le temps maximum avant connexion au système centralisé.

Protocole de communication

Un protocole de communication : dans un premier temps, nous nous concentrons sur le protocole BLE (Bluetooth Low Energie). Ce protocole étant standardisé, il nous permettra de recueillir de la documentation et réaliser des tests de consommation rapides.

Planning prévisionnel

P32Gant.PNG

Suivi de l'avancement du Projet

Semaine 1 (28/09/2015)

  • Rencontre avec Monsieur Boe et Monsieur Giraud
  • Présentation du projet
  • Recherche documentaire
  • Etablissement du cahier des charges

Semaine 2 (05/10/2015)

Recherche documentaire sur la consommation estimée des différents éléments.


Contrôleur Consommation Active Consommation Inactive Prix
Arduino Pro Mini 328
7mA (1 capteur)
4.5µA
Disponible
STM32L4 Series (STM32L476JE)
100 μA/MHz
120 nA
$5
Raspberry
200mA
200mA
Disponible
Module BLE Consommation Options d'alimentation Prix
BLE Mini
15 mA
3.4V à 11V VIN / 5V USB / Coin Cell Battery (2025 or 2032) / 3.7V Li-ion Battery
$17
  • Le système Mini Arduino/ BLE Mini me semble être un bon compromis entre facilité d’intégration, consommation d'énergie et miniaturisation du système. (Choix à discuter à la réunion du Merdredi 07/10)
  • Choix du module RFduino
Capteurs Modèle Alimentation min/max Prix
Température
TMP36GT9Z
2.7V/5.5V
1,46 €
Accéléromètre
ADXL345BCCZ
2V/3.6V
5,54 €
Gyroscope+Accéléromètre
MPU-6050
2.5V/3.6V
15,73 €
Pression atmosphérique / Altitude
MPL3115A2
1.95V/3.6V
2,65 €
  • Pour minimiser les pertes on cherche a travailler avec une tension d'alimentation la plus faible possible. Je propose de travailler avec une tension d'alimentation de 3,3V (Validé à discuter à la réunion du Merdredi 07/10)
  • Le système de récupération d'énergie fonctionnant sur la base d'un mouvement, j'ai choisi l'ensemble des capteur ci dessus qui me semble être adapté à l'intégration dans un système en mouvement. (Validé à discuter à la réunion du Merdredi 07/10)
  • Récupération des modules RFduino, prise en main

Semaine 3 (12/10/2015)

  • Installation des librairies
  • Visualisation d'exemples
  • Tests d'implantation du code source du projet P14: Aimant intelligent de la session IMA4: 2014/2015
  • Optimisation du code pour la réduction de la consommation d'énergie
  • Recherches sur d'autres composants dans l'optique d'une consommation toujours plus faible
Capteurs Modèle Alimentation min/max Prix Consommation (typ/max)
Température
STLM20W87F
2.4V/5.5V
0,775 €
4.8 μA/8.0 μA

Calcul théorique de la consommation énergétique du module BLE + RFD22301

Mode "endormi" : ARM CPU Running Current + Output standard drive current = 4 + 0.5 = 4.5mA

Mode "acquisition": ARM CPU Running Current + Output high drive current = 5 + 4 = 9mA

Mode "transmission" : ARM CPU Running Current + Transmit Current + Output standard drive current = 4 + 0.5 + 12 = 16.5mA

http://www.rfduino.com/wp-content/uploads/2014/03/RFD22301.Data_.Sheet_.11.24.13_11.38PM.pdf


Code possible du mode "endormi"

   pinMode(5, INPUT);
   RFduino_pinWake(5, HIGH);
   
   
   RFduino_ULPDelay(INFINITE);
   if (RFduino_pinWoke(5))
   {
   state = ! state;
   RFduinoGZLL.sendToHost(state);
   }

http://forum.rfduino.com/index.php?topic=385.0

Semaine 4 (19/10/2015)

  • Réunion du 21/10
  • Réalisation de tests
  • Ajustement du nombre de capteurs : dans un premier temps on utilisera le capteur de température puis l'accéléromètre
  • Discussion sur le bac de test et méthodes de test : résistance de visualisation, chronométrage du temps de transmission, vitesse du processeur
  • Réalisation des premiers relevés

Semaine 5 (26/10/2015)

  • Recherche bibliographique sur les modes d'endormissement du module RFduino
  • Essais de codes utilisant un mode d'endormissement plus profond
  • Réalisation de graphique de l'énergie utilisée par le module lors de la transmission d'un message par le module BLE.
  • Recherches sur des méthodes de programmation pour la diminution de la vitesse processeur


Montage de test
Visualisation du courant consommé lors d'envoi toutes les 10ms
  • On visualise à l'oscilloscope des pic d'envoi et des pic d'avertissement de la balise BLE, on peut ainsi déduire la puissance nécessaire de chaque action

Semaine 6 (02/11/2015)

  • Test de diminution de la vitesse processeur
  • Réalisation de graphique démontrant l'impact de la réduction de la vitesse processeur sur l'énergie consommée et déduction d'une vitesse optimale pour notre application
  • Réunion du 4/11

Définition d'objectifs : Création d'un fichier excel permettant de caractériser les coûts en énergies de chaque étapes de fonctionnement du système.

  • Création d'un environnement de test "normé" ( Pour éviter les variations de mesures on réalise un banc et on applique les mêmes conditions de test pour chaque essai)
  • Recherche bibliographique sur la norme BLE : recherche du temps maximum entre deux "avertissements" de la balise BLE

Semaine 7 (09/11/2015)

  • Explication du principe de communication BLE pour l'exploitation des résultats

Freq.PNG

Nous nous intéressons dans notre projet à "l'observateur". Cet objet peut avoir trois états : stand-by, advertising et en communication.

Brod2.png

Dans le mode "Advertising" le système peut :

- Avertir le système récepteur de la proximité d'un capteur

- Avertir de la présence à un appareil souhaitant ce connecter

- Ce reconnecter de façon asynchrone

Semaine 8 (16/11/2015)

Analyse en détail d'une trame BLE

Com.PNG

On constate que pendant la durée de la trame il y a un échange entre les deux objets appairé. On s’intéresse ici uniquement aux actions "Slave Tx". Le but étant d'identifier la durée et le courant consommé par ces actions pour obtenir des valeurs en joules.

SchemaCom.PNG

On constate donc deux phases :

- Advertising event

- Connexion event

Nous allons essayer de retrouver et quantifié l'énergie consommé dans ces deux phases.

Semaine 9 (23/11/2015)

Lors de cette semaine nous avons effectué des tests en respectant une procédure de test précise. En effet les valeurs des courants que nous relevons sont très petites aussi chaque variation du montage est susceptible de perturber les valeurs.


Phase connexion


Phase Advertising

Semaine 10 (30/11/2015)

- On cherche a diminuer légèrement la consommation par des modifications logiciel :

Réduction de la puissance de la radio BLE : Diminution de la portée

Augmentation de la fréquence d'advertising : tant que la fréquence d'advetising est inférieure a cette de relevé des capteurs on s'assure que la donnée envoyée est toujours mise à jour.

Avec modification logiciel


Sans modification logiciel


- On concentre nos résultats dans un tableau récapitulatif en vue du dimensionnement de la batterie du système

P32tbresul.PNG

Semaine 11 (07/12/2015)

Tests d'intégration de plusieurs capteur et observations des modification de la consommation des ADC et de la durée/consommation de la transmission.

Réunion de vérification des tests.

Mise en évidence de la dualité consommation d'énergie - Temps de réponse du système

Semaine 12 (14/12/2015)

Semaine 13 (04/01/2016)

Semaine 14 (11/01/2016)

Semaine 15 (18/01/2016)

Semaine 16 (25/01/2016)

Semaine 17 (01/02/2016)

Semaine 18 (08/02/2016)

Semaine 19 (15/02/2016)

Semaine 20 (22/02/2016)

Annexes

Consommation du STM32L4 Series : http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1580?sc=stm32l4

Réduction de la consommation de l'Arduino : http://www.home-automation-community.com/arduino-low-power-how-to-run-atmega328p-for-a-year-on-coin-cell-battery/

Consommation Raspberry : https://www.raspberrypi.org/help/faqs/

Module BLE : http://redbearlab.com/blemini/

Accéléromètre : http://fr.farnell.com/analog-devices/adxl345bccz/accelerometre-3-axes-14lga/dp/1853935

Capteur température : http://fr.farnell.com/analog-devices/tmp36gt9z/capteur-temp-to-92-3/dp/1438760?ost=TMP36GT9Z ou http://fr.farnell.com/stmicroelectronics/stlm20w87f/capteur-de-temperature-analog/dp/1391131

Accéléromètre + Gyroscope : http://fr.farnell.com/invensense/mpu-6050/gyroscope-accelero-6-axes-i2c/dp/1864742

Altimètre : http://fr.farnell.com/freescale-semiconductor/mpl3115a2/pressure-sensor-20-110kpa-8lga/dp/2009084?ost=MPL3115A2&categoryId=700000004367

Explications norme BLE : chapters.comsoc.org/vancouver/BTLER3.pdf