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

De Wiki de Projets IMA


Vidéo HD


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

En effet chaque "Advertisement" consomme une quantité d'énergie nous pouvons gérer l'espacement entre ceux-ci mais plus ce temps serra élevé plus il faudra de temps pour ce connecter à ce périphérique.

  • Rédaction d'un rapport de test
  • Rédaction du rapport de pré soutenance

Semaine 12 (14/12/2015)

  • Recherches de solutions pour l'amélioration du modèle
  • Recherches Matlab pour effectuer une analyse statistique d’avènements aléatoires sur la liaison

Semaine 13 (04/01/2016)

  • Amélioration du modèle

L’amélioration du modèle est réalisée en tenant compte des facteurs influant sur la qualité de la transmission.

  • Utilisation d'un picoscope : appareil permettant l’acquisition sur ordinateur de plusieurs formes d'ondes.

Ainsi grâce à un pico scope utilisé à l’IRCICA j’ai pu relever de nombreux échantillons nécessaires à une étude statistique des surcoûts en énergie.

Montage multi récepteur

Semaine 14 (11/01/2016)

  • Compilation des résultats
  • Exploitation Matlab

Emistbrecap.PNG

Semaine 15 (18/01/2016)

Principe de fonctionnement du récupérateur d’énergie

Le récupérateur d’énergie fonctionne grâce à un patch piezo. Ce patch est capable de produire un courant à partir de la vélocité d’une impulsion suivant la formule :

Equapiezo.PNG

Modèle simplifié du patch piezo














Pour récupérer de l’énergie il est couplé au système suivant :

Montagepiezo.PNG

La puissance du système est définie par :

P=V*im

L’énergie s’exprime alors :

Equaenergie.PNG

L’énergie produite par le système est donc dépendante de la tension d’alimentation V de la constante électromécanique N et du choc produit sur le patch piezo. Une impulsion sur le capteur piezo est de la forme :


La dérivée par rapport au temps de cette impulsion est donc de la forme :

Il est donc important de « fenêtrer » la tension pour ne récupérer que la partie positive. Ce fenêtrage ainsi que la fréquence de commutation du hacheur sont assurés par un microcontrôleur.

Dans la suite de notre étude nous ne tiendrons pas compte de la consommation de celui-ci.

Semaine 16 (25/01/2016)

  • Réflexions sur le prototypage
  • Présentation du récupérateur
  • Mise en place du banc de test
  • Premiers relevés
Montage piezo
Patch piezo

Semaine 17 (01/02/2016)

Test de la quantité d’énergie récupérée par un patch piezo

Méthodologie :

Channel rouge : Tension aux bornes du patch piezo. Ici on observe une fenêtre de tension de 4,5ms imposée par le microcontrôleur.

Channel vert : Tension aux bornes de la capacité C1 de 220nF

Tension patch piezo / Tension C1



On constate qu’un choc sur le patch piezo produit une énergie suivant la formule, E = V * N * Δw N étant une constante électromécanique, on va faire varier V pour évaluer le gain en énergie. Cependant Δw est généré par un choc d’un stylo sur le patch il n’est donc pas uniforme. Nous utilisons donc une méthode statistique qui consiste à retirer deux extrémums et faire la moyenne de 10 mesures.

Nous obtenons la courbe suivante :


On constate que la courbe n’est pas linéaire comme l’aurait laissé supposer la formule. En effet jusqu’à 30V elle est linéaire croissante suivant l’équation :

Puis après 50V elle devient quadratique décroissante suivant la formule :

En effet la formule E = V * N * Δw néglige les pertes. Celles-ci deviennent plus importantes à chaque augmentation de la tension d’alimentation.

On obtient donc un point de fonctionnement optimal à 50V pour notre système. Ce qui impose que notre système soit équipé d’une source de tension en conséquence.

Semaine 18 (08/02/2016)

  • Réalisation de nombreux tests pour confirmation de la caractéristique

P32Courbe.png

  • Recherches de solution pour la réalisation d'un convertisseur buck pour passer de la tension récupérée ( ~ 50V ) au récupérateur d'énergie puis au module BLE ( 3.3 V )

Semaine 19 (15/02/2016)

  • Rédaction du rapport

Semaine 20 (22/02/2016)

  • rédaction du rapport

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

http://www.argenox.com/bluetooth-low-energy-ble-v4-0-development/library/a-ble-advertising-primer/



Fichiers MATLAB

Fichier:Recuperation.zip

Fichier:Recuperation3.zip

Rapport de Mi-projet

Fichier:CR Miprojet Sultana.pdf


Rapport projet

Fichier:Rapport P32 Sultana.pdf