En cours Afficher une mesure analogique sous forme graphique

  • Auteur de la discussion gaston83
  • Date de début
G

gaston83

Compagnon
Bonjour à tous,

Je reviens sur mon capteur ICM20948 (accéléromètre, gyro etc...etc) utilisé avec un ESP32 que je programme avec IDE Arduino 2.2.1

Le sketch ci-dessous affiche le résultat dans le moniteur série.



C'est déjà bien... mais ce que je voudrais faire c'est afficher le résultat sous forme graphique comme le lien ci-dessous.


Cherche donc une âme charitable qui puisse m'aider .

Merci à vous...
 
W

wika58

Compagnon
Tu veux l'afficher où ?

Sur l'IDE tu as le mode afficheur graphique.
Dans le menu, juste en-dessous du terminal (moniteur série).


J'ai aussi acheté ce petit module... mais pas encore testé...

Je vais profiter de ton code...

Pour quel projet ? Si ce n'est pas indiscret... :smileJap:
 
Dernière édition:
G

gaston83

Compagnon
Alors le but du jeu...

Configuration: 1 ESP32+ICM20948 pour envoyer les données

et 1 ESP32 pour récupérer à distance (réduite) et afficher sous forme graphique sur un petit écran (led ou autre) sur ce second ESP.

tout ceci en Bluetooth.
 
W

wika58

Compagnon
Cool... je n'en suis pas encore à ce niveau...

Tu as trouvé l'afficheur graphique de l'IDE 2.xy ?
C'est ça que tu cherches ?
 
D

Dudulle

Compagnon
Tu veux un tracé sous forme de courbe défilante ?
J'ai fais quelque chose de similaire sur différents projets, je peux te donner le code.

Le principe est assez simple, on commence par définir une variable type tableau. A chaque nouvelle mesure :
- On trace la courbe de la même couleur que le fond (pour l'effacer)
- On décale toutes les valeurs du tableau de 1 rang (la dernière valeur est effacée)
- On enregistre la nouvelle valeur en 1ere position
- On trace la nouvelle courbe
 
W

wika58

Compagnon
Sorry... peux pas t'aider...
:spamafote:
Mais je vais suivre...
 
D

Dudulle

Compagnon
Je veux bien participer au projet ; dernièrement je réfléchissais justement pour en faire un, c'est vrai que le prix est un peu dissuasif...
 
G

gaston83

Compagnon
He ben voilà, les grands esprits se rencontrent... et c'est dommage que l'appli soit hermétique...
 
F

furynick

Compagnon
Sur certains écrans il est possible de décaler l'image.
Le retracage de toute la courbe après son effacement est long et génère des scintillement.

A voir aussi côté LVGL qui a peut-être déjà ce qu'il faut pour afficher une courbe.
 
D

Dudulle

Compagnon
L'idéal à mon avis serait plutôt d'utiliser un esp qui vient collecter les mesures, qui transmet ensuite ses données en bluetooth.
Avec un smartphone une appli recueille les mesures et affiche les courbes.

donc comme promis voici le code de décalage des valeurs
table[717] = (int)temp;
table[718] = (int)hygro;
table[719] = co;
temp = temp/10;

//decalage de toutes les anciennes valeurs
for (i=0; i<717; i++)
{
table = table[i+3];
}

Ici je stocke 3 mesures différentes dans une seule dimension d'une variable tableau de taille 720.
Chaque mesure occupe donc 720/3 = 240

ensuite la procédure de tracé de chaque courbe :
//tracé des courbes
for (j=0; j<240; j++)
{
i=j*3;
tft.drawPixel(j+1,135-0.25*(table),TFT_RED);
tft.drawPixel(j+1,135-table[i+1],TFT_BLUE);
tft.drawPixel(j+1,135-0.02*(table[i+2]),TFT_PURPLE);
}


Ici toutefois ça ne se justifie pas forcément, parce que le but est d'enregistrer le déplacement, puis de l'afficher.
Il faudrait plutôt faire l’acquisition de chacun des 3 points avec un timecode associé.
Une fois le mouvement effectué on l'affiche, avec eventuellement un code couleur en fonction du timecode, et on stocke le relevé sur une carte SD. On peut ensuite faire défiler chaque enregistrement.
En ce qui concerne le capteur il faudrait plutôt utiliser un module gyroscope, parce qu'on ne pourra pas voir les variations de direction avec un accéléromètre.
 
A

albatros_del_sur

Compagnon
Bonsoir,
J'avais un projet qui nécessitait un affichage graphique, Le projet n'a pas abouti car je n'ai pas trouvé les renseignements nécessaires pour connecter mes 2 ESp8256 ensembles, ni un à l'ordinateur. Par contre l'affichage fonctionne L'écran affiche le graphique des pressions au fil des heures et les valeurs ne sont pas perdue car elles sont mémorisées dans la carte mémoire de l'afficheur et peuvent être récupérées en USB sur l'ordinateur.
IMG_8441.jpg

Désolé je n'ai pas pu tourner l'image, sinon elle était coupée. L"écran est un 2"8, on voit que la pression en soirée a bien baissé puisque le relevé le plus ancien est au début de la courbette plus récent à la fin quand un nouveau arrive il pousse tous les autre d'un cran et le plus ancien disparait. Les valeurs sont transféré dans la carte SD. Si ça t'intéresse je publierai le code, c'est assez cossu et j'ai dû tester les fonctions séparément avant de les assembler en un seul programme.
@Dudulle c'est quoi le système Mantis ? ça sert à quoi ?
merci d'avance d'éclairer ma lanterne.
 
D

Dudulle

Compagnon
@Dudulle c'est quoi le système Mantis ? ça sert à quoi ?
merci d'avance d'éclairer ma lanterne.

C'est un système d'aide au travail de la visée, avec une carabine, un pistolet ou même un arc.
Le principe est d'enregistrer le chemin moteur de la visée. De cette façon on peut par exemple voir si on perd trop de temps à aligner (c'est une notion très importante, car passé quelques seconde à acquerir le visée la performance commence à se dégrader), ou si le mouvement n'est pas toujours le même. Sur l’écran du téléphone on peut voir le trajet au fil du temps. Le logiciel calcule un score en fonction de la répétabilité.
 
D

Dudulle

Compagnon
Oui... exact et l'ICM20948 possède l'accéléromètre et le gyroscope donc y a plus qu'a..
Je voudrais en commander un pour faire des tests, à ton avis le modèle de base suffirait ?
 
G

gaston83

Compagnon
Je voudrais en commander un pour faire des tests, à ton avis le modèle de base suffirait ?
J'ai eu des retours sur différents capteurs, à priori ceux à base d'ICM20948 sont meilleurs. Si on part sur une étude en groupe, il faudrait que tout le monde soit équipé des mêmes capteurs. Qu'en penses tu?
 
V

vibram

Compagnon
L'idéal à mon avis serait plutôt d'utiliser un esp qui vient collecter les mesures, qui transmet ensuite ses données en bluetooth.
Avec un smartphone une appli recueille les mesures et affiche les courbes.

donc comme promis voici le code de décalage des valeurs

Ici je stocke 3 mesures différentes dans une seule dimension d'une variable tableau de taille 720.
Chaque mesure occupe donc 720/3 = 240

ensuite la procédure de tracé de chaque courbe :


Ici toutefois ça ne se justifie pas forcément, parce que le but est d'enregistrer le déplacement, puis de l'afficher.
Il faudrait plutôt faire l’acquisition de chacun des 3 points avec un timecode associé.
Une fois le mouvement effectué on l'affiche, avec eventuellement un code couleur en fonction du timecode, et on stocke le relevé sur une carte SD. On peut ensuite faire défiler chaque enregistrement.
En ce qui concerne le capteur il faudrait plutôt utiliser un module gyroscope, parce qu'on ne pourra pas voir les variations de direction avec un accéléromètre.
J'insiste, vous allez vous emmerder à transférer des données, connecter les appareils etc. Si l esp n'est pas saturé, faites tout sur 1 seul et venez vous connecter dessus avec votre smartphone. Ce sera beaucoup beaucoup plus simple à gérer
 
S

speedjf37

Compagnon
Bonjour,

Sujet très intéressant qui mériterai une solution standard adaptable à de nombreux capteurs

Il faudrait choisir le moyen utilisé pour l'affichage et le mode.

Temps réel / différé
Affichage graphique embarqué / sd embarquée.

Traitement sur PC ?
Ici on y présente plusieurs solutions:

Dont une utilisée par @jpbbricole

Cordialement JF
 
A

albatros_del_sur

Compagnon
Bonjour,
@dudule Merci je ne connaissais pas ce système. La technique est intéressante.
 
D

Dudulle

Compagnon
J'insiste, vous allez vous emmerder à transférer des données, connecter les appareils etc. Si l esp n'est pas saturé, faites tout sur 1 seul et venez vous connecter dessus avec votre smartphone. Ce sera beaucoup beaucoup plus simple à gérer
C'est précisément ce que j'ai écrit, non ? L'esp fait les mesures, et les envoie en bluetooth au smartphone.
 
D

Dudulle

Compagnon
J'ai eu des retours sur différents capteurs, à priori ceux à base d'ICM20948 sont meilleurs. Si on part sur une étude en groupe, il faudrait que tout le monde soit équipé des mêmes capteurs. Qu'en penses tu?

Tu as raison il faut prendre le même capteur, je vais en commander un.
 
V

vibram

Compagnon
Non ma solution est de faire un serveur Web sur l esp et avec votre téléphone vous accédez aux données comme sur un site internet. Pas besoin de Bluetooth. Seulement de WiFi et il n'y a pas de protocole d'échange de données. C'est comme si le téléphone accedait au site usinages par exemple
 
D

Dudulle

Compagnon
C'est une solution, mais elle n'est pas viable, car le WIFI consomme beaucoup plus que le bluetooth.
L'idée est de faire un tout petit module qui se fixe sur l'arme, avec l'accu le plus petit possible.
Par ailleurs le serveur web n'apporte rien de plus.
 
G

gaston83

Compagnon
L'esp fait les mesures, et les envoie en bluetooth au smartphone.
Coté programmation de l'ESP, je pense que ce sera pas bien compliqué (quoi que !) C'est surtout au niveau du smartphone. Va falloir trouver une appli ou en faire une sur mesure. C'est dommage que l'appli MantisX soit hermétique. J'aurais bien aimé connaître le protocole utilisé.
 
D

Dudulle

Compagnon
Faire une appli sur android n'est pas si compliqué. Il existe des outils abordables, comme AppInventor.

La programmation de l'esp ne devrait pas non plus être très compliquée. Tel que je l'imagine on pourrait lancer une acquisition sur une durée fixe (à définir) à partir du moment où l'arme se trouve dans une certaine orientation, puis levée.
Les mesures sont stockées dans une variable type tableau à la volée. Il faut une détection du départ (peut être avec un micro ?) et continuer l'acquisition encore quelques secondes, et enfin envoyer les données par bluetooth.
Un mode additionnel ou alternatif peut consister à stocker l'intégralité des mesures sur carte SD sans communication avec un autre appareil (on exploite les mesures après la séance).
 

Sujets similaires

G
Réponses
0
Affichages
613
gaston83
G
V
Réponses
62
Affichages
5 402
vibram
V
01power
Réponses
3
Affichages
13 872
01power
01power
D
Réponses
9
Affichages
3 065
David80
D
V
Réponses
4
Affichages
2 950
wika58
W
taratata
Réponses
4
Affichages
4 271
taratata
taratata
taratata
Réponses
1
Affichages
1 455
taratata
taratata
V
Réponses
7
Affichages
1 990
vibram
V
V
Réponses
62
Affichages
39 385
Dardar88
Dardar88
Haut