F3News

Le forum du planeur radiocommandé catégorie F3x
 
AccueilPortailRechercherS'enregistrerConnexion

Partagez
 

 [arduino] mesure de débattement

Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4, 5, 6, 7
AuteurMessage
LalanneL
rooky


Nombre de messages : 21
Age : 50
Localisation : 64
Date d'inscription : 08/01/2012

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeJeu 9 Mai 2019 - 14:11

Re,

Une solution encore plus simple (plus d'expo et tmp_num), qui semble fonctionner ici :

Code:
//----------------------------------------------------------------------------------------------------------------------------------
String cnv_flt2str(float num, int car, int digit) { // Convert a float variable into a string with a specific number of digits
  //----------------------------------------------------------------------------------------------------------------------------------
  String str = "";
  if (digit > 0) {
    str = String(num,digit);
  } else {
    str = String(int(num));
  }
  while (str.length() < car) {
    str = " " + str;
  }
  return str;
}

Laurent
Revenir en haut Aller en bas
J'm BBR
pilote d'or
pilote d'or
J'm BBR

Nombre de messages : 1860
Age : 53
Localisation : Saint Yon [91]
Date d'inscription : 09/12/2007

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeJeu 9 Mai 2019 - 14:17

Exact! C'est ce qu'il faut faire en effet.
Je mets ça en ligne, merci
...en fait il n'y en a qu'un qui suit cheers cheers
J'm drunken
Revenir en haut Aller en bas
LalanneL
rooky


Nombre de messages : 21
Age : 50
Localisation : 64
Date d'inscription : 08/01/2012

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeJeu 9 Mai 2019 - 15:14

Merci Very Happy
Je crois que le fichier BBR_Angle_meter_mma8452.ino a perdu le "beerware" dans l'entête.  Shocked

J'ai également modifié la fonction read_angle() plutôt que de faire 150 fois le calcul avec atan2(), ça me semblait plus clair d'accumuler les G, diviser par le nombre de mesures et faire le calcul d'angle une seule fois.

Code:
#define NUM_SAMPLES  150

//----------------------------------------------------------------------------------------------------------------------------------
double read_angle() {                             // Function returning the current rotation value along X axis - in degrees
  //----------------------------------------------------------------------------------------------------------------------------------
  float x, y, z;
  float y_accum = 0, z_accum = 0;
  for (int nn = 0;  nn < NUM_SAMPLES; nn++) {
    mma.getAcceleration(&x, &y, &z);
    y_accum += y;
    z_accum += z;
  }

  y = y_accum / NUM_SAMPLES;
  z = z_accum / NUM_SAMPLES;

  return atan2(y, z) / M_PI * 180;
}

Laurent
Revenir en haut Aller en bas
J'm BBR
pilote d'or
pilote d'or
J'm BBR

Nombre de messages : 1860
Age : 53
Localisation : Saint Yon [91]
Date d'inscription : 09/12/2007

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeVen 10 Mai 2019 - 18:00

LalanneL a écrit:
Merci Very Happy
Je crois que le fichier BBR_Angle_meter_mma8452.ino a perdu le "beerware" dans l'entête.  Shocked
Je corrige ça vite fait!

LalanneL a écrit:
J'ai également modifié la fonction read_angle() plutôt que de faire 150 fois le calcul avec atan2(), ça me semblait plus clair d'accumuler les G, diviser par le nombre de mesures et faire le calcul d'angle une seule fois.

Code:
#define NUM_SAMPLES  150

//----------------------------------------------------------------------------------------------------------------------------------
double read_angle() {                             // Function returning the current rotation value along X axis - in degrees
  //----------------------------------------------------------------------------------------------------------------------------------
  float x, y, z;
  float y_accum = 0, z_accum = 0;
  for (int nn = 0;  nn < NUM_SAMPLES; nn++) {
    mma.getAcceleration(&x, &y, &z);
    y_accum += y;
    z_accum += z;
  }

  y = y_accum / NUM_SAMPLES;
  z = z_accum / NUM_SAMPLES;

  return atan2(y, z) / M_PI * 180;
}

Laurent
On gagne en effet quelques pouièmes mais le debug est moins simple, donc je garde comme c'est.
J'm drunken
Revenir en haut Aller en bas
LalanneL
rooky


Nombre de messages : 21
Age : 50
Localisation : 64
Date d'inscription : 08/01/2012

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeVen 10 Mai 2019 - 19:22

Bonjour J'm,

Le gain de temps est d'environ 30% on dirait.

Original:
Code:

unsigned long timeElapsed = (micros() - preFunction) / 1000;
Serial.println("Time :" + String(timeElapsed));
Serial.println(String(l_angle, 5) + "   -   " + String( ll_angle, 5));

Time :94
1743.00000   -   174.3

Proposé, en ajoutant une variable 'angle' pour le debug:
Code:

float angle = atan2(y, z) / M_PI * 180;
unsigned long timeElapsed = (micros() - preFunction) / 1000;
Serial.println("Time :" + String(timeElapsed));
Serial.println(String(angle, 5));

Time :60
174.25201

D'autre part si j'ai bien compris il n'y a pas de gain entre float et double, et de toute manière avec la fonction initiale la valeur renvoyée (double) est à 0.1 près avec le x10 > round() > /10, un renvoi en float est largement suffisant.

Je filtre aussi l'angle avant l'affichage de la valeur:
Code:

#define ALPHA        0.7

  // angle filtering
  x_rot = (last_angle * ALPHA) + (x_rot * (1 - ALPHA));
  last_angle = x_rot;

Une autre manière de traiter le sujet, à chacun ses manies  Smile

Laurent
Revenir en haut Aller en bas
LalanneL
rooky


Nombre de messages : 21
Age : 50
Localisation : 64
Date d'inscription : 08/01/2012

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeLun 13 Mai 2019 - 22:16

Bonjour,

J'ai mis en ligne une version Wifi du mesureur de débattement qui utilise un ESP01 et un MMA8452, alimenté en 3.3v.
https://github.com/f5soh/aeromodeling-throw-meter

[arduino] mesure de débattement - Page 7 Esp01_10

Il suffit de se connecter dessus avec une tablette ou un portable en Wifi et d'afficher la page ci-dessous dans le navigateur :

[arduino] mesure de débattement - Page 7 Wifi_angle_meter_page

Boutons verts : changer la valeur de la corde,
Load/Save : enregistrer la valeur de la corde dans la mémoire et de la récupérer plus tard,
Min/Max : mise à zéro des valeurs min/max,
Init Angle : mise à zéro de l'angle.

Laurent
Revenir en haut Aller en bas
J'm BBR
pilote d'or
pilote d'or
J'm BBR

Nombre de messages : 1860
Age : 53
Localisation : Saint Yon [91]
Date d'inscription : 09/12/2007

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeJeu 16 Mai 2019 - 9:44

Bravo Alexandre, Great Job cheers cheers
C'est une approche similaire à celle entreprise par Pierre Rondel http://f3news.1fr1.net/t15809-mesure-de-debattement-bluetooth avec les interfaces sur un mobile.
J'm
Revenir en haut Aller en bas
LalanneL
rooky


Nombre de messages : 21
Age : 50
Localisation : 64
Date d'inscription : 08/01/2012

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeJeu 16 Mai 2019 - 18:15

Oui, avec quelques nuances : Pas besoin d'installer d'appli et pas de problème avec Iphone, Ipad et compatibilité Android.
Seule contrainte, avoir un appareil avec du Wifi et un navigateur, quelque soit le système.

Laurent
Revenir en haut Aller en bas
marc S
rooky


Nombre de messages : 2
Localisation : Yvelines
Date d'inscription : 20/05/2019

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement    [arduino] mesure de débattement - Page 7 Icon_minitimeLun 20 Mai 2019 - 17:06

bonjour,

Utiliser un ESP01 est pour contrôler la mesure une solution élégante.
La version Wifi du mesureur de débattement avec un ESP01 permettrait t elle de contrôler 2 capteurs de mesure MMA845x pour régler les 2 ailerons en même temps ?
Le MMA8451 est équipé d’une broche qui modifie le LSB de son adresse sur le bus I2C (SA0),
ce qui permet de connecter 2 senseurs sur le bus.
L’ESP01 pourrait il gérer cela ?

marc S
Revenir en haut Aller en bas
LalanneL
rooky


Nombre de messages : 21
Age : 50
Localisation : 64
Date d'inscription : 08/01/2012

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeLun 20 Mai 2019 - 19:25

Bonjour Marc,

L'ESP01 doit pouvoir effectivement supporter un deuxième capteur par contre avec la longueur nécessaire pour aller d'un aileron à un autre sur un grand planeur le bus I2C risque de moins bien marcher. Mis à part la limitation de pinnouilles (2gpio), l'esp01 a de l'espace libre et il tourne à 80Mhz.

Une autre solution serait d'avoir un deuxième ESP-01 esclave qui se connecte en Wifi sur le maitre pour lui envoyer les données.

Laurent
Revenir en haut Aller en bas
LalanneL
rooky


Nombre de messages : 21
Age : 50
Localisation : 64
Date d'inscription : 08/01/2012

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeSam 29 Juin 2019 - 19:30

Bonjour,
Version double affichage, le premier appareil alimenté fait office de point d'accès et ensuite le deuxième vient se connecter dessus.
Encore quelques problèmes de communication en utilisation double lors de la mise à zéro des angles et des valeurs min/max mais c'est tout à fait utilisable.
Boitier usiné dans du forex de 10mm pour 30g fini, avec un petit Lipo de 200mAh et un régulateur 3.3v qui amène pas mal de chute de tension... mais ça marche au moins une heure malgré ça Smile

La languette coulisse en force dans le boitier et permet de venir clipser l'appareil sur l'aileron.



[arduino] mesure de débattement - Page 7 P1030311
[arduino] mesure de débattement - Page 7 P1030310

Laurent
Revenir en haut Aller en bas
J'm BBR
pilote d'or
pilote d'or
J'm BBR

Nombre de messages : 1860
Age : 53
Localisation : Saint Yon [91]
Date d'inscription : 09/12/2007

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeDim 30 Juin 2019 - 14:00

Bravo Laurent!
C'est une belle évolution du projet initial, cependant dans le cas de l'utilisation d'un affichage externe, il me semble que l'utilisation de circuits MicroBit serait plus appropriés, ils disposent en natif, outre le cpu de base, d'un accéléromètre et de Bluetooth ce qui rend leur intégration plus facile: juste un accu à brancher et c'est fait.
https://microbit.org/fr/
J'm
Revenir en haut Aller en bas
LalanneL
rooky


Nombre de messages : 21
Age : 50
Localisation : 64
Date d'inscription : 08/01/2012

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeDim 30 Juin 2019 - 23:44

Bonsoir,
Avec le prix d'une carte microbit (20€) il est possible de faire 2 à 3 modules à base d'ESP, de plus je ne suis pas certain qu'il soit possible d'accéder à un module microbit sans appli ou une vielle tablette... donc une fois de plus une dépendance avec le système d'exploitation.
Ici n'importe quel appareil avec du Wifi et un navigateur fonctionne, comme les tablettes de la déchetterie Smile
Revenir en haut Aller en bas
vincent 31
rooky


Nombre de messages : 3
Age : 45
Localisation : Revel 31
Date d'inscription : 17/10/2016

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeDim 14 Juil 2019 - 9:50

Bonjour

Merci LalanneL pour ce montage bien pratique. tiptop

J'ai apporté quelque amélioration sur le mien entre autre "l'autonomie" en y incluant une lipo de 500ma (lipo de PDA)dans le boitier comme tu la fait d’ailleurs, rechargeable par USB.

j'ai mis la page HTML dans la mémoire SPIFFS , en donnant le choix de la précision des mesures soit dixième (mm, degré) ou pas.

Enfin vu l'utilisation enfantine, j'ai ajouter la possibilité de fait une mesure d’incidence du vé moyennant un support.

Merci encore

[arduino] mesure de débattement - Page 7 20190710[arduino] mesure de débattement - Page 7 20190711
Revenir en haut Aller en bas
LalanneL
rooky


Nombre de messages : 21
Age : 50
Localisation : 64
Date d'inscription : 08/01/2012

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeDim 14 Juil 2019 - 10:14

Bonjour Vincent,

Intéressant le montage Smile
Pour ce qui est de la page sur le SPIFFS ou flash il me semble que ça revient au même au niveau performances mis à part que le SPIFFS demande d'uploader le fichier à part. (faut que je pousse une petite modif pour que ça fonctionne avec la version 2.5.2 de l'arduino/esp)

J'ai également apporté quelques modifications récentes sur l'interface avec des tabulations et une calibration de l'offset pour plus de précision.



Du son mais c'est pas encore poussé sur gitHub



Il y a aussi un peu de doc sur le https://github.com/f5soh/aeromodeling-throw-meter/wiki

Laurent


Dernière édition par LalanneL le Dim 14 Juil 2019 - 10:31, édité 1 fois (Raison : maj modifs)
Revenir en haut Aller en bas
vincent 31
rooky


Nombre de messages : 3
Age : 45
Localisation : Revel 31
Date d'inscription : 17/10/2016

[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitimeDim 14 Juil 2019 - 19:21

Bonsoir LalanneL

En un mot chapeau  tiptop  tiptop

Le fait de mettre la page HTML dans le SPIFFS permet de ne pas utiliser la mémoire "programme",
pour le uploader dans cette "partie de mémoire" avec l' IDE arduino ce n'est pas plus complique que charger le programme sauf que tu le fais en 2 fois.

Mais effectivement cela ne change rien au fonctionnement.
Revenir en haut Aller en bas
Contenu sponsorisé




[arduino] mesure de débattement - Page 7 Empty
MessageSujet: Re: [arduino] mesure de débattement   [arduino] mesure de débattement - Page 7 Icon_minitime

Revenir en haut Aller en bas
 
[arduino] mesure de débattement
Revenir en haut 
Page 7 sur 7Aller à la page : Précédent  1, 2, 3, 4, 5, 6, 7

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
F3News :: Les news du F3x ! :: Un peu de technique F3x-
Sauter vers: