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-S1R | Computador de acompanhamento (UART) |
|---|
| VCC (3,3-4,0V) | 3,3 V ou regulador externo |
| GND | GND |
| TXD (dreno aberto) | RX |
| RXD | TX |
| PWREN | Puxar ALTO (3,3V) ou GPIO |
| nRST | Não ligado |
Nota: O LD30 utiliza UART TTL de 3,3 V. 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 acompanhamento | Pixhawk (porta TELEM) |
|---|
| TX | RX |
| RX | TX |
| GND | GND |
- 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:
- Abrir a porta UART
- Enviar o comando “medição contínua
- Analisar fotogramas que começam por 0xAA
- Distância de extração (mm)
- Converter para metros
- Embalar no MAVLink SENSOR DE DISTÂNCIA
- 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âmetro | Valor |
|---|
| RNGFND1_TYPE | 10 (MAVLink) |
| RNGFND1_MIN_CM | 3 |
| RNGFND1_MAX_CM | 3000 |
| RNGFND1_ORIENT | 0 (Avançar) ou 25 (para baixo) |
| RNGFND1_RMETRIC | 1 |
| SERIAL1_PROTOCOLO | 2 (MAVLink2) |
| SERIAL1_BAUD | 115 |
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