IKEA Bekant Älypöytä Arduinolla

Henri Rantanen 1

IKEA Bekant sarjassa on sähkösäätöinen pöydän runko, jonka korkeutta voi säätää kätevästi nappuloista. Päätin hakkeroida oman pöytäni ohjauksen Arduinolla ja muuttaa sen ultimaattiseksi IKEA älypöydäksi!

Hankin jokin aika sitten moottoroidun pöydänrungon IKEA:sta työpöytääni nykyisten kiinteiden pyödänjalkojen tilalle.

Ensimmäinen pyödänrunko oli tehdasvikainen, palautin sen ja sain toimivan tilalle. Kasattuani tämän minulla oli mukavasti toimiva, korkeussädettävä työpiste.

Työpisteen korkeussäädössä oli yksi pieni perustavanlaatuinen ongelma: unohdin käyttää sitä. Ratkaisuna päätin koodata pienen ohjelman Windowsille joka muistuttaa minua asetetuin aikavälein nousemaan ylös. Kun ohjelma oli tehty, siitä oli helppo jatkaa ja hakkeroida vähän elektroniikkaa!

Pöydän ohjauksen toiminta

Yritin parhaani tökkiä yleismittarin johtoja pöydän nappulayksikön johtoihin olettaen että yksikössä olisi vain kytkimet ja ehkä muutama vastus.

Tästä ei ollut paljoa apua joten avasin painikeyksikön ja näin yllätyksen: siellähän oli oikeaa elektroniikkaa sisällä! Helpoin tapa kytkeä tämä Arduinon perään oli asentaa releet kalvokytkimien rinnalle joita voi sitten painella ohjelmallisesti.

Ikea BEKANT controller
IKEA BEKANT Ohjausyksikkö

Juotin kolme  lakattua 0,25 mm kuparilankaa kalvokytkimien liittimeen ja tein langoille vedonpoiston kuumaliimalla. Nämä langat menevät DX.com:ista ostettuun rikkinäiseen USB-kaapeliin jossa 4 johdinta. Tein kaapeliin solmun jotta siinä on jonkinlainen vedonpoisto.

Valmiiksi kasattu ohjausyksikkö

Kaikki meni nätisti alkuperäiseen koteloon, sääliksi käy seuraavaa joka tämän avaa.

Relekortin suunnittelu

Tämä boksi tekee itse nappuloiden painamisen, se koostuu Arduino Uno-kehitysalustasta, yhteensopivasta prototyyppilevystä ja kahdesta 5V miniatyyrireleestä. Lisäsin ekstrana muutamat liittimet jota sattui olemaan hyllyssä.

Relekortin kytkentäkaavio

Releet on kytketty suoraan Arduinon digitaaliulostuloihin. Tämä on mahdollista koska mämä kyseiset minireleet vaatii erittäin vähän virtaa toimiakseen.

Huomaa releen kanssa rinnakkain estosuuntaan kytketty 1N4148 diodi, jota tarvitaan jotta releen magneettikenttään varautunut energia purkautuu hallitusti diodiin eikä ammu Arduinolle jännitepiikkiä joka voisi tuhota sen.

Yksinkertainen on kaunista, ja toimii sangen hyvin!

Heitin Arduinon relekortin kanssa pöydän alapinnalla olevaan johdotustelineeseen johon se voidaan unohtaa ja antaa tehdä hiljaisesti taikansa.

Ohjelman kehitys Arduinolle

En halunnut käyttää paljoa aikaa saadakseni järjestelmän toiminaan joten kyhäsin koodin nopeasti kasaan Flowcode 6 ohjelmassa.

Flowcodessa kerrotaan ohjelmalle mitä on kytketty mihinkin pinniin, piirretään vuokaavio ja ohjelmoidaan. Flowcode generoi vuokraavion perusteella C-koodin ja kääntää sen ohjelmoitavaksi HEX-tiedostoksi. Se osaa jopa viedä koodin mikrokontrollerille asti.

In Flowcode you make component definitions, what is connected where and then draw a flow-chart. Flowcode generates the C-code and HEX-files, it even programs the Arduino for you.

Kuvat yllä on kaikki ”koodi” mitä tarvitaan jotta ohjelma toimii. Siellä ei ole turvarajoja, ei aika-keskeytyksiä. Vain minimi jotta järjestelmä toimii. Tämä vaatii vielä jatkokehitystä

Lataa koodit DropBoxista »

Käyttöliittymä

Tähän hommaan ei ollut ohjelmaa joten kirjoitin oman. Se on nimeltään
UpButt’n ja se on tarkoitettu pöydän ohjaamiseen. Siinä on ajastin joka herjaa käyttäjää vaihtamaan asentoa ajoittain, istuma- ja seisoma-aikoja voidaan muuttaa helposti slidereilla.

UpButt'n telling you to stand for next 20 minutes
UpButt’n kertoo että aika nousta seisomaan

Kun laskuri menee nollaan, ohjelma toistaa äänen ja näyttää pienen puhekuplan näytön oikeassa alalaidassa. Ohjelman asetuksista voi määrittää mihin virtuaalisarjaporttiin Arduino on kytketty.

Alaspäin-nappi vie pöytää alaspäin kunnes magneettinen rajakytkin tulee vastaan. Ylöspäin-nappi nostaa pöytää ylöspäin 18 sekuntia edellisestä asennosta (todennäköisesti istuma-asento). Ohjelma on tehty Visual Basicilla, Microsoft Visual Studio 2010:llä. Projektitiedot saatavana artikkelin lopusta.

Pöydän istuma-asennon korkeus säädetään pöydänjalkaan liimatulla kuusiokoloavaimella ja siihen kiinnitetyllä magneetilla.

Table down-position adjustment with magnets
Istumakorkeuden säätö ala-asennossa magneeteilla

Arduino lakkaa painamasta alas-nappia kun reed-kytkin aktivoituu magneetin lähellä.

”Sensorissa” on kaksi magneettia: Ensimmäisellä voidaan säätää istumakorkeutta ja alempi kertoo ohjainmodulille joka yrittää työntää pöytää lattiasta läpi että nyt riittää, ollaan jo alarajalla.

Lopputulos

Ohjausjärjestelmä toimii, tukee tervettä laiskuutta ja maksaa vähemmän kuin pizza.
Yhden klikkauksen järjestelmä on mukavampi käyttää kun painaa sormi valkoisena kovaa kalvopainiketta pitkään.
Nopea ja simppeli, hauska ja käytännöllinen, hyvä viikonloppuprojekti.

Päätelmä
  1. Seisomapöytä tekee hyvää selälle ja helpottaa toimistossa liikkumista.
  2. Optio istua tekee työpisteestä mukavamman
  3. Muistutus ja yhden klikkauksen korkeussäätö nostaa seisoma-ominaisuuden käyttöastetta.

Dokumentaatio

Ohjelma ja lähdekoodit »

UpButt’n & SmartDesk, on julkaistu Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) lisenssin alla.

What do you think of this post?
  • Like (0%)
  • Dislike (0%)
  • Surprising (0%)
  • Awesome (0%)
  • Interesting (0%)
  • Useful (0%)
  • Boring (0%)
  • Sucks (0%)
  1. A RT K A RT K

    Loistava idea toi IKEA pöytä, ja tuntuu toimivan hyvänä kyykyttäjänä 😜

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *