ZigBee-ohjaus kuorma-autolle Juho Frits Petteri Koivumäki 10. helmikuuta 2010 Tavoitteet Projektityössä on tavoitteena rakentaa langaton ZigBee-ohjausverkko kaukoohjattavalle kuorma-autolle (kts. Kuva 1). Autoon liitetään mikrokontrolleri, jossa on kiinni ZigBee-moduuli tietokoneen kanssa kommunikointia varten. Mikrokontrolleri ohjaa auton liikkumista ja lavan kippiä tietokoneelta lähetettyjen komentojen perusteella. Tietokoneelle ohjelmoidaan ohjelmisto auton ohjaukseen. Ohjelmisto kommunikoi auton kanssa tietokoneeseen liitettävän ZigBee-moduulin (XBee) välityksellä. Lisäksi ohjelmoidaan havainnollinen graanen käyttöliittymä, jonka avulla autoa on helppo ohjata ja joka näyttää auton keräämää sensoridataa. Auton ohjaus tapahtuu näppäimistöllä ja lisäksi tutkitaan mahdollisuus joystick ohjaukseen, mikäli ohjauskomentojen lähettämisessä ZigBee-verkon ylitse ei esiinny liian suuria viiveitä. Autoon liitetään sensoreita, joiden mittaustieto välitetään ohjauskoneelle. Auton kardaaniakseliin on tällä hetkellä kiinnitettynä pulssianturi auton nopeuden mittaamiseen. Nykyinen mittaustapa ei kuitenkaan ole kovin tarkka, joten pohdimme mahdollisuuksia tarkemman nopeusmittauksen toteuttamiseen. Lisäksi autoon liitetään sensorit tienpinnan lämpötilan, kuorman massan ja akun varaustilan mittaamiseen. Kuorman massan mittaus toteutetaan paineanturia käyttäen. Autoon on lisäksi tarkoitus liittää joitakin lisävarusteita, kuten ajovalot (LED), varashälytin (infrapuna-anturiin perustuva liiketunnistin) ja peruutustutka (etäisyyden mittaus ultraäänianturilla). Ajovalot voi ohjata päälle (pitkät/lyhyet) ja pois tietokoneelta käsin. Peruutustutkaa käytetään apuna törmäysten estämisessä. Muutenkin auton turvalliseen ajamiseen halutaan panostaa, minkä vuoksi auton mikrokontrollerille ohjelmoidaan toiminnallisuus auton turvalliseen pysäyttämiseen tietokoneyhteyden katkeamisen varalle. Projekti suoritetaan kahden hengen ryhmässä ja työhön arvioidaan kuluvan aikaa neljää (4) opintopistettä vastaava määrä henkilöä kohden. 1
Kuva 1: Radio-ohjattava kuorma-auto Työn osa-alueet Yleisen toteutuksen suunnittelu ja alustava osien tilaaminen Jotta projekti saadaan mahdollisimman nopeasti käyntiin halutaan suurin osa tarvittavista komponenteista tilata mahdollisimman aikaisessa vaiheessa. Tämän vuoksi projektin yleinen suunnitelma ja mukaan haluttavat ominaisuudet määriteltiin pitämällä pari brainstormingpalaveria. Näissä palavereissa muotoutui alustava suunnitelma sekä tämä dokumentti. Samalla laitettiin tilaukseen muutamia projektin kannalta oleellisia komponentteja, kuten ZigBee-moduulit, robottiohjain(mikrokontrolleri, moottoriohjaimet ym.) ja joitain antureita. ZigBee-standardiin tutustuminen Koska projektityössä käytettävä teknologia on osaltaan uutta kummallekin ryhmän jäsenelle, aloitetaan koko projekti tutustumalla ZigBee-standardiin. Tarkoituksena on selvittää, miten ZigBee verkot toimivat ja miten niitä pystytään hyödyntämään työssä parhaiten. Samalla pohditaan kannattaako tiedonsiirto toteuttaa käyttämällä koko ZigBee-standardin mukaista stackia vai pelkästään IEEE 802.15.4 -standardin määrittelemiä fyysisiä kerroksia ja to- 2
teuttaa OSI-mallin ylemmät kerrokset itse. Auton ohjauksen suunnittelu Auton ohjauksen toteutus on vielä monilta osin avoinna. Alustavasti tarkoituksena on ohjata robottiohjaimella. Vielä ei kuitenkaan ole varmaa, ohjataanko ohjaimella suoraan moottoreita vai autossa jo valmiina olevia servoja. Tavoitteena onkin tutustua autoon tarkemmin ja päättää kumpi tapa on projektimme kannalta järkevämpi, ottaen huomioon vaatimukset ohjauksen toteutuksen helppoudessa ja luotettavuudessa. Yhteyden luominen tietokoneen ja robottiohjaimen välille ZigBee-verkon avulla Kun osat ovat saapuneet on yksi ensimmäisistä toteutettavista asioista toteuttaa toimiva yhteys ohjaustietokoneen ja robottiohjaimen välille. Tässä vaiheessa on tarkoituksena alkaa suorittamaan ensimmäisiä verkon viiveen kartoittamiseen liittyviä testejä. Testien tulosten perusteella pystymme tekemään verkon rakenteeseen liittyviä päätöksiä. Ohjauselektroniikan kokoonpano Kun auton ohjaus on pääpiirteittäin suunniteltu ja ensimmäiset tiedonsiirtotestit tehty, voimme lyödä lukkoon myös auton ohjauksen kannalta oleelliset päätökset. Sen jälkeen voimme toteuttaa ohjauselektroniikan kokoonpanon ja autoon asentamisen. Ohjelmistokomponenttien toteutus Pääpaino projektissa tulee todennäköisesti olemaan ohjelmistokomponenteilla. Koska laitteistopuoli pyritään hankkimaan mahdollisimman suurilta osin valmiina, ei sen toteuttamiseen ja suunnitteluun tarvitse toivottavasti käyttää kohtuuttomasti aikaa. Sen vuoksi pystymme panostamaan enemmän resursseja ohjelmointipuolelle. Projektissa käytettävät ohjelmistokomponentit voidaan jakaa kolmeen pääosaan: ohjaustietokoneella oleva ohjausohjelmisto, mikrokontrollerissa oleva ohjausohjelmisto sekä käyttöliittymä. Näistä ensimmäisenä toteutetaan ohjauskoneen ja mikrokontrollerin ohjausohjelmistot niiltä osin, mitä tarvitaan tiedonsiirron testaamisen aloittamiseen. Seuraavaksi toteutetaan auton liikkumisen kannalta pakolliset komponentit ja lopuksi antureihin ja käyttöliittymään kuuluvat osat. 3
Testaus Testausta on tarkoitus tehdä koko projektin ajan. Tavoitteenamme on kuitenkin saada projektin toiminnalliset osat valmiiksi mahdollisimman aikaisessa vaiheessa, jotta voimme pyhittää projektin loppuajan täydellisesti testaamiselle ja toiminnan luotettavuuden parantamiselle. Dokumentointi Projektia on tarkoitus dokumentoida koko ajan käyttämällä ns. projektipäiväkirjaa. Projektipäiväkirjan pohjalta voimme lopuksi kirjoittaa viimeistellymmän projektidokumentoinnin. Aikataulu Viikko Kuvaus 46 Projektin suunnittelu 6 Tutustuminen ZigBee-protokollaan 7 ZigBee-yhteyden testaamisen aloittaminen 8 Komponenttien asennus kuorma-autoon 913 Mikrokontrollerin ohjelmointi 913 Ohjausohjelmiston ohjelmointi 10 Väliraportin laatiminen 1415 Tietokonekäyttöliittymän ohjelmointi 1415 Ohjelmistojen testaus 1517 Dokumentointi ja tulosten esittäminen Riskianalyysi Toimitusviiveet Komponenttien toimitusviiveet voivat myöhästyttää aikataulua. Tätä on pyritty välttämään tilaamalla mahdollisimman suuri osa komponenteista heti projektin alussa. Myöhemmin voi kuitenkin osoittautua pakolliseksi tilata uusia komponentteja, joten toimitusviiveistä aiheutuvat myöhästymiset saattavat olla mahdollisia koko projektin ajan. Tekniikan vieraus ZigBee-tekniikka ei ole ryhmän jäsenille entuudestaan tuttua. Tämän vuoksi verkon käyttöön liittyvät asiat voivat osoittautua hankaliksi. Riskiä voidaan 4
pienentää tekemällä riittävästi taustatutkimusta ja tutustumalla käytettävään tekniikkaan. ZigBee-verkon sopimattomuus käyttötarkoitukseen Projektin kuluessa voi osoittautua, että ZigBee-verkko ei ole optimaalinen tämäntyyppisten ohjaustoimintojen toteuttamiseen. Sopimattomuus tulee johtumaan mitä todennäköisimmin ZigBee-verkossa esiintyvistä viiveistä. Esimerkiksi joystick-ohjaus on hankalaa, mikäli ohjauskomentojen välittämisessä on suuria viiveitä. Jos projektin alussa suoritettavien viivetestien jälkeen näyttää siltä, että viiveet ovat liian suuria, voimme miettiä ZigBee-stackin ohittamista käyttämällä vain IEEE 802.15.4-standardin määrittelemää laiterajapintaa ja toteuttamalla OSI-mallin ylemmät kerrokset itse. Myöhästymiset aikataulussa Eri syistä johtuvat viivästymiset aikataulussa saattavat johtaa seuraavien osa-alueiden aloittamisen myöhästymiseen. Tämän vuoksi koko projektin aikataulut voivat venyä. Tätä on pyritty välttämään jo suunnitteluvaiheessa siten, että eri osa-alueiden toteuttamiseen on varattu runsaasti aikaa. Olemme myös määritelleet osan projektin tavoitteista optionaalisiksi, joten niitä voi jättää toteuttamatta, jos aika ei tunnu riittävän. Sairastumiset Viime aikoina voimakkaasti levinneiden tautiepidemioiden vuoksi saattaa olla normaalia todennäköisempää, että toinen ryhmän jäsenistä sairastuu. Sairastumisen seuraukset voivat olla projektin kannalta vakavat, koska aikataulu on suunniteltu siten, että molemmat osallistuvat jäsenet antavat täyden työpanoksensa. 5