ELEKTRONIIKAN TYÖ Ajotietokone. Jukka Happonen



Samankaltaiset tiedostot
Signaalien datamuunnokset. Näytteenotto ja pito -piirit

Piirien väliset ohjaus- ja tiedonsiirtoväylät H. Honkanen

Successive approximation AD-muunnin

6. Analogisen signaalin liittäminen mikroprosessoriin Näytteenotto analogisesta signaalista DA-muuntimet 4

1. Yleistä. 2. Ominaisuudet. 3. Liitännät

ELEC-C5070 Elektroniikkapaja (5 op)

Mikrokontrollerit. Mikrokontrolleri

Sulautettujen järjestelmien työ (521423S) RemoteC

S Elektroniikan häiriökysymykset. Laboratoriotyö, kevät 2010

MrSmart 8-kanavainen lämpötilamittaus ja loggaus, digitoija ja talletusohjelma

MSnS-extra PCB v1.0. Kevyt käyttöohje

- Käyttäjä voi valita halutun sisääntulon signaalin asetusvalikosta (esim. 0 5V, 0 10 V tai 4 20 ma)

- Käyttäjä voi valita halutun sisääntulon signaalin asetusvalikosta (esim. 0 5V, 0 10 V tai 4 20 ma)

LOPPURAPORTTI Lämpötilahälytin Hans Baumgartner xxxxxxx nimi nimi

Signaalien datamuunnokset

Supply jännite: Ei kuormaa Tuuletin Vastus Molemmat DC AC Taajuus/taajuudet

Taitaja2010, Iisalmi Suunnittelutehtävä, teoria osa

Electronisen nopeus ja matkamittarin kalibrointi laite huippunopeus muistilla.

Taitaja semifinaali 2010, Iisalmi Jääkaapin ovihälytin

AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 2, ratkaisuja

Pamemetrilista ADAP-KOOL. EKC 201 ja EKC 301

KÄYTTÖOHJE ELTRIP-R6. puh fax PL Kajaani

AS Automaatio- ja systeemitekniikan projektityöt

PIKAKÄYTTÖOHJE V S&A Matintupa

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

DC-moottorin pyörimisnopeuden mittaaminen back-emf-menetelmällä

S Elektroniikan häiriökysymykset. Laboratoriotyö 1

GSRELE ohjeet. Yleistä

OPERAATIOVAHVISTIN. Oulun seudun ammattikorkeakoulu Tekniikan yksikkö. Elektroniikan laboratoriotyö. Työryhmä Selostuksen kirjoitti

Taitaja2005/Elektroniikka. 1) Resistanssien sarjakytkentä kuormittaa a) enemmän b) vähemmän c) yhtä paljon sähkölähdettä kuin niiden rinnankytkentä

Tämä on PicoLog Windows ohjelman suomenkielinen pikaohje.

OPERAATIOVAHVISTIMET 2. Operaatiovahvistimen ominaisuuksia

Tehtävään on varattu aikaa 8:30 10:00. Seuraavaan tehtävään saat siirtyä aiemminkin. Välipalatarjoilu työpisteisiin 10:00

Operaatiovahvistimen vahvistus voidaan säätää halutun suuruiseksi käyttämällä takaisinkytkentävastusta.

KÄYTTÖOHJE LÄMPÖTILA-ANEMOMETRI DT-619

Kojemeteorologia. Sami Haapanala syksy Fysiikan laitos, Ilmakehätieteiden osasto

ELEKTRONIIKAN PERUSTEET T700504

Multivibraattorit. Bistabiili multivibraattori:

A / D - MUUNTIMET. 2 Bittimäärä 1. tai. A / D muunnin, A/D converter, ADC, ( Analog to Digital Converter )

Ongelma(t): Mistä loogisista lausekkeista ja niitä käytännössä toteuttavista loogisista piireistä olisi hyötyä tietojenkäsittelyssä ja tietokoneen

Toiminnallinen määrittely versio 1.2

Sähköpajan elektroniikkaa

1 Muutokset piirilevylle

L-sarjan mittamuuntimet

Fortum Fiksu Etäohjattava roiskeveden kestävä sähkökytkin (IP44) Käyttöohjeet

Lähettimet. Vastaanotin Hälytykset. OV-yksikkö DPR990

S SÄHKÖTEKNIIKKA Kimmo Silvonen

CRT NÄYTÖN VAAKAPOIKKEUTUS- ASTEEN PERIAATE

TSI DP-CALC 5815 KÄYTTÖOHJE

A11-02 Infrapunasuodinautomatiikka kameralle

Flash AD-muunnin. Ominaisuudet. +nopea -> voidaan käyttää korkeataajuuksisen signaalin muuntamiseen (GHz) +yksinkertainen

NiMH Laturi. Suunnittelu Olli Haikarainen

Ohjelmoitava magneettivastuksellinen kuntopyörä. LCD-Näyttö BC-81295

KÄYTTÖOHJE HIRVIMATIC (2V0)

Aurinkojärjestelmän syväpurkauksen ohjausyksikkö Suunnittelu Mikko Esala

Esimerkkitentin ratkaisut ja arvostelu

Arduino ohjelmistokehitys

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Arduino. Kimmo Silvonen (X)

Moottorin kierrosnopeus Tämän harjoituksen jälkeen:

Sähköautoprojekti Pienoissähköauto Elektroniikan kokoonpano Moottoriohjain.

Konsolin näytössä näkyy käytettäessä ohjaavia viestejä, joita kannattaa tämän ohjeen lisäksi seurata.

Aurinkopaneelin lataussäädin 12/24V 30A. Käyttöohje

ABT PÖYTÄVAAKA PAKVAAKA1

MUISTIPIIRIT H. Honkanen

Kontrollerin tehonsäätö

6.3. AVR_rauta. EEPROM-muisti pva

1 YLEISTÄ. Taitaja2002, Imatra Teollisuuselektroniikkatyö Protorakentelu 1.1 PROJEKTIN TARKOITUS

A/D-muuntimia. Flash ADC

Ongelma(t): Mistä loogisista lausekkeista ja niitä käytännössä toteuttavista loogisista piireistä olisi hyötyä tietojenkäsittelyssä ja tietokoneen

PROBYTE CONTROL GSM. GSM/SMS-hälytys- ja ohjauslaite. GSM Control 7/11/01 sivu 1/5

Käyttöohje EMT757 / 3567 Ohjelmoitava digitaalinen kellokytkin

9.6 Kannettava testilaite

Nokeval No Käyttöohje. Tekstinäyttö 580-ALF

Monipuolinen vesimittari

Moottorin lämpötilan mittauksen kytkeminen taajuusmuuttajaan

Projektityöt. Sami Alaiso, Jyri Lujanen 30. marraskuuta 2009

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

Tekniikka ja liikenne (5) Tietoliikennetekniikan laboratorio

YLEISTÄ ALOITUS. Laitteen kuvaus. Näytön kuvaus. Laitteen käynnistäminen ja sammuttaminen UP = YLÖS DOWN = ALAS BACK = TAKAISIN

Käyttöohjeet Pinta-alamittari Flex Counter

Kauko-ohjauslaite GSM rele 2011 v

GSM -tuotteet. HUIPPULUOTETUN STD-32:n UUSI MALLI! Uutuutena: Musta ulkokotelo Uusittu piirilevy Pulssilaskuri Sähköpostilähetys

Näppäimistö CT Käyttäjäopas. Global Safety & Security Solutions Oy info@globalsafety.fi. CT1000v.5

ELEKTRONISET TOIMINNOT

I-Vinssi LM.60i 24V / I/O-net / 60NM. Sisältö Sovellukset 1 Ominaisuudet 1 Mitoitus 3 Varavirtalähde 3 Varusteet 4 Johdotus 5 Tekninen erittely 5

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle

GSM OHJAIN FF KÄYTTÖOHJE PLC MAX S03

HF1 laitteen käyttöönotto ja asetukset

OMNIA OPINNÄYTETYÖ AMMATTIOPISTO. Diginoppa ICTP09SLG OMNIAN AMMATTIOPISTO

Fortum Fiksu Mittaava, etäohjattava sähkökytkin sisäkäyttöön Käyttöohjeet

HARJOITUSTYÖ: Mikropunnitus kvartsikideanturilla

Agent-D -sarja. Tilauskoodi: Agent-D-HT2 sis. Agent-D-Clip-S -anturi Agent-D-HT2-EX (EX-Zone 1) sis. Agent-D-Clip-S -anturi

LUMA SUOMI -kehittämisohjelma LUMA FINLAND -utvecklingsprogram LUMA FINLAND development programme Ohjelmointia Arduinolla

WintEVE Sähköauton talvitestit

111570SF CS60. Liitäntä- ja määritysopas Ohjausautomatiikka

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

JOHNSON CONTROLS. Maalämpösäädin KÄYTTÖOHJE

ELEC-C3240 Elektroniikka 2

7.3. Oheisrautaa. DS

Transkriptio:

ELEKTRONIIKAN TYÖ Ajotietokone Jukka Happonen

Happonen J (2007) Ajotietokone Oulun Yliopisto, Sähkö- ja tietotekniikan osasto Elektroniikan työ, 51 s. TIIVISTELMÄ Tässä elektroniikan työssä on suunniteltu ja rakennettu ajotietokone vanhahkoon henkilöautoon, jossa ei ole tehdasasennettua ajotietokonetta. Ajotietokoneen tarkoituksena on mitata reaaliajassa eri suureita ja esittää niitä käyttäjälle. Mitattavia suureita ovat esimerkiksi polttoaineen kulutus, nopeus ja matka. Ajotietokoneen tehtävänä on myös pitää kirjaa kulutuksesta, ajetuista kilometreistä, ja tankkauksista. Kuljettaja voi näin tarkkailla ajoneuvon toimintaa ja puuttua normaalista poikkeaviin tuloksiin. Yleensä esimerkiksi kasvava polttoaineen kulutus on merkki viasta vaikka moottorin säätöyksikössä. Työn tuloksena syntyi laite, joka suorittaa edellämainitut mittaukset ja tuottaa paljon muuta kuljettajalle hyödyllistä informaatiota sekä ajon aikana että sen loputtua. Avainsanat: ajotietokone, sulautettu järjestelmä

Happonen J. (2007) Car computer University of Oulu, Department of Electrical and Information Engineering. Electronics project, 51 p. ABSTRACT In this electronics work project a car computer is designed and constructed to an oldish car which does not have any factory assembled car computer. The main purpose of the car computer is to measure fuel consumption, speed and distance and also keep log of consumed fuel and driven distance among many other things. As a result a full featured car computer was constructed which does all measurements mentioned above and also generates useful information for the driver during and after drive. Keywords: Car computer, embedded systems

SISÄLLYSLUETTELO TIIVISTELMÄ ABSTRACT SISÄLLYSLUETTELO ALKULAUSE LYHENTEIDEN JA MERKKIEN SELITYKSET 1. JOHDANTO................................ 8 2. Teoria.................................... 9 2.1. Kulutuksen mittaaminen....................... 9 2.1.1. Polttoaineen virtaamaan perustuva mittaus........ 9 2.1.2. Polttoaineruiskun tuottoon perustuva mittaus....... 10 2.1.3. Polttoaineen kulutuksen laskentaa.............. 10 2.2. Matkan mittaaminen......................... 11 2.3. Nopeuden mittaaminen........................ 12 2.4. Suodatinalgoritmit.......................... 12 2.4.1. EMA-suodatin........................ 12 2.4.2. Mediaanisuodatin....................... 12 3. Toteutus................................... 14 3.1. Lohkokaavio.............................. 14 3.2. Elektroniikka............................. 14 3.2.1. Käyttöjännitteet....................... 14 3.2.2. Mikrokontrolleri........................ 15 3.2.3. Tasonmuuntimet....................... 15 3.2.4. Analogia- digitaalimuunnin................. 16 3.2.5. Hälytystulo.......................... 17 3.2.6. I 2 C-väylä........................... 17 3.2.7. Ulkoinen EEPROM muisti.................. 18 3.2.8. Radiomoduuli......................... 18 3.2.9. Käyttöliittymä........................ 18 3.2.9.1. Näyttö........................ 18 3.2.9.2. Näppäimistö.................... 19 3.3. Mekaniikka.............................. 20 3.3.1. Kotelo............................. 20 3.3.2. Etupaneeli........................... 20 3.3.3. Näppäimet........................... 21 3.4. Ohjelmisto............................... 22 3.4.1. Yleistä............................. 22 3.4.2. Käyttöliittymä........................ 23 3.4.2.1. Tilakone....................... 23 3.4.2.2. Näyttö........................ 25 3.4.2.3. Näppäimien käsittely................ 25 3.4.3. Mittaukset........................... 25 3.4.3.1. Kulutuksen mittaaminen.............. 25 3.4.3.2. Matkan ja nopeuden mittaaminen......... 26 4. Testaus................................... 27 4.1. Pöytätestaus.............................. 27 4.1.1. Ruisku- ja nopeussimulaattori................ 27 4.2. Käytännön testaus.......................... 28

4.2.1. Polttoaineen kulutus..................... 29 4.2.2. Nopeus ja matka....................... 29 4.2.3. Virrankulutus......................... 29 4.2.4. Muita huomioita....................... 29 5. Jatkokehitys................................. 30 5.1. Varashälytin.............................. 30 5.2. Ulkoinen EEPROM muisti...................... 30 5.3. Radiomoduuli............................. 30 5.4. GPS/PC-liitäntä........................... 30 5.5. Analogia- digitaalimuunnin...................... 30 5.6. I 2 C-väylä................................ 31 6. Yhteenveto................................. 32 6.1. Ominaisuudet............................. 33 7. LÄHTEET................................. 34 8. LIITTEET................................. 35

ALKULAUSE Tässä elektroniikan työssä on suunniteltu ja rakennettu ajotietokone vanhahkoon henkilöautoon, jossa ei ole tehdasasennettua ajotietokonetta. Työ koostui elektroniikan, mekaniikan ja ohjelmiston suunnittelusta, sekä käytännön testauksesta. Työ tehtiin syksyn 2006 ja talven 2007 aikana. Projektina ajotietokone on ollut erittäin mielenkiintoinen ja haastava. Tässä projektissa olen saanut yhdistää kaksi suurta intohimoani elektroniikan suunnittelun ja ohjelmoinnin, mukavalla tavalla. Suuret kiitokset menevät Polar Electron Petri Takkulalle joka jyrsi etupaneelin ja opetti minut samalla käyttämään jyrsintä, sekä myös Miinalle joka jaksoi illasta toiseen katsella istumistani tietokoneen ääressä näppäimistön paukkeessa. Oulussa, 29. maaliskuuta 2007 Jukka Happonen

LYHENTEIDEN JA MERKKIEN SELITYKSET ADC Analog Digital Converter, Analogia digitaali muunnin ARM Advanced RISC Machine AVR Advanced Virtual RISC CAN Controller Area Network, Ajoneuvojen ja koneiden sisäinen paikallisväylä DIN Deutsche Industrie Norm, Yleinen keskieurooppalainen standardi ECU Engine Control Unit, Moottorin ohjausyksikkö EEPROM Electronically Erasible Programmable ROM EMA Exponential Moving Average, eksponentiaalinen liukuva keskiarvoistus ETA Estimated Time of Arrival, Arvioitu saapumisaika FIFO First In, First Out GPS Global Positioning System, Maailmanlaajuinen paikannusjärjestelmä I 2 C Inter-Integrated Circuit, Kaksisuuntainen ohjaus- ja tiedonsiirtoväylä JTAG Joint Test Action Group, testaus- ja ohjelmointiväylä khz Kilohertsiä MHz Megahertsiä NMEA National Marine Electronics Association, Eräs GPS datan formaatti PC Personal Computer, henkilökohtainen tietokone PLED Polymer Light-Emitting Diode, Polymeeri LED POM Polyoksimetyyli tai polyasetaali PTC Positive Temperature Coecient RISC Reduced Instruction Set Computer SPI Serial Peripheral Interface SW SoftWare, Ohjelmisto UART Universal Asynchronous Receiver/Transmitter UI User Interface, käyttöliittymä

1. JOHDANTO Ajotietokoneet ovat tulleet osaksi normaaleja henkilöautoja, mutta kuitenkin ajotietokoneiden aikakausi alkoi vasta noin kymmenen vuotta sitten, jolloin elektroniikan määrä autoissa kasvoi huomattavasti. Suomen autokannasta suurin osa on autojen vanhempaa ikäpolvea, missä kunnon ajotietokoneet ovat harvinaisuuksia. Kohonneet polttoaineiden hinnat kannustavat enemmän ja enemmän taloudelliseen ajamiseen, jonka harjoittamiseen ajotietokone ja siihen sisältyvä polttoaineen kulutusmittari ovat oleellisia. Tämän työn tarkoituksena on toteuttaa ajotietokone vanhaan henkilöautoon, jossa ei ennestään ole minkäänlaista ajotietokonetta. Sen tarkoituksena on mitata pääasiassa ajoneuvosta polttoaineen kulutusta, sekä muita suureita kuten nopeutta ja matkaa, ja esittää tulokset käyttäjälle. Mittaustuloksia tulkitsemalla käyttäjä voi muuttaa omaa ajotapaansa taloudellisemmaksi ja säästää polttoainekuluissa. Normaaleista eriävät mittaustulokset kertovat ajoneuvossa olevista vioista ja näin ollen ennaltaehkäisevät suurempien vikojen synnyn. Ajotietokoneeseen on myös tarkoitus implementoida muita hyödyllisiä toimintoja, kuten arvioidun saapumisajan laskenta. Markkinoilla olevissa jälkiasennettavissa ajotietokoneissa 12 on yleensä varsin suppeat toiminnot, mutta tämän laitteen on tarkoitus koota kaikki ominaisuudet yksiin kuoriin. Luvussa 2, teoriaosiossa, käsitellään hieman eri tekniikoita polttoaineen kulutuksen ja nopeuden mittaamiseen, sekä muutama sana käytetyistä digitaalisista suodattimista. Luvussa 3, laitteen toteutus, selvitetään laitteen seikkaperäinen toteutus. Osion olen jakanut kolmeen osaan : elektroniikka, mekaniikka ja ohjelmisto. Luvussa 4, testaus, kerrotaan testauksesta, tutkitaan mittaustuloksia ja kerrotaan miten mittaukset on toteutettu. Luvussa 5, jatkokehitys, kerrotaan tulevista kehitysideoista, jotka eivät ehtineet nykyiseen toteutukseen. Luvussa 6, yhteenveto, tarkastellaan työn onnistumista. 1 VDO EDM eco : http://www.siemensvdo.com/press/releases/eetmanagement/2002/sv- 200203-000-d.htm 2 ECONEN II : http://www.paetronics./

9 2. Teoria 2.1. Kulutuksen mittaaminen Auton polttoainejärjestelmä koostuu polttoainetankista ja -pumpusta, sekä polttoaineruiskuista tai kaasuttimesta. Polttoainepumppu siirtää polttoainetta tankista järjestelmään, josta polttoaine siirtyy ruiskujen tai kaasuttimen avulla ilmaan ja ilman mukana sylinteriin poltettavaksi. Kaikki polttoaine ei kuitenkaan siirry ilmaan, vaan osa siitä palaa paluuputkea pitkin takaisin polttoainetankkiin. Kuva 1. Periaatekuva auton polttoaineenruiskutusjärjestelmästä Kulutuksen mittaamiseen on kehitetty muutamia mittausmenetelmiä. Esittelen niistä kaksi, joista toinen on käytössä ajotietokoneen toteutuksessa. 2.1.1. Polttoaineen virtaamaan perustuva mittaus Polttoaineen virtaamaan perustuvassa mittauksessa asetetaan kaksi herkkää virtausmittaria polttoaineen syöttö- ja paluuputkeen. Virtausmittarit mittaavat polttoaineen virtaamia ja ilmaisevat virtaamat esimerkiksi jännitteinä. Näiden jännitteiden erotuksesta saadaan kulutettu polttoainemäärä moottorissa. Virtausmittarit ovat kuitenkin erittäin kalliita, joten tämän tapainen mittaus on harvinainen.

10 2.1.2. Polttoaineruiskun tuottoon perustuva mittaus Polttoaineruiskun tuottoon perustuvassa mittauksessa tiedetään polttoaineruiskun läpi virtaavan polttoaineen määrä tilavuusyksikössä tietyn aikayksikön aikana tietyssä paineessa. Yleensä käytetyt yksiköt ovat kuutiosenttimetriä minuutissa (cm 3 /min). Kuva 2. Polttoaineruiskuja ohjaava signaali Mittaamalla polttoaineruiskuja ohjaavia signaaleja saadaan aika t inj kuinka kauan polttoaineruiskut ovat olleet auki. Kertomalla polttoaineruiskun tuotto RT tällä ajalla ja polttoaineruiskujen lukumäärällä, voidaan laskea kulutettu polttoainemäärä V inj yhden ruiskutuksen aikana. Polttoaineruiskuilla on kuitenkin tietty avautumisaika, jonka aikana polttoainetta vielä kulkeutuu suuttimien läpi. Jos suutin on auki 10ms yhdellä kertaa, tai 2ms viisi kertaa, suuttimesta menee erimäärä polttoainetta. Tämän sulkeutumis/avautumisjakson aikana ruiskutettu polttoainemäärä saadaan kompensoitua kalibroimalla. V inj = RT 60 t inj n (1) Missä, V inj Ruiskutettu polttoainemäärä [cm 3 ] RT Yhden ruiskun tuotto [cm 3 /min] t inj Ruiskutuksen kulunut aika [s] n Ruiskujen lukumäärä Jos halutaan tietää kulutettu polttoainemäärä aikayksikössä C t, täytyy tietää ruiskuja ohjaavan signaalin jaksonaika T inj. Tästä saadaan laskettua ruiskutustaajuus f inj = 1 T inj Hz jolla kerrotaan ruiskutettu polttoainemäärä yhden ruiskutuksen aikana V inj. 2.1.3. Polttoaineen kulutuksen laskentaa Polttoaineen kulutus ilmoitetaan yleensä litroina sataa kilometriä kohden, jolloin laskentaan tarvitaan ajoneuvon nopeus.

11 Hetkellinen kulutus C inst = Missä, C inst Hetkellinen kulutus [l/100km] C t Hetkellinen kulutus [l/h] Ajoneuvon nopeus [km/h] v inst C t v inst 100 (2) Kokonaiskulutus C tot = C V s tot 100000 (3) Missä, C tot Kokonaiskulutus [l/100km] s tot Kuljettu kokonaismatka [m] Kulutettu polttoainemäärä matkalla s tot [l] C V 2.2. Matkan mittaaminen Matkan mittaaminen voidaan toteuttaa monella tavalla. Vanhahkoissa autoissa matkamittarille tuodaan vaijerilla tieto vaihdelaatikolta, ja vaijeri pyörittää mittaristossa olevaa laskuria. Uudemmissa autoissa vaijeri on korvattu elektronisella pulssilla joka mitataan esimerkiksi vaihdelaatikosta. Vanhemmissa autoissa ei aina ole digitaalista lähtöä, joten analoginen tieto on muunnettava digitaaliseksi. Muunnos voidaan tehdä esimerkiksi ensin kiinnittämällä magneetti vaijeriin ja mittaamalla sitten pyörähdyksiä Hall-anturilla. Pulssit on vielä muunnettava vastaavaksi matkaksi, esimerkiksi yksi renkaan pyörähdys vastaa yhtä pulssia, tai kolme pulssia vastaa yhtä pyörähdystä. Olennainen osa matkan mittaamisessa on kalibrointi, ellei kahden pulssin välistä matkaa tiedetä tarkasti etukäteen. Kalibrointi voidaan suorittaa esimerkiksi seuraavalla tavalla : 1. Nollataan pulssilaskuri 2. Ajetaan tarkasti tiedetty matka s tot (esimerkiksi 10-50 metriä) 3. Lasketaan montako pulssia n matkan aikana tuli 4. Jaetaan ajettu matka s tot pulssien määrällä n jolloin saadan kahden pulssin välinen matka s pulse s pulse = s tot n (4)

12 Myös GPS:ää voi käyttää matkan mittaamiseen, mutta GPS:n tarkkuus ei anna kovin tarkkoja tuloksia. GPS ei myöskään toim, ellei se saa signaalia vähintään kolmesta satelliitista. Tällainen tilanne voi tulla esimerkiksi ajettaessa tunneliin. 2.3. Nopeuden mittaaminen Nopeuden mittaaminen tapahtuu mittaamalla matkamittarille tulevien pulssien välistä aikaa. Kun tiedetään kahden matkapulssin välinen matka, voidaan laskea nopeus kertomalla pulssien välinen matka pulssien välisellä ajalla. Missä, v Nopeus [m/s] s pulse Kahden pulssin välinen matka [m] Kahden pulssin välinen aika [s] t pulse v = s pulse t pulse (5) Koska ajoneuvoissa hyvin harvoin käytetään nopeuden yksikkönä m/s, on se syytä muuntaa km/h. v[km/h] = v[m/s] 3.6 (6) 2.4. Suodatinalgoritmit Tässä osiossa käsitellään muutamaa digitaalista suodatinta, joita tarvitaan suodattamaan häiriöitä digitaalisesta signaalista. 2.4.1. EMA-suodatin EMA (Exponential Moving Average)-suodatinta käytetään keskiarvoistamaan ja suodattamaan sisääntulevaa signaalia pieniltä vaihteluilta. EMA-suodatin painottaa eksponentiaalisesti arvoja, jolloin uusimmalla arvolla on suurin painoarvo. Missä, x i Uusin mitattu arvo scale Painotusarvo f(x i ) = x i 1 + x i x i 1 scale (7) Yleensä digitaalisissa järjestelmissä painotusarvo on 2 n, sen helpon toteutettavuuden takia. Mitä suurempi scale:n arvo, sitä enemmän suodatin keskiarvoistaa dataa. 2.4.2. Mediaanisuodatin Mediaanisuodatinta käytetään, kun saadusta datasta halutaan suodattaa pois transienttejä häiriöitä. Mediaanisuodatin ei toimi nollakeskiarvoiselle signaalille.

13 Mediaanisuodattimessa on n:n pituinen taulukko, johon syötetään dataa FIFO periaatteella. Taukosta etsitään sen jälkeen keskimmäisin arvo. y = mediaani(x i, x i 1,..., x i n ) (8) Esimerkki mediaanisuodattimen toiminnasta: Lähtötilanne : x i Data x 4 0 x 3 0 x 2 0 x 1 0 x 0 0 y 0 Taulukko on alustettu nollaksi. x i Data x 6 5 x 5 6 x 4 0 x 3 0 x 2 0 y 5.5 Kaksi ensimmäistä arvoa on tallennettu taulukkoon, joten suodatin palauttaa 0-solun ja 1-solun keskiarvon eli 5.5. x i Data x 9 3 x 8 4 x 7 7 x 6 5 x 5 6 y 5 Koko taulukko on täytetty arvoilla, joten suodatin palauttaa arvon 5.

14 3. Toteutus 3.1. Lohkokaavio Järjestelmän pääkomponenttina toimii mikrokontrolleri, joka saa mittaustietoa tasonmuuntimien ja analogia- digitaalimuuntimen kautta. Mittaustieto esitetään käyttäjälle näytöllä. Käyttäjä voi valita eri tiedon näyttötiloja, sekä syöttää muita tietoja näppäimistön avulla. Kuva 3. Järjestelmän lohkokaavio 3.2. Elektroniikka 3.2.1. Käyttöjännitteet Autosta saatava 12V käyttöjännite täytyy muuntaa pienemmiksi jännitteiksi jotta elektroniikka voisi sitä hyödyntää. Auton jännitteet ovat myös hyvin häiriöisiä, jolloin tarvitaan suodatusta ja suojausta ylijännitteiltä. Järjestelmä käyttää yhteensä kolmea eri käyttöjännitettä : 12V (suodatettu) 5V (suodatettu ja reguloitu)

15 3.3V (suodatettu ja reguloitu) Autosta saatava 12V jännite suodatetaan yhdellä 10uH:n kelalla (kuristin) ja kondensaattoreilla, jonka jälkeen siitä reguloidaan 5V 7805 regulaattorilla. Tätä jännitettä suodatetaan kahdella kondensaattorilla. 5V reguloidaan vielä 3.3V jännitteeksi radiopiiriä varten Maxim-IC 1 :n MAX604 regulaattorilla. 5V regulaattori on kiinnitetty suoraan piirilevyyn, johon on jätetty kuparia, jotta jännite-erosta johtuva ylimääräinen lämpö ei ylikuumentaisi regulaattoria. Ylijännitesuojaus on toteutettu diodilla, joka on kytketty takaisin käyttöjännitteeseen. Oikosulkusuojausta ei toteutettu piirilevylle, koska käyttöjännitejohdossa on paikka sulakkeelle. 3.2.2. Mikrokontrolleri Mikrokontrolleriksi valittiin Atmelin valmistama ATmega64. ATmega64:n valintaan vaikuttivat suuresti kokemukset Atmelin mikrokontrollereista, ilmainen kääntäjä- ja simulointiympäristö sekä RISC prosessorin tehokkuus. Toinen vaihtoehto oli Texas Instruments:in valmistama MSP430F149 2. ATmega64 sisältää seuraavat ominaisuudet : - 64 kt Flash muistia - 4 kt SRAM muistia - 2 kt EEprom muistia - 53 ohjelmoitavaa I/O linjaa - 8 ulkoista keskeytystä - Kaksi 8-bittistä ajastinta (2 comparematch yksikköä / ajastin) - Kaksi 16-bittistä ajastinta (3 compare match yksikköä / ajastin) - RTC (Real Time Counter, reaaliaikalaskuri) - 6 PWM-ulostuloa - 8 - kanavainen, 10 bittinen Analogia-Digitaalimuunnin - 2 kpl UART, SPI, Two-wire sarjaliikenneliitännät - Analoginen komparaattori Mikrokontrollerin kiteen taajuudeksi valittiin 8 MHz. Tällä kiteellä saavutetaan sopiva resoluutio ajastimille, jotka laskevat ruiskutussignaalin ja nopeuspulssien kestoa. Reaaliaikalaskurille valittiin 32,768 khz kellokide, josta saadaan jakamalla tarkkaa yhden sekunnin pulssia. Mikrokontrollerin IO pinnien jako löytyy liitteestä 2. 3.2.3. Tasonmuuntimet Kytkennässä tarvitaan tasonmuuntimia, jotka muuntavat signaalien jännitteet oikeiksim, jotta mikrokontrolleri voisi signaaleja hyödyntää. 1 http://www.maxim-ic.com/ 2 http://focus.ti.com/docs/prod/folders/print/msp430f149.html

16 Ulkoisia sisääntulevia signaaleja ja radiopiiriä varten valittiin 40109 1 tasonmuunninpiiri, jossa on neljä sisääntuloa ja neljä ulostuloa. Molemmille puolille kytketään haluttu käyttöjännite, ja piiri hoitaa näiden pinnien välisen tasonmuunnoksen. Koska 40109 piiri voi tehdä tasonmuunnoksen vain yhteen suuntaan, sitä ei voi käyttää sellaisille linjoille jossa data liikkuu molempiin suuntiin (esimerkiksi I 2 C väylän kello ja datalinjat). Tässä tilanteessa vaihtoehtona oli valita jokin valmis muunninpiiri, joka osaa tehdä muunnoksen molempiin suuntiin (esimerkiksi Maxim IC MAX300x 2 ). Kuitenkin hyvin yksinkertaislla kytkennällä [1, s. 123] voidaan tasonmuunnos toteuttaa N-kanavan avaustyyppisellä MOSFET:llä. Siinä MOSFET:n hilalle tuodaan alempi käyttöjännite, lähteelle tuodaan alemman käyttöjännitteen signaali ja nieluun kytketään ylemmän käyttöjännitteen signaali. Tämä hyvin yksinkertainen kytkentä mahdollistaa kaksisuuntaisen tasonmuunnoksen. Tässä pitää kuitenkin tarkistaa FET:n eri ominaisuudet, jotta se toimisi kyseisessä kytkennässä. FET:n pitää johtaa kun hila- ja lähde-elektrodien välinen jännite on alle 2V. Kanavaresistanssin pitää olla pienempi kuin 100Ω Ottokapasitanssi ei saa nousta yli 100pF Kytkentänopeuden pitää olla alle 5ms Kytkentään valittiin BS170 MOSFET joka täyttää edellämainitut vaatimukset. Ruisku-, nopeus- ja kierroslukusignaalia varten on tehty tasonmuunnos optoerottimilla, jossa opto-lediä ohjataan transistorilla. Tämä taas saa bias virran edellämainituista signaaleista. Mikrokontrollerin keskeytysnastoihin tuodaan signaali opto-transistorin kollektorilta, joka on myös kytketty 10kΩ:n vastuksen kautta viiden voltin käyttöjännitteeseen. PC-liitäntää varten kykennässä käytetään MAX232 3 tasonmuunninta, joka muuntaa mikrokontrollerin 5V jännitteet RS-232 spesikaation mukaisiksi ±12V jännitteiksi. 3.2.4. Analogia- digitaalimuunnin Vaikka analogia-digitaalimuunnin on mikrokontrollerin sisäinen, käsitellään se tässä erillisenä kappaleena, koska siihen kuuluu paljon muutakin kuin itse muunnin. Mikrokontrollerissa on kahdeksan erillistä ADC tuloa, joista käytetään kuitenkin vain yhtä. Syy miksi vain yhtä linjaa käytetään on, että jokaiselle ADC linjalle olisi pitänyt rakentaa oma erillinen puskurikytkentänsä. Tässä tapauksessa tarvitaan vain yksi linja, johon kahdeksan linjaa tuodaan analogisen multiplekserin kautta. Multiplekseri on 4051 4 tyyppinen logiikkapiiri, jota ohjataan 1 Quad 3-state noninverting buer/level shifter 2 http : //www.maxim ic.com/quick v iew2.cfm/qv p k/3672 3 +5V-Powered, Multichannel RS-232 Driver/Receiver 4 Analog multiplexer

17 kolmella signaalilla. Näillä kolmella signaalilla valitaan multiplekserin kanava (0-7), joka ohjataan multiplekserin lähtöön. Neljään ensimmäiseen (X0..X3) multiplekserin sisääntuloon on kytketty Texas Instrumentsin TLC274 operaatiovahvistimilla toteutettu puskuripiiri. Neljä seuraavaa (X4..X7) sisääntuloa on kytketty suoraan 10kΩ:n vastuksien kautta piikkirimaan, johon voi kytkeä esimerkiksi PTC vastuksia lämpötilan tarkkailemista varten (lisää ADC:n kehitysideoita 5.5 osiossa). Multiplekserin lähtöön on laitettu Texas Instrumentsin TLC272 operaatiovahvistimesta rakennettu kytkentä, joka muuntaa 0-12 voltin jännitteen lineaarisesti 0-5 voltin jännitteeksi. Operaatiovahvistimen lähtö on viety mikrokontrollerin ADC 4 linjaan. Operaatiovahvistimen lähtö ei kuitenkaan ole täysin lineaarinen pienillä jännitteillä (0-1V). Tätä epälineaarisuutta on saatu korjattua pienillä sarjavastuksilla, jotka on kytketty operaatiovahvistimen negatiivisesta käyttöjännitteestä maapotentiaaliin. 3.2.5. Hälytystulo Murtovarkauksien estämiseksi laitteeseen on rakennettu seitsemän sisääntuloa, joihin voi kytkeä maadoittavia kytkimiä tunkeutumisen ilmaisemiseksi. Kahdeksantuloisen NAND-piirin 1 sisääntuloihin on kytketty viiden voltin jännite 10kΩ:n vastuksien kautta. Normaalitilanteessa NAND-piirin lähtö on loogisessa nollatilassa. Kun jokin kytkin maadoittuu, myös NAND-piirin sisääntulo maadoittuu ja NAND-piirin lähtö menee loogiseen ykköstilaan. NAND-piirin lähtö syöttää 10kΩ:n vastuksen läpi biasvirtaa transistorille, joka alkaa johtaa. Transistorin kollektori on kytketty 10kΩ:n kautta käyttöjännitteeseen sekä mikrokontrollerin keskeytystuloon ja emitteri on kytketty maapotentiaaliin. Kun transistori alkaa johtamaan, menee kollektori emitterin kanssa samaan potentiaaliin ja näin aiheuttaa keskeytyksen mikrokontrollerille. Varashälyttimen toiminnasta on kerrottu lisää kehitysideat-osiossa (5.1). 3.2.6. I 2 C-väylä Uusissa autoissa käytetty väyläratkaisu on usein CAN väylä. Ajoneuvokäytössä CAN väylä on erittäin hyvä sen häiriösietoisuuden vuoksi. Häiriösietoisuus on saavutettu käyttämällä dierentiaalisia signaaleja ja fyysisenä siirtotienä kierrettyä parikaapelia. Tässä laitteessa valittiin väyläksi kuitenkin I 2 C sen edullisuuden ja helpon toteutettavuuden takia. Atmelilta olisi saatavilla mikrokontrollereita joissa on CAN väyläohjaimet sisäänrakennettuna, mutta niiden hinta jätti CAN väylän projektin ulkopuolelle. Tulevissa lisälaitteissa olisi myöskin tarvittu CAN väyläohjaimia, jotka olisivat nostaneet lisälaitteiden kustannuksia huomattavasti. I 2 C on Philipsin kehittämä kaksisuuntainen ohjaus- ja tiedonsiirtoväylä. Väylässä on sarjamuotoinen data- ja kellolinja, ja väylään kiinnitetyt komponentit on osoitettavissa yksilöivällä osoitteella. ATmega64 mikrokontrollerissa on I 2 C yhteensopiva Two-Wire liitäntä, mutta sitä ei voitu hyödyntää koska Two-Wire liitännän pinnejä tarvittiin toisiin tarkoituksiin. 1 74HC30

18 Koska väylä ei ole dierentiaalinen, se ei tarvitse erillisiä ajuripiirejä, vaan tasonmuunnokseen riittää kohdassa 3.2.3 esitetty kykentä, joka on hyvin halpa ja helposti toteutettavissa. Jatkokehitys-osiossa 5.6 on muutamia ideoita, mitä laitteita väylään voisi liittää. 3.2.7. Ulkoinen EEPROM muisti Laitteeseen valittiin myös ulkoinen EEPROM muisti, vaikka mikrokontrolleri sisältää EEPROM muistia. Mikrokontrollerissa oleva muistimäärä on kuitenkin pieni verrattuna ulkoiseen muistiin, jonne saadaan tallennettua huomattavan paljon enemmän tietoa. EEPROM muistiksi käyvät kaikki I 2 C väylään sopivat EEPROM muistit 1. EEPROM muistin implementaatio on kuitenkin jätetty tekemättä tässä vaiheessa (ks. kehitysideat (5.2)) 3.2.8. Radiomoduuli Radiomoduulin tehtävänä on toimia yhteydessä esimerkiksi avaimenperään asennetun lähettimen kanssa, jolloin avaimenperällä voidaan esimerkiksi avata ja lukita auto. Radiomoduuli on erikseen rakennettu ja koostuu Nordic Semiconductorin 2 valmistamasta nrf2401 radiopiiristä oheiskomponentteineen sekä antenniliittimineen. Moduuli kiinnittyy piirilevylle kahdeksanpinnisen piikkiriman avulla. Antenni on tarkoitus viedä ulos metallikotelosta, koska maadoitettu metallikotelo vaimentaa tehokkaasti radiosignaaleja. Radiomoduulia ei kuintekaan ole vielä toteutettu laitteeseen, vaan se on jätetty optioksi (ks. kehitysideat (5.3)) 3.2.9. Käyttöliittymä 3.2.9.1. Näyttö Näytöksi valittiin Pacic Display-yhtiön valmistama 128 x 64 pikselinen PLEDpistematriisinäyttö. PLED-tekniikan suurena etuna on erittäin laaja katselukulma, hyvä näkyvyys sekä auringon paisteessa että pimeällä ja erittäin laaja käyttölämpötila-alue, joka varsinkin Suomen olosuhteissa on tärkeä osatekijä näyttöä valittaessa. Huonoista puolista voidaan mainita PLED-tekniikan vaatima suuri virrankulutus. Näytön käyttöjännitteitä ohjataan analogisen kytkimen 3 kautta, jolloin näyttö voidaan sammuttaa tarvittaessa. PLED:n ohjaimena toimii KS0108-tyyppinen IC-piiri, joka kommunikoi mikrokontrollerin kanssa kahdeksan datalinjan (D0..D7) ja kuuden ohjauslinjan (E, RS, RESET, RW, CS1 ja CS2) kautta. 1 Esimerkiksi 24C64 jonka kapasitetti on 64 kilobittiä = 8 kilotavua 2 http://www.nvlsi.no/ 3 MAX4522 - Quad, Low-Voltage SPST (4 x SPST NO) Analog Switches

19 3.2.9.2. Näppäimistö Näppäimistön vaatimuksina oli ainakin 12 näppäintä joilla voitaisiin toteuttaa numeronäppäimet 0-9, sekä OK - ja CANCEL-näppäimet. Mikrokontrollerin IOlinjat eivät kuitenkaan riittäneet 12 näppäimen toteuttamiseen tai edes multipleksattuun 3x4 näppäimen näppäimistöön. Näppäimistö toteutettiin kahdella 8-bittisellä siirtorekistereillä 1. Siirtorekistereissä on kahdeksan datatuloa (D0..D7), sarjatulo (SIN), kello (CLK), sarja/rinnan-valinta (P/ S) ja kolme lähtöä (Q5, Q6 ja Q7). Kun P/ S-tulo menee loogiseen ykköstilaan, siirtyvät datatuloissa olevat tilat piirin siirtorekistereihin. Nyt jokaisella kellotulon nousevalla reunalla siirtorekisteri siirtää luetut tilat Q n -lähtöihin. Siirtorekisterit on kytketty sarjaan, jolloin toisen piirin Q7-lähtö on viety seuraavan piirin sarjatuloon (SIN). Kello- ja lataussignaali on jaettu molemmille piireille, jolloin yhdellä latauksella ja 15 kellopulssilla saadaan luettua 16-bittinen data piirien tuloista. Näppäimistön näppäimet ovat sulkeutuvaa tyyppiä ja ne maadoittavat käyttöjännitteen 100kΩ vastuksien kautta. Vastuksen jalasta on vedetty linja siirtorekisterin datatuloon. Sama jalka on kytketty myös 1N4148-diodin katodille ja diodin anodi on kytketty 100kΩ kautta käyttöjännitteeseen. Kun nappia painetaan, diodin katodi kytkeytyy maapotentiaaliin, jolloin virta kulkee vastuksen ja diodin kautta ja diodin anodille jää noin 300mV jännite. Diodin anodi on kytketty mikrokontrollerin ulkoiseen keskeytykseen, jolloin napin painaminen aiheuttaa keskeytysrutiinin suorittamisen mikrokontrollerissa. Kuva 4. Näppäimistö 1 4021-8-stage parallel input/serial output shift register

20 3.3. Mekaniikka Ajotietokoneen asennuspaikaksi valittiin autossa jo valmiiksi oleva standardi DIN 1 -paikka johon sopii yksi DIN-kokoinen laite, kuten autoradio. DIN-paikka määräsi kotelon ulkomitat, sekä etupaneelin mitat. 3.3.1. Kotelo Metallikotelo on otettu vanhasta autoradiosta, jonka sisään piirilevy on mitoitettu. Metallikotelon takaseinä on leikattu auki liittimiä varten. 3.3.2. Etupaneeli Etupaneelin materiaaliksi valittiin POM-muovi, joka on helposti työstettävissä jyrsimellä. Etupaneeli on suunniteltu AutoDesk Inventor 3D piirustusohjelmistolla, jonne mallinnettiin PLED-näyttö ja näppäimistö, sekä itse etupaneeli. Kuva 5. 3D mallinnettu etupaneeli Kuva 6. Jyrsitty etupaneeli edestä 1 Leveys 178mm, Korkeus 50mm, Syvyys min. 180mm

21 3.3.3. Näppäimet Näppäimistön näppäimet on liimattu ohueen muovikalvon palaseen joka näin antaa joustovaraa, mutta pitää näppäimet oikeilla paikoillaan. Kalvo myös estää sen, etteivät näppäimet pääse luiskahtamaan pois paikoiltaan. Kuva 7. Näppäimet liimattuna muovikalvoon

22 3.4. Ohjelmisto Koska ohjelmisto on laaja, tässä osiossa keskitytään vain ohjelmiston tärkeimpiin ominaisuuksiin. 3.4.1. Yleistä Ajotietokoneen ohjelmisto on tehty mahdollisimman pitkälle keskeytysten ja tapahtumien perusteella toimivaksi 1. Näin saadaan suurin mahdollinen virransäästö, koska suurin osa ajasta voidaan olla joko Idle-tai Power-Save-tilassa, joista sitten herätään palvelemaan keskeytyksiä. Jokainen keskeytys on tehty mahdollisimman lyhyeksi, ja keskeytysten periaatteena on nostaa tietty lippu muuttujasta, joka tarkastetaan pääsilmukassa. Pääsilmukasta kutsutaan sitten kyseistä tapahtumaa käsittelevää funktiota. 1 Event based Kuva 8. Periaatekuva pääsilmukasta

23 3.4.2. Käyttöliittymä Tässä kappaleessa käsitellään käyttäjälle näkyviä ohjelmiston osia. Tilakone : Hoitaa tilafunktiot ja -siirtymät, jotka antavat käyttäjälle informaatiota näytön kautta. Näyttö : Näkyvin käyttöliittymän osa jonne tulostetaan informaatiota. Näppäimistö : Käyttäjä voi ohjata laitteen toimintaa näppäimillä. 3.4.2.1. Tilakone Käyttöliittymän ohjaamiseen on tehty tilakone, joka toimii tilataulujen perusteella. Tilakone suorittaa tilatauluihin ohjelmoituja funktioita. Eri tapahtumilla on oma rivinsä tilataulussa, jolloin tilakone osaa ottaa oikean rivin ja suorittaa sille riville ohjelmoidun funktion. Esimerkiksi kun käyttäjä painaa ylös-näppäintä, tapahtuu seuraavaa : 1. Näppäinkäsittelijä tulkitsee mitä näppäintä on painettu ja lähettää näppäinpainallustapahtuman tilakoneelle. 2. Tilakone lukee sen hetkisestä tilataulusta ylös-näppäintä vastaavan rivin. 3. Jos rivin ensimmäisessä sarakkeessa on osoitin johonkin funktioon, tilakone suorittaa sen. 4. Jos rivin toisessa sarakkeessa on osoitin johonkin tilatauluun, tilakone lataa uuden tilataulun ja siirtyy suorittamaan sitä. Tilataulut ovat taulukkoja, jotka sisältävät osoittimia funktioihin ja toisiin tilatauluihin. Tilatauluja voi olla kolmea eri tyyppiä: normaali-taulu, menu-taulu ja asetustaulu. Tilataulun tyyppi määritellään tilalipuissa, jotka ovat jokaisessa taulussa samat. Normaali tilataulu ptr* statefunction uint16 stateags ptr* actionfunction ptr* nextstate OK-button ptr* actionfunction ptr* nextstate BACK-button ptr* actionfunction ptr* nextstate UP-button ptr* actionfunction ptr* nextstate DOWN-button ptr* actionfunction ptr* nextstate LEFT-button ptr* actionfunction ptr* nextstate RIGHT-button Jokainen tilataulukon rivi edustaa tiettyä nappia, paitsi ensimmäinen rivi, joka sisältää kyseisen tilataulun tilafunktion. Tilafunktio suoritetaan kun tilatauluun tullaan, tai jos tilalipuissa on tietty lippu ylhäällä. Esimerkiksi tilalippuihin voidaan määrittää, että tilataulun tilafunktio suoritetaan

24 sekunnin välein. Tilataulun vasemmassa sarakkeessa on aina funktion osoite ja oikeassa sarakkeessa on seuraavan tilataulun osoite. ActionFunctionosoitteessa oleva funktio suoritetaan aina kun kyseiselle riville määritettyä nappia painetaan. Jos samalle riville on määritetty tilataulun osoite, siirrytään siihen tauluun funktion suorittamisen jälkeen. ActionFunctiontai nextstate-kohdat voidaan jättää tyhjäksi, jolloin kyseiselle napille ei ole määritetty mitään funktiota tai seuraavaa tilataulua. Menu tilataulu ptr* stateexittable uint16 stateags ptr* actionfunction ptr* nextstate ptr* actionfunction ptr* nextstate ptr* actionfunction ptr* nextstate...... ptr* actionfunction ptr* nextstate Menu-taulussa ennalta määritellyillä ylös- ja alas-napeilla siirrytään tilataulun rivejä ylös tai alas. Eli kun käyttäjä painaa jompaa kumpaa nappia, haetaan tilataulusta actionfunction:n osoite ja suoritetaan se. Jos käyttäjä painaa tämän jälkeen OK näppäintä, siirrytään siihen tilatauluun mikä oli samalla rivillä kuin actionfunction. Taulukon ensimmäinen rivi sisältää stateexittable:n, joka ilmoittaa sen tilataulun osoitteen, johon siirrytään kun poistutaan taulusta CANCEL/BACK -näppäimellä Setting tilataulu ptr* stateexittable ptr* actionfunction ptr* actionfunction ptr* actionfunction ptr* actionfunction uint16 stateags ptr* nextstate ptr* nextstate ptr* variable 8 or 16 bit uint16 minmax / ptr* minmaxtable Setting-tilataulua käytetään, kun halutaan muuttaa erilaisia asetuksia. Tämä taulukko eroaa rakenteeltaan normaalitaulusta vain kahden viimeisen rivin osalta. Toiseksi viimeisellä rivillä ei anneta seuraavan tilataulun osoitetta, vaan sen muuttujan osoite mitä halutaan muuttaa. Viimeisellä rivillä annetaan pienin ja suurin arvo, minkä muuttuja voi saada. Kahden viimeisen rivin actionfunction pitää olla funktio, joka ottaa parametreinä muuttujan osoitteen, sekä minimi- ja maksimiarvon. Asetustilatauluun liittyy lippu joka määrittää muuttujan koon. Muuttuja voi olla joko 8- tai 16-bittinen. Jos muuttuja on 16-bittinen, annetaan minmax kohdassa osoite taulukkoon, jossa on pienin ja suurin arvo, minkä muuttuja voi saada. Tilasiirtymäkaavio on liittessä 6.

25 3.4.2.2. Näyttö Näyttöä varten on kirjoitettu oma kirjastomoduuli, jonka funktioilla tapahtuu näytölle kirjoittaminen. Tämän lisäksi on kirjoitettu erillinen teksti- ja graikkamoduuli, joka käyttää näytön kirjastomoduulin funktioita. Näytölle kirjoittaminen ja lukeminen tapahtuu kahdeksanbittisen dataväylän kautta ja ohjaamalla kuutta ohjauslinjaa. Näyttö voi olla kahdessa eri tilassa, jotka valitaan RS-linjalla. Kun RS-linja on '1' tilassa, on käytössä komentotila, jolloin voidaan kirjoittaa näytön asetusmuistiin. Kun RS-linja on '0' tilassa, menee kirjoitettu data suoraan näyttömuistiin. 3.4.2.3. Näppäimien käsittely Näppäimistön luku liipaistaan keskeytyksessä, jossa nostetaan näppäimistön lukua indikoiva lippu ylös. Pääsilmukassa kyseinen lippu tarkistetaan ja suoritetaan näppäimistön lukemisen aliohjelma. Aliohjelma tarkistaa ensiksi, että keskeytyslinja on vielä alhaalla. Tällä varmistetaan ettei tapahdu niin sanottuja kytkinvärähtelyjä ja vääriä näppäinpainalluksia. Seuraavaksi nostetaan siirtorekisterin P/ S-tulo loogiseen ykköstilaan, jolloin siirtorekisterin datatulot siirtyvät rekisteriin sisäisiin kiikkuihin. Siirtorekisterin ensimmäinen databitti on jo Q7-datalähdössä, josta se luetaan mikrokontrolleriin. Seuraavaksi nostetaan kellolinja ylös, ja seuraava databitti siirtyy Q7- datalähtöön. Databitti luetaan ja kellolinja lasketaan alas. Edellinen sekvenssi toistetaan viisitoista kertaa, jolloin saadaan kaikki datatulot luettua. Luetussa bittijonossa ykkönen vastaa painettua näppäintä ja nolla vastaa painamatonta näppäintä. Kyseinen bittijono annetaan aliohjelmalle, joka palauttaa painettua näppäintä vastaavan luvun. Seuraavaksi näppäimenpainallus lähetetään tilakoneelle (3.4.2.1), joka tulkitsee painalluksen tilataulun perusteella. 3.4.3. Mittaukset 3.4.3.1. Kulutuksen mittaaminen Kulutuksen mittaamiseen käytetään 16-bittistä ajastinta (Timer1) ja ulkoista keskeytystä, joka on kytketty optoerottimen kautta polttoaineruiskuja ohjaavaan signaaliin. Kulutuksen mittaamisen periaate on seuraava : 1. Tallennetaan ajastimen arvo keskeytyksen laskevalla reunalla ja asetetaan keskeytys nousevalle reunalle. 2. Keskeytyksen nousevalla reunalla luetaan ajastimen arvo ja asetetaan keskeytys laskevalle reunalle. Lasketaan ruiskutusaika vähentämällä ajastimen arvosta kohdan 1. ajastimen arvo, ja lasketaan montako millilitraa polttoainetta ruiskutettiin kun tiedetään ruiskujen tuotto.

26 3. Lasketaan ruiskutustaajuus vähentämällä nykyisen ajastimen arvosta kohdassa 1. tallennettu ajastimen arvo. Kuva 9. Polttoaineruiskuja ohjaava signaali Kulutettua polttoaineen määrää päivitetään jatkuvasti ja siitä lasketaan hetkelliset kulutukset ja kokonaiskulutukset 2.1.3 osiossa esitetyllä tavalla. Ruiskutuksen loppuminen 1 todetaan asettamalla kohdassa 2. Timer1:n Compare Match A laukeamaan noin 500 millisekunnin päästä nousevasta reunasta. Jos Compare Match A ehtii laueta, tiedetään että ruiskutus on loppunut ja hetkellinen kulutus voidaan asettaa nollaksi. 3.4.3.2. Matkan ja nopeuden mittaaminen Matkan ja nopeuden mittaamiseen käytetään 16-bittistä ajastinta (Timer1) ja ulkoista keskeytystä, joka on kytketty optoerottimien kautta nopeussignaaliin. Kuva 10. Nopeussignaali Jokaisella nousevan reunan keskeytyksellä vähennetään ajastimen arvosta edellisellä keskeytyksellä tallennettu ajastimen arvo. Tästä saadaan laskettua pulssien välinen aika, ja kun tiedetään paljonko ajoneuvo etenee kahden pulssin aikana, voidaan laskea ajoneuvon nopeus. Keskeytyksessä kasvatetaan myös tarvittavia kokonaismatkamuuttujia, joita tarvitaan muualla. Nopeuspulssin loppuminen todetaan samalla tavalla kuin ruiskusignaalin loppuminen, ajastimena käytetään vain Compare Match B yksikköä. 1 Esimerkiksi moottorijarrutustilanne

27 4. Testaus 4.1. Pöytätestaus Pöytätestaus aloitettiin välittömästi elektroniikan valmistuttua. Aluksi testauksessa oli apuna funktiogeneraattori, jolla sai generoitua ruisku- tai nopeuspulsseja. Testauksessa tarvittiin kuitenkin kahta eritaajuista signaalia yhtä aikaa, mitä ei yhdellä funktiogeneraattorilla voinut toteuttaa. Funktiogeneraattoreiden tilalle rakennettiin yksinkertainen ruisku- ja nopeussimulaattori, jolla oli mahdollista simuloida molempia signaaleja yhtä aikaa. Ilman kyseistä simulaattoria testaaminen olisi ollut erittäin haastavaa ja aikaa vievää. 4.1.1. Ruisku- ja nopeussimulaattori Simulaattori on toteutettu kahdella NE555 ajastinpiirillä ja muutamalla oheiskomponentilla. Simulaattori tuottaa nopeussignaaliksi pelkkää kanttiaaltoa, jonka taajuutta voi säätää 5-200Hz välillä. Ruiskusignaalin taajuutta voi säätää noin 10-90Hz välillä ja kanttiaallon pulssisuhdetta 5-95%. Simulaattorin kytkentäkaavio löytyy liitteestä 7. Kuva 11. Ruisku- ja nopeussimulaattori

29 4.2.1. Polttoaineen kulutus Ajotietokone mittasi polttoaineen kokonaiskulutusta tankkauksien välillä ja tätä verrattiin tankkauksen yhteydessä tankattuun polttoainemäärään. Polttoainetankki pyrittiin aina tankkaamaan samasta pistoolista ja samaan täyttöasteeseen, jotta tulokset olisivat verrattavissa. Näistä arvoista saatiin laskettua korjauskertoimet, eli polttoaineruiskujen nousu- ja laskuajat, jolloin ruiskuilla on eri tuotto kuin täysin auki ollessaan. Korjauskertoimet ohjelmoitiin ajotietokoneeseen, ja seuraavalla tankkauskerralla arvoja tarkennettiin. Kolmen tankkauskerran jälkeen ajotietokone pääsi ±0.1 litran tarkkuuteen, mikä on tässä käytössä täysin riittävä. 4.2.2. Nopeus ja matka Nopeuden testaamiseen käytettiin Tiehallinnon rakentamia nopeusnäyttöjä 1 Oulun alueella sekä GPS vastaanotinta. Nopeuden virheeksi voidaan arvioida ±0.5 km/h 100km/h nopeudessa. Pienin mahdollinen nopeus, mitä ajotietokone voi näyttää, on 5km/h ja suurin noin 200km/h 2 Matkan mittauksen testaukseen käytettiin auton omaa matkamittaria, toisen auton matkamittaria sekä GPS vastaanotinta. Autoilla ajettiin samat matkat (yli 200km) GPS:n ja ajotietokoneen mitatessa matkaa. Mittaustulokset olivat yhteneviä, joskin autojen omien matkamittarien tulokset olivat hieman eriäviä. Matkan virheeksi voidaan arvioida yli sadan kilometrin matkalla ±0.1 km. 4.2.3. Virrankulutus Virrankulutukset mitattiin käyttäen yleismittaria. Ajotietokoneelle syötettiin ruisku- ja nopeuspulssia simulaattorilta. Tilanne Näyttö päällä (50% pikseleistä) Näyttö pois Virrankulutus 60mA 10mA 4.2.4. Muita huomioita Ajotietokone on toiminut kovilla pakkasilla (-32 ) moitteetta, eikä näytössä ole ollut minkäänlaista tahmeutta, kuten normaaleilla nestekidenäytöillä. Käyttöliittymä on toiminut myös hyvin, ja sieltä löytää nopeasti tarvitsemansa tiedon. 1 Nopeusnäytöissä on suuria eroja eri paikkakuntien välillä (esim. Oulu ja Kajaani) 2 Suurin ja pienin arvo riippuu renkaan koosta

30 5. Jatkokehitys Tähän kappaleeseen on listattu isompia kokonaisuuksia, joita ei toteutettu ajotietokoneen tässä vaiheessa, vaan jätettiin toteutettavaksi tulevaisuudessa. 5.1. Varashälytin Varashälyttimen tarkoituksena on ilmoittaa käyttäjälle, jos joku tunkeutuu autoon. Elektroniikkaan toteutettiin seitsemän sisääntuloa (3.2.5), joista jonkin maadoittuminen laukaisisi hälytyksen. Maadoittavia osia voisivat olla esimerkiksi kytkimet ovissa, tärinäanturi ja mikroaalto- tai ultraäänitutka. Hälytys voisi olla niin sanottu hiljainen hälytys, jolloin ajotietokone soittaa tai lähettää tekstiviestin käyttäjälle tunkeutumisesta. Ajotietokoneeseen voisi olla myös kytkettynä sireeni, joka mahdollisesti karkottaisi tunkeutujan. 5.2. Ulkoinen EEPROM muisti Ulkoiseen EEPROM muistiin on tarkoitus kerätä tietoa ajetuista matkoista, sekä tankkauksista. Tiedot voisi sitten purkaa tietokoneelle taulukkomuotoon, jolloin niiden analysointi olisi helppoa. Ulkoiseen muistiin voisi myös tallentaa mitattuja välimatkoja, joita voisi hyödyntää ETA laskennassa, sekä GPS:ltä saatuja koordinaattitietoja myöhempää tarkastelua varten. 5.3. Radiomoduuli Radiomoduulin tarkoituksena olisi toimia linkkinä käyttäjälle (esimerkiksi datan siirtämistä varten PC:lle) tai vastaanottamaan komentoja (esimerkiksi käyttäjän avaimenperästä 1 ) 5.4. GPS/PC-liitäntä GPS/PC-liitäntään voi liittää joko PC:n tai GPS-laitteen. Liitäntää voisi käyttää tallennetun datan siirtoon PC:lle tai vaikka reaaliaikaisen mittausdatan tulostamiseen PC:n näytölle. GPS-liitäntä on suunnitelu näytöttömiä GPSmoduuleja varten, jotka syöttävät NMEA-dataa sarjamuotoisena ulos. Ajotietokone voisi sitten tulostaa NMEA-dataa näytölle ja tallentaa reittipisteitä EEP- ROM:lle myöhempää tarkastelua varten. 5.5. Analogia- digitaalimuunnin Lämpötilojen mittaamiseen on varattu neljä ADC tuloa, joihin voi kytkeä esimerkiksi PTC vastukset. Näillä vastuksilla voidaan mitata lämpötiloja auton eri 1 Keskuslukituksen ohjaus, varashälyttimen ohjaaminen

31 osissa, esimerkiksi sisä- ja ulkolämpötilaa, jäähdytysveden lämpötilaa tai vaikka öljyn lämpötilaa. ADC:llä voidaan mitata myös muita jännitelähteitä, kuten lambda-anturia, joka mittaa pakokaasujen jäännöshappipitoisuutta. 5.6. I 2 C-väylä I 2 C-väylään voisi liittää esimerkiksi relekortin, jonka avulla voisi ohjata toimintoja autossa, vaikkapa keskuslukitusta. Muita antureita voisivat olla esimerkiksi tarkat lämpötila-anturit, paineanturit, kosteusanturit, nestepinnan korkeusmittarit 1. 1 http://j-ware.no-ip.com/projects/liquidlevelmeter.php

32 6. Yhteenveto Ajotietokoneen ideana on mitata eri suureita, esimerkiksi polttoaineen kulutusta, ajoneuvosta. Kuljettaja voi analysoida mitattuja suureita, jolloin normaalista poikkeava toiminta näkyy välittömästi ja syitä poikkeavaan toimintaan voidaan alkaa etsiä ennenkuin jotain vakavaa tapahtuu. Valitut komponentit ovat toimineet loistavasti, vaikkakin pientä epäilystä oli mikrokontrollerin jaksamisesta suuren kuorman alla. Jos mikrokontrolleri ei olisi pystynyt hoitamaan tehtäviään, olisi sijalle laitettu jokin ARM7-pohjainen 32- bittinen mikrokontrolleri. Laitteeseen valittu PLED-näyttö on osoittautunut erittäin hyväksi komponentiksi, eikä vastaavaa olisi voitu saavuttaa normaaleilla LCD-näytöillä. Ajotietokone rakennettiin omaan käyttöön jossa se on täyttänyt odotukset toivotulla tavalla. Laitteen suorituskyky ja mittaustarkkuus ovat olleet riittävän hyviä. Päivittäisessä käytössä on ollut mukava seurata polttoaineen kulutusta ja parantaa ajotapaa polttoaineen säästämiseksi. Ajotietokoneen käytettävyys on ollut hieman hankalaa näppäimien puutteellisista merkinnöistä johtuen. Projektina ajotietokone ei tule koskaan olemaan täysin valmis, koska aina löytyy uusia ideoita ja pientä parannettavaa vanhoissa asioissa.

33 6.1. Ominaisuudet Tähän on listattu ominaisuuksia, jotka olivat kirjoitushetkellä (29. maaliskuuta 2007) toteutettu Nopeus Matka Hetkellinen nopeus Keskinopeus Huippunopues Kokonaismatka Lyhyen ajan matka (nollautuu automaattisesti kolmen tunnin päästä ajoneuvon pysäytyksestä) Kolme kappaletta matkamittareita Kulutus Hetkellinen kulutus l/h ja l/100km Kokonaiskulutus l ja l/100km Tankkauksien välinen kulutus Kuuden viimeisen ajon näyttö Ajettu matka Kulutettu polttoainemäärä Keskikulutus Käyttäjäkohtaiset tiedot Ajettu kokonaismatka Kulutettu polttoainemäärä Keskikulutus Ajoaika Tankkauksien seuranta Arvioitu saapumisaika (ETA) Sekuntikello väliajalla

34 7. LÄHTEET [1] Pohjolainen, Seppo (2001) 307 Kytkentää.

35 8. LIITTEET Liite 1 Liite 2 Liite 3 Liite 4 Liite 5 Liite 6 Liite 7 Liite 8 Ajotietokoneen kytkentäkaavio Mikrokontrollerin IO pinnijako Osaluettelo ja materiaalikustannukset Ajotietokoneen valoitusmaskit Ajotietokoneen osasijoittelukuva Tilasiirtymät Simulaattorin kytkentäkaavio Datalehdet

Liite 1 Ajotietokoneen kytkentäkaavio 36

Liite 1 Ajotietokoneen kytkentäkaavio 37

Liite 1 Ajotietokoneen kytkentäkaavio 38

Liite 1 Ajotietokoneen kytkentäkaavio 39

Liite 2 Mikrokontrollerin pinnijako 40 Portti Pinni I/O Kuvaus Port A 0 I/O Näytön datalinja 0 1 I/O Näytön datalinja 1 2 I/O Näytön datalinja 2 3 I/O Näytön datalinja 3 4 I/O Näytön datalinja 4 5 I/O Näytön datalinja 5 6 I/O Näytön datalinja 6 7 I/O Näytön datalinja 7 Port B 0 O Näppäimistön LOAD 1 O Näppäimistön kellosignaali 2 I Näppäimistön data 3 O Radiopiirin datan kellosignaali 4 O Radiopiirin Power Up 5 O Radiopiirin Chip Enable 6 O Radiopiirin Chip Select 7 I/O Radiopiirin Data Port C 0 O Näytön Enable 1 O Näytön RS 2 O Näytön Reset 3 O Näytön RW 4 O Näytön Chip Select 1 5 O Näytön Chip Select 2 6 O Näytön käyttöjännitteen ohjaus 7 I/O Port D 0 I Ruiskujen signaali 1 I Nopeus signaali 2 I UART0 datan RxD linja 3 O UART0 datan TxD linja 4 O ADC kanavan valinta multiplexerille (A) 5 O ADC kanavan valinta multiplexerille (B) 6 O ADC kanavan valinta multiplexerille (C) 7 I/O Testipiste Port E 0 I UART1 datan RxD linja 1 O UART1 datan TxD linja 2 I/O I 2 C Datalinja 3 O I 2 C Kellolinja 4 I Radiopiirin DR1 linja 5 I Ulkoinen hälytys 6 I Kierrosluku signaali 7 I Näppäimistön keskeytys

Liite 2 Mikrokontrollerin pinnijako 41 Portti Pinni I/O Kuvaus Port F 0 I/O Ei käytössä 1 I/O Ei käytössä 2 I/O Ei käytössä 3 I ADC linja multiplexeriltä 4 I/O JTAG ohjelmointiliitin 5 I/O JTAG ohjelmointiliitin 6 I/O JTAG ohjelmointiliitin 7 I/O JTAG ohjelmointiliitin Portti Pinni I/O Kuvaus Port G 0 I Ulkoinen signaali tasonmuuntimelta 1 I Ulkoinen signaali tasonmuuntimelta 2 I Ulkoinen signaali tasonmuuntimelta

Liite 3 BOM 42 Category Quantity Reference Value á Price Total Price Resistors 22 R1-R8, R10, R11, 10k 0,05e 1,10e R13, R15, R16, R18, R19, R21-R24, R26, R27, R37 4 R12, R25, R28, R29 21k 0,05e 0,20e 3 R14, R17, R20 640 0,05e 0,15e 4 R30-R33 65k 0,05e 0,20e 1 R34 100k 0,05e 0,05e 2 R35, R36 0.1 0,05e 0,10e Capacitors 2 C22, C23 22pF 0,10e 0,20e 4 C1, C2, C18, C31 10nF 0,20e 0,80e 12 C7, C10, C15-C17, 100nF 0,20e 2,40e C19-C21, C24, C25, C27-C29 3 C3-C6, C13, C14, 10uF 0,15e 0,45e C30 1 C8 220uF 0,15e 0,15e 1 C9 100uF 0,15e 0,15e IC 1 U1 ATMEGA64 11,00e 11,00e 2 U2, U12 4021 1,00e 2,00e 1 U3 TLP521-4 2,00e 2,00e 1 U4 PLED-LDM- 30,00e 30,00e 12864-LO4 1 U6 MAX3232 3,00e 3,00e 1 U7 74HC30 0,50e 0,50e 1 U8 MAX604 4,00e 4,00e 1 U9 7805 2,50e 2,50e 1 U11 24LC64 2,00e 2,00e 2 U13, U17 40109 1,00e 2,00e 1 U14 4051 0,50e 0,50e 1 U15 TLC274 2,50e 2,50e 1 U16 TLC272 1,65e 1,65e Transistors 3 Q1-Q3 2N3906 0,15e 0,45e 2 Q4, Q6 2N3904 0,15e 0,30e FET 3 M1-M3 BS170 0,60e 1,80e Diodes 1 D2 5.1V 0,20e 0,20e 5 D3, D4, D6-D8 1N4004 0,10e 0,50e 16 D5, D9-D23 1N4148 0,10e 1,60e Miscellaneous 1 J1 AVR-JTAG- CONN 0,05e 0,05e

Liite 3 BOM 43 8 J2, J12, J13, J15, CONN-H2 0,05e 0,40e J17, J20,J26, J27 1 J3 CONN-H8 0,05e 0,05e 4 J4, J10,J24, J25 CONN-H4 0,05e 0,20e 6 J5, J9, J11, J23, J28, CONN-H3 0,05e 0,30e J32 2 J6, J21 PIN 0,00e 0,00e 2 J7, J8 CONN-H20 0,05e 0,10e 1 J14 ERICSSON- 0,00e 0,00e CONNECTOR 3 J18, J19, J22 CONN-H6 0,05e 0,15e 2 J29, J31 JUMPER 2 PIN 0,05e 0,10e 1 J33 NRF2401-0,60e 0,60e SMALL-CONN 1 L1 10uH 0,50e 0,50e 3 RP1-RP3 RESPACK-8 0,35e 1,05e 1 SW1 MAX4522 1,00e 1,00e 16 SW17-SW21, SW23- PUSHBUTT 0,30e 4,80e SW26, SW28-SW31, SW33-SW35 1 X1 8 MHz 1,30e 1,30e 1 X3 XTAL32 0,80e 0,80e Total 85,85e

Liite 4 Valoitusmaskit 44 Päälevy, yläpuoli, 1:1

Liite 4 Valoitusmaskit 45 Päälevy, alapuoli, 1:1

Liite 4 Valoitusmaskit 46 Näppäimistö, yläpuoli, 1:1 Näppäimistö, alapuoli, 1:1

Liite 5 Osasijoittelukuvat 47 Päälevyn komponenttien sijoittelu

Liite 5 Osasijoittelukuvat 48 Näppäimistön komponenttien sijoittelu (yläpuoli) Näppäimistön komponenttien sijoittelu (alapuoli)

Liite 6 Tilasiirtymät 49

Liite 7 Simulaattorin kytkentäkaavio 50

Liite 8 Datakirjat 51 Mikrokontrolleri ATmega64 http://www.atmel.com/dyn/resources/ prod_documents/doc2490.pdf Näyttö PLED-LDM- http://www.pacicdisplay.com/ldm/ldm-12864-l04.pdf 12864-LO4 RS-232 Tasonmuunnin MAX3232 http://datasheets.maxim-ic.com/en/ds/max3222- MAX3241.pdf Analoginen kytkin MAX4522 http://datasheets.maxim-ic.com/en/ds/max4521- MAX4523.pdf 3.3V Regulaattori MAX604 http://datasheets.maxim-ic.com/en/ds/max603- MAX604.pdf Operaatiovahvistin TLC274 http://focus.ti.com/lit/ds/symlink/tlc274.pdf Operaatiovahvistin TLC272 http://focus.ti.com/lit/ds/symlink/tlc272.pdf FET BS170 http://www.fairchildsemi.com/ds/bs/bs170.pdf 8 ch. NAND 74HC30 http://focus.ti.com/lit/ds/symlink/cd74hc30.pdf 8-bit Siirtorekisteri 4021 http://www.fairchildsemi.com/ds/cd/cd4021bc.pdf Analoginen multiplexeri 4051 http://www.fairchildsemi.com/ds/cd/cd4051bc.pdf Tasonmuunnin 40109 http://focus.ti.com/lit/ds/symlink/cd40109b.pdf