Lopputulos. |
Vaimokulta vastasi, jotta sopiihan se.
Suunnitelmat ja alkuperäinen idea
Kytkentäkaavio. |
Projektin tavoitelista ei ollut kovin pitkä, mutta muutamia tärkeitä pointteja toki löytyi:
- erilaisia valokuvioita
- valokuviot vaihdettavissa helposti
- paino max. 15g per koru (=painavimmat korulaatikosta löytämäni korvakorut)
- allergikolle sopiva korvakorukoukku
Tarvikkeet
Projekti. |
Adafruit Gemma hoop earrings -tutoriaalin ja omien muutosteni jälkeinen osalista per yksi koru muodostui seuraavaksi:
- GEMMA
- NeoPixel -valorengas (16-valoa)
- pieni lipo-akku ja sopiva laturi
- korvakorukoukku
- säikeistä johtoa (helpompi juotettava)
- lankaa / siimaa
- kaksipuoleista teippiä
- pieni painike ohjelman vaihtamiseen
- virtakytkin
Kulutuselektroniikkaa Ikea-tyyliin - kokoa itse! |
Pienellä hakemisella löysin Phenoptix -verkkokaupan, jonka valtavan hyvä ja nopea asiakaspalvelu vakuuttivat. Samoin se, että kaikki tarvitsemani tuotteet olivat saatavilla yhden luukun kautta ja yksillä postimaksuilla. Tekemäni tilaus putosikin postiluukusta ensimmäisenä joululomaa seuranneena arkipäivänä.
Ensitesti
Yömyöhä, onneksi on valoa! |
Heti tilaisuuden tullen asensin kehitysympäristön, sovittelin osat yhteen ja latasin testiohjelman kontrolleriin. Hetken aikaa kaikki näytti hyvältä ja valot välkkyivät kuten piti. Kokeiltuani paljonko ledirengas antaa valotehoa ulos (setBrightness(255) ) , näkö meinasi lähteä.
Ledin datalehti kertoo yksittäisen värin valontuoton olevan suurimmillaan n. 1400mcd, joka vastaa varovaisen arvion mukaan n. 4,5 lumenia (=120 asteen aukeamiskulma). Kun tähän lisätään hieman matematiikkaa, voidaan todeta, että koko ledirenkaan valontuotto on täydellä teholla 16x4,5=72 lumenia. Valoa ei toki ole paljon verrattuna esim. tavalliseen 40W hehkulamppuun, mutta nämä ovat selvästi kirkkaammat kuin mitkään aiemmin näkemäni korvakorut.
Fail no1
Nii-ih, tekevälle sattuu. Ilmeisesti ledirenkaaseen päätyi testaillessa jonkinlainen virtapiikki, sillä törmäsin samaan ongelmaan kuin moni muukin adafruitin foorumeilla: ensimmäinen ledi data-in -pinnin jälkeen ei päästä ohjaussignaalia lävitseen ja lopputuloksena koko rengas mykistyy/pimenee. Kolikon kääntöpuolesta kerrottiin tällä tavalla:The NeoPixels use a rather neat buffering trick for passing data: each chip consumes the first 24 bits that it sees on the DATA-IN line, then copies all the remaining bits to the DATA-OUT line. In the process, it buffers and 'regenerates' the signal, meaning you don't see line losses no matter how many chips are in the string.
The flip side of that is that killing one chip will cut off the signal to everything beyond it. Running a jumper to the next NeoPixel re-establishes the signal.
Kokeilin vinkkiä ja kytkemällä datalinjan suoraan renkaan kakkosledin data-in -pinniin, rengas alkoi kuin alkoikin taas toimia.
Kytkentä toisen ledin data-in -pinniin. |
Foorumivihjeiden perusteella asiaa eteenpäin tutkiessani löysin internetin syövereistä erään artikkelin, jossa kirjoittaja oli tutkinut oskilloskoopin kanssa ledirenkaan datalinjaa ja huomannut sen signaalin todellakin sisältävän melko suuria piikkejä. Artikkeli antaa asiasta tarkemman selvityksen, mutta lyhyesti sanottuna datalinjan signaali ampuu noustessaan yli 1-tason ja menee laskiessaan negatiiviseksi, jolloin linjalle muodostuva piikki saattaa tehdä ledille hallaa. Kirjoittaja puhdisti datalinjan sopivalla vastuksella. Vastusarvo, joka artikkelissa tuotti parhaan lopputuloksen oli 230ohm, johon päästään kytkemällä 2kpl 470ohm 0,25W vastuksia rinnan.
Fail no2
Tuumasta toimeen. Oma koekytkentäni vastaavilla vastusarvoilla tuotti ilmeisesti todella puhtaan datalinjan, sillä kytkennän myötä myös ehjän ledirenkaan valot pysyivät mykkänä. Ilman vastuksia ehjää ledirengasta pystyi ohjaamaan hienosti.Painetta ledille. |
Kontaktoin asiasta Phenoptixin asiakaspalvelua ja parin valokuvan lähettämisen jälkeen he laittoivat minulle uuden renkaan postissa. Phenomenal service, sanoo engelsmanni: sain pitää vanhan ledirenkaan ja bonuksena Phenoptix lähetti ylimääräisen ws2812 -ledin (=varaosa) rikkinäisen renkaan korjaamisyrityksiä varten!
Kokoonpano
Kytkimien tuunausta |
Akku ja pääkytkin kasattuna. |
Akkupaketti kiinnitettynä kaksipuoleisella teipillä. |
Valmis koru edestä. |
Fail no3 ja puolen vuoden paussi
Toista korua kasatessa tapahtui suunnilleen samoin kuin ensimmäisen kanssa ja ledirenkaan ensimmäinen ledi pimeni. Uusi ledirengas saapui kyllä helmikuussa, mutta siihen mennessä projekti oli jo jäänyt hyllylle yhdessä siihen kohdistuneen mielenkiinnon kanssa.Viime kuussa vaimoni alkoi sitten kysellä, josko korut olisi mahdollista saada nyt ensi viikonloppuna järjestettävään Hope-tapahtumaan mennessä valmiiksi ja korviin.
Pieni tauko tekee terää
Eteenpäin, tuumi mummo lumessa. Otin kolvin kauniiseen käteen ja poistin rikkinäisen ledin myös toisesta renkaasta ja siirsin datalinjan suoraan kakkosledin sisääntulopinniin. Tammikuun vaikeuksien aikaan toisen korun akku-virtakytkinpaketti oli jäänyt myös kasaamatta, joten seuraavaksi tein tämän.Näiden isompien toimenpiteiden jälkeen jäljellä olikin enää sellaisia pikkuviilauksia, kuten korukoukkujen kiinnitykset ja aiemmin toteutetun ohjelmakoodin säätöjä. Aikaa tähän kaikkeen kului noin kolme tuntia.
Valmis. |
Kasvoton kaunotar ja loistavat korut. |
Jälkipuintia ja akkutesti - valot päällä
Kauanko näitä valoja sitten polttelee? Gemman mainitaan olevan "Ultra low power, draws only 9 mA while running". Toisin sanoen, pelkkää mikrokontrolleria polttelisi jopa 16 tuntia korvakoruihin tulevan 150mA akun kanssa. Aivan tällaiseen aikaan ei korvakorujen kanssa tietenkään pääse, sillä myös ledirengas vaatii ampeereita. Käytännön testissä valot ovat pysyneet käyttökelpoisella valotehon säätöarvolla (setBrightness(10) ) päällä noin 4-5 tuntia.Projektille asettamani tavoitelista tuli myös täytettyä:
- erilaisia valokuvioita (yht. 15kpl)
- valokuviot vaihdettavissa helposti (painike)
- paino max. 15g per koru ( 15,2g )
- allergikolle sopiva korvakorukoukku (jep)
Jatkokehitysidea 1: kiinnitys
Korua kasattaessa sorminäppäryys oli koetuksella, sillä koru kasataan pääasiassa langalla. Tämä ei ole kaikkein näppärin ja käytetystä langasta riippuen edes se kestävin vaihtoehto. Kevään aikana palasin tähän projektiin sen verran, että kehittelin ajatusta 3D-tulostetusta kiinnikkeestä.Kokonaispainoa tällaisille kiinnikkeille muodostuisi tulostusmateriaalista riippuen noin 2-3 grammaa. Blenderillä tekemääni 3D-mallia voisi myös vielä hienosäätää tai yksinkertaistaa, mutta osan rakenteellinen kestävyys alkaa tällöin olla koetuksella.
Korvakorujen runko. Ledirengas kiinnittyy kehälle. |
Toinen kehittelemäni toteutusvaihtoehto olisi tehdä kiinnike kahdesta erillisestä osasta, jotka asetettaisiin akun ja mikrokontrollerin ympärille. Tämä kokonaispaketti asetettaisiin sitten snap-fit -periaatteella ledirenkaan sisäkehälle puristuksiin.
Tulostuskustannukset olivat muutamasta paikasta kysellessä kuitenkin vielä hieman liian kovat, eikä Turussa ole toistaiseksi tarjolla esim. Helsingin kirjastoita vastaavaa ilmaista tulostusmahdollisuutta.
Jatkokehitysidea 2: kaukosäätö
Oikeastaan tämä kehitysidea oli osa alkuperäistä ajatusta. Miettiessäni vaihtoehtoja korvakorujen valojen ohjelman vaihtoon, pöydällä lojunut tv:n kaukosäädin antoi idean infrapuna-ohjaukseen.Verrattuna nykyiseen painikekäyttöiseen käyttöliittymään, infrapuna-ohjauksessa olisi sekä hyviä että huonoja puolia. Painikkeen ehdottomasti paras puoli on käyttöliittymän yksinkertaisuus. IR-ohjauksen hyviä puolia ovat paitsi tekniset henkselinpaukuttelu-oikeudet, mutta myös korujen helppo synkronointi ja välttyminen mekaaniselta rasitukselta. Koska mitään uutta ei auringon alta kovinkaan usein löydy, löysin toki myös Adafruit-tutoriaalin, jossa Gemma-mikrokontrolleriin liitetään IR-vastaanotin.
Huonoja puolia painikkeella toimivissa koruissa on muutama: painiketta käytettäessä jokainen muutos täytyy tehdä molempiin koruihin erikseen. Tästä seuraa paljon kliksuttelua ja ohjelman valitseminen on melko hidasta. Toinen huoleni liittyy edellä mainittuun korujen mekaaniseen kestävyyteen, mikäli painiketta painetaan useasti esim. ystäville koruja demotessa.
Kaukosäädin-käyttöisten korujen suurin epäkäytännöllisyys syntyy siitä, että ohjelman vaihtamiseksi mukana täytyisi aina olla joku tietynlainen kaukosäädin. Mikäli telkkarin kaukosäädin olisi aina hukassa tai vaimon käsilaukussa, hermohan siinä menisi. Lähinnä tästä syystä päädyin toteuttamaan korut painikkeella ohjattavina.
Haasteet ja kiertotiet
Monimutkaisen ohjelmiston toteuttaminen ilman debuggausmahdollisuutta on hieman sama asia, kuin alakerran putkiremontin toteuttaminen yläkerran suihkusuuttimen kautta. Gemmassa ei ole konsoli-ulostuloa tai sarjaporttia, josta voisi näppärästi nähdä esim. debug-tulostuksia. Sarjaporttiin tulostaminen on tietyin reunaehdoin ja ylimääräisen ohjelmakirjaston kanssa mahdollista, mutta aivan ilman säätämistä ei tämänkään vaihtoehdon kanssa selviä.Tästä johtuen kaukosäätimen lähettämien koodien lukeminen on melko vähintäänkin hankalaa. Adafruitin sivuilta löytyi kuitenkin osaratkaisu ongelmaan. IR-vastaanotin-tutoriaalissa Gemmaan kytketään FTDI-friend, jonka avulla saadaan tulostettua kaukosäätimen lähettämät heksadesimaalimuotoiset koodit käyttäjän luettavaksi. Minulla ei tällaista palikkaa ole, joten ajattelin hyödyntää käsillä olevia osia ja tehdä asiat toisella tavalla.
Suunnitelmani pohjautui seuraavaan nerokkaaseen havaintoon: kaukosäätimet lähettävät ohjauskoodinsa heksadesimaali-muodossa. Heksadesimaali -järjestelmässä käytetään 16 erilaista merkkiä (0-9 ja A-F) ja vastaavasti tilaamassani Neopixel-ledirenkaassa on 16 valoa. Ajatuksenani oli ensin lukea kaukosäätimen lähettämä koodi Gemmalla ja vilkutella sitten luettu koodi ulos ledirenkaan valojen kautta heksana. Antamalla jokaiselle valolle oman heksajärjestelmää vastaavan merkin ja tarkkailemalla valojen syttymisjärjestystä voisi kirjata tiettyä painiketta vastaavan koodin paperille muistiin. (Hieman samalla tavalla kuin esim. autojen vikakoodeja luettiin ennen OBD-lukijoiden yleistymistä, siis.
Sivujuoni: ekologinen osatilaus
Ennen käyttöliittymän lopullisen toteutustavan valintapäätöstä päätin varmuuden vuoksi tilata kaikkiin vaihtoehtoihin tarvittavat osat. Osalistalle päätyi tässä tapauksessa pari kappaletta IR-vastaanottimia (esim. Vishay TSOP38238)IR-vastaanottimet tilasin näytteenä suoraan saksalaiselta elektroniikkatukkurilta. Tilaus hoitui melkoisen kivuttomasti, mutta UPS-lähetin kanssa aikataulujen yhteensovittaminen oli vaikeaa ja siten vasta viides toimitusyritys onnistui. Jotenkin luulen, että toimitusprosessin lopputuloksena pienenpienessä paketissa saapuneilla komponenteilla on taloutemme tuotteista se kaikkein suurin hiilijalanjälki, mikäli sitä mitataan suhteessa tuotteen painoon: Filippiineillä valmistetut, Saksan kautta Suomeen lennätetyt ja viiteen kertaan Helsingin ja Turun väliä kulkeneet vastaanottimet eivät ole ainakaan ihan ekoa tekoa. Ilmaisia asioita ei taida olla olemassakaan, sillä nyt näistä "ilmaisista" ja ei käyttöön päässeistä IR-vastaanottimista taisi seurata moraalinen velvoite istuttaa edes puu ilmaston lämpenemistä hidastamaan.
Olisi toki ollut hienoa, mikäli korut olisivatkin etäohjattavat. Joku vääräleuka ehti nimittäin ajatukseni kuultuaan ehdottaa, että ohjaisin sähkövirtaa valojen sijasta korvakorukoukkuun. Näin ollen minulla olisi kuulemma maailman ensimmäinen kaukosäätimellä ohjattava vaimo.
Henkilökohtaisesti epäilin todella vahvasti suunnitelman toimivuutta, mutta mene ja tiedä. Rohkeammat kokeilkoot...
Linkit
http://learn.adafruit.com/gemma-hoop-earringshttp://learn.adafruit.com/trinket-gemma-ir-remote-control
http://www.vishay.com/docs/82491/tsop382.pdf
http://www.adafruit.com/datasheets/WS2812.pdf
http://www.eetimes.com/author.asp?section_id=36&itc=eetimes_sitedefault&doc_id=1320518&page_number=2
http://www.oh3abn.net/index.php/t1moduuli/vastukset.html
http://fritzing.org/home/
https://github.com/adafruit/Fritzing-Library
https://github.com/mikko-n/Gemma-korvakorut/
p.s. Korujen ohjelmakoodi löytyy gitHubista (https://github.com/mikko-n/Gemma-korvakorut/blob/master/gemma_earrings_sketch/gemma_earrings_sketch.ino)
Ei kommentteja :
Lähetä kommentti