perjantai 16. tammikuuta 2009

Radio kylpyhuoneeseen ja saunaan

Kylppäriin ja saunaan toteutettiin edullinen äänentoisto. Kylppärin katossa on kaksi halpaa Bilteman venekaiutinta (niissä on muovikartio), saunaan kaiuttimet tehtiin Bilteman kaiuttimista ja IKEAn puisista kukkapurkeista. Saunassa kaiuttimet on lauteen alla. Mikäli saunan puolella ei musiikista niin välitä, on lauteen alla myös piilossa kytkin, jolla signaalin saa katkaistua.

Saunasta ja kylppäristä lähtee kaiutinkaapelit tekniseen tilaan, jossa on vanha autoradio. Kylppärin ulkopuolella on kolme katkaisijaa, joista yksi ohjaa "auton virtalukkoa" ja kaksi muuta on langoitettu mekaanisesti autostereon SearchUp ja SearchDown-nappeihin. Kuvassa näet tuunatun autoradion, jonka nappuloihin juotettu ohjauskaapeli pujahtaa kasettiluukusta sisään. Seinäkytkimen napeissa on impulssijouset (kts. toinen blogikirjoitus)

torstai 15. tammikuuta 2009

Tekniikka piiloon

Yksi lähtökohta taloautomaatiosuunnittelulle oli se, että tekniikka pitää olla piilossa. Emme halunneet "toimistomaisia" valopainikkeita vaan aivan perinteisen näköisen käyttöliittymän. Joissain toimistopainikkeissa on havaittu myös laatuongelmia, joten mikäpä olisikaan parempi lähtökohta kuin käyttää aivan tavallisia ELKOn katkaisimia, samoja joilla normaalisti toteutetaan perinteinen 230V järjestelmä.

Ongelma 1 : Valokatkaisin pitää olla helposti muutettavissa CAN-väyläliitäntäiseksi

Ratkaisu : Suunniteltiin piirikortti, josta lähtee kuparijohteet, jotka työnnetään tavallisen valokatkaisimen johdinaukkoihin. Samalla piirikortti kiinnittyy ja saa itselleen kytkintiedot.


Ongelma 2 : Mikäli valot kytketään päälle/pois tietokoneen ohjaamana, ei painikelevyn asennosta voi päätellä, onko valo päällä vai ei (sama ongelma tulee perinteisessä rappukäytäväkytkennässä)

Ratkaisu : Painikkeisiin asennettiin ns. impulssijouset, jotka palauttavat kytkimen aina ala-asentoon. Valaisimen päälläolo näkyy painikkeen läpi LEDillä, joka on johdettu painikkeen taakse valojohteella. Painikkeeseen on jyrsitty sisäpuolelle syvennys, joten LED-valo näkyy kytkimen läpi. Led on ohjattavissa portaattomasti 0-100%, joten samalla saadaan ominaisuus, että kytkimet löytyy myös hämärässä.

Viimeisessä kuvassa näkyy lopullinen kytkinratkaisu, jossa ylimpänä oikealla valaisin on päällä (klikkaa kuva suuremmaksi, niin saatat huomata salamalla otetusta kuvasta).

torstai 1. huhtikuuta 2004

Järjestelmän laitteisto- ja ohjelmistoarkkitehtuuri

Järjestelmän laitteistoarkkitehtuuri on suunniteltu siten, että jokaisessa laitteessa (ECU, WBSU, BusMaster) on mikrokontrolleri, johon on tehty peruskäyttöjärjestelmä joka osaa lähettää ja vastaanottaa viestejä CAN-väylään.
Laitteissa on plugandplay-tuki, jota BusMaster ohjaa. Kun väylälle liitetään laite, antaa BusMaster onbus-viestin, jolla MCU saa tiedon uudesta laitteesta. Vastaavasti jos väylältä katoaa laite, BusMaster antaa offbus-viestin.
Kussakin laitteessa on sisäänrakennettu jännitevalvonta, joka lähettää väylälle viestin, jos käyttöjännite muuttuu tai syöttösähkössä on epätasaisuutta. Näin BusMaster osaa kertoa MCU:lle väylän jännitetasot kustakin väylällä olevasta noodista. Tällä järjestelyllä havaitaan helposti, jos väyläkaapeloinnissa on epäluotettavia kohtia. Toisaalta jos jännitetasot putoavat väylän päässä liian alas, voidaan väylään lisätä lisäsyöttöjä.

Järjestelmän PC-pohjaisen MCU:n ohjelmistoarkkitehtuuri tehtiin noudattamaan täsmällisesti laitteistoarkkitehtuuria. Kustakin järjestelmän fyysisestä osasta tehtiin vastaava oliopohjainen komponentti. Näin esim. olio TWSU, TbusMaster ja TECU on peritty oliosta TCanNode. Näin TCanNode osaa tulkita kaikkien eri noodityyppien perusviestit, esim. OnBus ja OffBus-viestit, jännitemuutosviestit ja hälytykset. Esim. tästä oliosta peritty TECU sisältää toiminnot, joita perus TCanNode ei tunne (releiden ohjaus, dac-himmenninohjaus). Vastaavasti TWBSU-olio osaa tulkita nappien painamisviestejä ja ohjata WBSU:n ledejä.

PC-pohjaisen MCU:n rooli on toimia järjestelmän ytimenä. Kun väylälle liitetään laitteita, MCU alustaa muistiin vastaavia olioita. Tietokoneen muistissa on siis järjestelmän fyysisiä kytkentöjä seuraava ohjelmallinen malli. Toisaalta MCU:n säännöstöt ohjaavat, miten väylän tapahtumat saavat aikaan väylän kautta tehtäviä ohjauksia.

PC:ksi valittiin tehokas teollisuus-PC, jossa ei ole lainkaan liikkuvia osia, kuten tuulettimia.

maanantai 1. maaliskuuta 2004

Tapahtumankäsittelijän toimintamalli (MCU)

Järjestelmän konfigurointi tehdään kirjoittamalla sääntöjä. Nykyisellään säännöt kirjoitetaan tekstieditorilla, eli mitään graafista editoria ei ole toteutettu.

Kukin rele tai DA-muunnin nimetään. Nimeämistapa on määritelty tyyliin

ECU:16,1=WC
ECU:16,2=Eteinen
ECU:16,3=Olohuone

Määrityksissä =-merkin vasemmalla puolella oleva lyhytnimi (esim. ”ECU:16,1” --> ECU-noodin jonka CAN ID = 16, rele numero 1) on muissa määrityksissä käytettävä määritys --- Käyttöliittymä voi näyttää tekstinimen (WC).

Kullekin painikkeelle voidaan opettaa sääntö, mitä päällekytkentä ohjaa. Ohjauksia voi olla yksi tai useampia.

Sääntö on muotoa:
WBSU:40,1=ECU:16,1 ; ECU16,2 ; WBSU:42,1 ; WBSU:40,1

Selitys: Mikäli WBSU noodin 40 ledi 1 ei pala -> WBSU-noodin 40 painike 1 ohjaa päälle ECU-noodin 16 releet 1 ja 2. Samaisen kytkimen ledi sytytetään, mutta myös WBSU-noodin 42 napin 1 ledi sytytetään myös. Tässä tapauksessa WBSU-noodi numero 42 nappi 1 on ”masterkytkin” isommalle määrälle valaisimia (esim. koko yläkerran sammutus).

Ledin sytytys tarkoittaa myös sitä, että ko. napin ”pinoon” (pino sijaitsee MCU:lla) lisätään tieto releistä, joita on ohjattu päälle. Mikäli painetaan painiketta, jonka ledi palaa, ohjataan kaikki pinoon lisätyt releet/painikeledit 0-asentoon.

Huom! Vaikka WBSU sisältää vain 3 lediä, samaa toimintamallia voi käyttää kaikille WBSU- outputeille. On MCU:n vastuulla hoitaa tämä pinologiikka ja lähettää väylälle lediohjausviesti vain niille ledeille, joita laitteessa oikeasti on.

Huom! Esimerkkikuvissa näkyvä Web-käyttöliittymä generoidaan automaattisesti sääntökuvauksesta. Samalla kun kuvataan järjestelmän toiminta fyysisille kytkimille syntyy myös selain- ja mobiilikäyttöliittymät.

sunnuntai 1. helmikuuta 2004

Järjestelmän kuvaus

SmartPirtti on CAN-väyläpohjainen järjestelmä, jossa samassa väylässä on erilaisia noodeja:

WBSU = Wall Button Swicth Unit
ECU = Electric Central Unit
BMU = Bus Master Unit
MCU = Master Control Unit

Wall Button Swicth Unit (WBSU)

WBSU:lla on yksilöllinen CAN ID (16-48) ja se pystyy lukemaan n-kpl painikkeita. Väylälle lähetetään viesti sekä painikkeen alas- että päästötilasta. WBSU:lla on 3 ohjattavaa lediä, joiden kirkkautta voidaan säätää 0-100%.
Kuva: WBSU:n toimintamalli. WBSU:hun

Electric Central Unit (ECU)

ECU:lla on yksilöllinen CAN ID (16-48) ja se pystyy ohjaamaan 14 relettä (1-14), neljää himmennintä (DA) ja lukemaan neljää ulkoista input-tietoa.

Bus Master Unit (BMU)

BMU liittyy väylään ja se muuntaa CAN-väyläviestit esim. PC:llä käsiteltäväksi sarjaliikenneviesteiksi. Sarjaliikenteellä voidaan vastaavasti lähettää CAN-viestejä väylällä oleville noodeille ja näin ohjata esim. ECU:n releitä tai WBSU:iden ledien tiloja.

Master Control Unit (MCU) - Tapahtumankäsittelijä

MCU on laite tai ohjelma, jolle voidaan opettaa toiminnallisuuksia, mitä ohjauksia tapahtuu haluttujen tapahtumien seurauksena. Näin esim. valopainikkeen (WBSU) painaminen saa aikaan rele-ohjauksen halutulla ECU:lla sekä sytyttää valopainikkeen LEDin.
Ensimmäisessä toteutuksessa MCU:n rooli hoidetaan PC-ohjelmalla, joka on liitetty väylään BMU:lla. Kakkosvaiheessa PC:llä tehty ja testattu toimintomalli voidaan tallentaa väylällä olevalle MCU:lle, joka voi olla esim. BMU:hun tai ECU:un lisätty toiminnallisuus.

torstai 1. tammikuuta 2004

Skenaariokertomus

Seppo painaa makuuhuoneen ovenpielestä painikkeesta 1 kattovalon päälle. Painikkeen 1 ledi kirkastuu ilmoittaen, että valot on päällä. Samalla kirkastuu sängyn päässä painikkeen 10 ledi.
Seppo painaa ovenpielestä painikkeesta 2 seinävalon päälle. Painikkeen 2 ledi kirkastuu.
Seppo painaa painiketta 10. Koska siinä on kirkas merkkivalo (tarkoittaen, että valot on päällä), sammuu sekä kattovalo että seinävalo.

Sekä painike 1 että 2 on opetettu ohjaamaan myös painikkeen 10 lediä ja näin yhdellä napilla voidaan sammuttaa useita valaisimia. Painikkeen 10 päällekytkentätoiminto voi ohjata vain esim. seinävaloa, eli kyseessä on perinteistä ”nappula – valo-ohjaus”-ryhmittelyä älykkäämpi toimintamalli.

Kaikki yläkerran painikkeet voidaan myös liittää alakerrassa olevaan ”Koko yläkerta”-nappiin. Näin alakerrassa syttyy ledi kirkkaana kun yläkerrassa on yksikin valo päällä. Alakerran nappia painamalla sammuu kaikki yläkerran valot.