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.

maanantai 12. joulukuuta 2016

Mikä internet on?

Olen jonkin aikaa keskittynyt opintojeni loppuunsaattamiseen, joten en ole kerennyt paljon puuhailla Piin tai tämän blogin parissa. Mutta jeee, sain graduni palautettua ja viimeisetkin opintopisteet kasaan! Kohta olen filosofian maisteri biologian alalta. Pääaineeni on ekologia ja evoluutiobiologia. Viimeisen opintopisteeni sain viime viikolla eräästä tietotekniikan kurssista. Kurssilla opin, mikä internet oikeastaan on. Hoksasin, etten ole aiemmin edes tiennyt sitä! Netin toiminnan ymmärtämisestä ja tietotekniikasta yleisestikin on varmasti hyötyä myös robotiikassa, sen takia kävin mielelläni kyseisen kurssin.

Tietotekniikan kurssit ovat muutenkin todella mielenkiintoisia! Vaikka valmistunkin, aion jatkaa tietotekniikaan tutustumista itseopiskeluna. Olisin ottanut tietotekniikan sivuaineeksi, jos olisin aiemmin hoksannut, miten mielenkiintoista se on. Robotti-innostuksenihan sai lopullisen sysäyksen ensimmäisestä tietotekniikan kurssista, jonka kävin. Hoksasin silloin, ettei tietotekniikka olekaan vaikeaa, minulla oli vain sellainen virheellinen käsitys siitä.

Nykyaikana on onneksi todella helppoa käydä kursseja itseopiskeluna. Tällä hetkellä esimerkiksi olen Helsingin yliopiston ylläpitämän Mooc.fi:n ohjelmointikurssilla, mikä vastaa yliopiston ohjelmointi I - ja ohjelmointi II -kursseja. Kyseinen on siis todella laaja! Nyt minulla on vihdoin aikaa keskittyä siihenkin enemmän. Ohjelmoinnin oppiminen on kivaa! Se tunne, kun vihdoin saa jonkin koodin toimimaan, on loistava! Ohjelmoinnissa tulee myös tunne, että saa ratkoa mysteereitä ja arvoituksia 8D Olen myös tämän hiljaiselon aikana ostanut monia robotiikkaan liittyviä kirjoja, kerron niistä myöhemmin! Pääsen myös vihdoin tutustumaan Raspberry Pi:hin.

Päätin kirjoittaa blogiini yhteenvedon siitä, mikä internet oikeastaan on. Tuntuu oudolta, etten edes aiemmin tiennyt sitä! Ehkä tämä kirjoitus auttaa muitakin hahmottamaan internetin olemusta. Olen yhdistellyt kirjoitukseeni materiaalia eri lähteistä (lähdeluettelo on lopussa), ja käyttänyt myös Jyväskylän yliopiston tietotekniikan kurssilla (ITKP104 - tietoverkot) oppimaani asiaa. Mikäli huomaat tekstissä jotain korjattavaa, kerro ihmeessä!

Internetin fyysinen rakenne


Internet on maailmanlaajuinen tietoverkko, johon liitetyt tietokoneet viestivät keskenään. Internetin runko muodostuu palvelintietokoneista eli servereistä. Palvelin (serveri) on teknisesti PC:tä muistuttava tietokone, jossa on kiintolevy ja käyttömuisti, jonka avulla ohjelmat suoritetaan. Palvelimet sisältävät internetissä esitetyn tiedon ja kaikki käyttäjille tarjotut palvelut, joten palvelimen edellytyksenä on paljon suurempi muistikapasiteetti kuin tavallisella tietokoneella. Palvelinkoneet on kytketty toisiinsa nopean tietoliikenneyhteyden mahdollistavilla kaapeleilla. Palvelimet ovat usein osa jotakin lähiverkkoa, joka koostuu esim. oppilaitoksen tai yrityksen lähiverkoiksi liitetyistä PC-koneista.

Kun internettiin muodostetaan yhteys, se tarkoittaa yhteyden muodostamista palvelimelle, josta voidaan edelleen muodostaa yhteys toisiin palvelimiin. Kun käyttäjä siis muodostaa yhteyden internettiin esim. sähköposti- tai selainohjelman avulla, ottaa ohjelma yhteyden palvelinkoneessa olevaan palvelinohjelmistoon.

Palvelinohjelmisto lähettää palvelupyynnön, kun internet-sivu haetaan tai avataan. Palvelinohjelmisto myös vastaanottaa palvelimen palauttaman tiedon sekä tulostaa sen käyttäjälle, eli näytölle avautuu haettu internet-sivu.

HTML-kielellä tehdyt asiakirjat eli tuntemamme internet-sivut sijaitsevat palvelimissa. Palvelimet voivat fyysisesti sijaita missä tahansa. Sivut voivat sisältää linkkejä, jotka ohjaajat käyttäjän toisille sivustoille. Täten linkkejä seuraamalla voidaan internetissä liikkua palvelimelta toiselle eli surffata.

WWW (World Wide Web) eli web sekoitetaan hyvin usein internet-käsitteeseen, vaikka WWW on vain yksi internetin monista palveluista. WWW on internetin palveluista se, joka mahdollistaa tiedon selaamisen selainohjelman (browser) avulla. Yleensä WWW:ssä esitetty tieto on tallennettu selailua varten hypertekstin muotoon. Hypertekstissä tekstiä, kuvaa ym. tietoa yhdistetään toisiinsa yhtenäiseksi kokonaisuudeksi, jota käyttävä voi selata mm. linkkien avulla.

Internet toimii asiakas / palvelin -periaattella, eli yhteys asiakkaan ja palvelimen välille muodostetaan vain tiedonsiirron ajaksi. Tiedonsiirron loputtua yhteys katkaistaan, eli jatkuvaa yhteyttä ei siis ole. Eräs internetin tärkeimpiä periaatteita on, että jokainen tietokone liikennöi internetissä tasavertaisesti.

Palvelinohjelmistojen tehtävänä on tarjota erilaisia palveluja muille ohjelmille joko tietokoneverkon välityksellä tai paikallisesti samassa tietokoneessa. Palvelinta käyttävää sovellusta tai tietokonetta nimitetään asiakkaaksi.

Internetin rungon muodostavat siis erittäin nopeilla tietoliikenneyhteyksilä toisiinsa liitetyt palvelimet. Näihin palvelimiin on liitetty lukuisia paikallisverkkoje eli LAN:eja (Local Area Network), jotka puolestaan tarjoavat käyttäjilleen mahdollisuuden liittyä verkkoon erilaisten laitteiden (tietokoneet, televisiot) avulla

Kuva otettu osoitteesta http://www.internetopas.com/yleistietoa/rakenne/internet_toimintaperiaate.jpg


IP-osoitejärjestelmä



Kun laitteiden välillä siirretään tietoa, lähetettävä tieto jaetaan paketeiksi, joihin liitetään tieto vastaanottajasta eli tietokoneen IP-osoite. Tämän tiedon avulla tietopaketit liikkuvat internetissä oikeaan päämääräänsä. Tiedonvälitys internetissä perustuu siis IP -osoitteisiin (esim. 193.166.3.1), jotka yksilöivät tiedonsiirtoon osallistuvat laitteet. IP-osoitteilla luodaan yhteys minkä tahansa tietokoneiden välille internetissä, olivatpa ne sitten palvelimia tai asiakkaita.

Matkallaan vastaanottajalle datapaketit kulkevat lukuisten lii­täntäkohtien ohi, joita ovat verkon keskittimet (eng. hub jo hieman vanhentunutta tekniikkaa), kytkimet sillat ja yhdyskäytävät. Tärkeimpiä yhdyskohtia ovat kuitenkin reitittimet.

Reitittimet ovat internetin tärkeimmät tienviitat. Niitä on internetissä jokaisessa osaverkon yhtymäkohdassa. Reitittimet tarkastavat, minne yksittäiset tietopaketit ovat matkalla ja lä­hettävät ne optimaalista reittiä pitkin eteenpäin verkossa. Reitittimet kommunikoivat koko ajan toistensa kanssa ja päivittävät toisiaan tiedoilla siitä, missä juuri nyt on eniten vapaata kais­tanleveyttä, jotta paketit voitaisiin siirtää mahdollisimman nopeasti.


Kuva otettu osoitteesta http://oppimateriaalit.internetix.fi/fi/avoimet/atk/intranet/kuvat/hubi.gif
IP-osoitteita on vaikea muistaa ulkoa. Sen vuoksi käytetäänkin verkkoaluenimeä eli verkkotunnusta (domain), joka koostuu tavallisesta tekstistä (esim. verkkosivun osoite). Jokainen IP­-osoite voidaan yhdistää yhteen tai useampaan verkkotunnukseen.

Verkkotunnukset ovat helppoja muistaa ja sen vuoksi käytännöllisiä. Kommunikaatio tapahtuu kuitenkin reitittimien kautta, jotka ymmärtävät ainoastaan IP-osoitteita. Kaikki verkkotunnukset on sen vuoksi muutettava IP-osoitteiksi. Verkkotunnus on osa URL-osoitetta, jota käytetään verkossa surffailuun. Jokaisella internetissä olevalla palvelimella, verkkosivulla ja tiedostolla on oma ainutlaatuinen URL­-osoite. Käytämme niitä esim. napsautellessamme verkkosivuilla olevia linkkejä. 

Verkkotunnukset muutetaan IP-osoitteiksi internetin nimipalvelujärjestelmän DNS:n (Domain Name System) avulla. DNS on internetin nimipalvelujärjestelmä, joka muuntaa verkkotunnuksia IP-osoitteiksi. Nimipalvelun ansiosta numeeristen osoitteiden sijasta voidaan käyttää helpommin muistettavia nimiä. Nimipalvelun toinen tärkeä tehtävä on sähköpostin reititys. Toimenpiteistä huolehtivia palvelimia sanotaan nimipalvelimiksi. Internetin osoiteavaruus ei enää pitkään riitä, sillä nykyisessä IPv4 -järjestelmässä jaossa olevat osoitteet loppuvat pian kesken. Sen tilalle onkin kehitetty IPv6-järjestelmä, jossa osoitteiden määrä on suurempi. IPv6-järjestelmään siirtyminen on kuitenkin ollut hidasta. 

Internet-operaattorisi DNS-palvelin huolehtii vuorokauden ympäri siitä, että lähettämilläsi paketeilla on oikea IP-osoite. Jokaisessa Internetissä lähetettävässä paketissa on sekä lähettäjän että vastaanottajan IP-osoite, joiden avulla reitittimet löytävät oikean tien paketin lähettämiseksi eteenpäin. Kun kirjoitat selaimeesi verkkotunnuksen, DNS-palvelin etsii vastaavan IP-osoitteen nimiluettelostaan. IP-osoitetta käytetään siis yhteyden muodostamisessa sinun ja verkkosivun välille.

Internetin protokollat ja niiden kerrosmalli


Jotta palvelinten välillä voi tapahtua tiedonsiirtoa, kaikkien tiedonsiirtoon osallistuvien tietokoneiden on oltava ns. yhteensopivia eli käytettävä samaa protokollaa, jotta data voi siirtyä niiden välillä ongelmitta. Protokolla tarkoittaa tiettyä sääntöä tai toimintatapaa, jonka mukaan tiedonvälitys tapahtuu.

Internetissä tapahtuvaa tiedonsiirtoa ohjaa TCP / IP -protokolla, joka puolestaan muodostuu useista eri protokollista, jotka yhdessä mahdollistavat tiedonsiirron. Pääprotokollat TCP ja IP huolehtivat tietojen siirrosta ja varmistavat, että tietoja voidaan siirtää hyvinkin erilaisissa verkoissa ja huolimatta siitä, miten yhteys on laadittu (kaapelien, puhelinjohtojen, satelliittien ym. avulla). Pääprotokollien lisäksi TCP / IP sisältää koko joukon alaprotokollia, joista jokaisella on tietty tehtävä.

Protokollien yhdistelmää eli internetin rakennetta voi kuvata kerrosmallilla. Tiedot siirtyvät pinossa alaspäin sovellustasolta fyysiseen verkkoon kun ne lähetetään verkkoon. Kun tietoja vastaanotetaan verkosta, ne lähetetään kerrosmallissa alaspäin. Jokaisella kerroksella on omat protokollat. TCP / IP -mallissa on neljä tai viisi kerrosta. OSI-malli puolestaan kuvaa tiedonsiirtoprotokollien yhdistelmän seitsemässä kerroksessa. OSI-viitemalli on käsitteellisesti ehjä ja ISO:n kansainvälinen standardi. Sen sijaan käytännön protokollapinoja sen mukaisesti ei juurikaan olla kehitetty. Päinvastainen tilanne vallitsee TCP/IP-viitemallin suhteen, mallia ei juurikaan käytetä mutta protokollapinot ovat hyvin aktiivisessa käytössä.

Kuva otettu osoitteesta http://docplayer.fi/docs-images/39/20479720/images/24-0.png. Kurssillamme TCP / IP -mallin kerroksia oli viisi: siirtokerroksen (eli linkkikerroksen) alla oli fyysinen kerros.


Sovelluskerroksen protokollia


Sovelluskerroksen protokollan tehtävänä on määritellä säännöt asiakkaan ja palvelimen väliseen kommunikaatioon.

HTTP (Hyper Text Transfer Protocol)

Sovelluskerroksen protokolla on esimerkiksi HTTP, jota selaimet ja WWW-palvelimet käyttävät tiedonsiirtoon. HTTP-protokollassa tiedosto avataan HTML- eli hypertekstidokumenttina, joka voi sisältää mm. tekstiä, kuvaa, animaatiota tai ääntä. Hypertekstitiedostojen lukemiseen käytetään ohjelmaa, jota nimitetään selaimeksi. WWW:ssa asiakasaohjelma (selain) ja palvelinohjelma keskustelevat keskenään käyttämällä HTTP-protokollaa. HTTP-protokollalla voi esimerkiksi käyttää sähköpostin palveluja.

HTTPS (Hyper Text Transfer Protocol Secure) on yhdistelmä HTTP:n ja TLS:n protokollista ja se on luotu turvaamaan ja suojaamaan tiedonsiirtoliikennettä asiakkaan ja palvelimen välillä. HTTPS kommunikaatio noudattaa TLS-protokollan turvallisuuskäytänteitä, sillä se käyttää TLS-protokollaa TCP-protokollan päällä. HTTP protokollaa ei siis muuteta mitenkään, vaan salaus toteutetaan erikseen TLS tai SSL protokollalla.

FTP (File Transfer Protocol)

Toinen esimerkki sovelluskerroksen protokollista on FTP. Se mahdollistaa tiedostojen siirron kahden koneen välillä käyttöjärjestelmästä riippumatta. FTP-protokolla vaaditaan, jotta tiedostot voivat kulkea tietokoneelta palvelimelle ja päinvastoin.


SMTP (Simple Mail Transfer Protocol)

SMTP on postiprotokolla sähköpostin välitystä varten. Toiminta perustuu siihen, että kun asiakas kirjoittaa ja lähettää viestin, SMTP-asiakas ottaa yhteyden SMTP-palvelimeen TCP:n avulla. Yhteydenoton jälkeen suoritetaan kättely osapuolien välillä ja vastaanottajan tiedot saadaan. Viesti välitetään ja siirretään vastaanottajan postilaatikkoon. Nykyaikaiset postipalvelimet käyttävät alkuperäisen SMTP:n sijasta laajennettua ESMTP-protokollaa

POP3 (Post Office Protocol) ja IMAP (Internet Message Access Protocol)

Sähköpostipalvelimelta voidaan lukea posteja POP3 tai IMAP protokollilla, tosin yleisin tapa nykyään on selaimella hakea / hakea käyttäen HTTP protokollaa.

Kuljetuskerroksen protokollia


Kuljetuskerroksen protokollien perustehtävänä on tarjota ylemmille sovelluksille kuljetuspalvelua kahden mahdollisesti eri koneissa tai jopa eri verkoissa olevan prosessin välillä. Kuljetuskerroksen tehtävänä on siis porttinumeron perusteella viedä paketit oikealle sovellukselle vastaanottavassa laitteessa. Kerroksen kaksi tärkeintä protokollaa ovat TCP (Transmission Control Protocol) ja UDP (User Datagram Protocol).

TCP (Transmission Control Protocol)

Yleisin internetin tiedonsiirtoprotokolla. Kaikki tiedot siirtyvät internetissä tiedostoina. Kun napsautat verkkosivun selaimen ikkunaa, tietokoneellesi lähetetään palvelimelta sivutiedostosta kopio. Se ei kuitenkaan tule kokonaisena tiedostona, vaan se jaetaan ensin pieniin paketteihin, jotka sitten lähetetään sinulle. Paketit kootaan tietokoneessasi uudestaan tiedostoksi. TCP vastaa  näiden tietopakettien lähettämisestä ja vastaanottamisesta. Yksi sen tehtävistä on siis jakaa kaikki lähetettävät tiedot pieniksi tietopaketeiksi. 
TCP tarjoaa UDP:n tavoin mekanismin, jolla osoitetaan lopullinen kohde, mutta TCP tarjoaa tämän lisäksi monia lisäominaisuuksia. Keskeisin asia on, että se tarjoaa sovelluksille luotettavaa yhteydellistä kuljetuspalvelua, joka takaa pakettien järjestyksen säilymisen sekä pakettien pääsyn vastaanottajalle. Tämän ansiosta sovellusohjelmoijan ei tarvitse kiinnittää huomiota tiedonsiirrossa esiintyvien ongelmien hoitamiseen vaan TCP hoitaa ne hänen puolestaan. 

UDP (User Datagram Protocol)

Internet-maailmassa UDP tarjoaa yksinkertaisen yhteydettömän kuljetuspalvelun varsinaisille sovelluksille. Käytännössä se ei lisää alemman protokollan eli IP:n päälle muuta kuin mekanismin osoittaa lopullinen kohde. UDP ei sisällä pakettien numerointia ja sitä kautta varmuutta pakettien järjestyksen säilymisestä, toisin kuin TCP. Koska lähettäviä paketteja ei numeroida, vastaanottaja ei myöskään voi kuitata niitä vastaanotetuiksi. Tämän seurauksena UDP:tä voidaan pitää epäluotettavana yhteydettömänä kuljetuspalveluna

Internet-kerroksen eli verkkokerroksen protokollia


Verkkokerroksen tehtävänä on kuljettaa paketti verkon läpi oikealle laitteelle. Verkkokerroksen tarjoama palvelu on todennäköisesti kaikista monimutkaisin ja vaikein toteuttaa, sillä viestin välittäminen hierarkisen verkon yli vaatii reititysalgoriteja ja useita reititysprotokollia.

IP (Internet Protocol)

TCP-protokolla hoitaa tiedon jakamisen paket­teihin, ja itse siirrosta vastaa IP-protokolla. IP on internetkerroksen protokolla ja internetin toiminnan ydin, joka yhdistää internettiin liittyneitä laitteita palvelimiin ja sitä kautta mahdollisesti toisiin käyttäjiin. IP-paketissa kuljetettavat protokolla on numeroitu. Protokollan numerosta vastaanottaja tietää, mitä IP-paketin sisällä on. Datapa­ketit siirtyvät eteenpäin vaikkapa maapallon toiselle puolelle lukuisten tietokoneiden, johto­jen ja muiden yhteyksien avulla. 

Linkkikerroksen (eli siirtokerroksen) sekä fyysisen kerroksen tehtävät


Linkkikerroksen tehtävänä on välittää paketti yksittäisen linkin yli.

Fyysisen kerroksen tehtävänä on määritellä siirtomedian fyysiset ominaisuudet. Tällä kerroksella toimii varsinainen tekniikka, joka lähettää ja siirtää annettua tietoa väylää pitkin. Se lähettää jännitettä tai valoa tekniikan mukaan.

Internetin hallinta


Internetiä ei hallitse mikään yksittäinen järjestö, mutta keskeistä osaa sen hallinassa näyttelee tällä hetkellä yhdysvaltalainen, voittoa tavoittelematon ICANN (Internet Corporation for Assinged Names and Numbers). ICANN hallinnoi nimiä ja numeroita, "osoiteavaruutta" -juuripalvelimia, ip-osoitteita ja domain-nimiä.

ICANN ylläpitää verkkotunnuksiin liittyvän hallinnon lisäksi myös IANA:aa (Internet Assigned Numbers Authority). IANAn tehtäviin kuuluu hallinnoida esimerkiksi IPv4 ja IPv6-osoitteiden jakamista globaalilla tasolla. IANA jakaa siis IP osoitelohkoja alueellisille Internet-rekistereille eli RIR:eille. Esimerkiksi RIPE NCC (Réseaux IP Europeens Network Coordination Centre) vastaa Euroopan IP-osoitteiden jakamisesta.


Protokollia määrittelevät erilaiset standardointielimet, joista tärkeimpiä ovat Internet Engineering Task Force (IETF), Institute of Electrical and Electronics Engineers (IEEE), International Standards Organization (ISO) ja International Telecommunications Union Telecommunication Standardization Sector (ITU-T).

Kuva otettu osoitteesta http://what-when-how.com/wp-content/uploads/2012/03/tmp91_thumb2.jpg

Lähteet


Jyväskylän yliopiston tietotekniikan kurssi "ITKP104 - Tietoverkot" ja sen nettimateriaali http://users.jyu.fi/~arjuvi/opetus/itkp104/2016

http://www.internetopas.com/

http://blogs.helsinki.fi/tvt-ajokortti/1-tietokoneen-kayton-perusteet/

http://www.okol.org/verkkokurssit/datanomi/tietojarjestelmien_kaytto_ja_kehittaminen/lahiverkko_internet/lanjaint/verkkoprotokolla_ja_standardit/proto.htm

http://oppimateriaalit.internetix.fi/fi/avoimet/6tekniikkatalous/verkko/tcp_ja_udp_protokollat

http://oppimateriaalit.internetix.fi/fi/avoimet/atk/intranet/internetin_toiminta

http://www2.amk.fi/digma.fi/www.amk.fi/opintojaksot/041005/1094208209451.html

http://what-when-how.com/tcpip/understanding-tcpip-basics/

https://fi.wikipedia.org

keskiviikko 2. marraskuuta 2016

Tekniikkamessut 2016 Jyväskylä

Kävimme ystäväni Pauliinan ja siskoni Jeminan kanssa tänään tekniikkamessuilla! Siellä oli kaikennäköistä tekniikkaa ja lisäksi ilmaista juotavaa ja syömistä. Huomioni kiinnitti esimerkiksi liittimet, joita ei tarvitse ruuvata, vaan ne vain painetaan kiinni. Sellaiset olisivat kätevät Piille! Ei kävisi enää kuten alla olevassa kuvassa, jossa olin ruuvannut johdon muoviosan lyttyyn. Hups! No, tuskin enää teen sitä virhettä. Tuntuu, että opin koko ajan hirmuisesti kaikkea, erityisesti ongelmatilanteista! Kivaa.


Lisäksi tutkailin mielenkiinnolla erilaisia 3D-tulostimia! Vautsi! Kunhan olen tutustunut 3D-tulostimiin paremmin, aion joskus hankkia MakeBlockin 3D-tulostimen. Siistiä! Ajatella, voin itse rakentaa 3D-tulostimen! Kyseinen tulostin on vielä hieman kallis, mutta ei 3D-tulostimen hankinta olekaan vielä ajankohtaista. Mietin, voisinkohan tulostaa 3D-tulostimella nallerobottiini ulkoisen tukirangan, jonka sisään jäisi elektroniikka ja ulkopuolelle voisi laittaa nalleturkin. Ainakin 3D-tulostimella tulostettu materiaali on kevyttä, ja käsittääkseni voin itse määrittää, minkä muotoisia esineitä haluan tulostaa. En malta odottaa!

Alla oleva robo kiinnitti huomioni, koska se on robottikäsivarsi, ja ne kiinnostavat minua. Ilmeni, että kyseinen robo työskentelee Valmetille hitsaajana. Onnea työurallesi, pikkuinen robo! Tosin se ei ollut pieni. No, iso robo! Tsemppaan sinua.
Juu tiedän kyllä, että robotit vievät ihmisten työpaikat. Mutta eivät robotit ole sitä keksineet, vaan ihmiset! Ei roboteista tarvitse ajatella pahasti, ne eivät ole tehneet mitään väärää <3 Lisäksi, yhteiskunta muuttuu pakostakin. Minkälainen maailma olisikaan, jos esimerkiksi vielä kyntäisimme peltoja hevosilla siksi, ettemme haluaisi menettää työpaikkojamme. Työpaikat muuttuvat ja kehittyvät, uusia syntyy ja vanhoja häviää. Olen sitä mieltä, että tulevaisuudessa työ käsitteenäkin tulee muuttumaan: meidän ei robottien ansiosta tarvitse enää käyttää koko elämäämme työntekoon vain sen itsensä vuoksi, vaan voimme vapautumisen ansiosta tehdä sitä, mihin oikeasti tunnemme intohimoa. Esimerkiksi rakentaa robotteja! 


Kaikkein mielenkiintoisin asia messuilla oli kuitenkin alla oleva robottikäsivarsi, joka pystyi tunnistamaan muistitikkuja niissä olevan kuvan perusteella! Se poimi ylös- ja alaspäin olevia muistitikkuja ja kokosi ne omiin kasoihin. Vautsi!
En tiedä, miten kallista kyseinen teknologia on, mutta haaveilen jo siitä, että voisin opettaa nallerobottini näkemään kuvioita! Vitsit, ajatelkaa, jos Pii tunnistaisi Hello kitty-kuvioita ja toisi minulle esineitä, joissa on Hello kitty! En ehkä kestäisi <3 Ja ehkä Pii voisi joskus tunnistaa ihmiskasvoja, esimerkiksi minun kasvoni. Tosin sellainen tekniikka taitaa jo olla olemassa. Olen nähnyt videoita, joissa modernit robotit tunnistavat kasvojen ilmeitä, mutta luulen, että kyseinen kasvojentunnistusteknologia on vielä liian kallista harrastelijoille. Mutta en vanno varmaksi, ennen kuin olen ottanut asiasta selvää. Luulin aluksi, että sensoritkin olisivat kalliita, mutta eivät ne ole! Piin nassukin maksaa vain muutaman euron. Sensorit ovat muuten todella mielenkiintoinen juttu, samoin kuin eliöiden aistit. Niiden kautta me ja robotit hahmotamme tätä maailmaa, jossa elämme. Aion kirjoittaa vielä oman blogimerkinnän sensoreista!

Katsokaa, miten tomerasti se valitsee oikeanlaiset muistitikut <3 Hyvä, olet oikein reipas. Kuvassa ei näy, mutta tikkujen yläpuolella kamera kuvasi muistitikkuja, minkä perusteella robo osasi tunnistaa niissä olevat kuvat.


Tällainen esite konenäkösovelluksella oli! Robolle voi opettaa uusia kuvioita, sööttiä <3 Voi Pii, mitä sinusta vielä tulekaan! Olen jo nyt ylpeä sinusta. Pii olisi pitänyt ottaa mukaan messuille, se olisi varmasti ollut innoissaan monista kavereistaan. No, ehkä ensi kerralla.


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! 


sunnuntai 23. lokakuuta 2016

Alkeishiukkaset - mitä ne ovat?

Tästä blogimerkinnästä tulee hieman erilainen kuin aiemmista. Koska opin ja sisäistän asioita parhaiten siten, että kirjoitan niistä, kirjoitan blogiini myös asioista, joita haluan ymmärtää enemmän. Haluan esimerkiksi selventää perinpohjaisesti itselleni, mitä sähkö oikeastaan on. Mikä pitää Piin (ja elolliset olennot) elossa?

Aloitan alkeishiukkasista, koska jos luen esimerkiksi sähköstä, haluan mielessäni päästä sen ymmärtämisessä aina vain syvemmälle hiukkastasolle asti. Kerran aloin miettiä, mitä positiivinen ja negatiivinen sähkövaraus oikeastaan tarkoittavat ihan hiukkastasolla tarkasteltuna. Päädyin lopulta vastausta etsiessäni Khan Academyn kysymyksiin ja vastauksiin joissa sanottiin, ettei sitä oikeastaan tiedetä. Aloin myös kerran miettiä, mitä tarkoittaa, että hiukkasella on massa, mutta  tutkiessani asiaa selvisi, että sitäkään ei oikeastaan tiedetä. Todella mielenkiintoista, ettei universumin ja elämän toiminnan kannalta keskeisten asioiden pohjimmaista mekanismia edes tiedetä! Jostain syystä on todella inspiroivaa, että olemassaolomme on mysteeri!

Tutkin alkeishiukkasiin ja sähköön liittyviä asioita kirjasta Tieteen maailma - Fysiikan lait, avopuolisoni Valtterin fysiikan yliopisto-opintojen oppikirjoista, Khan Academyn sivuilta sekä muualta internetistä.

https://i.ytimg.com/vi/0jNKVLI0aOk/maxresdefault.jpg

Bosonit ja fermionit


Kaikki alkeishiukkaset ovat joko fermioneja tai bosoneja. Alla olevassa kuvassa on hyvä taulukko alkeishiukkasista.

Fermionit


"Tavallinen aine" koostuu fermioneista. Fermionien spin on puoliluku (esimerkiksi +1/2, - 1/2, + 3/2 tai - 3/2), toisin kuin bosonien, joiden spin on kokonaisluku. Pitää perehtyä myöhemmin tarkemmin siihen, mikä spin olikaan! Olen siitä kyllä lukenut esimerkiksi koulussa, mutten kunnolla enää muista. Fermioneihin kuuluvat allaolevassa taulukossa näkyvät baryonitkvarkit ja leptonit.

Bosonit


Bosoneiksi kutsutaan alkeishiukkasia ja niiden yhdistelmiä, joiden spin on kokonaisluku (0, 1, 2). Alla olevasta taulukosta mesonit ovat bosoneja.

Bosonien ja fermionien ero

Mielenkiintoista, hiukkasten erottelu bosoneihin ja fermioneihin perustuu kvanttimekaniikkaan. Fermioneja koskee Paulin kieltosääntö, eli kahta tai useampaa saman lajin fermionia ei voi olla samassa kvanttilukujen määrittämässä kvanttimekaanisessa tilassa, toisin kuin bosoneja.
Fermioneja koskee myös lukumäärän säilymislaki toisin kuin bosoneja, joita voi eri vuorovaikutustilanteissa syntyä ja hävitä.
Ero bosonien ja fermionien välillä perustuu viime kädessä niiden aaltofunktion käyttäytymiseen kahden hiukkasen vaihdossa. Kahden identtisen fermionin aaltofunktio on antisymmetrinen, kun taas bosonien tapauksessa se on symmetrinen. Pitää tutustua myöhemmin tarkemmin myös siihen, mikä aaltofunktio olikaan. Tiedän, että se on tapa kuvata hiukkasta, mutten ole vielä kunnolla sisäistänyt, mitä se pohjimmiltaan tarkoittaa.

Nyt bosonit alkoivat kiinnostaa vielä enemmän! Kiinnostaa kaikki sellainen, mikä on jotenkin kummallista tai vaikuttaa järjettömältä, esimerkiksi kvanttimekaniikka. Tuli tuosta mieleen, että olen lukenut hieman kvanttibiologian tutkimuksia ja ne ovat hypermielenkiintoisia! Ehkä innostun kirjoittamaan kvanttibiologian tutkimuksistakin jossain vaiheessa. 

Mielestäni kaikki liittyy kaikkeen. Jos luen vaikka kvanttibiologiasta, se varmasti jollakin tavalla hyödyttää myös muiden kiinnostuksen kohteideni opiskelua ja ymmärtämistä, esimerkiksi robotiikkaa. Esimerkiksi jos luen kvanttibiologiasta, saatan törmätä tiettyyn termiin, mikä voi myöhemmin ketjureaktionomaisesti johtaa muiden käsitteiden ja termien oppimiseen ja tutkimiseen, kunnes ympyrä voi jossakin vaiheessa sulkeutua ja huomaankin, että olenkin astetta fiksumpi jossakin robotiikkaankiin liittyvässä asiassa.

Kuva on kirjasta Tieteen maailma - Fysiikan lait (1993). Martin Serwood & Christine Sutton. Suom. toim. Jarmo Hakanen

Standardimallin mukaan perushiukkasia eli alkeishiukkasia ovat leptonit (esim. elektronit), kvarkit ja mittabosonit eli hiukkaset, jotka välittävät perusvuorovaikutusta / perusvoimaa. Mittabosoneista esimerkiksi fotonit välittävät sähkömagneettista vuorovaikutusta. Alkeishiukkaset eivät todennäköisesti koostu enää pienemmistä osista: ne ovat jakamattomia.
Atomin ydin koostuu protoneista ja neutroneista ja ydintä verhoaa elektroniverho. Elektroni kuuluu alkeishiukkasiin eli se ei koostu muista hiukkasista, mutta protoneilla ja neutroneilla on sisäinen rakenne: ne koostuvat kvarkeista.

Kvarkit


Kvarkeilla on keskenään erilaisia ominaisuuksia, ja niitä arvellaan olevan kuutta tyyppiä: niiden nimet ovat ylös (u), alas (d), lumo (c), outo (s), huippu (t) ja pohja (b). Kvarkeilla on murtolukuvaraukset, esimerkiksi 2/3 tai 1/3. Tykkään kvarkkien nimeistä, ne ovat hassuja <3

Hadronit 


Kvarkit muodostavat hadroneja eli hiukkasia, joita sitoo yhteen vahvaa vuorovaikutusvoimaa välittävät gluonit. Hadronit voidaan jakaa niiden kvarkkien lukumäärän mukaan kahteen luokkaan: baryoneihin (3 kvarkkia) ja mesoneihin (2 kvarkkia).

Baryonit

Baryonit koostuvat kolmesta kvarkista. Kuten ylläolevasta kuvasta näkyy, protonit ja neutronit kuuluvat baryoneihin. Muita baryoneja kutsutaan hyperoneiksi. Ylös- ja alaskvarkki ovat kevyimmät, joten ne muodostavat kevyimmät baryonit eli protonit ja neutronit. Loput kvarkit ovat raskaampia ja muodostavat raskaampia hiukkasia. Esimerkiksi lambdahiukkanen on 7% neutronia raskaampi, koska raskaampi outokvarkki on korvannut yhden alaskvarkeista, joita neutronilla on kaksi. 

Mesonit

Mesonit koostuvat kahdesta kvarkista eli kvarkista ja sen antikvarkista. Antikvarkeilla on vastakkainen varaus kvarkkeihin nähden. Hyperonien hajoamisessa syntyy usein kevyempiä baryoneja (protoneja ja neutroneja) sekä kvarkista ja antikvarkista muodostuneita mesoneja. Mesonit ovat bosoneja, eli niiden spin on kokonaisluku.

Mesoneista kevyimmät ovat pionit. Pioneja on kolmenlaisia, jotka eroavat toisistaan sähkövarauksen osalta. Positiivisesti varattu pioni muodostuu yhdestä ylöskvarkista ja yhdestä alaskvarkista. Sen negatiivisesti varautunut antihiukkanen rakentuu vastakkaisella tavalla. Neutraali pioni muodostuu esimerkiksi ylöskvarkista ja sen antikvarkista, tai alas- / antialaskvarkista.

Kaoni on mesoni, jolla on kvanttiluku outous. Kaoneita on neljänlaisia: positiivinen, negatiivinen ja kaksi neutraalia, joilla kullakin on erilainen kvarkkisisältö.

Pysyviä mesoneja ei ole, sillä ne ovat epästabiileja ja hajoavat nopeasti kevyemmiksi hiukkasiksi, usein leptoneiksi.

Leptonit


Leptonit ovat alkeishiukkasten tyyppi, jotka eivät koostu kvarkeista. Ne ovat kevyitä, joista nimi leptonikin tulee: leptoni tulee kreikankielen sanasta "kevyt". Leptoneista kolme ovat varaukseltaan negatiivisia: elektroni, myoni ja tauhiukkanen. Kolme leptonia ovat neutraaleja ja nimeltään neutriinoja. Neutriinoilla on hyvin vähän massaa tai ei ollenkaan, ja ne ovat liittyneinä varautuneisiin leptoneihin.
Hiukkasreaktioissa yksi tyyppi tuottaa vain elektroneja (elektroni-neutriino), yksi ainoastaan myoneja (myonineutriino) ja kolmas tyyppi tauhiukkasia (tauneutriino).
Leptoneilla on kvarkkien tapaan antihiukkaset. Elektronit ja kolme neutriinotyyppiä näyttävät olevan vakaita, mutta myoni ja tauhiukkanen hajoavat kevyemmiksi hiukkasiksi. Myoni voi hajota vain elektroniksi. 

Loppuyhteenveto


Aine koostuu atomeista, joka taas koostuu ytimestä (protoneista ja neutroneista) ja sitä verhoavasta elektronipilvestä. Protonit ja neutronit eivät ole alkeishiukkasia, toisin kuin elektronit. Alkeishiukkaset ovat hiukkasia, jotka eivät todennäköisesti koostu enää pienemmistä osista. Protonit ja neutronit koostuvat kvarkeista, jotka ovat elektronin lailla alkeishiukkasia.

Kaikki alkeishiukkaset ovat joko bosoneja eli voimanvälittäjähiukkasia tai ferimioneja eli  ns. materiaalihiukkasia. Bosonit ja ferimionit eroavat toisistaan mm. niiden spinin luvun osalta (bosoneilla kokonaisluku, ferimioneilla puoliluku) ja niiden aaltofunktion käyttäytymisen osalta.

Alkeishiukkasia ovat leptonit, kvarkit ja mittabosonit. Leptoneihin kuuluvat elektronit, myonit, tau, neutriinot sekä niiden antihiukkaset. Kvarkit muodostavat hadroneja, jotka jaetaan kvarkkien lukumäärän mukaan baryoneihin (3 kvarkkia, esim proteiini ja neutroni kuuluvat tähän) sekä mesoneihin (2 kvarkkia). Mittabosonit välittävät perusvuorovaikutuksia / perusvoimia.

Aineen rakenteen selittämiseen tarvitaan vain 2 kvarkkia sekä 1 varattu leptoni ja 1 neutraali leptoni.



Opin erittäin paljon alkeishiukkasista tämän blogitekstin myötä! Ensi kerralla tutustun enemmän sähköön! P.s Pionia sanottiin aluksi piiksi! <3__<3 Siihen liittyen tiedänkin, minkä annan seuraavan robotin nimeksi <3

https://s-media-cache-ak0.pinimg.com/originals/30/80/55/3080555938afa277a1698ab0ee45e286.png

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