Construction Télémesure FrSky - Mesures de vitesse

jpparisy

Patibulaire mais presque
Il existe différents moyens de mesurer la vitesse de déplacement d'un mobile, le plus connu étant le compteur de vitesse d'une voiture, qui mesure le nombre de tours d'une roue pendant un temps donné et convertit cela en kilomètres par heure. Pour mesurer la vitesse relative d'un mobile dans un fluide (air ou eau), le même principe est utilisé en comptant le nombre de tours d'une hélice actionnée par le fluide. Ces instruments sont les anémomètres pour l'air et les lochs pour l'eau.

Il est aussi possible de mesurer la vitesse relative au sol (sur le fond pour les bateaux) en effectuant des enregistrements périodiques de points géographiques fournis par un système GPS. Ce calcul est généralement effectué par le système lui-même, ce qui nous évite de fastidieux calculs de trigonométrie sphérique !

Il y a aussi des systèmes qui mesurent simultanément la pression exercée par le fluide et la pression ambiante et en déduisent la vitesse relative dans le fluide. L'avantage de ces systèmes est qu'il n'y a pas de pièces mécaniques en mouvement. Les plus connus sont la sonde Pitot et l'antenne de Prandtl, qui est dérivée de la précédente.
 
La réalisation mécanique est très simple : un tube placé dans l'axe de déplacement du mobile et plongé dans le fluide est relié à une jauge de pression, qui renvoie une valeur électrique proportionnelle à la pression exercée par le fluide.

Par contre, cette pression n'est pas proportionnelle à la vitesse :

jpparisy-albums-sonde-pitot-picture6173-speed-curve.jpg

La vitesse est calculée en utilisant une version simplifiée du théorème de Bernoulli :

V = sqrt ((2 * (Pt ‑ Ps)) / ρ)​

où (Pt ‑ Ps) est la différence entre la pression dans le tube et la pression statique (ambiante) et ρ (rho) est la masse volumique (densité) du fluide. Les unités utilisées sont le mètre par seconde (m/s) pour la vitesse, le pascal (Pa) pour les pressions et le kilogramme par mètre cube (kg/m3) pour la densité.

Pour obtenir une vitesse exacte, il faut donc aussi évaluer la densité du fluide. Pour l'eau, il n'y a pas trop de variation, on peut donc utiliser une constante égale à 1000.

Par contre, la densité de l'air varie de manière significative en fonction de la température et de la pression ambiante, elle même dépendante de l'altitude et des conditions métérologiques. Il faut donc utiliser également un thermomètre et un baromètre. En toute rigueur, il faudrait aussi ajouter un hygromètre pour mesurer le taux d'humidité de l'air.

Voici un tableau montrant les vitesses réelles en fonction de la température et de l'altitude pour une même pression différentielle :

jpparisy-albums-sonde-pitot-picture6174-speed-curve-1.jpg
 
Il faut tout d'abord choisir une jauge permettant de mesurer la pression.
Il en existe trois types :

  • Les jauges absolues (baromètres), permettant de mesurer la pression ambiante, jusqu'à une valeur de 115 kPa. La pression moyenne au niveau de la mer est de 101.325 kPa. Il en existe de très nombreux modéles, avec différentes interfaces (I²C, SPI, analogique).
  • Les jauges différentielles à une entrée permettant de brancher un tuyau. Leur gamme de mesure varie de 2 kPa à 1000 kPa. Pour une utilisation courante, une mesure jusqu'à 5 kPa est suffisante. Leur interface est, en général, analogique, elles délivrent une tension proportionnelle à la pression.
  • Les jauges différentielles à deux entrées, l'une mesure la pression dans le tube, l'autre permet de brancher un tuyau pour aller chercher la pression ambiante dans un endroit non perturbé. Leur interface est également analogique.
La marque Freescale produit une gamme de jauges différentielles à des prix variant de 10.00 à 20.00 €, suivant le distributeur.

Dans les montages suivants, j'utilise une jauge différentielle de type MPXV5004DP à deux entrées. On la trouve facilement en France à moins de 15.00 €. Une jauge de type MPXV5004G6U, à une entrée, peut aussi être utilisée.

jpparisy-albums-sonde-pitot-picture6267-mpxv5004dp.jpg
 
Ce montage tout simple envoie la tension délivrée par la sonde sur l'entrée analogique A2 d'un récepteur FrSky, à travers un diviseur de tension.

La valeur n'est pas vraiment exploitable, mais permet de vérifier que ça varie en fonction de la vitesse

Schéma

jpparisy-albums-sonde-pitot-picture6164-mpx-dp-vero-sch.jpg

Le connecteur JP1 est l'alimentation, le connecteur JP2 est la sortie, à envoyer sur l'entrée A2 du récepteur.

Réalisation

La réalisation est faite sur un bout de plaquette à bandes préperforées. Les liaisons bleues sont les bandes de la plaquette, les liaisons rouges sont les fils à cabler du côté bakélite. Les cercles barrés indiquent l'endroit où la piste doit être coupée.

jpparisy-albums-sonde-pitot-picture6263-mpx-dp-vero-brd.jpg
 
Pour obtenir la vitesse à partir de la pression, il faut effectuer un calcul et donc utiliser un microcontrôleur.

J'utilise un ATTiny85, composant puissant et d'un prix abordable, programmable avec le système Arduino.

Dans ce montage, je génère une tension analogique qui sera envoyée, à travers un diviseur de tension, sur l'entrée A2 d'un récepteur FrSky. Comme la sortie analogique ne permet de générer que 256 valeurs, les valeurs affichées sur l'écran de l'émetteur seront directement en km/h.

Schéma

jpparisy-albums-sonde-pitot-picture6166-mpx-dp-ana-vero-sch.jpg

Ne cherchez pas un "ARDU_TINY85PU" chez votre fournisseur préféré, il s'agit d'un ATtiny85PU que j'ai redessiné pour avoir le nom des broches utilisé par le système Arduino.

Le connecteur JP1 est l'alimentation, le connecteur JP2 est la sortie, à envoyer sur l'entrée A2 du récepteur. À noter le condensateur, branché en paralléle sur la sortie, qui permet, avec la résistance R1 du diviseur de tension, de réaliser à peu de frais un filtre passe-bas d'ordre 1.

Les connecteurs JP3 et JP4 sont positionnés de chaque côté du circuit intégré pour rendre ses broches accessibles.

Programmation

Dans l'initialisation, je lis la valeur de la sonde à la mise sous tension.

Dans la boucle principale, je lis la valeur de la sonde, moins la valeur initiale et j'effectue le calcul, avant d'envoyer la valeur vers la sortie PWM.
Le source complet est ici :
Code:
/*
Take an analog input on the AtTiny85 from the analog input pin 3
and output this to pwm pin 1
 */

#define A_OUTPUT 1    //PWM 1
#define A_INPUT A3

int initval;

void setup () {
  analogReference (DEFAULT);    // or EXTERNAL or INTERNAL
  for (int i = 0; i < 8; i++)
    analogRead (A_INPUT), delay (100);
  initval = 0;
  for (int i = 0; i < 8; i++)
    initval += analogRead (A_INPUT), delay (100);
  initval >>= 3;
}

void loop () {
  int currval = 0;
  for (int i = 0; i < 8; i++)
    currval += analogRead (A_INPUT), delay (100);
  currval >>= 3;
  if (currval < initval)
    currval = initval;
// differential pressure in Pa, 1 V/kPa, max 3920 Pa
  float sensorval = 5000.0 * ((currval - initval) / 1024.0);
// speed at 20° C in m/s, max 80 m/s = 290 km/h = 157 kn
  float speed_ms = sqrt ((sensorval * 2.0) / 1.2);
// speed in km/h
  int speed_kmh = min ((speed_ms * 3.6), 255);
  analogWrite (A_OUTPUT, speed_kmh);
}
Réalisation

Elle est faite sur un bout de plaquette à bandes préperforées. Les liaisons bleues sont les bandes de la plaquette, les liaisons rouges sont les fils à cabler du côté bakélite. Les cercles barrés indiquent l'endroit où la piste doit être coupée.

jpparisy-albums-sonde-pitot-picture6165-mpx-dp-ana-vero-brd.jpg
 
Haut