tiistai 13. toukokuuta 2014

Picaxe-projekti: Peltier-toiminen arkku, osa 4 - Ohjelmointi, testaus ja viimeistely

Uusi päivä sähkötyön parissa. Tänään perjantaina (9.5.) tämän viikon tehotyöskentely alkoi jo tuntua. Olen ollut viisi täyttä päivää pajalla kahdeksasta puoli kahdeksaan illalla, joten pajatunteja alkaa olla tältä viikolta jo noin 60. Pääsin vihdoin työskentelemään sähköisen osan parissa.. mutta jälleen yksin, vaikka parityötähän tässä taidettiin olla tekemässä. Kyllähän tämä aika lailla korpesi, mutta toisaalta yhteinen tavoite oli saada työ ajoissa valmiiksi, eikä sinänsä asian murehtiminen auttanut asiaa. Täytyi vain tehdä työtä eteenpäin. Olimme edellispäivänä testanneet peltier-elementin toimivuuden ja juottaneet loput, johtojen päihin tulevat komponentit paikoilleen. Peltier kävi melko kuumana, joten kunnon jäähdytys tulisi varmasti tarpeeseen.

Aloitin aamun lämpötila-antureita kalibroimalla. Picaxe programming editor-ohjelmassa on debug-komento, jolla tietyn anturin arvot saa näkyviin näytölle numeerisina arvoina. Olimme hankkineet digitaalisia lämpötila-antureita, joten ohjelmassa täytyi käyttää readadc-komennon sijaan readtemp-komentoa. Määrittelin myös kummallekin anturille muistipaikat. Antureiden kalibrointi tapahtui yksinkertaisen ohjelman avulla:

alku:
readtemp 0, b1 'lue lämpötila-anturin h1 arvo (input 0) muistipaikasta b1'
debug 'näytä arvo näytöllä'
pause 500 'odota 500 millisekuntia'
goto alku 'palaa alkuun'

Tarvitsin lisäksi lämpömittarin, jotta pystyisin vertaamaan lämpötiloja ja anturien arvoja. Kokeilin aluksi keittää vettä vedenkeittimellä, jonka jälkeen laitoin lasisen lämpömittarin veteen. Kun lämpötila oli noussut, laitoin lämpötila-anturin mittarin lähelle ja kirjasin lämpötilan ja sitä vastaavaan numeerisen arvon näytöltä ylös. Vedenkeitin ei kuitenkaan oikein toiminut tässä, joten hain kuumailmapuhaltimen. Laitoin anturin ja mittarin pöydälle vierekkäin ja puhalsin kuumaa ilmaa puhaltimella näihin. Lämmitin mittarin 70 asteeseen asti, sillä ajattelin, että lämpö tuskin nousee ainakaan tuota korkeammaksi peltierin kuumalla puolella. Toisaalta en halunnut rikkoa anturia lämmittämällä sitä liikaa. 

Kirjasin arvot ylös. Tämän jälkeen hain alumiinilevyn palan ja laitoin sen hetkeksi pakastimeen. Kun levy oli ollut jonkin aikaa pakastimessa, otin levyn ja asetin sen puisen leikkuulaudan päälle. Sen jälkeen laitoin lämpömittarin ja anturin kylmän levyn päälle ja mittasin jälleen arvoja. Alumiinilevy lämpesi kuitenkin melko nopeasti, joten hain vielä metalliputken pätkän, laitoin sen pakastimeen ja toistin mittauksen. Tämän jälkeen tein vielä samat mittaukset toiselle lämpötila-anturille.

Nyt mittarit oli kalibroitu, joten pääsin suunnittelemaan ohjelmaa. Olimme aiemmin päättäneet työparini kanssa muuttaa arkun toimintoja siten, että manuaaliset kytkimet vähenisivät, ja laitteen digitaalisuus korostuisi. Muutimme suunnitelmaamme siten, että laitteessa tulisi olemaan kaksi eri viilennylämpötilaa, "olut" ja "punaviini". Haluttu viilennysohjelma valittaisiin on-ei-on-tyyppisellä kytkimellä, jonka saimme Janilta. Olimme tilanneet vain on-ei-kytkimiä, sillä ajattelimme aluksi käyttää kytkimiä lisäviilennyksen kytkemiseen. Tämä tuntui kuitenkin loppujen lopuksi hölmöltä, joten muutimme suunnitelmaa. Lopullisessa suunnitelmassa toinen lämpötila-anturi mittasi sisätilan viilenemistä ja toinen peltierin kuuman puolen lämpötilaa. Vihreä ledi syttyy olut-ohjelman merkiksi ja punainen ledi punaviini-ohjelman merkiksil. Jos kuuma puoli lämpenisi liikaa, laitetuuletin kytkeytyisi päälle. Kun sisätila jäähtyy riittävästi ja saavuttaa halutun arvon, valitun ohjelman ledi alkaa vilkkua. Jos ohjelmaa ei sammuteta, alkaa summeri soida tietyn viiveen jälkeen. 

Ensimmäistä kertaa ohjelmamme alkoi tuntua jokseenkin loogiselta. Olimme tehneet työtä harvakseltaan, joten yleensä joka kerta jouduimme muistelemaan, mitä olimme viimeksi suunnitelleet. Teimme toki jonkin verran muistiinpanoja mutta tiheämpi työskentely ja tarkemmat muistiinpanot eivät olisi olleet haitaksi. Nyt laitteen toimintaperiaate oli selvä, mutta se täytyi osata koodata ohjelmaksi. Tästä minulla ei ollut kokemusta, joten alkuun pääseminen tuntui hankalalta. Löysin (tai ymmärsin vasta etsiä) tätä kirjoittaessani Internetistä lisätietoa picaxesta. Löysinkin eräältä foorumilta melko kattavan selvityksen siitä, kuinka picaxe toimii ja miten sitä ohjelmoidaan. Tämä olisi kannattanut lukea ehdottomasti ennen ohjelmointia, ei sen jälkeen. Tietoa picaxesta voit lukea täältä:

http://www.ruuvipenkki.fi/foorumi/viewtopic.php?f=15&t=532

Liitin ohjelmointiliittimen paikoilleen, kytkin laitteeseen virrat ja aloin koodata ohjelmaa. Vaikka usein ajatellaan, että digitaaliset laitteet pystyvät moneen asiaan yhtä aikaa, se ei ole totta. Oikeasti kyse on vain useista erillisistä toiminnoista peräkkäin. Asiat vain tapahtuvat niin nopeasti, ettemme tajua, että ne ovat itse asiassa peräkkäisiä toimintoja. En ollut osannut ajatella tätä aiemmin mutta nyt ohjelmoidessa jokainen haluamani toiminto piti ohjelmoida erikseen. Lisäksi ohjelmaan täytyi koodata kaikki mahdolliset vaihtoehdot. Jos kytkin oli asennossa 1, mitä tapahtuisi. Entäs jos kytkin olisikin asennossa 0, mitäs sitten tapahtuisi. Näin savolaisena "suattaapi tuo olla taikka suattaapi olla olemattakin"-ajattelu ei sovellu digitaaliseen maailmaan. Ehkä me savolaiset olemme enemmän analogista väkeä, sillä analogisessa maailmassa vaihtoehtoja on enemmän kuin digitaalisessa. Aivan kuten vastuu jää usein kuulijalle, myös analogisessa elektroniikassa arvojen muutokset ovat jatkuvia. Digitaalisessa maailmassa joku on, tai ei ole päällä. Alan pikkuhiljaa ymmärtää digitaalitekniikasta muutakin kuin sen, että se on "ykköstä ja nollaa".

Jouduin muutamaan otteeseen kysymään opettajaltamme Janilta apua, sillä en osannut ratkaista ohjelmoinnin ongelmia itse. Hankalin toteutettava asia oli viiveen määrittely. Olin ajatellut, että ohjelmoinnissa on varmaan helppoa vain asettaa jokin tietty viive parilla komennolla. Tämä ei kuitenkaan ollut aivan niin yksinkertaista. Lediä ei voinut vilkuttaa ja samalla laittaa ohjelmalle viivettä. Nämä olivat nimittäin erillisiä toimintoja, ja pelkän ledin sytyttämiseen ja sammuttamiseen tarvittiin useita komentoja. Ledi saadaan vilkkumaan tällä tavoin:

alku:
high 1 'sytytä ledi (output 1)'
wait 1 'odota sekunti'
low 1 'sammuta ledi'
wait 1 'odota sekunti'
goto alku 'palaa alkuun'
Jotta summeri saatiin soimaan tietyn ajan jälkeen, täytyi käyttää kontrollerin muistipaikkoja laskureina, jotka laskivat tietyn aliohjelman suorittamia kierroksia. Kun kierrokset tulivat täyteen, ohjelma hyppäsi seuraavaan aliohjelmaan, joka oli summeri. Olin ehkä odottanut, että ohjelma olisi hieman älykkäämpi. Näin ei kuitenkaan ollut, vaan se teki kaiken, ja ainoastaan sen, mitä komentoja koodiin laittoi. Käytin lämpötilojen asettamiseen if - then-komentoa. Kun lämpötila oli tietyn rajan yläpuolella, käynnistyi eri ohjelma kuin sen ollessa rajan alapuolella. Sain lopulta ohjelman valmiiksi, ja se tuntui jopa järkevältä. Voisiko olla niin, että laite jopa toimisi? Testauksen perusteella mikrokontrolleri otti ohjelmaa sisäänsä ja Jani totesi ohjelman olevan kunnossa. Hiphei!










Olin saanut projektin olennaisimman osan, elektroniikan toimimaan, joten jatkoin hyvillä mielin kotelointia. Arkku oli aiemmin liimattu laatikoksi. Levyjen liimaaminen ja niiden suoristaminen tukirimojen avulla oli aiheuttanut sen, että kansi ja pohja olivat hieman leveämpiä kuin arkun sivut. Niinpä menin alajyrsimelle ja jyrsin reunat tasaiseksi laakeriterän avulla. Tämän jälkeen menin pyörösahalle ja sahasin laatikon kannen erilleen. Tukirimat oli kiinnitetty ruuveilla, joten oli tärkeää muistaa missä kohtaa ne olivat, etten vain vahingossa sahaa pyörösahalla ruuvia poikki. Toisaalta kiertävä ruskea raita asetti myös sen rajoituksen, että kansi piti sahata irti niin, että lopputulos olisi symmetrisesti järkevä. Päätin sahata kannen irti juuri raidan yläpuolelta. Pyörösaha jätti taas pienet pykälät, joten jouduin jälleen hiomaan arkun ja kannen välisisiä reunoja, jotta kansi asettuisi nätisti. En oikein saanut aikaan täysin tasaista liitoskohtaa, joten päätin hieman huijata silmää. Asetin alajyrsimeen 45 asteen kulmassa olevan viisteterän ja ajoin sillä viisteet sekä kannen että arkun ylä- ja alaosaan. Tämä ratkaisu toimi aika mukavasti, sillä myös kannen ruuduissa oli samaa muotoilua. Viikko pajalla oli taputeltu ja pääsin vihdoinkin pyörähtämään kotona. Maanantaina homma jatkuisi taas viimeistelyn merkeissä.






Palasin maanantaiksi takaisin Savonlinnaan ja jatkoin sähkötyön parissa työskentelyä. Päätin hioa vielä arkun kauttaaltaan tasohiomakoneella, vaikka levyt oli jo hiottu kertaalleen aiemmin. Jouduin tosin hiomaan käsin aika voimakkaasti tasohöylän jättämiä tummia jälkiä. Sain kuitenkin jäljet häivytettyä, jonka jälkeen pintakäsittelin arkun vernissalla. Pinnasta tuli erittäin elävän näköinen ja juuri sellainen kuin olin toivonut. Vaikka laitteen sähköosa ei koskaan toimisikaan, arkku on hieno esine jo sellaisenaan.

Tiimimme oli jälleen koossa, ja ryhdyimme viimeistelemään koteloa. Osa pajan porukasta oli kokeillut ledin upottamista akryylilevyn sisään. Efekti oli hieno ja se voimistui vielä lisää, kun akryylin pinnan samensi hiomalla. Joku heitti ohimennen, että voisimme laittaa vastaavanlaiset myös omaan työhömme. Pakkohan tätäkin oli kokeilla. Onnistuessaan yksityiskohta olisi todella hieno ja epäonnistuessaan.. noh, eipä tätä tullut enää oikeastaan edes mietittyä. Hain hukkapalan paksua kirkasta akryyliä, johon porasin ensin viiden millin reiät. Tämän jälkeen porasin 15 mm:n oksaporan vastakappalererällä sylinterin muotoiset palat muovilevystä. Tämän jälkeen porasin oksaporalla kaksi reikää kannen keskelle.Tämän jälkeen otin akryylinpalat ja löin kiinni porattuihin reikiin. Hieman kyllä jännitti, sillä tässä vaiheessa ei ollut enää vara halkaista työn kantta.








Seuraavaksi jatkoimme eristyksen suunnittelua. Päätimme käyttää pajalla ollutta telttapatjaa eristeenä. Olimme myös aiemmin pohtineet erilaisten saranaratkaisujen käyttöä mutta päädyimme kuitenkin paksun vanerilevyn käyttöön. Levy tuli sen verran ulos kannesta, että se muodosti sopivan huulloksen ja kannesta tuli näin mukavan tiivis. Tässä vaiheessa huomasin, että kansi olisi sittenkin kannattanut sahata eri kohdasta, tai tukirimojen olisi pitänyt olla paksumpia. Piirilevyn komponenteista mosfetit ja regulaattori olivat liian korkeita, joten niille täytyi kaivertaa kolot sisäkanteen. Kytkimet päätimme sijoittaa kannen sivuun vierekkäin.

Laitoimme peltierin molemmin puolin metallilevyjä johtamaan kuumaa ja kylmää pois komponentista. Teimme sopivan kolon peltierille ja eristimme kuuman ja kylmän puolen toisistaan. Laitoimme myös arkun pohjaan telttapatjaa eristeeksi ja tämän päälle laitoimme metallisen levyn. Jos juomat ovat valmiiksi kylmiä, metallilevy varaa myös itseensä kylmää, jolloin viilennys ei jää ainoastaan peltierin harteille.

Vielä viimeisenä vaiheena ennen viimeisten ruuvien kiinnitystä päätin kokeilla ohjelmaa. Aiemmin ohjelman latauksessa mikropiirin oli ilmennyt jokin ongelma koodiriveillä. Lopulta tämä ratkesi sillä, että aliohjelmien nimiä lyhensi. Näin sain ohjelman ladatuksi mikropiiriin ja kokeilin toimintaa. Ihmettelin, miksi toinen lämpötila-antureista ei toiminut. Pian syy selvisikin, sillä anturin jalka oli katkennut aivan komponentin juuresta, jolloin sitä ei enää saanut edes juotettua uudestaan kiinni. Jalka oli ilmeisesti katkennut jossain vaiheessa, kun piirilevyä soviteltiin kannen sisään. Janilla olisi ollut yksi samanlainen anturi, mutta nyt huomasin, ettei peltierkään enää toiminut. Vian etsintä paljasti, että peltier oli rikkoutunut, ilmeisesti liiallisen kuumentumisen johdosta. Jossain luki, ettei peltieriä saisi käyttää ilman asianmukaista jäähdytyslevyä. "Asianmukainen jäähdytyslevymme" oli itse asiassa 3-4 päällekäistä, noin 30 x 30 kokoista metallinpalaa. Nämä palat eivät myöskään olleet kiinnityksessä peltierin kanssa, vaan ne olivat ainoastaan asetettu komponentin päälle. Ei tainnut olla ihan riittävän hyvä jäähdytys. Laite oli nyt muuten valmis, mutta kaksi sen tärkeintä osaa hajosi aivan viime metreillä. Olimme tilanneet ainoastaan yhden peltierin, joten mitään ei ollut enää tehtävissä. Pahin oli tapahtunut. Toisaalta jos jotain positiivista hakee, ohjelma toimi ja saimme työn valmiiksi juuri ja juuri näyttelyyn mennessä. Aina ei kuitenkaan onnistu niin hyvin kuin pitäisi, vaikka kuinka yrittää.



viime metreillä anturista katkesi jalka





Ei kommentteja:

Lähetä kommentti