S13-02 Linear motor controller for CAN-bus Projektisuunnitelman väliraportti AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Anna Vaskuri Jere Liukkonen 25.3.2013
Sisällysluettelo 1 Projektityön tavoite... 1 1.1 Komponentit ja elektroniikan rakentaminen... 1 1.2 Ohjelmointi... 1 1.3 Kotelointi... 1 2 Projektityön rakenne... 2 2.1 Piirisuunnittelu... 2 2.2 Ohjelmointi ja testaus... 3 2.3 Varsinaisen laitteen rakentaminen... 4 3 Projektityön aikataulu... 6 4 Projektityöhön liittyvät riskit... 8 4.1 Toimitusaikojen venyminen... 8 4.2 Komponenttien rikkoutuminen... 8 5 Lähteet... 9
1 Projektityön tavoite Projektissa suunnitellaan ja rakennetaan CAN-väylään liitettävä tasavirtamoottorin ohjausyksikkö, jolla säädetään kuularuuvia ajavaa harjallista tasavirtamoottoria. Tavoitteena on ohjausyksikkö, joka kommunikoi muun laitteiston kanssa CAN-väylän välityksellä ja ajaa toimilaitetta [1] haluttuihin asemiin nopeasti ja tarkasti. Tieto kuularuuvin asemasta saadaan AD-muuntimeen kytketyltä potentiometriltä. 1.1 Komponentit ja elektroniikan rakentaminen Työssä integroidaan valmiit komponentit toimimaan keskenään. Ohjausyksikkö tulee koostumaan AT90CAN128 mikrokontrolleriin [2] perustuvasta AVR-CAN [3] kehitysalustasta ja Pololun moottoriohjaimesta [4], jota ohjataan mikrokontrollerin PWM-signaalilla. Mikrokontrollerin ja moottoriohjaimen käyttöjännitteet suodatetaan -suodattimilla, jotka rakennetaan ja mitoitetaan itse [5]. Moottorinohjain ja kehitysalusta erotetaan galvaanisesti toisistaan optoerottimella, jotteivät moottoriohjaimelta mahdollisesti tulevat virtapiikit rikkoisi mikrokontrolleria. 1.2 Ohjelmointi Mikrokontrollerin ohjelmoinnissa käytetään Atmel Studio 6:ta ja kielenä C:tä. CANväylän viestien lähettämiseen ja vastaanottamiseen käytetään Fabian Greifin kirjoittamaa valmista, avoimen lähdekoodin CAN-kirjastoa [6]. Kaikki muu toiminnallisuus, kuten esimerkiksi PID-säädin ja CAN-väylän viestien muodostaminen toteutetaan itse. Koska ohjelmointilaite ei tue Atmel Studio 6:tta, käytetään sen sijaan Atmel AVR Studio 4:ää, joka ei tue Windows 7:ää, joten ohjelmaa joudutaan ajamaan Windows XP virtuaalikoneessa. 1.3 Kotelointi Ohjausyksikkö sijoitetaan traktoriin ja sen tulisi kestää ainakin Suomen sääolosuhteita ja mahdollisesti painepesua. Kotelonvalinnassa otetaan nämä vaatimukset huomioon. Suojausluokka IP66 [7] ja sitä korkeammat suojausluokat täyttävät vaatimukset. Lopullinen valinta laatikoksi voisi olla esimerkiksi polykarbonaattikotelo [8]. Kotelo on valittu ja tilattu. [8] Laitteen häiriösuojausta täytyy vielä miettiä. - 1 -
2 Projektityön rakenne Projektityö voidaan jakaa piirisuunnitteluun, varsinaisen laitteen rakentamiseen. ohjelmointiin ja testaukseen sekä 2.1 Piirisuunnittelu Projekti on lähinnä valmiiden piirien kytkemistä, ja varsinaisen piirisuunnittelun osuus on siten suhteellisen pieni. Alla kuitenkin listattu olennaisimmat piirisuunnitteluun vaikuttavat seikat. Rakennettavan laitteen lohkokaavio on esitetty kuvassa 1. Kuva 1. Laitteen lohkokaavio. Akusta saa joko +12 V tai +24 V, joista jännitteeksi valittiinn +12 V, jottei moottorinohjainn ylikuumenisi. Mikrokontrollerilevyllä on valmiiksi lineaariregulaattori, joka laskee +12 V jännitteen mikrokontrollerin +5 V käyttöjännitteeksi. Mikrokontrollerin ja moottoriohjaimen käyttöjännitt teet suodatetaan ensin -suodattimilla, jotka on tarkoitus rakentaa itse. Moottorinohjaimen transistori H-siltaa ohjataan mikrokontrollerilla, joka on galvaanisesti erotettu optoerottimella. Moottorinohjain tarvitsee PWM-signaalin moottoria ohjataan. [4] lisäksi logiikkasignaalin, joka määrää sen, mihin suuntaann Moottorinohjaimen logiikka on esitettyy taulukossaa 1. - 2 -
Taulukko 1. Moottorinohjaimen totuustaulu. [4] Koska myös moottorinohjain tarvitsee logiikkajännitteen, täytyy sekin suojata transienttipiikeiltä sijoittamalla zener-diodeja moottorinohjaimen käyttöjänniteliittimien läheisyyteen. Moottorin sijainti luetaan mikrokontrollerilla potentiometrin jännitearvosta siten, että potentiometri kytketään mikrokontrollerin ADC-portin pinniin. Tässä täytyy huomioida se, että kun vastusarvo pienenee jännitteen pysyessä vakiona mikrokontrollerin pinniin kulkeva virta kasvaa. AVR-CAN kehitysalustassa on CAN-väylän liitin jo valmiiksi, eikä siihen pitäisi tarvita lisäkytkentöjä. Moottorinohjausjärjestelmän rakenne on nyt tarkemmin selvillä. Yksityiskohtaisempi lohkokaavio on esitetty kuvassa 2. Akusta otetaan +12 V. Kotelosta yritetään tehdä pölytiivis. CASE VOLTAGE MONITORING VOLTAGE GREEN/RED CONTROL RED ON/OFF POSITION MONITORING 12 V ON/OFF FUSE 1.2 A & τ -FILTER 5 V RESET MPU AVR-CAN DIR PWM FAULT RESET Optocoupler Optocoupler Optocoupler Optocoupler MOTOR DRIVER POLOLU 18V15 LINAK 36 FUSE 18 A & τ -FILTER ERR RED ON/OFF 12 V ERR RED ON/OFF Kuva 2. Yksityiskohtaisempi lohkokaavio. 2.2 Ohjelmointi ja testaus Ohjelmointi ja testaus tapahtuvat käytännössä yhtäaikaisesti. Ohjelmiston osat rakennetaan ja testataan yksitellen. Elektroniikan ja ohjelman yhteistoimintaa testataan aluksi pienillä virroilla kytkentäalustalla. - 3 -
Jo alussa mikrokontrollerille täytyy asettaa ohjelmallisesti ulkoinen kideoskillaattori. Tämä on tärkeää CAN-väylän toiminnan kannalta, sillä väylä ei toimi liian hitaalla kiteellä. Toisaalta tämä vaihe on kriittinen, sillä väärinasetettuna kide saattaa rikkoa kontrollerin. Aluksi ryhmä tutustuu demo-ohjelmiin, jotka ovat pääosin LEDien vilkuttelua. Sen jälkeen tarkoituksena on toteuttaa alla listatut toiminnallisuudet. Laite toimii, mutta ohjelmiston kehittäminen on vielä kesken. Potentiometrin jännitelukema ADC:n avulla (OK) PWM-signaali (OK) Timerit ja keskeytykset (potentiometriä ja CAN-väylää varten) (OK) PID-säädin PI-säädin (OK) CAN-väylä (tekninen puoli toimii, väylän viestien sisältöä ei ole vielä päätetty) CAN-väylän ja säädön yhdistäminen (kehitys vielä kesken) Kuva 3. Testikytkentä. 2.3 Varsinaisen laitteen rakentaminen Lopullinen piirilevy kannattaa rakentaa vasta, kun testaus on suoritettu ja laitteen toiminta on varmistettu. Näin vältytään hyppylankahässäköiltä. Laitteen kotelon koko yhdessä muiden piirilevyjen ja liittimien kanssa määräävät piirilevyn muodon ja koon. Tässä projektin vaiheessa kaikki liitännät ja kotelo tulee olla selvillä. - 4 -
Piirilevy syövytetään FR4-alustaan. Piirilevy suunnitellaan Eagle-ohjelmalla ja siitä tehdään yksipuolinen valotusosuuden yksinkertaistamiseksi. Käytettävät komponentit ovat through-hole tyyppisiä, sillä niitä voi kolvata suuremmallakin kolvinkärjellä. Mikäli piirilevyllä tarvitaan IC-piirejä, kytketään ne DIP-soketteihin, jotta niiden vaihtaminen olisi myöhemmin helppoa. Näin komponentit eivät myöskään kärsi kolvaukseen tarvittavasta suuresta lämpötilasta. Piirilevyn suunnittelu Eaglella on aloitettu. Piirilevy saatetaan sittenkin valmistaa syövytyksen sijaan Automaation laitoksen elektroniikkahuoneen jyrsinkoneella. - 5 -
3 Projektityön aikataulu Taulukossa 2 on esitetty projektityön aikataulu tärkeimpine välitavoitteineen. Ryhmän on tarkoitus kokoontua joka viikko, jotta työ etenee tasaisesti, ja jotta aikaa jäisi riittävästi projektin viimeistelyyn. Ryhmän jäsenet tekevät pienempiä tehtäviä yksin, mutta ohjelmointi pääosin tehdään yhdessä. Dokumentointi jaetaan selkeisiin vastuualueisiin, kun se on ajankohtaista. Arvioitu työmäärää vastaava opintopistemäärä opiskelijaa kohden olisi 4 op. Taulukko 2. Projektin päivitetty aikataulu. 21.1.-27.1. 28.1.-3.2. 4.2.-10.2. 11.2.-17.2. 18.2.-24.2. 25.2.-3.3. 4.3.-10.3. 11.3.-17.3. 18.3.-24.3. 25.3.-31.3. 1.4.-7.4. 8.4.-14.4. 15.4.-21.4. 22.4.-28.4. 29.4.-5.5. 6.5.-12.5. 13.5.-19.5. 20.5.-26.5. 27.5.-2.6. V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22 Kick off 23.1. Projektiin tutustuminen Projektisuunnitelman raportti 6.2. Piirisuunnittelu Ohjelmointiin tutustuminen T T Testiohjelmat E E Ulkoisen kiteen asettaminen N N Potentiometrin lukeminen T T PWM-signaali T T Timerit ja keskeytykset I I PID-säätö V V CAN-väylä I I Väliraportti I 27.3. I CAN:n ja PID:n yhteistoiminta K K Kokonaisuuden testaus K K Piirilevyn valmistaminen O O Liittimet ja kotelo Laitteen kasaaminen Kenttätestaus? Esitys 8.5. Loppuraportti 29.5. - 6 -
Kaikki osat on tilattu. Koska kriittisimmät vaiheet on testattu, piirilevyn suunnittelu on voitu aloittaa. Molemmat Tärkeimpien sähköisten komponenttien valinta Moottorinohjain ja mikrokontrollerikehitysalusta olivat ohjaaja Sami Alaison suosittelemia Ohjelmiston kehitys Dokumentit (esityskalvot, kirjalliset raportit) Laitteen kasaaminen Jere Kehitysympäristön asennus (Atmel AVR Studio 4 Windows XP virtuaalikoneessa) Mekaanisten osien valinta (liittimet yms.) Anna Piirikaavion ja -levyn suunnittelu Apua on saatu myös Automaation laitoksen henkilökunnalta. - 7 -
4 Projektityöhön liittyvät riskit Kaikki komponentit on tilattu. Olemme edellä aikataulua. Toistaiseksi komponentteja ei ole mennyt rikki. Näyttäisi siltä, että saamme projektin valmiiksi. 4.1 Toimitusaikojen venyminen Projektia ei voida aloittaa ennen mikrokontrollerin saapumista joten mahdolliset viivästykset toimituksessa lykkäisivät projektin aloitusta. Komponentit tilataan heti projektin alussa isoilta, luotettavilta toimittajilta. Jos toimitukset viivästyvät, aikataulua kiristetään. 4.2 Komponenttien rikkoutuminen Vääränlaiset sähköiset kytkennät saattavat rikkoa komponentteja. Lisäksi ohjelmointivaiheessa on mahdollista brikata mikrokontrolleri väärillä asetuksilla. Projekti viivästyy uusien komponenttien toimitusajan verran mikäli niitä joudutaan tilaamaan lisää. Lisäksi uudet komponentit nostavat projektin hintaa. Riskien minimoimiseksi elektroniikan testaus on jaettu osiin. Esimerkiksi säätimen toiminta testataan pienillä virroilla LEDejä vilkuttamalla ennen varsinaisen moottorinohjaimen ja moottorin kytkemistä ja ajamista. Säätimeen on äärimmäisen tärkeää säätää toimintarajat, jottei moottoria ohjata missään tilanteessa yli sallittujen rajojen. Suurista virroista johtuen jotkin laitteen osat saattavat kaivata jäähdytystä. Ainakin moottorin ohjaimeen kiinnitetään jäähdytyssiili. Jännitepiikkien varalta zener-diodeja saatetaan kytkeä IC-piirien ja herkimpien kondensaattoreiden ylijännitesuojiksi käyttöjännitteiden läheisyyteen. - 8 -
5 Lähteet [1] Linear Actuator LA36 tuotesivu (3.2.2013) http://www.linak.com/products/linear-actuators.aspx?product=la36 [2] Atmel AT90CAN128 datasheet (3.2.2013) http://www.atmel.com/images/doc7679.pdf [3] Olimexin AVR-CAN tuotesivu (3.2.2013) https://www.olimex.com/products/avr/development/avr-can/ [4] Pololun moottoriohjaimen tuotesivu (3.2.2013) http://www.pololu.com/catalog/product/755 [5] -suotimen Wikipedia -sivu (3.2.2013) http://en.wikipedia.org/wiki/capacitor-input_filter [6] Fabian Greifin CAN-kirjasto (3.2.2013) http://www.kreatives-chaos.com/artikel/universelle-can-bibliothek [7] IP-luokitukset (3.2.2013) http://www.taloon.com/info/tietoa_rakentajalle/ip-arvot [8] Polykarbonaattikotelo (25.3.2013) http://www.elektrolinna.fi/kauppa/index.php?ryhma=c0007c715&infosivukood i=dpcp122009g - 9 -