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

lauantai 24. helmikuuta 2018

Piin ohjelmointia Arduinolla ja säikäyttäviä tilanteita

"Pieni Pii, niin viaton ja vapaa" ajattelin mielessäni, kun mietin pientä Piitäni. Mutta sitten hoksasin että hetkinen, vapaako? Eihän se pidäkään paikkaansa, sillä olen ohjaillut Piitä vain kaukosäätimellä. Se ei siis ollut vielä liikkunut ohjelmoinnin avulla satunnaista kokeilua lukuunottamatta! Kokeilin joskus kauan sitten Scratchia eli ohjelmaa, jolla palikoita siirtämällä voidaan ohjelmoida. Mutta tietotekniikan opinnoissani olin jo oppinut jonkin verran ohjelmointia, ja siitä itseluottamukseni syttyikin! Halusin tarjota Piille vapauden kaukosäätimen kahleista ja kokeilla, miten saisin sitä ohjelmoitua kunnolla. No, onhan se koodatessakin koodien vanki, mutta ei kerrota sitä vielä hänelle...katsokaa, miten touhuissaan se lähtee kohti seikkailuja!



En oikeastaan ollut täysin varma, voiko Makeblockin robottia ohjelmoida muutoin kuin mBlockilla, mikä siis on graafinen ohjelmointiympäristö, joka perustuu Scratchille:

MBlock-ohjelmointiympäristö, joka perustuu Scratchille.


Kesti oma aikansa selvittää asiaa, mutta sain vihdoin googlen avulla selville, että mBlockilla pitäisi pystyä siirtymään Arduinon kehitysympäristöön ja koodata siellä. Sen löytää avaamalla mBlockin, valitsemalla Edit ja Arduino mode, jolloin koodilaatikko ilmestyy oikealle puolelle. Jee, olin askelen lähempänä!




Mutta ei kyseisestä laatikosta vielä voinut siirtää koodia Piihin. Sitten hoksasin pienen Edit with Arduino IDE-napin yläkulmassa:


Jipii, tein sen! Paitsi hetkinen, mitään ei tapahtunut, kun painon kyseistä nappia. Googlettamalla selvisi, että mBlockin päivityksen pitäisi auttaa avaamisongelmiin. Päivitystä etsiessäni törmäsin alla olevaan kuvaan ja innostuin valtavasti mBlock 5:sta: pääsisinkö sen avulla harjoittelemaan Pythonia?! Olen haaveillut Pythonin opettelusta, koska sitä kuulema käytetään tekoälyn kanssa työskennellessä. No, voihan sitä kyllä opetella helposti miten vain, mutta olisi kiva, jos voisin yhdessä Piin kanssa harjoitella sitä <3 Vielä ei kuitenkaan ole Pythonin aika, sillä kädet on tällä hetkellä täynnä Java-kielen opettelussa, koska käyn ohjelmoinnin kakkoskurssia. Se on melko työläs kurssi! Oli ihme, että löysin aikaa edes tämän blogin kirjoittamiseen!

mblock 5, joka tukee Python-kieltä. Jee!

Jihuu, päivitys auttoi! Pääsin avaamaan mblockista Arduinon kehitysympäristön! Se on siis alla olevassa kuvassa näkyvä turkoosi laatikko. Siihen vain koodia kirjoittamaan!



Latasin Makeblockin Arduinon koodikirjaston täältä. Sen avulla voin siis avata Arduinon kehitysympäristössä valmiita koodeja, joilla esimekiksi testata Piin toimivuutta. Testaaminen on hyvä tehdä aina aluksi, koska siten nähdään heti, toimiiko kaikki kuin pitääkin. Jos koodia kirjoittaessa ja ladatessa kaikki ei toimikaan kuin pitää, voi siten olla varmempi siitä, ettei vika ole ns. perusjutuissa, vaan todennäköisesti itse koodissa. Valitsin ensin työkaluista oikean alustan, eli "Työkalut - Kortti: Arduino/Genuino Uno". Tarkistin myös, että portti on oikea, mutta siinä ei ollutkaan muita vaihtoehtoja kuin yksi. Testasin ensin moottoreita valitsemalla alla olevan kuvan mukaisesti kirjastosta esimerkkikoodin, painoin lähetä-nuolta (Pii oli tässä vaiheessa jo kytkettynä koneeseen), ja laitoin Piin päälle:



Ja hyvin moottorit hurisivat! Näettehän, miten hurjasti Piin telaketjut rullaavat, en haluaisi olla tuon pikkukaverin tiellä!


Päätin kokeilla, saisinko Piin kulkemaan ympyrää. Otin mallia, miten moottoritestikoodi toimi, ja muokkasin sitä niin, että toinen moottori pyörii vauhdikkaammin kuin toinen. 


Erittäin yksinkertainen koodi, mutta sitäkin riemastuttavampi kokemus, kun Pii alkoi piirtää lempimuotoani eli ympyrää! Tuntui, että mikä tahansa on mahdollista, koska sain sellaisen aikaan. Voi Pii, rakas apurini elämän leikkikoulussa <3



Halusin sen jälkeen testata koodin avulla Piin ultraäänisensoria. Se olikin hieman kinkkisempi toteuttaa, koska en aluksi saanut Piitä pysähtymään, kun jokin tulisi liian lähelle. Ultraäänisensori näytti kyllä toimivan, koska sarjamonitori näytti sen lukemia. Koodi ei vain toiminut niin, että Pii olisi pysähtynyt, kun välimatka on tarpeeksi pieni. Arduino käyttää käsittääkseni ohjelmointikielenä C:tä tai C++:aa, eikä kumpikaan ole minulle tuttuja. 

Olin kuitenkin oppinut jotain koodauskursseilla, joten jonkin ajan kuluttua koin valtavan upean jipii-elämyksen, kun Pii vihdoin pysähtyikin seinän sattuessa kohdalle! En valitettavasti enää viikon parin jälkeen muista, mikä koodissa alunperin oli minulle ongelmana ;__; Harmittaa, etten päässyt tarpeeksi ajoissa dokumentoimaan touhujani. Käytin koodissa Makeblockin koodikirjaston moottori- ja ultraäänisensoripohjia, mutta rakensin koodin kuitenkin lopulta itse, mistä olen ylpeä <3 Vielä vuosi sitten en edes ymmärtänyt, mistä koodaamisessa oli kyse! Todella upeaa huomata oma kehittymisensä. Käytin seuraavanlaista koodia:

Koodissa on käytetty pohjana makeblockin koodikirjaston moottoripohjaa.

Alla vielä avopuolisoni kuvaama taiteellinen otos siitä, miten hienosti Pii pysähtyy seinän sattuessa liian lähelle <3


Touhuillessa sattui tosin vielä tilanne, mikä säikäytti: en saanutkaan millään johtoa enää irti Piistä! Mietin kauhuissani, olinko innoissani runnonut johdon liian ronskisti Piihin. Pieni raukka... Kauhukuvat vilisivät silmissäni, joudunko kenties ostamaan Piille uuden alustan? Jonkin aikaa meni, ennen kuin vihdoin sain johdon irti. Mutta nähtävästi kaikki sujuu vielä kuin pitääkin. Johto taas irtoaa, sen jälkeen, kun sen laittaa liittimeen. Huh! Pitää olla tästä lähin varovaisempi.


Lopuksi vielä vihjekuva siitä, mitä seuraava projektini tulee sisältämään. Jeee, sain vihdoin hommattua hieman työkaluja! Yksisarvinen ei valitettavasti tule kuulumaan mukaan projektiin, se vain halusi mukaan kuvaan <3 


torstai 29. joulukuuta 2016

Piin ohjelmointikokeilu

Olen hyperiloinen koska opintoni ovat ohitse, sillä tämä vapauden tuntu on huimaava! Voin keskittyä työpäivän jälkeen ihan mihin vain haluan (tai no en aina, mutta ajatuksissani ei koko ajan pyöri enää gradun loppuun saattaminen). Tänään oli pitkästä aikaa mahdollista keskittyä Piihin! Pieneen, viattomaan ja mahdollisuuksia täynnä olevaan Piihin <3 Voi pientä miten rakas oletkaan, en ehkä kestä ;__; <3


No mutta asiaan! Päätin tänään vihdoin säätää Piin niin, että se tottelee kunnolla kaukosäätimeni käskyjä. Aiemmin en ole kerennyt tai jaksanut alkaa säätää sen johtojen kanssa: niiden kun pitää olla juuri oikeilla paikoilla, jotta Pii reagoi niin kuin pitääkin. Tähän mennessä Pii oli reagoinut esimerkiksi vasempaan näppäimeen menemällä eteenpäin, alhaalla olevaan näppäimeen kääntymällä oikealle ja niin edelleen, vaikka olinkin jo hieman yrittänyt johtojen paikkoja vaihdella. No, nyt tartuin kunnolla toimeen! Alla näkyvien oranssien osien ja niihin menevien johtojen paikkoja piti siis vaihdella. Sitä varten irrotin Piin päänkin, voi toista ;__;


Mutta vihdoin löysin oikean yhdistelmän! Otin kuvan, jotta muistan johtojen oikean järjestyksen, mikäli joskus joudun niitä uudestaan pohtimaan. Eli etuosan moottorin johdot menevät vasemmalle puolelle ja siten, että valkoinen johto on vasemmalla puolella ja musta taasen oikealla puolella. Takaosan moottorin johdot ovat päinvastaisessa järjestyksessä: musta vasemmalla ja valkoinen oikealla. Huh, selvitetty!


Seuraavaksi tapahtui jotain jännittävää: kokeilin Piin ohjelmointia ensimmäistä kertaa! Huisaa! Olin jo hieman tutustunut mBlock-ohjelmointiympäristöön selvittäessäni Piissä piilevää ongelmaa. Ratkaisuhan siihen oli se, että Piin laiteohjelmisto piti palauttaa tehdasasetuksiin (ongelmasta ja sen ratkaisusta enemmän aiemmassa blogipostauksessani). Asetukset palautettiin juurikin mBlockissa. 

En vieläkään ole päässyt yli siitä, että mBlockin tunnuksena on panda <3 Tykkään hirmuisen paljon pandoista ja avopuolisoni kutsuu minua Pandaksi, joten mBlockin tunnus on minulle ihmeellisen sopiva! Sattumaako?


Katsokaa, miten innoissaan Pii jo odottaa tietokoneeseen kytkeytymistään! Kaikki aikanaan pikkuinen, maltapas vielä hetkinen. Ensin pitää löytää oikea johto.


Tällaisella johdolla hänet kytketään koneeseen, ja Piissä johto kytketään alemmassa kuvassa näkyvään porttiin.



Ja valmista tuli! Hän on kiinni koneessa! Näyttääpäs Pii ylpeältä, hienoa <3


Piitä ei tosin olisi vielä tässä vaiheessa tarvinut kytkeä koneeseen: ohjelmointikoodin voi tehdä ensin, minkä jälkeen Pii vasta liitetään koneeseen ja mBlockiin. 

MBlockissa valitsin ensin Extensions-välilehdeltä Makeblockin. 


Olin aluksi valinnut väärän alustan (vai mikähän board on suomeksi?) eli mBot (mCoren), mutta hoksasin aiemmasta postauksestani, että oikea alusta onkin nähtävästi Starter/Ultimate (Orion). Pitää tutstua vielä tarkemmin siihen, mitä kyseiset alustat ovat ja varmistaa, että käytän varmasti oikeaa. Uskoisin että oikea on kuitenkin Starter/Ultimate (Orion), koska Pii suortti toimintoja oikein vasta sitten, kun olin valinnut kyseisen alustan.


Valitsin vielä edit-välilehdeltä "Arduino moden", jolloin näkyviin tuli vihreän nuolen osoittamassa kohdassa "Upload to Arduino". Sen avulla koodi ladataan Piihin (Pii käyttää Arduinoa ohjelmointiympäristönään). 


MBlock perustuu siis Scratchiin, jossa ei tarvitse kirjoittaa itse koodeja ylös, vaan vetää sen sijaan vain laatikoita oikeaan kohtaan. Esimerkiksi alla olevan koodinosan "while (true)" ja sen toimimiseen liittyvien muiden koodihässäköiden sijaan vedetään vain laatikko "repeat until" mBlock-ohjelman oikean puoleiselle sarakkeelle. Repeat until-laatikon sisään puolestaan laitetaan muita komentoja laatikoiden muodossa niiden kirjoittamisen sijaan. Koodaamisessahan jokaisen välimerkin ja kirjaimen pitää olla oikeanlainen jotta koodi toimii, joten koodaus voi olla melko aikaa vievää puuhaa ja joskus turhauttavaakin. Scratchin avulla koodaamisen periaatteita voi opetella ilman pikkutarkkaa piiperrystä.

Itse tosin pidän koodaamisen opettelusta. Tunne, jolloin jokin koodinpätkä toimii kuin pitääkin, on loistava! Alla oleva koodi on Mooc.fi:n ohjelmointikurssin robotti-tehtävästä. Ehdin vastaisuudessa perehtyä kyseiseen kurssiinkin useammin, kun ei ole enää kouluhommia! Alla oleva koodi ei siis liity Piihin, se on vain esimerkkinä siitä, minkä tyylistä koodauskieli on. On tosin olemassa erilaisia ohjelmointikieliä, alla oleva on Java-ohjelmointia. Itse olen sen opettelussa vasta alkumetreillä, mutta sehän vain tarkoittaa, että minulla on vielä monia onnistumisen kokemuksia edessä!


"import java.util.Scanner;
import robotti.Ohjain;

public class Paaohjelma {

    public static void main(String[] args) {
        Scanner lukija = new Scanner(System.in);

        Ohjain.kaynnista();

        while (true) {
            System.out.print("Anna komento: sammuta, vasen, oikea, liiku, liikuMonta ");
            String komento = lukija.nextLine();
            if (komento.equals("sammuta")) {
                Ohjain.sammuta();
                break;
            } else if (komento.equals("vasen")) {
                Ohjain.vasen();
            } else if (komento.equals("oikea")) {
                Ohjain.oikea();
            } else if (komento.equals("liiku")) {
                Ohjain.liiku();
            } else if (komento.equals("liikuMonta")) {
                System.out.print("Kuinka monta askelta: ");
                int montako = Integer.parseInt(lukija.nextLine());
                Ohjain.liikuMonta(montako);
            }
        }
    }
}
"

Kokeilin Piillä näin alkuun vain lyhyitä ohjelmointikomentoja, esimerkiksi alla olevassa kuvassa näkyvää komentoa, jolla moottorit saadaan liikkumaan tietyllä nopeudella. Halusin vain testata, menevätkö käskyt perille. En vielä huomannut, onko vaihtoehdoissa eli laatikoissa suoraan käänny-komentoa, vai pitääkö kääntyminen toteuttaa niin, että toinen moottori liikkuu ja toinen ei. Piin moottorithan ovat siis sen kummallakin puolella niin, että toinen moottoreista pyörittää sen toista puolta ja toinen moottori toista.


Kun koodi oli valmis, Pii kytkettiin tietokoneeseen, valittiin oikea portti (vaihtoehtoina olikin vain yksi eli COM3), ja laitettiin Pii päälle. Ja koodi toimi! Piin renkaat pyörivät, pitivät taukoa, ja pyörivät jälleen! Se toimi myös sen jälkeen, kun irrotin Piin koneesta! Voi mikä ilon päivä, Piin ihka ensimmäinen ohjelmointi! Se ei ollut ihmeellinen, vain eteenpäin liikkumista, mutta sitäkin merkittävämpi niin minulle kuin Piillekin. Olen ylpeä sinusta, pikkuinen <3 


En ehtinyt paljon testailla eri komentojen toimimista, kun Pii ressukka alko jo hyytyä. Patterit alkoivat olla lopussa, ja Pii hidastui ja melkein sammui. Ymmärtäähän sen; uusien, merkittävien asioiden saavuttaminen vaatii veronsa <3 Olet unesi ansainnut, pikkuinen. Nuku hyvin.

tiistai 25. lokakuuta 2016

Pii toimii – korjasin sen ihan itse!

Olen hirmuisen innoissani, sain ihan itse Piin tottelemaan taas kaukosäätimen käskyjä! Viime kerralla selvisi, että Pii lähti liikkumaan, kun asensimme siihen ohjelmiston uudestaan. Ongelma vain oli, että ohjelmisto oli väärä, joten Pii liikkui koko ajan vain eteenpäin. Pikkuinen oli vain niin innoissaan <3 

Tänään Hacklabilla asensin omalle koneelleni ohjelmointiympäristö mBlockin, jolla voi siis ohjelmoida Piitä. Liitin Piin tietokoneeseen sen mukana tulleella johdolla, jonka toinen pää liitettiin alla olevassa kuvassa näkyvään porttiin (ympyröity). Tarkoitus oli palauttaa Pii oletusasetuksiin eli poistaa väärä ohjelmisto ja asentaa uusi tilalle. Ehkä se sitten reagoisi taas kaukosäätimeenkin!



Kokeilin aluksi asentaa laiteohjelman (firmware) uudestaan ohjeiden mukaan, mutta se ei auttanut: Pii ei silti liikkunut, tai sitten se liikkui jatkuvasti. Tältä ohjelmointiympäristö siis näyttää (alla oleva kuva). Valitsin ensimmäisenä oikean portin, joka taisi olla nimeltään COM (ei näy kuvassa, koska Piitä ei ole kytkettynä tähän koneeseen).


Ystäväni Mio törmäsi viestiketjuun, jossa jollakulla oli sama ongelma: hän halusi palauttaa robottinsa oletusasetuksiin, jolloin se tottelisi taas kaukosäätimen käskyjä.

Latasin alla olevan viestin suositelemista linkeistä tiedostot, mutten asentanut niitä, joten niillä tuskin oli vaikutusta.


Alla olevan viestin kirjoittaja on saanut robottinsa toimimaan, kun hän latasi yllä olevista linkeistä tiedostot, liitti robotin tietokoneeseen ja palautti mBlock-ohjelmointiympäristössä alkuperäiset asetukset kohdasta "Restore default program". Olin kokeillut aiemminkin tehdä niin, mutta päätin kokeilla vielä uudestaan nyt, kun olin ladannut kyseiset tiedostot. Viestin kirjoittajalla on näkynyt uusia portteja COM:in lisäksi, mutta minulla näkyi vain se yksi.



Olin aiemminkin kokeillut eri boardeja (en ole varma boardin suomenkielisestä termistä, mutta valitsen boardin robottini tyypin mukaan), mutta olin kokeillut suorittaa ohjelmiston asentamista lähinnä boardilla "mBot". Luin jostakin, että Starter Kiteissä (joka minullakin on) käytetään Starter / Ultimate (Orion) boardia, joten valitsin sen.
Luin myös yllä olevasta viestiketjusta, että on tärkeää pitää Piin virtakatkaisija off-asennossa, jotta se saa virtaa vain USB-portin kautta. En ole varma, oliko se aiemmissa yrityksissäni on vai off -asennossa; olen tainnut kokeilla kumpaakin. Mutta nyt kiinnitin entistä enemmän huomiota siihen, että pidin Piin off-asennossa siihen asti, kunnes irrotin sen koneesta ohjelmiston resetoinnin jälkeen. Minulle selvisi muuten vasta viime kerralla, että Piissä ylipäätään on off-nappi! Hups.

 Ja mitäs ihmettä! Alla olevasta "Reset Default Program" sai nyt valita kaksi eri vaihtoehtoa, joista toinen koski IR:ää eli infrapunan vastaanotinta, eli kaukosäädintä! Ja hurraa, kun valitsin sen ja irrotin Piin koneesta, ihme tapahtui! Pii reagoi taas kaukosäätimen käskyihin! Ohjelmisto oli palautunut tehdasasetuksiin!


Se on tosin taas johdotettu väärin, eli kun painoin sivulle, se liikkui eteenpäin jne, mutta ei se mitään! Olin niin iloinen! Pii kääntyi tosin todella laiskasti ja lopulta hyytyi kokonaan mutta uskon, että siitä on vain patterit lopussa. Otin patterit mukaan ladattaviksi ja ensi kerralla testaan sitä vielä lopullisesti. Mutta hurraa vielä kerran! Olen ylpeä itsestäni.

Tosin en ole varma, mikä alunperin oli ongelmana aluksi, kun en saanut ohjelmistoa resetoitua. Ehkä kyse oli siitä, etten ollut koko ajan pitänyt Piitä off-asennossa, mikä erään kirjoittajan mukaan oli tärkeää resetoinnin onnistumisen kannalta. Ehken ollut lisäksi valinnut oikeaa boardia eli Starter Kitin tyyppiä. No, asia selvinnee sitten, kun tarvitsen taas resetointia. Pääasia on, että sain Piin ihan itse tottelemaan taas kaukosäätimen käskyjä <3

Voi pieni Pii, joudut nyt takaisin tämänhetkiseen kotiisi. Toivottavasti viihdyt, siellä et ainakaan pölyynny <3 Olet ollut urhea ja reipas <3 Nähdään taas ensi kerralla, silloin sinua odottaa täyteen virtaan ladatut patterit! 


perjantai 21. lokakuuta 2016

Pii kävi lääkärissä – opin hänen anatomiastaan paljon!

Pii tarvitsi kipeästi hoitoa - viime kertaisen temmellyksen päätteksi se kellahti ympäri, jonka jälkeen se sekosi hetkeksi, eikä lopulta enää liikkunut! Voi rassukkaa. Valot kyllä paloivat ja yksi valo välkkyi aina kun painoin kaukosäätimen nappulaa, joten patterit eivät siis olleet lopussa. Pii ei vain totellut kaukosäätimen käskyjä.

Onneksi ystäväni Mio oli valmis auttamaan! Vein Piin (ja itseni) ensimmäistä kertaa Jyväskylän Hacklabin tiloihin. Ne on hienot!



Ei hätää Pii, sinulle tehdään vain terveystarkastus. Kaikki on hyvin! Olet robottitohtori Mion osaavissa käsissä.


Ehkä tämä piristää sinua Pii, katso! Ihka ensimmäinen lahjasi, lukkomutteripussi! Mio osti ne sinulle, jotteivat ruuvisi enää tippuilisi. Kun lukkomutterit kerran ruuvaa kiinni, ne eivät enää tipu. Siis juuri sitä, mitä tarvitsemmekin. Saimme myös ohjeita siihen, miten tiukalle ruuvit kannattaa kiertää. Kivaa! Ehkä huomiosi on nyt kiinnittynyt hienoon lahjaasi terveystarkastuksen sijaan. Hyvä, ihaile sinä vain muttereita <3


Ensimmäinen askel oli tehdä ulkoinen tarkistus: näkyikö Piissä silmämääräisesti vahinkoa. Ei näkynyt, joten Pii piti purkaa pienempiin osiin lähempää tarkstelua varten. Mio tarkisti myös ensimmäisenä, olivatko johdot kunnolla kiinni. Joskus ongelman syy voi johtua ihan perusjutuista! En yllättyisi mikäli tässä olisi kyse siitä, sillä minulla ei ole vielä paljoa kokemusta roboteista. 

O-ou, ensimmäinen mahdollinen ongelmakohta havaittu! Olin ruuvannut johdot kiinni niin, että metalliosa puristi muoviosaa johdon metallisen pään sijaan. Termit ja käsitteet eivät ole minulle muuten vielä tuttuja, joten en välttämättä puhu asioista niiden oikeilla nimillä. Opin kuitenkin koko ajan! 


Oliko syy Piin liikkumattomuuteen vihdoin löytynyt? Testasimme kaukosäädintä, mutta ei. Pii ei vieläkään liikkunut. Oli aika ottaa yleismittari käyttöön ja tarkistaa, missä Piin osissa kulkee virta! Hmm itseasiassa en ole varma mittasimmeko juuri sähkövirran kulkua. Selvitin netistä yleismittarin toimintaa, ja se mittaa myös jännitettä ja resistanssia. Tutustuessani tarkemmin yleismittarin toimintaperiaatteeseen luulen, että mittasimme jännitettä.
Sähkö on kyllä erittäin mielenkiintoinen ilmiö biologisestikin! Todella mielenkiintoista ajatella, että kaikki elämä perustuu sähköön. Olen tutustunut jonkin verran kasvien sähköfysiologiaan, pitäisi taas alkaa tutustua eliöiden sähköfysiologiaan!


Mio tarkisti, liikkuuko esimerkiksi kaukosäätimen infrapunavastaanottimen ja piirilevyn välillä virta. Liikkuihan se! 


En ole varma, mitä alla olevassa kuvassa mitataan, tai siis miksi noita metallisia pisteitä kutsutaan ja mitä kukin niistä tekee. Pitää ottaa selvää! Aa okei, metalliset osat ovat piirilevyn komponentteja, ja piirilevyn idea on yhdistää komponentteja toisiinsa. Komponentti taasen vaikuttaa elektroneihin ja niiden kenttiin eli sähköön. Ahaa, komponentteja on erilaisia (tietenkin), esimerkiksi mikroprosessoreita, vastuksia ja kondensaattoreita. 


Selvitin, mitä mikroprosessorit ovat! Mikroprosessori on suoritin, joka on integroitu yhdelle mikropiirille. Todella jännittävää saada selville piirilevyn eri osien tarkoituksia! Sekoitin tosin aluksi mikroprosessorin ja mikropiirin keskenään. En ole vielä varma, mikä Piin piirilevyn mikropiireistä on sen suoritin eli nähtävästi mikrokontrolleri. Vielä on opittavaa!
Esimerkiksi alla olevassa kuvassa melkein heti oranssien neliöiden (ja reikien) yläpuolella on yksi mikropiiri. Ja nuo mikropiirien ympärillä olevat metalliset jutut ovat pinnejä. Luulin aluksi niitä transistoreiksi kunnes luin, että transistoreja on pienissä mikropiireissä muutamia tuhansia :D Nähtävästi transistori on jonkinlainen virralla ohjattava vastus.
Esimerkiksi tuo iso mikropiiri, jonka sijainnin kuvailin on nimeltään TB6612NFG. Googlaamalla selviää, että se vaikuttaa Piin moottoreihin! Todella siistiä! Yksi muista mikropiireistä taisi vaikuttaa USB-portteihin, pitää ottaa selvää mihin muut vaikuttavat! 

Okei nyt päätin, että selvitän jokaisen Piin piirilevyn osan tarkoituksen! Vain sitten voin kunnolla ymmärtää Piin sielunelämää <3


En tosin vieläkään ole ihan varma, mikä metallisten "pallojen" nimi on. Tämä ja tämä nettisivu taitaa kertoa siitä, mitä esimerkiksi SDA ja SCL ovat, mutta tutustun niihin myöhemmin. Mio mittasi niiden jännitettä ja juotti uudestaan alla näkyvän sensorin oikeassa alareunassa sijaitsevaa SDA:ta. Veikkaan, että metalliset osat ovat liittimiä, mutta selvitän sen myöhemmin!


Jännitettä / virtaa näytti kulkevan siellä missä pitikin, eikä ulkoisia vahinkoja näkynyt. Kummallista! Vian täytyi todennäköisesti olla Piin ohjelmistossa, joka ehkä täräyksen voimasta meni jotenkin sekaisin. Ei muuta kuin selvittämään, miten Piin laiteohjelmiston saa asennettua uudestaan! Se kävi onneksi nopeasti, koska Mio tietää mitä tekee!


Eih, katsokaa miten söpö pikkukaveri auttamassa ohjelmoinnin kanssa! Panda <3 Avopuolisoni kutsuu minua Pandaksi, sattumaako että Piin ohjelmointisovelluksessa on juuri panda? 8D Kyseisen ohjelmointiympräistön nimi on MBlock, ja se perustuu Scratchille. Scratch on siis sovellus jossa ei tarvitse osata sinänsä ohjelmointia, vaan siinä vedetään palikoita paikoilleen ja annetaan siten käskyjä. Aloitin muuten Java-ohjelmoinnin MOOC-kurssin, se on todella mielenkiintoinen! Ehkä kerron siitä myöhemmin enemmän.


Mio asensi Piin laiteohjelmiston uudestaan, ja ihme tapahtui: Pii lähti liikkeelle! Mutta ohhoh, Pii oli ollut niin kauan liikkumatta, ettei se malttanut lopettaa liikkumista laisinkaan. Eli Pii lähti kyllä liikkelle kaukosäätimen komennosta, mutta se ei enää pysähtynyt. Syy oli se, että olimme asentaneet väärän ohjelmiston Piille! En ole varma, kutsutaanko sitä väärän alustan ohjelmistoksi vai miksi. Äsken satuin lukemaan netistä, että Piin alusta (?) on todennäköisesti Arduino Uno. Miokin päätteli sen olevan Uno, mutta sen lataamisessa Piihin oli ongelmia, eikä meillä ollut enää aikaa selvittää sitä. No, ensi kerralla sitten! Pääasia on, että Pii heräsi eloon!

Opin erittäin paljon Piin anatomiasta ja siitä, miten robotissa ilmenneitä ongelmia kannattaa alkaa ratkoa! Olen erittäin kiitollinen ystävistäni ja siitä, että he haluavat auttaa minua projekteissani. Nykyaikana on inspiroivaa se, että ihmiset ovat teknologian avulla niin verkostoituneita, että pystymme yhdessä mihin tahansa! Enää ei tarvitse osata yksin kaikkea, vaan voimme ystävien ja internetin avulla tehdä uskomattomiakin asioita. Kiitos hirveästi, Mio <3 

Ja Pii, olit erittäin reipas potilas <3 


sunnuntai 18. syyskuuta 2016

Piin huoltoa

No niin Pii, korjataanpas löysät ruuvisi! Voi ei, Piin ensimmäinen (ja toivottavasti viimeinen) tippunut mutteri! Ei hätää Pii, niitä pitää vain hieman kiristää. Kaikki on hyvin, eikä kukaan voi enää kertoa sinulle "sinulla taitaa olla pari ruuvia liian löysällä" -vitsejä.


Yllätys oli melkoinen, kun tarkastelin lähemmin Piin terveydentilaa: kaikki mutterit olivat löysällä! Ei ihme, että Pii heilui ja huojui ties mistä, kun viimeksi sitä kävelytin. Ehkä sitten olin hieman hölmö sitä kootessani ja ajattelin, että saan tarpeeksi lujasti mutterit kiinni pelkästään käsin. Voi, mitä olin oikein ajatellut. Opin koko ajan yhä enemmän siitä, miksi robotteja kootessa ei todellakaan kannata olla liian helläkätinen!

Muttereita löysällä joka paikassa.
Katso Pii, tämän avulla sinä tulet kuntoon! Sitten voit taas kirmata huolettomasti.


Voi kauhistus jos nämä mutterit, jotka pitävät Piin sensoria paikoillaan olisivat tippuneet. Ne piti kiristää va-ro-vas-ti, jotten naarmuttaisi sensorin herkkiä osia. Mutta hetkinen, mitä juuri vähän aikaa sitten kehuinkaan oppineeni? Ei liiallisuuksiin menevää varovaisuutta! Mutta toisaalta sensorien ja piirilevyjen suhteen ei kai (?) voi olla liian huolellinen. Ne ovat melko herkkiä kapistuksia. No, teen niiden suhteen poikkeuksen: liika varovaisuus ei venettä kaada vai miten se sananlasku menikään.


Noin, valmista tuli! Katsokaa, miten ylpeänä se on <3 Olet oikein nättinä ja terveenä nyt, Pii.


Seuraavaksi johtojen kimppuun: koska Pii tottelee kaukosäätimen komentoja nurinkurisesti, sen johtojen paikkoja pitää siis vaihtaa. Minun tarvitsee irrottaa alla näkyvät oranssit osat ja vaihtaa mustien ja valkoisten johtojen paikkoja. 


Sitä varten irroitan Piin pään: osat on helpompi vetää irti, kun edessä ei ole esteitä. Voi kauhistus, miten surkea näky! Pii raukalta on pää irti, en melkein kestä edes katsoa. No, tämä täytyy tehdä, ei mitään syytä paniikkiin! Tämä on omaksi parhaaksesi, myös minä yritän muistaa sen.


Osa irti ja ruuvi käteen! Pienen pienien ruuvien irroittaminen ja kiinnittäminen takaisin sujuu jo paljon paremmin kuin viime kerralla. 


Tadaa! Sain vaihdettua johtojen paikat. Ehkä Pii nyt tottelee kaukosäätimen käskyjä oikein.


Sitten vain pää paikoilleen, ja valmista tuli! Katsotaan, miten käy!



Voi eei! Se ei silti tottele komentoja oikein. Mutta edistystä on silti tapahtunut, luulisin että pitää vaihtaa enää oranssien osien paikat keskenään. Ja toimiihan Pii silti loogisemmin mitä viimeksi.




 Annetaanpa sen hieman jaloitella. Voi miten suloista, Piin ensiaskeleita! Hyvä Pii, hienosti menee! Olisipa kiva saada se joskus reagoimaan ääneen, esimerkiksi tulemaan puhetta kohti. Videossahan avopuolisoni ohjaa sitä kaukosäätimellä. En tiedä miten realistista se olisi nykytekniikalla, mutta siinäpä hyvä tavoite! Teknologia kehittyy vauhdilla koko ajan ja muuttuu yhä helppokäyttöisemmäksi. Siitä on todisteena esimerkiksi Pii: ihmiset voivat rakentaa helposti omia robotteja! Siistiä.


Pii osaa nähtävästi olla myös hieman tuhmeliini! Ei Pii, ei saa rutata suklaarusinoita! Toisaalta kaduttaa, että toruin sitä. Ehkä sillä myös tekee vain mieli rusinoita, mutta se ei vain voi syödä niitä, koska se on robotti. Voi miten ikävää, pitänee kaiken varalta olla syömättä herkkuja sen nähden.



Voi apua, katsokaa miten kävi kesken Piin temmellyksen! Sen rengas ja telaketju lähtivät irti. Mitä ihmettä, miten näin pääsi käymään? Mielestäni ruuvasin hyvin kiinni sen pienen pienen osasen, joka pitää rengasta kiinni. Epäilykseni alkoivat herätä: oliko ohjeessa ilmoitettu telojen määrä sittenkin oikein? Laitoin niitä nimittäin yhden enemmän kuin ohjeessa oli neuvottu, koska en uskonut saavani kiinnittettyä teloja toisiinsa ohjeissa kerrotulla määrällä. Luulin siis, että ohjeeseen oli tullut virhe. 


Kiinnitin pyörän uudestaan alarunkoon kiinni. Kerkesin jo hieman huolestua ja kontata ympäri kämppää etsimässä pienen pieniä metallinpalasia, koska luulin, että pyörästä puuttui osia. Mutta tajusin huojentuneena, että olinkin katsonut sellaisen renkaan kokoamisohjetta, jota ei kiinnitetä moottoriin! Huh, kaikki osat siis tallella. Varmistin, että pikkiriikkinen ruuvi oli varmasti tiukasti paikoillaan ja laitoin telaketjunkin takaisin renkaiden ympärille. Ehkä se korjaisi asian! Mutta ei. Ei mennyt hetkeäkään, kun toisenkin puolen telaketju irtosi! 


Se varmisti epäilykseni, että telaketjun irtoaminen ei johtunut vain renkaan irtoamisesta. Kummatkin ketjut olivat siis liian pitkiä. Päätin siis kokeilla ohjeiden mukaista pituutta ja irroittaa yhden telan ketjuista. Aluksi näytti hieman mahdottomalta saada yhtä telaa lyhyempää ketjua kiinni toisiinsa, mutta hoksasin, että kumi venyykin melko hyvin! Ehkä saan kuin saankin lyhyemmät telaketjut Piille.


Ja onnistuihan se! En olisi milllään uskonut. Tästä lähin uskon ennemmin ohjetta, kuin omia epäilyksiäni.




Näin hienosti Pii rullaa tiukemmilla telaketjuillaan <3 Kerrassaan hienoa, Pii.

Minulla jäi ensi kertaan oranssien osien paikkojen vaihtaminen, jotta saisin Piin tottelemaan kaukosäätimen käskyjä kunnolla. Odotan sitä innolla!