Ohjausjärjestelmä (eECU & eGUI)

<<<< Takaisin pajan etusivulle


Yleistä

eECU = "piirikortti" tyyppinen ohjainkortti
eGUI = "PC"

Auton saa liikkumaan jos asennettuna on pelkästään eECU. Ilman eECU:a auto ei liiku, ei ainakaan protossa käytössä olevalla moottorinohjaimella. eECU on "piirikortti", jossa ei ole käyttöjärjestelmää, näppäimistöä eikä näyttöä. Kaikkein karuimmassa versiossa eECU:n tehtävä on vain ja ainoastaan lukea kaasupoljinta ja välittää polkimen asento moottorin ohjaukselle (protossa Azure-systemsin DMOC). Sen lisäksi se voidaan yhdistää auton omaan mittaristoon ja "valehdella" mittareille tarvittavia asioita. Esimerkiksi polttoainemittari saadaan täten näyttämään akussa jäljellä olevaa latausta.

eGUI taas on "täysiverinen" PC. Käyttöjärjestelmänä Linux, rauta voi olla monenlaista. Tähän voidaan jo kiinnittää näyttö, näppäimistö ja hiiri. Tämä eGUI tarvitaan autoon silloin jos halutaan näyttää ajajalle auton omien mittaristojen lisäksi jotakin. Protoon on suunniteltu esimerkiksi jatkuvasti näytöllä olevaksi asiaksi jäljellä olevan ajomatkan näyttämää. Samoin järjestelmän konfigurointi ja joustavuus nousee uudelle tasolle jos mukana on eGUI-kone.

Protossa, ja muissakin samaa kaavaa noudattavissa "high-end" autoissa todennäköisesti on molemmat laitteet. Kevyemmissä konversioissa eGUI voidaan jättää pois. Jos näissä halutaan jotakin konfiguroida, voi eGUI:n virkaa tarpeen mukaan hoitaa esim. kannettava tietokone.

Järjestelmän eri komponenttien välistä kommunikaatiota on kuvattu alempana olevassa kaaviossa. Perusperiaatteena voi pitää sitä, että eECU on alemman tason laite, joka keskustelee suoraan auton liikkumisen kannalta oleellisten järjestelmien kanssa. eGUI taas on korkeamman tason laite, joka on olemassa ennenkaikkea auton käyttäjää varten.

eGUI on toistaiseksi tuollainen kaupasta saatava kannettava kone. Mahdollisuuksien mukaan tulevissa konversioissa kukin voi käyttää sitä eGUI-rautaa mitä sattuu edullisesti löytämään.

Alemman ja ylemmän tason osien välinen kommunikaatio

SCDv03.svg
  • Lähtökohtana on, että eECU hoitaa rautaa ja toissijaisesti vastaa eGUI:n kysymyksiin eri asioiden tilasta.
  • eGUI:lla on prosessi, joka käy kysymässä ajastetusti eECU:lta statusta eri asioista ja tallettaa tiedot kantaan.
  • Kannasta eGUI käyttää tarvitsemansa tiedot ja piirtää ne käyttäjälle esim. SVG:llä.
  • eGui-ydin on yksinkertainen palvelinprosessi, joka hoitaa käyttöliittymää ja kantaliikennettä

eECU

Tästä tarkemmin, ynnä softat softaprojekti Assemblassa

Kehitysalustat

Ohjeet eECU:n kokeiluun löytyvät Assemblan Tracin Wikistä

eGUI

eGUI-ytimestä yleisesti

Ratkaisu pohjautuu nyt Ruby + Merb yhdistelmällä tehtyyn kevyeen palvelimeen. Tällöin saadaan helposti tehtyä erilaiset rajapinnat esim. XML-muodossa. Mahdollisesti CAN-viestintä joudutaan hoitamaan muulla, alemman tason ohjelmointikielellä. Heti kun mahdollista, CAN-sanomat siirrettään tietokantaan XML-rajapinnalla ja sitä kautta ne ovat eGUI-ytimen käytettävissä. Ydin jakaa tietoa kannan kautta käyttöliittymälle tarpeen mukaan. Ytimessä voi olla erilaisia konversiorutiineita CAN-viesteille. eGUI-ytimen tietokannassa voi olla tallessa joko raakasanomat, tai jo valmiiksi konvertoitua tietoa. Jokin prosessi voi käydä silloin tällöin poistamassa tarpeettomat / vanhentuneet sanomat. Tähän riittää esim. ajatettu cron-job. Ytimen yleisrakenne on toteutettu MVC (Model View Controller) tekniikalla.

Tietokanta

Kantaratkaisu on vaihdettavissa, jotta kukin voi laittaa minkä tahansa mieleisensä tietokannan taustalle. Tekniikkana tähän on valittu sopiva ORM, joka piilottaa käytetyn kantamoottorin. Tällä hetkellä ORM:na käyttössä on Datamapper.

Tietokannassa on lähdetty liikkeelle sqlite3-tyylisestä kevyestä kannasta. Aikanaan voidaan vaihtaa käyttöön esim. Postgresql. Tietokannan kenttien määrittelyt suoraan luokkien (model) määrittelyssä. Nämä mahdollistavat tietokannan automaattisen päivityksen päivitysten yhteydessä. Tarvittaessa näiden avulla voidaan myös peruuttaa tietokanta edelliselle tasolle. Kun käytössä on DataMapper, voidaan myös erilaiset migraatiot luoda automaattisesti luokkamäärittelyjen perusteella yksinkertaiseseti komennolla "rake db:automigrate". Simulaattoriohjelmat saadaan tehtyä yksinkertaisesti ja esim. debug-sanomia pystytään lisäämään kantaan helposti muutamalla rivillä suoraan konsolista ja selaimella.

Käyttöliittymä

HTML/SVG/XHTML pohjaisen ratkaisun eduksi on luettu skaalautuvuus eri näytöille. SVG mahdollistaa elementtien nimeämisen, myös Inkscapessa (= OSS piirto-ohjelma / svg-editori) voi nimetä elementit mieleisekseen. Tämä mahdollistaa sen, että yhteisesti sovittuja elementtien nimiä voidaan hyödyntää vaikka minkälaisissa käyttöliittymissä, vaikka sitten jokainen piirtäisi omanlaisensa käyttöliittymän. Esim. voidaan sopia että toimintasädemittarin "10% toimintasäteestä jäljellä"-osion nimi on esim. "Range_procent_10" tms. ja tuo voi sitten käyttöliittymässä olla minkä tahansa näköinen elementti. Tällöin voidaan myös eriyttää käyttöliittymän suunnittelu rajapinnan / muun koodin teosta ilmeisesti helposti. Liikkeelle päästään perus-SVG:llä, ja graafikot voivat tehdä jatkossa upeat käyttöliittymät vastaavilla elementtien nimillä.

Kommunikaatiokaavio on tehty Inkscapella, alkuperäinen .svg-muotoinen tiedosto löytyy myös files-osiosta tältä sivulta.

eGUI tapaaminen

eGUI tapaamisessa luonnosteltiin asioita eGUI:n liittyen. Tapaamisen muistiinpanot löytyvät sekä PDF että SVG muodoissa.

Tietoa ja suunnitelmia eGUI:n perusnäytöistä

eGui_logic.pdf

Ajonäyttö (näyttö #1)

  • Näyttöllä näkyy jäljellä oleva ajomatka kilometreinä sekä prosentteina.
  • Jäljellä olevan matkan ennusteesta kaksi eri arviota - lyhemmältä aikaväliltä ja pidemmältä aikaväliltä lasketut arvot. Nämä näytetään ulkokehällä nuolilla.
eGui_mainscreen.pdf

Lataus (näyttö #2)

Järjestelmän inforuutu (näyttö #3)

Asetukset (näyttö #4)

Asennetut lisäkomponentit ja/tai "menu" (näyttö #5)

Ohjeet eGUIn kokeilemiseen löytyvät Assemblasta

Ellei toisin mainittu, tämän sivun sisällön lisenssi on Creative Commons Attribution-ShareAlike 3.0 License