Kopter MK002_Kristjan Joost, Joonas Hallikas, Kristo Arikas.pdf. Kopter MK002_Kristjan Joost, Joonas Hallikas, Kristo Ar
TALLINNA TEHNIKAÜLIKOOL MEHHATROONIKAINSTITUUT Mehhatroonikasüsteemide õppetool
Aruanne
MHX0070 - Mehhatroonikasüsteemide komponendid - projekt
HobbyKing Pocket Quad V1.1 Kopter: MK002
Juhendaja: Maido Hiiemaa
TALLINN 2013
SISUKORD
1. KOPTER MK002 MEESKOND .........................................................................................................................3 2. SISSEJUHATUS ..................................................................................................................................................4 3. INDIVIDUAAL ARUANDED ............................................................................................................................5 3.1. Kristjan Joost .................................................................................................................................................5 3.1.1. Kopteri disain .........................................................................................................................................5 3.1.2. Juhtmed ja elektroonika..........................................................................................................................5 3.1.3. Programmeerimine puldiga lendamiseks (ARDUINO) ..........................................................................6 3.1.4. Kopteri balanseerimine (MultiWiiWinGUI) ...........................................................................................7 3.1.5. Sonar HC-SR04 ......................................................................................................................................7 3.1.6. Programmeerimine sonariga lendamiseks (ARDUINO) ........................................................................8 3.2. Joonas Hallikas ..............................................................................................................................................9 3.3. Kristo Arikas ...............................................................................................................................................10 4. KOKKUVÕTE ...................................................................................................................................................12 LISAD ....................................................................................................................................................................13 LISA 1 - Maandumise pehmendused .................................................................................................................13 LISA 2 - Takkeribad ...........................................................................................................................................13 LISA 3 - YAW, PITCH, ROLL muutumise suunad ..........................................................................................13 LISA 4 – ARM (AUX1) .....................................................................................................................................14 LISA 5 – Tasakaalus kopteri PID väärtused ......................................................................................................14 LISA 6 – Pult (Plane mode) ...............................................................................................................................15 LISA 7 – Sonar HC-SR04 (Arduino Leonardo) .................................................................................................15 LISA 8 – Atmega32u4 (Arduino PINid) ............................................................................................................16 LISA 9 – Arduino PINid (kopteri emaplaat) ......................................................................................................17 LISA 10 – Pildid MK002 kopterist ....................................................................................................................18
2
1. KOPTER MK002 MEESKOND
MAHB-31: Kritstjan Joost / 123757 /
[email protected] Joonas Hallikas / 123959 /
[email protected] Kristo Arikas / 123756 /
[email protected]
3
2. SISSEJUHATUS
Aine Mehhatroonikasüsteemide komponendid-projekt (MHX007) raames tuleb meil koostada projekt HobbyKing Pocket Quad V1.1 kohta, sellele kirjutada vastav kood, et kopter tõuseks 10 sekundiks õhku, balanseeriks ennast, oleks ohutu nii kasutajale kui ka teistele inimestele ning maanduks seejäärel maapinnale vaikselt tagasi. Tabelis 1. on toodud kopteriga kaasas olevad komponendid, lisaks vastav pilt. Tabel 1 Komponendid: Pocket Quadi raam DSM2 vastuvõtja 7mm suure kiirusega mootorid x 4 45mm propeller x 4 USB laadija 3.7V 250mAh liitium patareid x 2
4
3. INDIVIDUAAL ARUANDED 3.1. Kristjan Joost 3.1.1. Kopteri disain
Otsustasime kopterile teha pehmendused, et maandumine ei oleks nii jäik, selleks tulin ideele et panema kopteri jalgadele alla kõrvatropid. Kuna kõrvatropid on tehtud memory vahust on neil üsna hea mälu efekt ning maanudmise summutamisega said nad üsna hästi hakkama. vt LISA 1 Lisaks aku ja vastuvõtja kinnitamiseks lisasin nii akudele, vastuvõtjale ja kopteri raamile takkeribad, et vastuvõtjat oleks lihtsam eemaldada ja akusid lihtsam vahetada, kui nad tühjaks saavad. vt LISA 2
3.1.2. Juhtmed ja elektroonika
Kopterilt eemaldasime akuühendamis kohast plastikust pistiku karbi, alles jäid vaid klemmid- puht sellepärast, et akusid lihtsam eemaldada saaks, sest ennem olid juhtmed suhteliselt raskesti seal kinni. Hiljem selgus ka et tuleks vahetada ära kõik aku juhtmed, teha akulaadijad ümber ja vahetada ära kopteri pistikud, kuna originaal juhtmed akudel ei olnud eriti kvaliteetsed ja kippusid tihtipeale keskelt lõhki minema. Kuid selgus ka see, et meie kopter töötab, kas siis ainult USB ja akuga-mõlemad korraga ühendatud. Otsustasime lisada ka teise aku, kun arvasime, et üks aku ei suuda kopterit ära toita. Teise aku klemmid tegime VCC ja GND PINidesse. Selgus aga see, et teine aku on küllatki raske lendamisel ja kahe aku laadimine võtab küllalt kaua aega, sellepärast otsustasime teha kopterile väikse silla kopteri emaplaadilt aku ühendamis klemmidest kuni VCC ja GND, et lennata ühe akuga, mis hiljem ka meil tänu sellele õnnestus.
5
3.1.3. Programmeerimine puldiga lendamiseks (ARDUINO)
Kopteri programmeerimine toimus ARDUINO programmiga, mis on vabavarana internetis saadaval. Alguses tekitas antud program üsna palju segadust, kuid hiljem sain asja üsna selgeks. Kopteri koodi algnäidised olid internetis saadaval, kuid neid tuli, aga kohandada vastavalt oma kopterile. Juht puldiks on meil antud OrangeRX T-Six Esialgne
kopteri
seadistamine
puldiga
toimus
anutd
video
järgi:
http://www.youtube.com/watch?v=xESrraqu4OY Selleks tuli alla laadida vastav Pocket_Quad_Bind_Code kood, et kopteri vastuvõtja kõigepealt ühendada kopteri endaga. Kui kopter tundis vastuvõtja ära pidime alla laadima MultiWii_2_2_pocket koodi, kus tuli teha vastavalt kopterile muudatused, et kopter üldse lendama saada. Minu muudatused koodis: Kõik koodi osad tuli siis, kas lahti kommenteerida või tagasi kommenteerida- oleneb millises olekus nad olid. #define QUADX #define HK_POCKETQUAD #define
SERIAL_SUM_PPM
PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,AUX3,AUX4
//For Graupner/Spektrum #define SPEKTRUM 1024 #define EXT_MOTOR_RANGE #define MOTOR_STOP (vajalik selleks, et mootorid madalatel pööretel seisma jäävad) #define MPU6050
//combo + ACC
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -X; accADC[PITCH] = -Y;
6
accADC[YAW] = Z;} #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;} //#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = -Z;}
3.1.4. Kopteri balanseerimine (MultiWiiWinGUI)
Kopteri tasakaalustamiseks tuli alla tõmmata vaba vara MultiWiiWinGUI, kus sai siis vastavaid parameetreid ehk PID väärtusi(ROLL, PITCH, YAW) muuta, et kopterit tasakaalu
ajada
(Kuhu
miski
väärtus
mõjub:
vt
LISA
3).
Lisaks
tuli
MultiWiiWinGUIs RealTime Data alt kalibreerida ära ACC ning RC Control Settingu alt ära aktiveerida ARM- vt LISA 4. Muidugi tuli kõikide muudatuste tegemisel vajutada ka üleval olevat nuppu WRITE SETTINGS. Tasakaalustatud kopteri PID väärtusi: vt LISA 5. Kopteri lennutamiseks tuli kasutada puldil Plane Modei- vt LISA 6. Lisaks oli puldil üks iseärasus, et ARMi kangiga aktiveerida pidi THROTTLE olema puldi pealt nullis.
3.1.5. Sonar HC-SR04
Kõige pealt ühendasin sonari HC-SR04 ära ARDUINO plaadiga, selleks laadisin internetist alla sonari koodi ning sain sellega sonari tööle. ARDUNI LEONARDO plaadiga luges SONAR kauguse väärtusi täitsa ilusasti. vt ühendamis viisi LISA 7. Kuna ARDUINO LEONARDO koodis olid defineeritud PINid 7 ja 8 ehk siis vastavalt Echo(sisend) ja Trig(väljund). Kuna ARDUINO LEONARDOL on PINdel oma defineeringud siis antud PIN kohe kopteri ema plaadil kohe välja toodud polnud. Selleks, et neid PIN kopteri plaadil üles leida, kasutasime multimeetritrit ning
7
leidsime üles (koos Joonas Hallikasega) kuhu antud PINid lähevad ARDUINO LEONARDO plaadil olevasse mikrokontrolleri PINidesse(ATmega32u4). Selgus, et nendeks on nr 1 PIN(Trig) ja nr 28 PIN(Echo). Kuna meie õnneks oli kopteri emaplaadil ja ARDUINO LEONARDO plaadil täpselt samad mikrokontrollerid saime me leida teed mikrokontrolleri PIN 1 ja 28 teed kopteril välja toodud PINidesse nendeks oid siis vasvatavalt AUX1 - (PIN Arduino defineeringuga 8) ja THR - (PIN Arduino defineeringuga 7). Antud ülesande lahendamisel kasutasime ka Osiloskoopi. Hiljem selgus, et oleks olnud ka lihtsam viis, kuid selleni me poles ikkagi jõudnud ilma selle teeta, sest leidsime üle ATmega32u4 ARDUINO PINide defineeringud- vt LISA 8. Ning selle järgi avastasime ka, et kopteri emaplaadil on osade ARDUINO PINide defineeringud olemas.-vt LISA 9, nii et oleks saanud kohe kasutada ka neid PINisid. Kui sonar kopteriga ära oli ühendatud hakkasin koodiga tegelema.
3.1.6. Programmeerimine sonariga lendamiseks (ARDUINO)
Sonari koodi kirjutamiseks Multiwii koodi tuli kõigepealt alla laadida internetist ARDUINO lehelt NewPing_v1.5, ning see panna ARDUINO LIBRARY kausta oma arvutis. Seal oli olemas ühe koodi näidis, kust ma siis tõstsin vastavad lõigud, mida vaja läks Multiwii koodi
Defineerimiseks antud read panin def.h faili #include #define MAX_DISTANCE 200 #define TRIGGER_PIN 8 // Arduino pin tied to trigger pin on the ultrasonic sensor. #define ECHO_PIN
7 // Arduino pin tied to echo pin on the ultrasonic sensor.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
8
Väärtuste lugemiseks panin antud read MultiWii_2_2_pocket aknasse void setup() { Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results. } void loop() { delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings. unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS). Serial.print("Ping: "); Serial.print(uS / US_ROUNDTRIP_CM); // Convert ping time to distance in cm and print result (0 = outside set distance range) Serial.println("cm");
Antud koodi osaga töötab sonar korralikult- väärtused saab kätte, kuid probleem tekib selle juures, et sonar HC-SR04 töötab 5Vga, kuid meie aku ei anna rohkem kui 3,8V. Kuna ise nii osav ei ole, et kopterile kirjutada koodi lõiku, et sonari väärtus ühendada THROTTLE väärtusega ja et kopter autonoomselt nii lendaks kui ka maanudks sain koodi lõigu, mille oli koostanud Kristjan Jansons ja Kaupo Raid, kuid arvan et see areng sinna ka jääb, sest pinge probleemi pole suutnud veel lahendada.
3.2. Joonas Hallikas
Alguses Tegime kopterile väliseid täiustusi. Üks olulisematest asjadest, mida ma selle kopteri juures teinud olen, on pistikute vahetamine. Originaalkopteril oli aku ja kopteri ühenduspistik väike ja seda oli raske eemaldada. Selleks sai aku juhtmete otsa joota uued otsad ja ka kopteri külge uued pistikud. Kuna akulaadijal olid samasugused otsad, tuli ka need ära vahetada. Laadijaga juhtus aga äpardus ja ma lõhkusin selle
9
natuke ära, kuid see-eest sain ühe kogemuse võrra rikkamaks. Nimelt ma pidin nii väikest asja jootma, et see operatsioon tuli teha mikroskoobi all. Kuna ka aku juhtmed olid nõrgad ja läksid katki, siis tuli ka need ära vahetada. Edasi sai tegeletud natuke praktilisemate asjadega: panime kopterile esialgse koodi peale ning proovisime seda puldiga ühendada. Pärast mitmeid tunde „googeldamist“ hakkas kopter puldi peale reageerima. Edasi tegelesime kopteri seadistamisega. Uurisime, kuidas peab pitch, roll ja yaw väärtust muutma ning seadistasime kopterit. Järgmiseks probleemiks oli see, et kopter ei lennanud ilma USB-juhtmeta, ehk ta ei saanud akust toidet. Selleks ühendasin aku toite uude kohta. Peale natukest koodi muutmist saime kopteri puldiga lendama. Viimaseks probleemiks jäi sonari ühendamine kopteriga. Esimeseks ühendasime sonari Arduino Leonrdo plaadiga ning kirjutasime koodi selle jaoks. Kui selle tööle saime, siis hakkasin uurima, kuidas seda sonarit ühendada meie kopteriga. See aga osutus tunduvalt keerulisemaks, sest kopteri mikrokontrolleri väljaviikude nimetused olid erinevad sellest, kuidas neid nimetatakse Arduino programmis. Seega oli vaja ostsilloskoobi ja multimeetriga otsida õiged otsad.
3.3. Kristo Arikas
Sügisel hakkas selline aine nagu MHX0070 - Mehhatroonikasüsteemide komponendid - projekt. Esmamulje oli hea ja ootused kõrged, sest tulemas oli erialaga seaotud aine. Esimesel tunnil sain aimu et tegu on põneva ainega, sest projektiks HobbyKing Pocket Quad helikopter. Esimesel tunnil uurisin juba tutvustavaid videosid ja teema tundus päris lihte, sest kui raske ikka ühe mudeli kokku panemine olla saab. Tegelikult asi nii kerge ei olnud. Kui meie meeskond kopteri kätte sai, siis esmalt pidime kopteri kokku panema ja kopteri peale kleepima kleepsu MK002, sellest saigi meie meeskonna nimi. Kopteri kokku panemine raskusi ei valmistanud, sest Youtubes oli erinevaid videosid kokkupanemise kohta. Kui kopter kokku pandud sai hakkasime
10
tegelema disainiga. Kristjanil tuli idee, et jalgadeks võiks alla panna kõrvatropid, mis on piisavalt elastsed, et kopter maandudes üles tagasi ei põrkaks. Aku ja vastuvõtja kinnitasime takkeribaga, et vältida rahakummidega jamamist. Peale disainilahendusi hakkasime tegelema kopteri lendu saamisega. Probleemiks oli see, et kopter töötas ainult siis, kui usb-kaabel sellega ühendatud oli. Selle probleemi lahendasime sellega, et ühendasime kopteriga teise aku. Uurisin foorumist selle kohta päris pikalt, otsest viga seal kirjas polnud, aga räägiti midagi et mikrokontroller võib läbi olla. Kopteri programeerimises mina väga kaasa ei löönud. Ma hiljem uurisin koodi ja siis sain enamvähem aru et kuidas asi käib, aga ise ma sellega hakkama poleks saanud. Kopteril olid väga haprad juhtmed ja ebakvaliteetsed pistikud. Pideva aku lahtiühendamise tõttu läks alguses aku pistik katki. Otsustasime, et vahetame kõik akujuhtmed ja pistikud kvaliteetsemate ja universaalsemate vastu. Kui akujuhtmed ära vahetasime avastasime, et vajalik on ära vahetada ka laadia pistik, sest muidu lihtsalt ei saa laadida. Kopteri külge tegime sellese ühenduse, et kaotada ära teine aku, Ühendasime juhtmetega kopteri akusisendi (+) ja(-) ja GND ja (+) klemmi. Asi toimis ja kopter muutus kergemaks, seetõttu saab kopteriga kauem lennata. Järgmiseks ülesandeks oli meil kopter teha autonoomseks. Meile anti HC – SR04 ultraheli sensor, mille abil kopret peab hoidma maapinnast kindlat kõrgust. Pobleemiks kopteri ja sensori ühendamisel on see, et sensoril on vaja toidet 5V, kopteri aku annab välja kõigest 3 -4.2V, oleneb sellest, kas kopter lendab või mitte. Seda pinget on vähe. Vaja oleks pinge muundurit DC/DC 3v-5v, mida ma pole veel nt Oomi poest või teistest Eesti elektroonika poodidest leidnud.Vajaliku pingemuundurit nägin Ebays. Uurisin natuke, et kas võibolla on võimalik ise see pingemuundur teha, aga see tundus liiga keeruline ettevõtmine.
11
4. KOKKUVÕTE Käes oleva projektiga sai grupp hästi hakkama, sest kopter sai puldiga lendama juba küllalt varakult - 3 või 4 nädalal. Tänu sellele käisime ka kopterit esitlemas MEKTORY maja avamisel ning hiljem aitasime ka teisi meeskondi, kes oma kopteriga hädas olid. Aine oli iseenesest väga hariv ja andis meile palju kogemust nii programeerimise, elektroonika kui ka erinevate seadmete kasutamise vallas. Aine eesmärki, kui seda, et kopter tõuseks autonoomselt 10 sekundiks meetri kõrgusele, balanseeriks ennast ja siis maanudks - päris 100% meil veel õnnestunud ei ole, kuid sonari saime kopteril MultiWii koodis väärtusi lugema ja seda ka esimesena väikse kopteri meeskondadest. Kopteri kogu ülesande lahendamist takistab meid endiselt pinge problem, mida me lahendada pole veel suutnud, kuid arvan et võrreldes teistega olema me tunduvalt rohkem tööd ja vaeva selle kopteriga teinud ja näinud.
12
LISAD LISA 1 - Maandumise pehmendused
LISA 2 - Takkeribad
LISA 3 - YAW, PITCH, ROLL muutumise suunad
13
LISA 4 – ARM (AUX1)
LISA 5 – Tasakaalus kopteri PID väärtused
14
LISA 6 – Pult (Plane mode)
LISA 7 – Sonar HC-SR04 (Arduino Leonardo)
15
LISA 8 – Atmega32u4 (Arduino PINid)
16
LISA 9 – Arduino PINid (kopteri emaplaat)
17
LISA 10 – Pildid MK002 kopterist
18