Hoe kunnen we helpen?
Lezen en ophalen van gegevens van een TF-Luna LiDAR-afstandssensor via de RS232/485-poort van de ACE
Hier gaan we zien hoe je gegevens uit een HEXA frame haalt. Een voorbeeld met een LiDAR-sensor
Deze radar heeft een TTL seriële uitgang. Er moet een TTL naar RS232 converter worden toegevoegd om hem aan te sluiten op een ACE RS232.
Gegevens en analyse
Deze LiDAR verstuurt standaard elke 10 ms een dataframe:
- Dist: Afstand in cm
- Amp: Indicator signaalsterkte
- Temp: Celsius temperatuur = Temp / 8 – 256℃
In dit voorbeeld zullen we zien hoe we de gegevens Dist Amp Temp positie 2 tot 7 in het gegevensframe kunnen extraheren.
Voorbeeld voor Dist:

| De gegevens bestaan uit 2 bytes, positie 2 en 3.
Voor een afstand van 157 cm ontvangen we deze gegevens : 59599D003C07780913. We willen de vetgedrukte waarde eruit halen: 9D 00
Als we het gewicht toepassen op de MSB: [ 157 ] [0 * 256 ] = 157, het getal dat we als resultaat willen! Als de afstand 587 zou zijn, zou het zijn : [ 75 ] [2 * 256 ] = 587 De eerste startcode van het dataframe is 59 in HEXA = 89 in DECIMAL |
Gegevensanalyse op de PC met de realterm software
|
vBuilder: Luister naar de seriële poort van ACE
- luistert naar de seriële poort en wacht op de ontvangst van “Start Character” 89 (59 in HEXA)
- telt het aantal ontvangen bytes
- slaat het gegevensframe op in de ontvangstarray RX[ ], met een lengte die wordt bepaald door het aantal ontvangen bits Ontvangen bytes
- Minimale onderbreking bepaalt de minimale stille tijd waarmee rekening moet worden gehouden om aan te nemen dat het hele frame is ontvangen (tijd tussen 2 frames)

Controleer het gegevensframe
Na ontvangst van het gegevensframe kunnen we controleren of het 1e en 2e teken 89 zijn
Als dit klopt, kunnen we verder met stap 2.

Bereken elke waarde, Dist, Amp en Temp
Temp : Température Celsius = Temp / 8 – 256℃

Probeer de subroutine
U kunt het programma hierdownloaden
