Browse Tag: multiwii

Stručna praksa na Tajlandu – Projekat

U ovom blogu ću opisati šta sam radio na praksi, dok informacije o tome kako da i vi tamo stignete možete naći ovde.

Kada sam stigao na Prince of Songkla University u HatYai-u, dobio sam mentora sa kojim je trebalo da se dogovorim i da radim projekat. Dogovor je bio da postojeći quadcopter opremim senzorima za merenje udaljenosti i da ga isprogramiram da izbegava prepreke. Do završetka projekta ovaj plan se izmenio, a evo šta je sve urađeno:

  1. Komunikacija sa quadcopterom je promenjena sa standardne RC veze na serijsku vezu. Upravljački podaci se šalju poštovanjem postojećeg protokola koji definiše MultiWii softver;
  2. Upravljanje se vrši putem džojstika (RC simulator) nakačenog na PC;
  3. Radi postizanja većeg dometa bluetooth je zamenjen XBee modulima;
  4. Instalacija ultrasoničnog senzora (senzor za merenje udaljenosti baziran na ultrazvuku, SEN136B5B):
      • Prvi pokušaj je bio direktno priključivanje senzora na MultiWii i korišćenje koda iz dokumentacije za vršenje merenja. Nedostatak ovakvog načina merenja je dugačak odziv senzora, što je ometalo normalan rad MultiWii-a, zbog korišćenja blokirajućih operacija očitavanja vrednosti senzora. To je dalje dovodilo do nestabilnosti celog quadcoptera;
      • Drugi pokušaj je bio pisanje drajvera za MultiWii, koji je bio zasnovan na prekidima. Nažalost, sve linije za prekide na mikroprocesoru na MultiWii pločici (ATmega168) su već bile iskorišćene, što je onemogućilo implementaciju prethodno razvijenog drajvera;
      • Treći i uspešni pokušaj (treća sreća ^.^) je bio uvođenje mikrokontrolera između MultiWii-a i senzora, koji bi vršio merenje, a na analognom izlazu prema MultiWii-u, prikazivao rezultat merenja. U tu svrhu je korišćen attiny25 u kombinaciji sa low-pass filterom. Na MultiWii-u, rezultat se merio funkcijom analogRead() (vreme izvršavanja 0,0001s, a omogućava i dodatnu optimizaciju);
  5. Da bi se odredio uticaj jačine zadatog „gasa“ na potisak quadcoptera, urađena su merenja sa dinamometrom. Nakon merenja, dobijena je zavisnost potiska od jačine „gasa“, što je kasnije korišćeno u simulaciji i proračunima;
  6. Poslednji korak je bio konfigurisanje PID kontrolera, tako da quadcopter bude u mogućnosti da se postavi na željenu visinu. Ultrazvučni senzor meri trenutnu visinu quadcoptera, dok korisnik podešava željenu visinu korišćenjem regulatora gasa na džojstiku. Korišćenjem rezultata merenja iz prethodnog koraka, simulacijom su određeni parametri PID kontrolera koji kontroliše gas na osnovu trenutne i željene visine.
Quad
Quad