¿Cómo podemos ayudar?
Lectura y recuperación de datos de un sensor de distancia LiDAR TF-Luna a través del puerto RS232/485 del ACE
Aquí vamos a ver cómo extraer datos de una trama HEXA. Un ejemplo con un sensor LiDAR
Este radar tiene una salida serie TTL. Será necesario añadir un conversor TTL a RS232 para conectarlo a un ACE RS232.
Los datos y su análisis
Este LiDAR envía por defecto cada 10 ms esta trama de datos:
- Dist: Distancia en cm
- Amp: Indicador de intensidad de la señal
- Temp: Temperatura Celsius = Temp / 8 – 256℃
En este ejemplo, veremos cómo extraer los datos Dist Amp Temp posición 2 a 7 en el marco de datos.
Ejemplo para Dist:
Los datos se componen de 2 bytes, posición 2 y 3.
Para una distancia de 157 cm, recibimos estos datos : 59599D003C07780913. Queremos extraer el valor en negrita: 9D 00
Si aplicamos el peso al MSB: [ 157 ] [0 * 256 ] = 157, ¡el número que queremos como resultado! Si la distancia fuera 587, sería : [ 75 ] [2 * 256 ] = 587 El primer código de inicio de la trama de datos es 59 en HEXA = 89 en DECIMAL |
Análisis de datos en PC con el software realterm |
vBuilder: Escuchar el puerto serie ACE
- escucha el puerto serie a la espera de recibir el «Start Character» 89 (59 en HEXA)
- cuenta el número de bytes recibidos
- almacena la trama de datos en la matriz de recepción RX[ ], de una longitud determinada por el número de bits recibidos Bytes Recibidos
- Minimum Break determina el tiempo mínimo de silencio a tener en cuenta para considerar que se ha recibido la trama completa (Tiempo entre 2 tramas)
Comprobación de la trama de datos
Tras recibir la trama de datos, podemos comprobar si el 1er y 2º carácter son 89
Si es correcto, podemos pasar al paso 2.
Calcular cada valor, Dist, Amp y Temp
Temp : Temperatura Celsius = Temp / 8 – 256℃
Pruebe la subrutina
Puede descargar el programa aquí