Näytetään tekstit, joissa on tunniste rakentelu. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste rakentelu. Näytä kaikki tekstit

perjantai 5. lokakuuta 2018

Tanssimatto projekti - osa 2

En koskaan sitten julkaissut tanssimatto-projektilleni jatko-osaa, vaan melkein valmis kirjoitus unohtui pöytälaatikkoon. No parempi kai myöhään kuin ei milloinkaan, joten tässä se tulee nyt hieman viiveellä...

Maton kytkeminen tietokoneeseen kävi yllättävän helposti. Katsoin näistä ohjeista vinkkejä. Ja suurimmaksi osaksi vain vinkkejä, koska ohjeessa ei ollut selitetty kaikkia asioita aivan viimeisen päälle, vaan jouduin kokeilemaan asioita itse yrityksen ja erehdyksen kautta. Siksi ajattelin itse kirjoitella tähän yksityiskohtaisesti kuinka oma projektini eteni, niin ehkä joskus joku muu on samanlaista projektia toteuttamassa. Ja minä tosiaan en esimerkiksi ymmärrä ohjelmoinnista tai elektroniikasta kovin syvällisesti, vaan ihan maalaisjärjellä hommat järkeilin ja yksinkertaisella selkokielellä pyrin ne selittämäänkin.


Perusperiaate tässäkin vekottimessa on yksinkertainen. Tanssimatto on käytännössä vain rivi isoja painonappeja. Ja jos on kokemusta Arduinosta, varmaankin tietää että painonappien kytkeminen Arduinoon ja niiden ohjelmoiminen on helppo homma. Sen jälkeen pitäisi vain saada Arduino lähettämään tietokoneelle ja tanssipeleille viestiä, että nyt ois tämmöistä nappia painettu.

Itse matto on varmaankin projektin helpoin osuus. Napit ovat kaksi isoa pintaaa johtavaa materiaalia, joiden välissä on jokin pehmyttä materiaalia estämässä pintojen kosketuksen toisiinsa. Kun päälle tulee painoa (jalka), pinnat painautuvat toisiaan vasten ja syntyy kontakti. Matto minulla oli valmiina, mutta sen voi helposti rakentaa itse vaikkapa alumiinifoliosta ja pahvista, kuten alussa mainitussa linkissä on opastettu.

Aloitin projektin heivaamalla pois tanssimaton sisällä olleen piirilevyn. Se oli kiinni riviliittimellä ja sen avulla oli myös tosi kätevä yhdistää Arduino tanssimattoon.

Tanssimaton"tietokone" kuorissaan

Kuoret avattuna


Kun kotelon sisältä on piirilevy poistettu, jäljelle jää liitin josta tulee nappien signaalit. Siihen on helppo kytkeä pieni pätkä piikkirimaa joka on helppo tökätä Arduinoon kiinni.


Jokaiselta napilta tulee oma johtimensa ja yksi yhteinen iso johdin joka täytyy kytkeä Arduinon GND-nastaan. Muut johtimet kytketään I/O -portteihin ja ei ole niin väliä mikä osuu mihinin, koska ne voi ohjelmoidessa testailla tietokoneella ja koodailla kohdilleen.

Tanssimaton sisällä

Korvasin piikkiriman yhden piikin (kaikkien painikkeiden yhteinen johdin) hyppylangalla

Liitin tökätty Arduinoon. Muut yhdistyvät I/O -pinneihin, mutta nappien yhteinen johdin yhdistyyy GND:hen

Näin menee kytkentä Arduinoon. Sitten Arduino kiinni tietokoneeseen ja ohjelmaa sisään. Painonappeja Arduinossa käytettäessä pitää käyttää ns. ylösvetovastuksia. Mietin, että onko tämä aivan pakollista, koska minulla ei ollut mitään vastuksia hollilla eikä muutenkaan haluaisi kytkentään enempää osia, jotta kortti mahtuisi koteloon. Lueskelin intternetistä, että Arduinossa on sisäänrakennetut ylösvetovastukset jotka voi aktivoida koodilla (INPUT_PULLUP)

Vaihdoin koodista inputtien numeroiksi ne sisääntulot joihin maton kytkin. Sitten ajoin vain koodin sisään ja testasin. Nappeja painelemalla sarjaporttimonitoriin tuli tekstiä. Jos painoi maton vasenta nuolta, ruutuun piti tulla "l" , oikeaa painettaessa "r" ja niin edelleen. Olisi pitänyt sattua aikamoinen lottovoitto, että omat kytkentäni olisivat heti kerralla olleet vastaavanlaiset kuin instructablesin ohjeessa olleet. Painelin kaikkia nappeja ja katsoin mitä ne antavat sarjamonitoriin. Sitten vain vaihtelin koodiin mitä niiden oikeasti pitäisi antaa.

Sen jälkeen käynnistin dance_pad.py -python koodin. Python pitää olla tietysti asennettuna koneelle, että koodin voi ajaa. En itse ymmärrä pythonilla ohjelmoinnista mitään, mutta minulla oli se jo valmiiksi koneelle asennettuna, koska jotkut ohjelmat ovat sen asentamista jo aiemmin vaatineet  Siksi dance_pad.py -tiedoston kuvake näytti tältä:


Jos kuvake näyttää vain tyhjältä paperilta, silloin todennäköisesti pythonia ei ole asennettu ja kone ei osaa koodia suorittaa. Klikkasin kuvaketta ja jokin musta laatikko vain nopeasti välähti ruudussa. En yhtään kerinnyt lukea mitä siinä sanottiin. Klikkasin kuvaketta uudelleen ja painoin heti perään näppäimistön PrtSc -nappia, jolla sain napattua kuvakaappauksen työpöydästä. Sitten avasin kuvankäsittelyohjelman (Windowsin Paint toimii hyvin) ja painoin CTRL+V jolloin ruutukaappaus ilmestyi siihen. Siitä pystyin virheilmoituksen lukemaan. Se kertoi jonkun asian puuttuvan. Se oli muistaakseni joku "importlib".

Googlettelin ilmoitusta, ja niinpä sieltä löytyi ohjeita jotta pitää asentaa jotain pythonin kirjastoja. Löysin jonkun valmiin asennuspaketin ja sen asentaminen meni ihan kuin minkä tahansa muunkin ohjelman asentaminen. Käynnistin koodin ja taas vain nopea välähdys. Jotain toisia kirjastoja edelleen puuttui ja googlettelemalla löytyi niiden asennustiedostot. Mutta niiden asentaminen ei ollut aivan niin yksinkertaista, vaan piti osata olla hieman nörtti niiden asentamiseksi. Paketissa ei ollut yhtä asennustiedostoa, vaan kansio jossa oli erilaisia tiedostoja ja mm. setup.py. Klikkasin sitä, mutta taas vain nopea välähdys ruudussa. Etsin netistä apua ja selvisi, että kirjasto pitää asentaa komentokehotteen kautta komennolla PYTHON SETUP.PY

Hetken oli mennä sormi suuhun, mutta ymmärsin kuitenkin sen verran komentokehotteen käyttöä, että sain tämän ratkottua. Komentokehotteen voi käynnistää kirjoittamalla windowsin hakuun cmd tai komentokehote. Pieni musta ikkuna käynnistyy ja oletuksena siinä oleva hakemistopolku osoittaa c:\Users\(käyttäjänimi). Tuo hakemisto pitää saada osoittamaan asennettavan pythonkirjaston kansioon. Jotta asia olisi helpompi, kopioin kansion suoraan c-aseman juureen. Eli C asemalla on kansio X jonka alla on heti setup.py ja muita tiedostoja. Nyt komentokehoitteeseen kirjoitetaan komento cd c:\X\ ja painetaan entteriä. Sitten kirjoitetaan komento python setup.py ja nyt ruudussa pitäis rullata tekstiä ja lopuksi tulla jotta sennus on valmis.

Minun piti vielä asentaa yksi pythonin kirjasto ennen kuin dance_pad.py suostui käynnistymään. Sen asentaminen meni samalla tavalla komentokehotteen kautta kuin edellinen. Jos olisi tarkemmin lukenut tuota netin ohjetta, niin siellä kyllä sanotaan, jotta täytyy asentaa python kirjasto. mutta ei sielläkään sanottu miten niitten asentaminen tapahtuu. No mutta kun kaikki oli asennettu, niin komentokehotteen laatikko ei enää välähtänyt ruudussa, vaan se jäi käyntiin. Oletin sen nyt toimivan ja starttasin StepManian. Ja hienosti matto toimikin heti. Piti vain asetuksista asettaa kaikki nappulat paikoilleen.

Mutta huomasin vasta myöhemmin, että nappulat toimivat ikäänkuin väärin päin. Eli peli tunnisti nappien olevan valmiiksi pohjassa ja kun niiden päälle polkaisi, peli tunnisti napin olevan silloin ylhäällä. En tätä heti huomannut, koska peli vaikutti tunnistavan ja hyväksyvän kaikki tanssimaton painallukset oikein. Ainut mikä toimi vähän kummallisesti olivat pitkät painallukset. Kun pelissä piti painaa nuolta pitkän pohjassa, peli ilmoitti sen aina hudiksi. Mutta jos sellaisen "nuotin" kohdalla painoi maton painiketta vain kerran nostaen jalan heti pois, nuotti rullasi hyväksytysti loppuun asti. Arvelin tämän johtuvan vain jostain pelin asetuksista tai pelin muuten bugittavan tms. Huomasin virheen vasta kun kokeilein huvikseni peliä kytkemättä mattoa tietokoneeseen ja pelasin pelkästään näppäimistön nuolipainikkeilla. Silloin pitkätkin painallukset toimivat oikein päin. Virhetoiminnan näkee kyllä heti siitäkin, jos pelissä olevien nuolikuvakkeiden ympärillä on valkoinen reunus, joka osoittaa niiden kaikkien olevan aktivoitu. Normaalisti reunus välähtää vain kun nappia painetaan. Sitä en voinut aiemmin tietää, koska kokeilin peliä ensikertaa.

Mietin miten ihmeessä saisin käännettyä näppäinten komennot toisinpäin. Arvelin sen olevan yksinkertaisinta python -koodia muuttamalla. Avasin koodin tekstieditorilla ja kaikki teksti oli yhdessä pötkössä. Ei sen tietenkään siltä kuuluisi näyttää, joten etsin netistä jotain simppeliä työkalua ja löysin Subline Textin. Avasin koodin siltä ja se näytti tältä:


Näyttää aika yksinkertaiselta ja helpolukuiselta koodilta. Vaihtelin vain kaikki key_down -komennot key_up -komennoiksi ja toisinpäin. Sen lisäksi pythonista täytyy huomata rivi 4: ser = serial.Serial('COM5', 9600). Tuo COM numero täytyy olla oikein, muuten tanssimatto ei pelitä. Se on siis se sama COM, jota käytetään Arduinon ohjelmoinnissa ja Ardiono IDE -ohjelman kautta sen näkee maton ollessa kytketty. Tallensin koodin, käynnistin sen ja kokeilin taas StepManiaa. Ja nyt kaikki toimi niin kuin pitikin. Hurraa!

Lopuksi vielä lähdin paketoimaan vekotinta takaisin koteloonsa. Tein usb-johdolle tilaa sahaamalla osan pois paristokotelosta. Lisäsin kytkentään vielä 3mm ledin, koska sille oli tyhjä paikka laiteen kannessa.

Tein usb johdolle tilaa paristoliitintä sahaamalla


Lisäsin kanteen vielä ledin.

Arduino soviteltuna sisään
Arduinon ja kaapelin asentamisen jälkeen laitteen kansi mahtuu melkein, mutta ei kuitenkaan enää aivan paikoilleen. Köytin sen vain paikoilleen teipillä. Kyllä kortille olisi ehkä mahdollista sahata lisää tilaa tai voisin jokun erilaisen koteloinnin Arduinolle värkkäillä. Tai kenties Arduino Nano mahtuisi laitteen sisään täysin ongelmitta. Mutta tämä vekotin on minulle nyt aivan riittävän hyvä näin enkä viitsi kauheasti enempää tähän aika käyttää.

Kotelo sievästi teipattuana kiinni
Mukava projekti ja oli helppo rakentaa. Vähän kuin rakennussarjaa olisi tehnyt. On erityisen mukava, että kortti on helposti irroitettavvissa muuhunin käyttöön. Tanssimatto on ihan hauska. Olen tykännyt aina tällaisista rytmipeleistä.

torstai 21. tammikuuta 2016

Hauska askarteluvinkki lapsille: Makaronikorut

Tarvikkeet: makaroneja ja joustolankaa (sekä maalia ja lakkaa).

Pujottele makaronit nauhaan. Yhteen rannekkeeseen tarvitaan noin 20 makaronia.

 Makaronihelmissä parasta on niiden käyrä muoto, jonka vuoksi ne pysyvät korunauhassa paikoillaan eivätkä karkaile kuten normaalien helmien kanssa saattaa toisinaan käydä.

Makaronit kannattaa maalata ennen naruihin pujottelua. Maalasin makaronit akryylimaaleilla. Värjäykseen voi käytttää myös elintarvikeväriä laittamalla makaronit yöksi suljettuun muovipussiin elintarvikevärin kanssa. Ravistele pussia huolellisesti jotta maali leviää kauttaaltaan.


Sanomalehden päällä maalissa pyöritellen on helppo maalata iso määrä makaroneja kerralla.
Levittele makaryllit irti toisistaan kuivumaan.

Eri väreillä maalattuja ja lakattuja makaronikoruja kuivumassa. Lakkaukseen käytin Fimo Gloss Varnish -lakkaa.

Valmiit ihanat korut ranteessa

keskiviikko 6. tammikuuta 2016

Kissat ruokkiva robotti

Mainitsin toissaviikolla Arduino viritelmästäni, jossa oli lähestymisanturi ja servo joka liikauttaa sarviaan kun jotakin osuu lähestymisanturin ulottuville. Nyt olen saanut vekottimen muiltakin osin valmiiksi ja tässä on lopputulos:




Kyseessä on  kissanruoka-automaatti. Ei sillä, että laite olisi välttämättä aivan tarpeellinen ja toisi suurta helpotusta arkeen, vaan rakentelin laitteen vain ihan rakentelemisen ilon vuoksi. Tutkiskelin yksi päivä elektroniikkarojujani ja jostain keksin, että tuollaisen vekottimenhan niistä saisi aikaiseksi. Toki laite voi toimia myös muunakin annostelijana, esimerkiski karkkiautomaatiina. Käsi vain alle ja laite annostelee namuja kouraan pienen annoksen.Tässä videota kuinka vehje toimii käytännössä ja kuinka kissat siitä tykkäsivät:


Toimintaperiaate on lyhyesti selostettuna se, että kun kissa saapuu tarpeeksi lähelle ultraäänitutkaan, servo pyörähtää ja kiskaisee narua, joka avaa luukun ja säiliöstä pääsee tipahtamaan raksuja kuppiin. Ruokasäiliönä toimii tyhjä Pringles -purkki jonka pohja on leikattu auki.

Jos nyt aivan vakavissaan olisin vehkeen rakentanut, niin raksujen ei tietenkään pitäisi päästä tippumaan suoraan kissojen niskaan ja ruokaa pitäisi tulla isompi annos kerrallaan. Laitteessa pitäisi olla myös jonkinlainen jumiutumisen estämismekanismi, koska nyt raksut jumittuvat luukun suulle muutaman annostelukerran jälkeen. Mutta en tehnyt tätä niin vakavissani, vaan ihan hupiprojektina tämän veivailin. Tämä oli hauska projekti opiskella arduinoa ja hieman puutöitäkin pääsin tekemään pitkästä aikaa.

tiistai 15. joulukuuta 2015

Tervetuloa väkertelemään

Heipä hei ja tervetuloa blogilleni. Ajattelin kokeilla tällaista blogin pitämistä ja kirjoitella tänne satunnaisesti omista väkerryksistäni. Olen hitusen alle kolmekymppinen miehenalku jolle on siunautunut sellainen mahdoton luomisen vimma, että koko ajan täytyy olla jotakin värkkäilemässä. Tykkään touhuilla kaikkea sellaista jossa pääsen käsilläni tekemään ja missä lopputuloksena on jotain nättiä josta saa ihasteltavaa pidemmäksikin aikaa.

Löysinkin hiljattain Fimot, elikkäs askartelykäyttöön tehdyt polymeerimassat ja innostuin niistä aivan täysin. Olen aina tykännyt pikkutarkasta pipertämisestä ja noista massoista on todella helppo työstää kaikenlaista pientä ja sievää koriste-esinettä. Moni askartelija näkyy noista massoista tekevän kaikenlaista karkkikorua ja muuta hassua mutta kuitenkin suhteellisen simppeliä luomusta. Jotkut rakentelevat todella yksityiskohtaisia ja aidonnäköisiä miniatyyrejä ja se on juuri se suuntaus joka itseäni erityisesti kiinnostaa.




Huomasin, että sellaiset soveltuisivat hyvin esimerkiksi koruiksi. On jotenkin hienompaa, että sillä pienellä esineellä on jokin muukin funktio, kuin seisoa hyllyn reunalla tyhjänpanttina. Ilokseni huomasin kaikenlaisia korunosia olevan helposti saatavilla ja olen korvakorujakin ehtinyt jo aika liudan tekemään. Enpä olisi arvannut, että jotain koruja ryhdyn joskus näpertelemään. Ei välttämättä kovin miehekästä hommaa, mutta niinpä vain kiinnostuin korujen teosta sen verran, että olen ajatellut niitä ehkä myyntiinkin asti tekeväni.

Fimo -askartelujen lisäksi tykkään rakennella kaikenlaisia liikkuvia ja itsestään toimivia vimpaimia. Siksi olen kiinnostunut varsinkin Arduino-alustoista, koska niillä taas on todella helppo rakennella kaikenlaisia omia laitteita. Sen lisäksi yhtenä kovana kiinnostuksen kohteena on ollut omien tietokone- ja mobiilipelien tekeminen.

Monia muitakin kiinnostavia asioita on tässä maailmassa tarjolla, mutta tuossapa ne itseäni lähimpänä olevat. Eli tuon kaltaisia projekteja on tänne blogilleni odotettavissa. Mainitsen vielä senkin, että vaikka kaikenlaisia juttuja osaankin väsäillä, en ole silti mitenkään erityisen lahjakas missään. En esimerkiksi osaa syvällisesti elektroniikkaa enkä osaa juurikaan ohjelmoida. Eli ne projektit jotka olen itse saanut aikaiseksi, osaa kyllä melkeinpä kuka tahansa muukin toteuttaa.

Laitetaan tähän loppuun näytille muutamat tekemäni fimo-teokset. Minua voi seurata myös instagramissa nimellä luomisenvimma jossa teoksiani on nähtävissä lisää.