Telémetro láser LD30-S1R(LDL-T) → Ordenador de acompañamiento → Controlador de vuelo Pixhawk.

Ordenador de compañía

Esta guía proporciona una solución totalmente operativa y sin necesidad de documentación adicional para integrar:

LD30-S1R → Ordenador de compañía (Raspberry Pi / Jetson / Android) → MAVLink → Pixhawk

Incluye diagramas de cableado, flujo de análisis de datos, código Python listo para ejecutar, configuración de parámetros Pixhawk y verificación de la estación de control terrestre.

Siga esta guía paso a paso y el sistema funcionará inmediatamente.


1. Conexiones de cableado (LD30 ↔ Ordenador de abordo ↔ Controlador de vuelo)


1.1 LD30-S1R ↔ Ordenador de abordo (UART)

Los ordenadores de compañía pueden ser:
Raspberry Pi / Jetson Nano / PC industrial / Dispositivo Android con USB-UART

LD30-S1ROrdenador de compañía (UART)
VCC (3,3-4,0V)3,3 V o regulador externo
GNDGND
TXD (drenaje abierto)RX
RXDTX
PWRENPull HIGH (3.3V) o GPIO
nRSTNo conectado

Nota: LD30 utiliza UART TTL de 3,3V. No lo haga conectar a 5V TTL UART.
TX es de drenaje abierto; los pull-ups internos de Raspberry Pi y Jetson funcionan bien.


1.2 Ordenador de abordo ↔ Pixhawk (MAVLink UART)

Utilice TELEM1 / TELEM2 puerto.

Ordenador de compañíaPixhawk (Puerto TELEM)
TXRX
RXTX
GNDGND
  • Velocidad en baudios: 115200
  • Protocolo: MAVLink2

2. Lectura de datos del LD30-S1R en el ordenador de acompañamiento

El LD30 se comunica mediante un protocolo de comandos binarios.
El ordenador de acompañamiento se encarga:

  1. Puerto UART abierto
  2. Enviar comando “medición continua
  3. Analiza los marcos que empiezan por 0xAA
  4. Distancia de extracción (mm)
  5. Convertir a metros
  6. Empaquetar en MAVLink SENSOR_DISTANCIA
  7. Enviar a Pixhawk

2.1 Comando de medición continua

Del Manual del usuario del LD30 (sección 14.12):

AA 00 00 20 00 01 00 04 25

2.2 Formato del marco de datos

Los datos devueltos incluyen:

  • Distancia: 4 bytes (mm)
  • Calidad de la señal: 2 bytes
  • Cabecera del marco: 0xAA

3. Script Python completo (listo para ejecutarse)

Este guión:

✔ Lee LD30
✔ Analiza la distancia
✔ Convierte mm → m
✔ Envía MAVLink SENSOR_DISTANCIA
✔ Transmite datos a Pixhawk en tiempo real

Guardar como ld30_to_mavlink.py
Corre con:
python3 ld30_to_mavlink.py

importar serial
from pymavlink import mavutil
importar estructura

# --- Puerto serie LD30 ---
ld30 = serial.Serial('/dev/ttyUSB0', 115200, timeout=0.1)

# Comando de medida continua (del manual 14.12)
CONT_MEASURE = bytes([0xAA,0x00,0x00,0x20,0x00,0x01,0x00,0x04,0x25])
ld30.write(CONT_MEDIDA)

# --- Conexión MAVLink a Pixhawk ---
mav = mavutil.mavlink_connection('/dev/ttyAMA0', baud=115200)

def send_distance_to_fc(distancia_m):
    mav.mav.distance_sensor_send(
        0, # time_boot_ms
        3, # distancia_mínima (cm)
        3000, # distancia_máx (cm)
        int(distancia_m * 100), # distancia_actual (cm)
        0, # tipo
        0, # id
        0, # orientación
        0 # covarianza
    )

buffer = bytearray()

while True
    data = ld30.read()
    si no datos:
        continue

    buffer += datos

    # Longitud mínima de trama = 12 bytes
    si len(buffer) >= 12:
        # Busca la cabecera 0xAA
        if buffer[0] != 0xAA:
            buffer.pop(0)
            continuar

        # Analiza la trama de longitud fija
        if len(buffer) >= 12:
            # La distancia es bytes 6~9 (big-endian)
            dist_bytes = buffer[6:10]
            distancia_mm = struct.unpack(">I", dist_bytes)[0]
            distancia_m = distancia_mm / 1000.0

            print("Distancia LD30:", distancia_m, "m")
            send_distance_to_fc(distancia_m)

            buffer = bytearray() # Borrar buffer

4. Configuración de parámetros Pixhawk (Mission Planner)

Ir a:
Config → Lista completa de parámetros

Ajusta lo siguiente:

ParámetroValor
RNGFND1_TYPE10 (MAVLink)
RNGFND1_MIN_CM3
RNGFND1_MAX_CM3000
RNGFND1_ORIENT0 (Adelante) o 25 (Hacia abajo)
RNGFND1_RMETRIC1
PROTOCOLO_DE_SERIE12 (MAVLink2)
SERIAL1_BAUD115

Si utiliza TELEM2, utilice SERIAL2_*
Si utiliza TELEM3, utilice SERIAL3_*


5. Monitorización de datos LD30 en Mission Planner / QGroundControl


5.1 Planificador de misiones

Navega hasta:

Datos de vuelo → Estado → sonar_range / rngfnd1_dist

o:

Ctrl + F → Inspector MAVLink → DISTANCE_SENSOR

Ya lo verás:

  • Distancia en tiempo real
  • Frecuencia de actualización
  • ID de flujo MAVLink

5.2 QGroundControl

Navega:

Widgets → Analyze Tools → MAVLink Inspector → DISTANCE_SENSOR


6. Flujo de trabajo global del sistema

            LD30-S1R
                │
           TTL UART 3,3 V
                │
        ┌────Companion Computer────┐
        │ Lógica de análisis LD30 │
        │ Empaquetado MAVLink │
        └─────────┬──────────┘
                  MAVLink UART
                       │
                 Controlador de vuelo Pixhawk
                       │
        Planificador de misión / QGroundControl

Comparte:

Más entradas

Envíenos un mensaje

Pie de página del formulario de contacto

Ir arriba

Póngase en contacto

Rellene el siguiente formulario y en breve nos pondremos en contacto con usted.
Formulario de contacto de Meskernel

Póngase en contacto

Rellene el siguiente formulario y en breve nos pondremos en contacto con usted.
Formulario de contacto de Meskernel