Telémetro laser LD30-S1R(LDL-T) → Computador de bordo → Controlador de voo Pixhawk

Computador de acompanhamento

Este guia fornece uma solução totalmente funcional e sem necessidade de documentação adicional para integrar:

LD30-S1R → Computador de acompanhamento (Raspberry Pi / Jetson / Android) → MAVLink → Pixhawk

Inclui diagramas de cablagem, fluxo de análise de dados, código Python pronto a executar, configuração de parâmetros Pixhawk e verificação da estação de controlo no solo.

Siga este guia passo a passo e o sistema funcionará imediatamente.


1. Ligações de Cablagem (LD30 ↔ Computador Companheiro ↔ Controlador de Voo)


1.1 LD30-S1R ↔ Computador de bordo (UART)

Os computadores de companhia podem ser:
Raspberry Pi / Jetson Nano / PC industrial / dispositivo Android com USB-UART

LD30-S1RComputador de acompanhamento (UART)
VCC (3,3-4,0V)3,3 V ou regulador externo
GNDGND
TXD (dreno aberto)RX
RXDTX
PWRENPuxar ALTO (3,3V) ou GPIO
nRSTNão ligado

Nota: LD30 uses 3.3V TTL UART. Não ligar a 5V TTL UART.
O TX é de dreno aberto; os pull-ups internos no Raspberry Pi e no Jetson funcionam bem.


1.2 Computador de bordo ↔ Pixhawk (MAVLink UART)

Utilização TELEM1 / TELEM2 porto.

Computador de acompanhamentoPixhawk (porta TELEM)
TXRX
RXTX
GNDGND
  • Taxa de transmissão: 115200
  • Protocolo: MAVLink2

2. Ler os dados do LD30-S1R no computador de bordo

O LD30 comunica através de um protocolo de comando binário.
O computador de acompanhamento trata:

  1. Abrir a porta UART
  2. Enviar o comando “medição contínua
  3. Analisar fotogramas que começam por 0xAA
  4. Distância de extração (mm)
  5. Converter para metros
  6. Embalar no MAVLink SENSOR DE DISTÂNCIA
  7. Enviar para o Pixhawk

2.1 Comando de medição contínua

Do Manual do Utilizador do LD30 (secção 14.12):

AA 00 00 20 00 01 00 04 25

2.2 Formato da estrutura de dados

Os dados devolvidos incluem:

  • Distância: 4 bytes (mm)
  • Qualidade do sinal: 2 bytes
  • Cabeçalho do quadro: 0xAA

3. Script Python completo (pronto a executar)

Este guião:

Leituras LD30
Distância de parses
✔ Converte mm → m
Envia MAVLink SENSOR DE DISTÂNCIA
Transmissão de dados para o Pixhawk em tempo real

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

importar serial
from pymavlink import mavutil
importar struct

# --- Porta Série LD30 ---
ld30 = serial.Serial('/dev/ttyUSB0', 115200, timeout=0.1)

Comando de medição contínua do # (do manual 14.12)
CONT_MEASURE = bytes([0xAA,0x00,0x00,0x20,0x00,0x01,0x00,0x04,0x25])
ld30.write(CONT_MEASURE)

# --- Ligação MAVLink ao Pixhawk ---
mav = mavutil.mavlink_connection('/dev/ttyAMA0', baud=115200)

def send_distance_to_fc(distance_m):
    mav.mav.distance_sensor_send(
        0, # tempo_boot_ms
        3, # distância_mínima (cm)
        3000, # distância_máx (cm)
        int(distância_m * 100), # distância atual (cm)
        0, # tipo
        0, # id
        0, # orientação
        0 # covariância
    )

memória intermédia = bytearray()

while True:
    dados = ld30.read()
    se não forem dados:
        continue

    buffer += dados

    # Comprimento mínimo do quadro = 12 bytes
    se len(buffer) >= 12:
        # Procura o cabeçalho 0xAA
        se buffer[0] != 0xAA:
            buffer.pop(0)
            continuar

        # Analisar quadro de comprimento fixo
        se len(buffer) >= 12:
            # Distância é bytes 6~9 (big-endian)
            dist_bytes = buffer[6:10]
            distância_mm = struct.unpack(">I", dist_bytes)[0]
            distância_m = distância_mm / 1000.0

            print("Distância LD30:", distância_m, "m")
            enviar_distância_para_fc(distância_m)

            buffer = bytearray() # Limpar buffer

4. Configuração dos parâmetros do Pixhawk (Mission Planner)

Ir para:
Config → Lista completa de parâmetros

Definir o seguinte:

ParâmetroValor
RNGFND1_TYPE10 (MAVLink)
RNGFND1_MIN_CM3
RNGFND1_MAX_CM3000
RNGFND1_ORIENT0 (Avançar) ou 25 (para baixo)
RNGFND1_RMETRIC1
SERIAL1_PROTOCOLO2 (MAVLink2)
SERIAL1_BAUD115

Se utilizar TELEM2, utilize SERIAL2_*
Se estiver a utilizar TELEM3, utilizar SERIAL3_*


5. Monitorização dos dados LD30 no Mission Planner / QGroundControl


5.1 Planeador de missões

Navegar para:

Flight Data → Status → sonar_range / rngfnd1_dist

ou:

Ctrl + F → MAVLink Inspetor → DISTANCE_SENSOR

Verá:

  • Distância em tempo real
  • Frequência de atualização
  • ID do fluxo MAVLink

5.2 QGroundControl

Navegar:

Widgets → Ferramentas de análise → MAVLink Inspetor → DISTANCE_SENSOR


6. Fluxo de trabalho global do sistema

            LD30-S1R
                │
           TTL UART 3.3V
                │
        ──── Computador de Acompanhamento────┐
        Lógica de análise LD30 │
        │ Embalagem MAVLink │
        └─────────┬──────────┘
                  UART MAVLink
                       │
                 Controlador de voo Pixhawk
                       │
        Planeador de missão / QGroundControl

Partilhar:

Mais publicações

Envie-nos uma mensagem

Rodapé do formulário de contacto

滚动至顶部

Entrar em contacto

Preencha o formulário abaixo e entraremos em contacto em breve.
Formulário de contacto Meskernel

Entrar em contacto

Preencha o formulário abaixo e entraremos em contacto em breve.
Formulário de contacto Meskernel