2026. június 29., hétfő

Nagy teljesítményű katonaidrónok vezérlése

Katonai  nagy teljesítményű drónok (pl. ArduPilot, PX4 alapú rendszerek) grafikus vezérléséhez a legprofibb megoldás a DroneKit-Python és a Tkinter widgetek ötvözése. Ezzel a kombinációval a kezelőfelület gombokkal, adatokkal és térképpel egészíthető ki. Az alábbiakban egy részletes kódot és útmutatót találsz a megvalósításhoz.A Grafikus Felület (GUI) és Vezérlés Felépítése egy ilyen rendszer alapját a tkinter (beépített grafikus csomag) és a drónnal kommunikáló dronekit adja. A grafikus felületen elhelyezett widgetekkel (gombok, csúszkák, státuszjelzők) valós időben küldhetők parancsok, például felszállás vagy célkoordináták megadása formájában.
----------------
import tkinter as tk

class DroneController:
    def __init__(self, root):
        self.root = root
        self.root.title("Katonai Drón Irányító Központ")
        self.root.geometry("400x500")

        self.vehicle_connected = False

        self.label_title = tk.Label(root, text="IRÁNYÍTÓ PANEL", font=("Arial", 16, "bold"))
        self.label_title.pack(pady=10)

        self.btn_takeoff = tk.Button(root, text="FELSZÁLLÁS (Takeoff)", bg="green", fg="white", font=("Arial", 12), command=self.takeoff)
        self.btn_takeoff.pack(pady=5, fill=tk.X)

        self.btn_rtl = tk.Button(root, text="VISSZATÉRÉS (RTL)", bg="orange", fg="white", font=("Arial", 12), command=self.rtl)
        self.btn_rtl.pack(pady=5, fill=tk.X)

        self.btn_land = tk.Button(root, text="LANDOLÁS (Land)", bg="red", fg="white", font=("Arial", 12), command=self.land)
        self.btn_land.pack(pady=5, fill=tk.X)

        self.btn_connect = tk.Button(root, text="Drón Csatlakoztatása", font=("Arial", 12), command=self.connect_drone)
        self.btn_connect.pack(pady=20, fill=tk.X)

        self.status = tk.Label(root, text="Állapot: Nincs csatlakozás", font=("Arial", 11))
        self.status.pack(pady=10)

    def connect_drone(self):
        self.vehicle_connected = True
        self.status.config(text="Állapot: Drón csatlakoztatva (szimulált)")
        print("Kapcsolódás a drónhoz...")

    def takeoff(self):
        if not self.vehicle_connected:
            self.status.config(text="Állapot: Előbb csatlakoztasd a drónt")
            print("Nincs csatlakoztatott drón.")
            return
        self.status.config(text="Állapot: Felszállás parancs kiadva")
        print("Parancs kiadva: Felszállás 10 méterre.")

    def rtl(self):
        if not self.vehicle_connected:
            self.status.config(text="Állapot: Előbb csatlakoztasd a drónt")
            print("Nincs csatlakoztatott drón.")
            return
        self.status.config(text="Állapot: RTL parancs kiadva")
        print("Parancs kiadva: Visszatérés a kiindulópontra.")

    def land(self):
        if not self.vehicle_connected:
            self.status.config(text="Állapot: Előbb csatlakoztasd a drónt")
            print("Nincs csatlakoztatott drón.")
            return
        self.status.config(text="Állapot: Landolás parancs kiadva")
        print("Parancs kiadva: Landolás megkezdve.")

if __name__ == "__main__":
    root = tk.Tk()
    app = DroneController(root)
    root.mainloop()
--------------








Nincsenek megjegyzések:

Megjegyzés küldése