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-S1R | Ordenador de compañía (UART) |
|---|
| VCC (3,3-4,0V) | 3,3 V o regulador externo |
| GND | GND |
| TXD (drenaje abierto) | RX |
| RXD | TX |
| PWREN | Pull HIGH (3.3V) o GPIO |
| nRST | No 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ñía | Pixhawk (Puerto TELEM) |
|---|
| TX | RX |
| RX | TX |
| GND | GND |
- 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:
- Puerto UART abierto
- Enviar comando “medición continua
- Analiza los marcos que empiezan por 0xAA
- Distancia de extracción (mm)
- Convertir a metros
- Empaquetar en MAVLink SENSOR_DISTANCIA
- 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ámetro | Valor |
|---|
| RNGFND1_TYPE | 10 (MAVLink) |
| RNGFND1_MIN_CM | 3 |
| RNGFND1_MAX_CM | 3000 |
| RNGFND1_ORIENT | 0 (Adelante) o 25 (Hacia abajo) |
| RNGFND1_RMETRIC | 1 |
| PROTOCOLO_DE_SERIE1 | 2 (MAVLink2) |
| SERIAL1_BAUD | 115 |
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