soodan sivut

arkisto

237 kirjotelmaa.

avainsanat

Binäärikellon kyhääminen on ollut jo vaikka kuinka kauan ajatuksissa. Tai no, ei oikeastaan. Aina nähdessäni sellaisen jossain nettikaupassa (binääri- tai binary-sanoilla löytyy mm. thinkgeekistä, puljusta ja mulletoi.comista) kylläkin ajattelen, että onpas kallis, moinen pitäisi kyhätä itse. Nyt sitten vain tuli jostain mieleen että voisi kyhätä semmoisen kun kaviaari tuli kylään pre-assyille ja halusi itsekin vääntää mikrokontrollereilla, tjsp. Äkkiäkös moisen kyhäsi, pari päivää ei ole paljon ottaen huomioon väsäystyylini ja sen, että oli ensimmäisiä mikrokontrollerikokeilujani.

Kellon aivoina on atmelin attiny2313-mikrokontrolleri. Ja tosiaan tiedoksi niille, jotka eivät tiedä mitä binäärikello tarkoittaa, niin se on kello joka näyttää ajan jollain lailla binäärinä eli kaksijärjestelmässä eli ykkösinä ja nollina, eli silleen että sitä on tosi vaikea lukea ja antaa käyttäjälleen (ehkä liiankin) nörttimäisen olemuksen. Tässä tapauksessa yksi ledi vastaa yhtä bittiä, päälläolo on 1 ja sammuksissa 0. Tunnit saa viidellä ledillä ilmaistua (23:een, isoin luku jota siinä joutuu näyttämään, tarvitaan viisi bittiä), minuutteihin tarvitaan kuusi. Bonuksena on vielä yksi erillinen sekuntiledi joka näyttää sekuntien alimman bitin, eli on päällä joka toinen sekunti ja joka toinen pois.

Rakenteellisesti vimpain on tosi simppeli - mikrokontrollerin i/o-nastoissa on ledejä etuvastuksien kera ja yhden laskurin kellosisääntulossa 32768 hertsin kellokiteen ympärille kyhätty oskillaattori johon wyrm ystävällisesti opasti ircnetissä #elektroniikka-kanavalla, mokoma kontrolleri kun ei hyväksy omaksi kiteekseen noin alhaisen taajuuden omaavaa kidettä eikä muita sattunut olemaan käsillä. Lisäksi on kolme nappia joista yksi kasvattaa tunteja ja toinen minuutteja jotta kellon voi säätääkin, ja kolmatta painaessa ledit palavat - normaalisti pois päältä jotta patterit kestäisi pidempään. Tunti- ja minuuttisäätönappien rinnalla on 10 nF konkat debounce-helpotukseksi.

Kyhäsin hommelin verolle kuten kuvista näkyy. Tilan halusin toki optimoida kuten aina, ja pienen ajattelun jälkeen huomasin että kyllähän tuo ranteeseen mahtuu hyvin. Levyn nurkissa on vähän turhankin paljon tilaa. Kätevästi löytyi hihnakin jostain hyllyn perältä, kiinnitin sen työntämällä rautalankaa hihnan päiden oleviin reikiin ja siitä verolevyyn kiinni. Mokoma kyllä sotii teksteineen tämän laitteen nörttimäistä ideaa vastaan, siinähän lukee "sports watch". "Water resist" -teksti ei myöskään oikein pidä paikkaansa...

Ihan kiva laite ottaen huomioon suunnittelun puutteen ja ajan vähyyden ja sen, että kyhäsin mokoman lähinnä nurkissa lojuvista vimpaimista parissa päivässä tavoitteena saada se ranteeseen assemblyille 2007, missä onnistuinkin. Hinta osille olisi ehkä hieman reilut viisi euroa (plus jotkut mitä lojui nurkissa, esim. nappulat juotin vanhasta videonauhurista, ja rannekekin maksaa varmaan ainakin useamman euron jossakin). Nappipariston olisin laittanut AAA-pattereiden sijaan, mutten ehtinyt keksiä sille sopivaa koteloa johon johdot saisi kunnolla kiinni. Ensi assyille voisi yrittää mm. kyhätä piirilevynväsäämislaitteiston jotta saisi jonkun pienemmän smd-piirin käyttöön (verolevylle vähän hankala juottaa moisia), käyttää pienempivirtaisempaa piiriä jotta patteri(e)n elinaika olisi vieläkin pidempi ja samalla sellaista joka toimii suoraan kellokiteellä, käyttää nappiparistoa sekä vaikka yrittää mahduttaa koko systeemin tavallisen kellon kokoiseen tilaan. Vähän hankala tämä on näin isokokoisena...

Varmaan joku haluais kyhätä samankaltaisen vimpaimen ja ruinaa ohjeita, mut en mä jaksa tehdä kun tuon avr:n ohjelmoimisessakin tulis varmaan ongelmia joka toisella epäosaajalla. Kuvasta näkee suurin piirtein missä nastoissa ledit ovat, kellosignaali tulee T0:aan ja kideoskun kytkikseen on linkki tuolla ylempänä. Softan voin kuitenkin antaa jos siitä sattuis jollekin olemaan hyötyä vaikkei kommentoitu olekaan - alle sata riviä, tuon toiminnan ymmärtää aika helposti jos on vähänkään kokenut koodaaja. Koodi ensin laittaa kaikki ledit päälle järjestyksessä vuorotellen ja sitten alkaa saada keskeytyksiä ajastinsysteemiltä ja laskee sekunteja ja tutkii nappeja. Käänsin tuon avr-gcc:llä ja poltin avrdudella, avr:n fuset ovat oletukset. Jotta ledit saisi kytkikseen mahdollisimman simppelisti niin koodia joutui vähän haksoroimaan - bittiledit eivät ole ihan synkissä muuttujien kanssa, mutta bittien vääntelyhän on mukavaa aivojumppaa (katso koodin disp-funktio ja attiny2313:n datasheetistä nastajärjestys).

24 kommenttia

Oma kommenttisi

Mielipide tämän sivun asiasta? Kirjoita toki. Älä raapusta kuitenkaan ihan asiattomia juttuja.

Jos on yksityisempää asiaa, tarkkaa kysyttävää tai aihetta pidemmälle keskustelulle, käytä yhteydenottolomaketta kommentoinnin sijaan.

Hölmöt kommentit saatetaan moderoida pois jälkikäteen.

Nimimerkki:

Spammibottiesto: Mikä on seitsemän ja yhden erotus? (vastaus numeroina)