Closed domhel closed 2 years ago
Die Daten können mit MAVSDK ausgelesen werden. Das folgende Skript zeigt verschiedene Informationen an. Es lassen sich sämtliche Daten des Pixhawk auslesen siehe MAVSDK Dokumentation Skript liegt auf dem pi unter
/home/pi/Python/MAVSDK-Python/examples
#!/usr/bin/env python3
import asyncio
from mavsdk import System
async def run():
# Init the drone
drone = System()
await drone.connect(system_address="serial:///dev/serial0:921600")
# Start the tasks
asyncio.ensure_future(print_battery(drone))
asyncio.ensure_future(print_gps_info(drone))
asyncio.ensure_future(print_in_air(drone))
asyncio.ensure_future(print_position(drone))
# asyncio.ensure_future(print_flightmode(drone))
async def print_battery(drone):
async for battery in drone.telemetry.battery():
print(f"Battery: {battery.remaining_percent}")
async def print_gps_info(drone):
async for gps_info in drone.telemetry.gps_info():
print(f"GPS info: {gps_info}")
async def print_in_air(drone):
async for in_air in drone.telemetry.in_air():
print(f"In air: {in_air}")
async def print_position(drone):
async for position in drone.telemetry.position():
print(position)
# eigene Funktion
async def print_flightmode(drone):
async for flight_mode in drone.telemetry.flight_mode():
print(f"Flight Mode: {flight_mode}")
if __name__ == "__main__":
# Start the main function
asyncio.ensure_future(run())
# Runs the event loop until the program is canceled with e.g. CTRL-C
asyncio.get_event_loop().run_forever()
Aktuell geibt es noch das Problem, dass die Funkiton drone.telemetry.position() nichts ausgibt, obwohl 9 GPS Satelitensignale vorhanden sind, und der GPS Status auf FIX_DGPS steht. Auf Dieses Issue hat mir bisher nicht weitergeholfen. Im Prinzip muss es aber funktionieren