Telemetre haute précision

Bonjour à tous.

Je suis incapable de trouver une solution à mon problème. Pas assez calé.

Pour un besoin professionnel, " mesurer les bosses et les trous dans les dallages" je cherche à fabriquer un télémètre précision millimétrique à installer sur un règle alu de maçon. Affichage des résultats par une bar lumineuse de led pour une visu rapide au mm et d'un ecran display pour voir plus précisément la distance à 0, 5mm

Pour respecter le DTU, je souhaite installer le détecteur au centre d' une règle aluminium de 2ml.

J'ai déjà fais des tests sur les différentes manières de mesurer la distance.

Système mécanique qui ajuste un potentiomètre linéaire: la tringlerie est compliquée et perte de précision. J'ai abandonné.

Capteur ultrason sr04, mais ça ne marche pas car je suis trop près du sol, et il n'est pas assez précis.

Mais connaissance de maçon en électronique sont basique.... Je suis incapable de trouver une solution.

Je ne trouve pas de capteur pouvant détecter avec une précision de 0,5mm, pouvant commencer à mesurer à partir de 2cm du sol...

Shema.
8_
V___________________8____________________V

Shema d'un règle alu de bricolage de 2ml

Les V représentent des vis de réglage milimetrique pour ajuster la tolérance désirée

Les 8 représentent l endroit où se trouve la sonde et les afficheurs.

Voilà.

Je suis à sec d'idées. J'ai rien trouvé comme capteur arduino pour trouver une solution.

Merci d'avance à tous pour votre aide.

Laurent

Zut, Shema de mon règle raté

bonjour
peut etre regarder du coté VL6180X


V_________8__________V

Bonsoir,

La précision du VL6180X est de 1mm sur une échelle 0 à 100mm dans la spécification technique du fabricant.

Je l'utilise pour mesurer une distance qui peut varier de 44 à 34mm, le laser est assez précis mais la mesure reste assez instable. Je fais donc une dizaine de mesures pour calculer une moyenne.

Pour la précision à 0,5mm, je pense que ça n'ira pas.

J'ai un peu de mal à comprendre qu'on pose du carrelage à 5/10éme près avec un maillet

Quelle amplitude de défaut voulez-vous être capable de mesurer ?

Cordialement.

Pierre

laurent76:
...
Pour respecter le DTU, je souhaite installer le détecteur au centre d' une règle aluminium de 2ml.
...

Bonsoir
et ... un simple pied à coulisse numerique (course ~ 20 cm) positionné (et solidaire de la regle) point zero , ça ne fait pas l’affaire ?
Si le but "du jeu" est simplement de "verifier/mesurer" le point bas (sous le milieu de la regle = ref 0 ) sans dynamique importante ça ne doit pas etre tres compliqué 8)

Bonjour,

Et du coup un carrelage posé au 1/100éme !!!

Messieurs, merci à vous tous pour vos réponses.
Pour ce qui est des exigences de mes clients, oui, nous posons du carrelage sans défauts.
Pour se faire il faut un support parfait.
Quand on receptionne un dallage de 5000 m2, , l'opération devient vite fastidieuse et très longue.

Sur le conseil de Artouste,
J'ai reçu aujourd'hui le petit capteur laser que l'on m'a indiqué. Je vais tenter le montage ce week-end.

Pour l'idée de PEPE de la tige commandant s un potentiomètre encodeur est intéressante et surtout imparable d'efficacité à mon avis.

J'ai un peu de mal à visualiser comment mettre en œuvre le système mais ça me plaît bien.

Merci les gars. Continuez à m'aider. Je vous tien informé de mes travaux.

Laurent

Messieurs, merci à vous tous pour vos réponses.
Pour ce qui est des exigences de mes clients, oui, nous posons du carrelage sans défauts.
Pour se faire il faut un support parfait.
Quand on receptionne un dallage de 5000 m2, , l'opération devient vite fastidieuse et très longue.

Sur le conseil de Artouste,
J'ai reçu aujourd'hui le petit capteur laser que l'on m'a indiqué. Je vais tenter le montage ce week-end.

Pour l'idée de PEPE de la tige commandant s un potentiomètre encodeur est intéressante et surtout imparable d'efficacité à mon avis.

J'ai un peu de mal à visualiser comment mettre en œuvre le système mais ça me plaît bien.

Merci les gars. Continuez à m'aider. Je vous tien informé de mes travaux.

Laurent

Artouste,

L'idée du pied à coulisse numérique est bonne aussi.
J'y avais pensé.
Cependant, elle manque de visibilité.
Moi règle alu à des petites roulettes qui l'empêche de se renverser. Au bout je le tire avec une tige comme si je promenais mon chien.

J'ai besoin de transformer le résultat mesuré, surtout les mesures hors tolérances en signal led très visibles.

Un peu comme un équipement laser de nivellement trimble pour bulldozer

VERSION Avec un capteur LASER VL6180X + LCD I2C 16X2

Bon,

j'arrive à faire fonctionner le capteur seul, mais, je n'arrive pas à faire afficher le résultat de la mesure sur mon ecran LCD.

Puis j'ai trouvé un tuto avec un ecran OLED, " que jai pas" et , dans ce tuto, pour augmenter la pécision de la mesure, il un petit code en plus pour faire une moyenne...

Pouvez vous m'expliquer comment on remplace un OLED par un LCD I2C 16X2

Merci

laurent76:
VERSION Avec un capteur LASER VL6180X + LCD I2C 16X2

Bon,

j'arrive à faire fonctionner le capteur seul, mais, je n'arrive pas à faire afficher le résultat de la mesure sur mon ecran LCD.

Puis j'ai trouvé un tuto avec un ecran OLED, " que jai pas" et , dans ce tuto, pour augmenter la pécision de la mesure, il un petit code en plus pour faire une moyenne...

Adafruit_VL6180X/examples/vl6180x_oled at master · adafruit/Adafruit_VL6180X · GitHub

Pouvez vous m'expliquer comment on remplace un OLED par un LCD I2C 16X2

Merci

bonsoir
Tu déjà testé les exemples basique de ton LCD I²C ?

en gros il faut supprimer tout ce qui est en réference au SSD1306
definir ton LCD et envoyer l'affichage dessus.

Si les infos reçues sur le serial monitor sont OK pour toi , ce ne sera pas compliqué à faire (le plus dur est fait)

laurent76:
Artouste,

L'idée du pied à coulisse numérique est bonne aussi.
J'y avais pensé.
Cependant, elle manque de visibilité.
Moi règle alu à des petites roulettes qui l'empêche de se renverser. Au bout je le tire avec une tige comme si je promenais mon chien.

J'ai besoin de transformer le résultat mesuré, surtout les mesures hors tolérances en signal led très visibles.

Un peu comme un équipement laser de nivellement trimble pour bulldozer

Bonsoir
Les pieds à coulisse "digitaux" même les plus cheaps offrent quasi tous maintenant un port de sortie de la mesure,
facilement exploitable (idem pour les rapporteurs).
ensuite rien de plus simple en fonction de la mesure que d'envisager des actions à suivre pour donner l'information.
exemple d'un que j'ai bien torturé ;D

Bonsoir

dans ce tuto, pour augmenter la pécision de la mesure, il un petit code en plus pour faire une moyenne...

je ne pense pas qu'une moyenne augmente la précision de la mesure qui est de 1mm sur une échelle de 0 à 100mm (datasheet).
Ok pour dire que çà évite les écarts de mesure et stabilise le résultat.

Voici le code que je dois implanter.

J'ai mon capteur tof vl6180x et un petiti ecran oled ssd adafruit 32

Mais ca ne fonctionne pas. J'ai plein d'erreur et je ne trouve pas de solution
Pouvez vous y jtter un oeuil svp

/ * Cet exemple montre comment utiliser le mode continu pour prendre
mesures de distance avec le VL6180X.
Les lectures de distance sont en mm. * /

inclure < Wire.h >

include < SPI.h >

include < Adafruit_GFX.h >

include < Adafruit_SSD1306.h >

inclure " Adafruit_VL6180X.h "

Adafruit_VL6180X vl = Adafruit_VL6180X ();

Adafruit_SSD1306 display = Adafruit_SSD1306 ();

if (SSD1306_LCDHEIGHT! = 32)

erreur ("Hauteur incorrecte, veuillez corriger Adafruit_SSD1306.h!");

endif

void setup ()
{
En série. commencer ( 9600 );

afficher. begin (SSD1306_SWITCHCAPVCC, 0x3C ); // initialise avec l'addr I2C 0x3C (pour le 128x32)
// init fait
afficher. affichage ();
retard ( 1000 );

En série. println ( " test Adafruit VL6180x! " );
if (! vl. begin ()) {
En série. println ( " Impossible de trouver le capteur " );
tandis que ( 1 );
}
En série. println ( " Capteur trouvé! " );

// affichage de texte grand!
afficher. setTextSize ( 4 );
afficher. setTextColor (WHITE);
}

Boucle vide ()
{
float lux = vl. readLux (VL6180X_ALS_GAIN_5);

En série. imprimer ( " Lux: " ); En série. println (lux);

uint8_t range = vl. readRange ();
uint8_t status = vl. readRangeStatus ();

if (status == VL6180X_ERROR_NONE) {
En série. print ( " Plage: " ); En série. println (plage);
afficher. clearDisplay ();
afficher. setCursor ( 0 , 0 );
afficher. impression (plage);
afficher. imprimer ( " mm " );
afficher. affichage ();
En série. println ();
} else {
afficher. affichage ();
afficher. clearDisplay ();
retour ;
}

// Une erreur est survenue, imprimez-la!

if ((status> = VL6180X_ERROR_SYSERR_1) && (statut <= VL6180X_ERROR_SYSERR_5)) {
En série. println ( " Erreur système " );
}
else if (status == VL6180X_ERROR_ECEFAIL) {
En série. println ( " ECE failure " );
}
else if (status == VL6180X_ERROR_NOCONVERGE) {
En série. println ( " Pas de convergence " );
}
else if (status == VL6180X_ERROR_RANGEIGNORE) {
En série. println ( " Plage ignorée " );
}
else if (status == VL6180X_ERROR_SNR) {
En série. println ( " Erreur signal / bruit " );
}
else if (status == VL6180X_ERROR_RAWUFLOW) {
En série. println ( " Sous-estimation de la lecture brute " );
}
else if (status == VL6180X_ERROR_RAWOFLOW) {
En série. println ( " Dépassement de lecture brut " );
}
else if (status == VL6180X_ERROR_RANGEUFLOW) {
En série. println ( " Plage de lecture insuffisante " );
}
else if (status == VL6180X_ERROR_RANGEOFLOW) {
En série. println ( " dépassement de plage de lecture " );
}
retard ( 10 );
}

Bonjour,

Mets ton code entre balises.

Il vient d'où ce code? On dirait un programme qui est passé dans un traducteur !

Bonjour,

kamill:
Mets ton code entre balises.

Il vient d'où ce code? On dirait un programme qui est passé dans un traducteur !

Surtout le :

Boucle vide ()

:wink:

Bonjour,

delay(10) devient retard(10) et Serial.println -> En serie..... ect

Gogole translate n'est pas bon en codage :slight_smile:

Blague à part, si tu ne traduit pas le code avant de le téléverser, peut-être que ça fonctionnera.

Vérifie quand même que tu utilises les mêmes pins que dans le code.