Comment pouvons-nous aider ?

Print

Lire et récupérer les données d’un capteur de distance TF-Luna LiDAR via le port RS232/485 de l’ACE

 

Nous allons voir ici comment extraire des données d’une trame HEXA. Un exemple avec un capteur LiDAR

Ce radar possède une sortie série TTL. Un convertisseur TTL vers RS232 devra être ajouté pour le connecter à un ACE RS232.

Les données et leur analyse

Ce LiDAR envoie par défaut toutes les 10 ms une trame de données :

  • Dist : Distance en cm
  • Amp : Indicateur de puissance du signal
  • Temp : Température Celsius = Temp / 8 – 256℃

Dans cet exemple, nous allons voir comment extraire les données Dist Amp Temp position 2 à 7 dans le cadre de données.

Exemple pour Dist :

Les données sont composées de 2 octets, position 2 et 3.

Pour une distance de 157 cm, nous recevons ces données : 59599D003C07780913. Nous voulons extraire la valeur en gras : 9D 00

  • 9D en HEXA (base 16) = 157 en DEC (base 10) : c’est le bit de poids faible (LSB)
  • 00 en HEXA (base 16) = 0 en DEC (base 10) : c’est le bit de poids fort (MSB)

Si on applique le poids au MSB : [ 157 ] [0 * 256 ] = 157, le nombre que nous voulons comme résultat !

Si la distance était de 587, le résultat serait : [ 75 ] [2 * 256 ] = 587

Le premier code de départ de la base de données est 59 en HEXA = 89 en DECIMAL

Analyse des données sur PC avec le logiciel realterm

vBuilder : Ecouter le port série de l’ACE

  • écoute le port série en attendant de recevoir le « Start Character » 89 (59 en HEXA)
  • compte le nombre d’octets reçus
  • stocke la trame de données dans le tableau de réception RX[ ], d’une longueur déterminée par le nombre d’octets reçus Octets reçus
  • Minimum Break détermine le temps de silence minimum à prendre en compte pour considérer que la trame entière a été reçue (Temps entre 2 trames)

Vérifier la trame de données

Après avoir reçu la trame de données, nous pouvons vérifier si les 1er et 2e caractères sont des 89

Si c’est le cas, nous pouvons passer à l’étape 2.

Calculer chaque valeur, Dist, Amp et Temp

Temp : Température Celsius = Temp / 8 – 256℃

Essayez le sous-programme

Vous pouvez télécharger le programme ici