Zprovoznění FLOW-DECK pro CRAZYFLIE

28.10.2017 Drony #flow-deck #crazyflie #dron

Základní úvod do zprovoznění a prvního otestování komponenty FLOW-DECK


Instalace firmware

Pro využívání komponenty FLOW-DECK se musí provést aktualizace firmwaru crazyflie. Tato aktualizace obsahuje aplikaci podpory FLOW-DECK a knihovnu pro využití Kalmanova filtru.

  • Vypněte Crazyflie.
  • Z adresy https://github.com/bitcraze/crazyflie-release/releases stáhněte poslední firmware.
  • Spusťte klienta.
  • Spusťte Crazyflie v zaváděcím režimu, tj. stisknutím tlačítka napájení po dobu 3 sekund.  Obě modré LED diody budou blikat.
  • Vraťte se zpět do klienta Crazyflie a klikněte na nabídku Connect -> Bootloader.

Aktualizovat dialogové okno firmwaru

  • Klikněte na tlačítko "Spustit bootloader cold boot".  Po několika sekundách by se měl zobrazit stav "Připojeno k zavaděči".
  • Klikněte na tlačítko "Procházet" a vyberte stažený soubor (zip) s firmwarem.
  • Klikněte na tlačítko "Program". Indikace průběhu instalace firmware bude zobrazovat dva kroky nahrávání do crazyflie .
  • Klikněte na tlačítko "Restart in firmware mode".  Crazyflie se restartuje a je aktualizován.
  • Zavřete okno zavaděče.

Vzorový kód

import logging
import time

import cflib.crtp
from cflib.crazyflie.syncCrazyflie import SyncCrazyflie

# Only output errors from the logging framework
logging.basicConfig(level=logging.ERROR)

# Initialize the low-level drivers (don't list the debug drivers)
cflib.crtp.init_drivers(enable_debug_driver=False)

print("Scanning interfaces for Crazyflies...")
available = cflib.crtp.scan_interfaces()

print("Crazyflies found:")
for i in available:
    print(i[0])

if len(available) > 0:
    link_uri = available[0][0]
    print(link_uri)

if __name__ == '__main__':

    with SyncCrazyflie(link_uri) as scf:
        cf = scf.cf

        cf.param.set_value('kalman.resetEstimation', '1')
        time.sleep(0.1)
        cf.param.set_value('kalman.resetEstimation', '0')
        time.sleep(2)

        while True:
           cf.commander.send_hover_setpoint(0, 0, 10, 0.4)
           time.sleep(0.1)

Dron se bude vznášet na jednom místě.

Parametry send_hover_setpoint

sent_hover_setpoint(self, vx, vy, yaw, vz)

  • vx - směr letu v ose X
  • vy - směr letu v ose Y
  • yaw - otáčení kolem osy
  • vz - směr letu v ose Z, tj výška

Manévrování crazyflie

Existují čtyři hlavní směry pro ovládání kvadrokoptéry; Roll, Pitch, Yaw a Thrust.

Osa

  • Roll - je to otáčení kolem vodorovné osy, která prochází quadcopter zezadu do přední strany. Pohybuje se doleva nebo doprava.
  • Pitch - je to otáčení kolem vodorovné osy procházející kvadoptérou zleva doprava. To naklání Crazyflie a pohybuje se dopředu nebo dozadu.
  • Yaw - je rotace kolem svislé osy. Tímto se otáčí quadcopter vlevo nebo vpravo. Yaw se používá při změně směru létání tím, že ukazuje přední část Crazyflie v různých směrech.
  • Thrust - nastavuje výšku nebo výšku Crazyflie.