Diskovalot

Diskovalot

Yleistä

Pienestä suurta! Tehtävässä muokataan pienten led-valojen heijastumista fresnel-linssien avulla. Samalla tehtävässä pääsee kokeilemaan piirilevylle juottamista. 

Materiaalit ja työkalut

  • Kahden AA-pariston paristokotelo
  • Kytkin (et tarvitse kytkintä, jos kotelossa on jo kytkin) 
  • 3kpl väriävaihtavia RGB-ledejä (HUOM! Käytä kaksijalkaisia RGB ledejä, suosittelemme nopeasti väriävaihtavia) Voit myös käyttää muita esim. vilkkuledejä.  kannatta valita nopeasti vilkkuvia
  • Johtoa
  • Pieni pala piirilevyä – liuskarasteria (tai pisterasteria)
  • 1-2kpl muovisia Fresnel linssejä (suurennuslasi)
  • Pahvia
  • Puutikkuja esim. grillivartaita
  • Paristot
  • Kolvi
  • Tinaa
  • Kuumaliimaa
  • Teippiä

Ohjeet

Kokoa ensin virtapiiri.

  • Kolvaa pätkä johtoa kytkimen keskimmäiseen napaan.
  • Kolvaa paristopitimen punainen johto kytkimen toiseen vapaana olevaan napaan.
  • Leikkaa pala liuskarasteri piirilevyä.
  • Aseta ledit piirilevylle, niin että ledien lyhyet jalat tulevat samalle kiskolle keskenään ja pitkät jalat samalle kiskolle keskenään. Kolvaa jalat kiinni piirilevyyn.
  • Kolvaa tämän jälkeen paristopitimen musta johto samalle kiskolle missä ledien lyhyet jalat ovat kiinni. Kolvaa tämän jälkeen kytkimestä tuleva punainen johto samalle kiskolle ledien pitkien jalkojen kanssa.
  • Leikkaa pahvista kolme kappaletta reilusti fresnel-linssiä isompaa palaa.
  • Leikkaa yhteen pahviin hieman fresnel linssiä pienempi reikä.
  • Teippaa linssi pahviin missä on reikä.
  • Valmista seuraavaksi teline.
  • Kuumaliimaa  teline kasaan kahdesta pahvista (missä ei ole reikää) ja grillitikuista. Aseta pahvit tikkujen toiseen päähän, niin että teline pysyy hyvin kasassa ja paristokotelo mahtuu pahvien väliin.
  • Pujota pahvi missä on fresnel linssi tikkujen toiseen päähän.
  • Asettele ja teippaa ledit ja kytkin toisen pahvin päälle niin että ledit osoittavat kohti linssiä.
  • Liikuta linssiä niin että saat haluamasi kokoiset heijastukset!

Mitä seuraavaksi?

Kokeile miten erilaiset ledit toimivat fresnel-lissien kanssa. Ohjelmoi erilaisia vilkku-ohjelmia Arduinolla!

Irti johdosta – Arduino translatable project

Irti johdosta – Arduino translatable project

Yleistä

Snap4Arduino on hauska ja helppo tapa siirtyä Scratch ohjelmoinnista kohti Arduinoa ja laiteohjelmointia. Ongelma Snap4Arduinossa (ja myös Scratch for Arduinossa) on ollut se että koodia ei ole voinut ladata Arduinoon pysyvästi, vaan laitteen on pitänyt olla koko ajan kiinni tietokoneessa USB johdolla.

Snap for Arduinossa on kuitenkin mahdollisuus ladata koodi Arduinoon Arduino translatable project -toiminnon avulla.

 

Materiaalit ja työkalut

Ohjeet

Liitä Arduino USB johdolla tietokoneeseen.  Lataa StandartFirmata Arduinoon, jos et ole sitä vielä tehnyt ja avaa Snap4Arduino.

Avaa pilven vasemmalla puolella oleva tiedosto valikko ja valitse “New Arduino translatable project”

Valitse Arduino valikosta “Connect Arduino” ja oikea portti.

Tee koodisi (Huom! Kuvassa vain esimerkki projekti).

Klikkaa koodin päällä hiiren vasenta näppäintä (tai ctrl-näppäin pohjassa hiiren näppäintä) ja  ja valitse “Exports as Arduino sketch”.

Tallenna Arduino sketch esimerkiksi työpöydälle.

Avaa Arduino IDE ohjelma ja avaa koodi Arduino IDE:llä paikasta johon tallensit sen.

Paina Upload (nuoli oikealle) ja lähetä koodi Arduino-mikrokontrolleriin. Arduino IDEn alalaidassa lukee “Lähetetty”, jos lähetys onnistui. Jos lataaminen ei onnistu, niin kokeile uudelleen pari kertaa; tämä on yleensä auttanut.

Nyt voit irroittaa Arduino-mikrokontrollerin tietokoneesta ja laittaa sen erilliseen virtalähteeseen, kuten 9v. paristoon tai voit liittää Arduinon USB johdon kännykän laturiin. 9v. Pariston liittämiseen tarvitset neppari-liittimen, joka menee paristoon ja 5.5mm liittimen joka menee Arduinoon.

Mitä seuraavaksi?

Mihin projektiin haluat hyödyntää tätä? Millaisen itsenäisesti toimivan Arduino-projektin haluat rakentaa?

Led-valokyltti

Led-valokyltti

Yleistä

Led-valokyltti on hauska projekti jota tehdessä oppii mm. laserleikkurin käyttöä. Millaisen viestin sinä lähetät valomainoksellasi?

Materiaalit ja työkalut

  • Led-nauha USB-liittimellä
  • Kutistesukkaa
  • Kuumailmapuhallin
  • Kaiverrettava kuva tai piirros
  • Akryylilevyä (4-6mm)
  • Pohjapalat 2kpl
  • Laserleikkuri
  • Hiomakone
  • Konelehtisaha
  • Puuliimaa
  • Pihtipuristimia

Ohjeet

Suunnittele ensin kyltin kaiverrettava kuvio. Piirrä kuva vektoripiirto-ohjelmalla esimerkiksi Inkscapella-ohjelmalla.

Suunnittele ja piirrä samalla kyltin ulkomuoto. Huomioi myös kyltin se kohta, joka tulee telineen sisään.

Tee seuraavaksi laserleikkaus ja kaiverrus. Laita suojateippi molemmille puolille akryyliä! Käytä 4-6mm paksua akryylilevyä. Aseta laserleikkurin arvot käyttämäsi leikkurin mukaan.

Kolvaa seuraavaksi virtajohto led-nauhaan. Kuori ensin johdon päitä näkyviin noin 2mm. Pujota 1/4″ kutistesukka johtoon ennen kolvausta.

Kolvaa johdot led-nauhassa oikeisiin napoihin! Käytä apukättä tai vaikka palaa sinitarraa, niin johdot pysyvät paikallaan kolvatessa. Lämmitä lopuksi kutistesukka esim. kuumailmapuhaltimella tai kolvilla niin se kutistuu johtojen ympärille.

LIimaa seuraavaksi led-nauha alustaan. Piirrä suorakulmalla viiva keskelle levyä ja liimaa led nauha viivan mukaisesti keskelle.

Liimaa seuraavaksi tukipuut alustaan. Levitä puuliima tasaisesti, aseta tukipuut ja kyltti paikalleen. Käytä pihtipuristimia ja tarkista että ledit osuvat kylttiin. Laita liimauksen ajaksi väliin samankokoinen pala akryylia kuin lopullisessa teoksessa, niin raosta tulee oikean kokoinen ja laserleikkaamasi pala pysyy puhtaana.

Muotoile seuraavaksi alusta. Teippaa ensin virtajohto alustapäälle ennen työstämistä. Käytä hiomakoneita ja konelehtisahaa muotoilussa.

Mitä seuraavaksi?

Voit myös maalata ja/tai vahata alustan lopuksi. Led-nauha uran pohjalla tulee silloin suojata teipillä.

Valovastus

Valovastus

Yleistä

Valovastus eli LDR on vastus, joka reagoi valon määrään. Sitä voikin käyttää sensorina jolla saamme vaikka valot syttymään kun on pimeää tai vaikka vaihdella valojen vilkutuksen nopeutta. Esimerkissä rakennetaan kytkentä ja ohjelma, jossa led syttyy päälle kun tulee tarpeeksi pimeää.

Tarvitset tehtävää varten tietokoneen.

Voit tehdä kytkennän alla mainituilla osilla tai hyödyntää valmista permaproto-kytkentää, jonka löydät Meta-boxi tarvikkeista. Permaproto-kytkennän kanssa tarvitset Arduino-mikrokontrollerin, tietokoneen ja USB-johdon.

Osat

Valovastus

Led

 

Vastus (220 ohm ja 4.7kOhm)

Tarvitset kaksi vastusta, yksi vastus valovastukselle ja yksi ledille. Voit käyttää ledille 220 ohmin vastusta (värikoodi: punainen, punainen ruskea, kulta) ja valovastukselle esimerkiksi 4.7 kilo-ohmin (keltainen, violetti, punainen, kulta) tai 10 kilo-ohmin vastuksen (ruskea, musta, oranssi, kulta). Vastuksen koko vaikuttaa valovastuksen arvoihin.

Arduino

Koekytkentälevy

 Hyppylankoja

Tarvitset jokaiselle kirjasinnäytön kirjaimen ledille oman hyppylangan. Koko näytön käyttämiseen tarvitset siis yhdeksän hyppylankaa.

USB A-B

Kytkennät

Alla oleva kuva näyttää valovastuksen (viitataan jatkossa nimellä LDR (light dependant resistor) ja ledin kytkemisen. Tässä vielä huomioita

  1. Led on kytketty pinniin 9.
  2. Valovastus on kytketty 5-volttiin ja maahan (GND) ja valovastuksen ja maan välissä on 10 kilo-ohmin tai 4.7-kilo-ohmin vastus. Valitsemasi vastus vaikuttaa valovastuksen tuottamiin arvoihin, mutta periaatteessa voit käyttää kumpaa vain vastusta.
  3. Valovastuksen arvo luetaan sen toisesta jalasta, samasta mistä vastus lähtee kohti maata. Ajatuksena on siis se että Arduino vain kuuntelee mitä valovastuksessa tapahtuu ja kertoo sen meille, jolloin voimme ohjelmoida Arduinon tekemään jotain tämän tiedon perusteella.

Ohjelmointi

Graafinen ohjelmointi Snap4Arduinolla

  1.     Avaa Arduino IDE
  2.     Kytke Arduino UNO koneeseen USB kaapelilla
  3.     Avaa Arduino IDE ja lataa Arduinoon Firmata-koodi (Tiedosto -> Esimerkit -> Firmata -> StandartFirmata). 
  4.     Avaa Snap4Arduino-ohjelmointiympäristö ja aktivoi Arduino ohjelmointiympäristöön painamalla ”Connect Arduino”. Katso kuvasta.

Koodin rakentaminen Snap4Arduino ohjelmointiympäristössä

Alla valmis koodi. Vaiheittaiset ohjeet löydät kuvan alta.

6. Selvittääkseen onko valoisuus tarpeeksi alhainen, on valovastuksesta tuleva arvo tallennettava. Tälläisten tietojen tallentamiseen ohjelmoinnissa käytetään muuttujia. Muuttuja voi olla mikä vain sana ja se tulee määritellä itse. Määrittele muuttuja Muuttujat-välilehdestä.

Valitse ”Uusi muuttuja” ja anna muuttujan nimeksi jokin kuvaava nimi. Esimerkiksi ”ldr”.

7. Aloita koodi valitsemalla Ohjaus-välilehdestä komento ”kun klikataan (vihreä lippu)”. Löydät kuvan valmiista koodista kokonaisuudessaan alta.

8. Valitse Ohjaus-välilehdestä ”ikuisesti”-komento ja raahaa se koodin jatkoksi.

9. Koska ohjelma sytyttää tai sammuttaa ledin valoisuuden mukaan, tarvitsee koodiin tuoda muuttuja ”ldr”. Valitse Muuttujat-välilehdestä aktiiviseksi muuttuja ldr ruksittamalla muuttuja valikosta. Raahaa ”aseta muuttujan [ ] arvoksi [0]”-komento ikuiseti-ehtolauseen sisään. Valitse komennon alasvetovalikosta muuttuja ”ldr”.

10. Raahaa Arduino-valikosta muuttujan arvoksi ldr:stä saatava arvo, eli ”analog reading ( )” ja upota se luvun 0 tilalle oranssiin palikkaan. Valitse tämän jälkeen analog reading -palikan alasvetovalikosta oikea pinni, johon ldr on kiinnitetty, eli pinni 0.

11. Valitse Muuttujat-valikosta vielä ”näytä muuttuja”-komento, raahaa se seuraavaksi koodiin ja valitse alasvetovalikosta ”ldr”. Nyt arvo näkyy varmasti koko ajan ohjelmaruudussa.

12. Valitse Ohjaus-välilehdestä ”jos/muuten”-ehtolause ja raahaa se ohjelmaan. Sijoita ehtolause ”ikuisesti”-ehtolauseen sisään, edellisen muuttujaskriptin jatkoksi.

13. Valitse Laskenta-välilehdestä ”[ ] < [ ]” eli ”on pienempi kuin” lause ja liitä se ”jos/muuten” ehtolauseen ehtokenttään. Täytä tarvittavat arvot tyhjiin kenttiin seuvaavanlaisesti.

14. Valitse Arduino-välilehti ja raahaa ”analog reading ( )” ensimmäiseen tyhjään ruutuun. Valitse alasvetovalikosta arvoksi ”0”.

15. Ehtolauseen ehdon raja-arvoksi tulee esimerkissä arvo 200. Kirjoita luku 200 ”on pienempi kuin” lauseen tyhjään ruutuun. Voit kokeilla ensin hakea sopivaa arvoa peittämällä ldr:ää koekytkentälevystä ja lukemalla mikä arvo ohjelmaruudun muuttujakentässä näkyy. Analog readgin arvo voi vaihdella paljonkin riippuen siitä kuinka valoisa huone on missä työskentelet. Lukema voi olla esim. 700. Kokeile mikä on sinulle oikea arvo.

16. Määritä mitä tapahtuu kun valoisuuden arvo on alle 200. Esimerkissä led syttyy päälle. Valitse Arduino-välilehdestä ”set digital pin ( ) to < >” ja raahaa se ”jos analog reading 0 < 200” alle. Täytä arvoiksi alavalikosta pin 9 ja valitse se menemään aktiiviseksi.

17. Aseta ehtolauseen ”jos/muuten” jälkimmäiseen, eli muuten-osioon led sammumaan. Valitse Arduino-välilehdestä ”set digital pin (9) to <x>”.


Tekstipohjainen ohjelmoiminen Arduino IDE:ssä

  1.     Avaa Arduino IDE ohjelmointiympäristö
  2.     Kytke Arduino kiinni koneeseen USB A to B kaapelilla.
  3.     Määrittele ensin muuttuja jota käytetään valovastuksen lukemiseen

int ldr=0;

4. Määrittele tämän jälkeen void-funktiolla Serial Communication yhteys. Tämä on yhteys Arduinosta tietokoneeseen, jolloin voit seurata valovastuksesta saatavia arvoja Arduino IDE:llä. Seurataksesi arvoja, avaa Serial monitot Arduino IDE:n oikeasta yläkulmasta (suurennuslasi-kuvake). Vielä ei mitään arvoja näy.

void setup() {
Serial.begin(9600);
pinMode(9, OUTPUT);  //led kiinnitetään pinniin 9
}

5. Määrittele ensin ldr-muuttuja lähettämään saatu arvo serial monitoriin. Voit kokeilla saatko arvon muuttumaan peittämällä ldr:n kädelläsi.

void loop() {
Serial.println(analogRead(ldr));

}

6. Lisää koodiin loop-funktion sisään (kirjoitettu edellä: void loop()) osio, joka luo muuttujan sensorista luettavalle arvolle. Nimeä muuttuja selväsi. Esimerkissä se on nimetty ”rajaarvo”. Muista kirjoittaa koodia vain sulun ”}” sisäpuolelle.

int rajaarvo = analogRead(ldr);

7. Liitä lopuksi ehtolause, jossa määritellään millä rajaarvolla led syttyy tai sammuu. Voit halutessasi muuttaa raja-arvoa sopivaksi hyödyntämällä Serial monitorista saatavaa lukemaa. Muista tarkistaa että ”}” sulku on koodin loppussa eikä väärässä välissä.

if (rajaarvo < 250) { digitalWrite(9, HIGH);  //led päälle } else { digitalWrite(9,LOW);  //led pois päältä } }


8. Lopuksi vielä koko koodi

int ldr=0; void setup() { Serial.begin(9600); pinMode(9, OUTPUT); //led kiinnitetään pinniin 9 } void loop() { Serial.println(analogRead(ldr)); int rajaarvo = analogRead(ldr); if (rajaarvo < 250) //raja-arvo, jonka mukaan led joko on päällä tai ei ole päällä { digitalWrite(9, HIGH); //led päälle } else { digitalWrite(9,LOW); //led pois päältä } }

Mitä seuraavaksi?

  • Kokeile rohkeasti muuttaa delay(1000)-komennon aikoja. Kokeile esimerkiksi kolmen sekunnin vilkutusta laittamalla delayn arvoksi 3000. Muistathan että muokattu koodi tulee aina ladata uudelleen Arduinoon!
  • Kokeile yhdistää valovastusta muihin tekemiisi harjoituksiin, esimerkiksi moottoriin!

Kirjasinnäyttö

Kirjasinnäyttö

Yleistä

Kirjasinnäyttö eli seven segment display koostuu seitsemästä ledistä, jotka muodostavat yhdessä kirjaimen, sekä kahdeksannesta ledistä, joka toimii pisteenä kirjaimen alalaidassa.  

Kirjasinnäytön toiminta perustuu ledien toimintaan. Kirjaimia luodaan sytyttämällä aina ne ledit, jotka halutaan kirjasinnäytöstä esiin. Jokainen kirjasinnäytön kirjaimen osa on kuin yksi ledi. Huomaa kuitenkin, että jokaisella ledillä on yhteinen katodi  eli ledin miinusjalka.

Tässä ohjeessa siis sovelletaan ledin vilkuttamista. Yhden ledin sijaan sytytetään aina niin monta haluttua lediä, kuin kirjaimen muodostaminen vaatii.

Tarvitset tehtävän tekemiseen tietokoneen.

Voit tehdä kytkennän alla mainituilla osilla tai hyödyntää valmista permaproto-kytkentää, jonka löydät Meta-boxi tarvikkeista. Permaproto-kytkennän kanssa tarvitset Arduino-mikrokontrollerin, tietokoneen ja USB-johdon.

Osat

Kirjasinnäyttö

Vastus (330 ohm)

 Vastukse väriraidat: Oranssi-oranssi-ruskea-punainen

Arduino

Koekytkentälevy

Hyppylankoja 9 kpl

Tarvitset jokaiselle kirjasinnäytön kirjaimen ledille oman hyppylangan. Hyppylankojen värillä ei ole väliä.

USB A-B

Kytkennät

330 ohmin vastuksen voi sijoittaa Gnd-jalan ja Arduinon Gnd-pinnin väliin, jolloin vastus rajoittaa aina kaikkien käytössä olevien ledien sähkövirtaa.

Tee alla oleva kytkentä ennen siirtymistä ohjelmointi osioon. Voit tehdä kytkennän joko edellä mainituista irto-osista tai kokeilla ensin valmiilla perma-proto kytkennällä. Tällöin riittää että kytket hyppylangat kuvan mukaisesti oikesiin kohtiin Arduinossa.

Lista pinnien ja näytön kytkennöistä:

  • 13 ohjaa alalaidan vasenta lediä
  • 12 ohjaa alalaidan keskimmäistä lediä
  • 11 ohjaa alalaidan oikeata lediä
  • 10 ohjaa pistettä
  • 9 ohjaa keskimmäistä lediä
  • 8 ohjaa yläreunan vasenta lediä
  • 7 ohjaa yläreunan keskimmäistä lediä
  • 6 ohjaa yläreunan oikeata lediä

Ohjelmoiminen

Graafinen ohjelmoiminen

  1. Avaa Arduino IDE.
  2. Kytke Arduino UNO koneeseen USB kaapelilla.
  3. Avaa Arduino IDE ja lataa Arduinoon Firmata-koodi (Tiedosto->Esimerkit->Firmata->StandardFirmata).
  4. Kun Arduino IDE on ladannut Firmatan, sulje Arduino IDE.

Avaa Snap4Arduino-ohjelmointiympäristö ja yhdistä Arduino-mikrokontrolleri ohjelmointiympäristöön painamalla ”Connect Arduino” Arduino-valikosta.

Rakenna koodi esimerkin mukaan.

 

Koodin rakentaminen Snap4Arduino ohjelmointiympäristössä

  1. Valitse Ohjaus-välilehdestä ”kun klikataan (vihreä lippu)” 
  2. Valitse Arduino-välilehdestä ”set digital pin (  ) to < >”-komento ja raahaa se rakennettavan ohjelmakoodin jatkoksi
  3. Valitse pinniksi pinni nro 13 avaamalla edellisen komennon alasvetovalikko.
  4. Klikkaa vihreää lippua ja saat syttymään ensimmäisen ledin kirjaimesta.
  5. Lisää skriptiin myös aktivoitumaan pinnit  13, 11, 9, 8, 7, 6. Näin muodostat kirjaimen “A”.
  6. Klikkaa vihreää lippua käynnistääksesi uuden ohjelman Arduinossa.

Voit seuraavaksi kokeilla muodostaa sanan “HEI” vilkuttamalla ledejä.


Tekstipohjainen ohjelmoiminen

  1. Avaa Arduino IDE ohjelmointiympäristö
  2. Kytke Arduino kiinni koneeseen USB A to B kaapelilla.
  3. Kopioi seuraava koodi ohjelmointiympäristöösi
void setup() {

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);

pinMode(8, OUTPUT);

pinMode(7, OUTPUT);

pinMode(6, OUTPUT);

}

void loop() {     

 digitalWrite(13, HIGH);  

 delay(1000);          

 digitalWrite(13, LOW);

 delay(1000);


}
  1. Koodi rakentuu kahdesta funktiosta: setup-funktiosta ja loop-funktiosta. Ensimmäisen setup-funktion voi  ajatella käynnistävän Arduinon ja kaikki ne pinnit, joita tullaan käyttämään. Siinä määritellään, että pinni 13 valmistautuu antamaan ulos sähkövirtaa. Pinni 13:aan on liitetty ledin (+)-jalka ja (–)-jalka Arduinon GND pinniin.
  2. Loop-funktio puolestaan toteuttaa varsinaisen toiminnan Arduino-kehitysalustalla. Tätä koodia luetaan ylhäältä alas. Esimerkkikoodissa pinni 13 aktivoidaan antamaan sähkövirtaa komennolla ”digitalWrite(13, HIGH); ” Puolipiste (;) päättää komennon ja on siksi erittäin tärkeä.
  3. Seuraava komento on ”delay(1000);” joka määrittää, että edellinen komento pidetään toiminnassa 1000 millisekuntia, eli yhden sekunnin ajan. Tämän jälkeen siirrytään seuraavalle koodin riville.
  4. Komento ” digitalWrite(13, LOW); ” määrittää ledin pois päältä.
  5.  jälleen ”delay(1000)”-komennolla led pidetään sekunnin ajan pois päältä.
  6. Lataa koodi Arduino kehitysalustaan painamalla ”Upload”. Vasemman alalaidan led syttyy ja sammuu sekunnin sykleissä. Mikäli lataamisessa ilmenee ongelmia, palaa lukuun Arduinon perusteisiin  ja tarkista että oikea dataportti on valittu.
  7. Kun led syttyy, luo vilkkumaan “A” kirjain seuraavalla koodilla.
void setup() {

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);

pinMode(8, OUTPUT);

pinMode(7, OUTPUT);

pinMode(6, OUTPUT);

}

void loop() {     

digitalWrite(13, HIGH);  

digitalWrite(11, HIGH);  

digitalWrite(9, HIGH);  

digitalWrite(8, HIGH);  

digitalWrite(7, HIGH);  

digitalWrite(6, HIGH);  

 

delay(1000);          

digitalWrite(13, LOW);

digitalWrite(11, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, LOW);

 

delay(1000);

}

 

  1. Kirjoita ”HEI” hyödyntämällä funktioita, jotka määritellään koodin lopussa komennoilla ”void”. Tällöin sinun on mahdollisuus kirjoittaa tiiviimpää loop-funktiota (ohjelma jota Arduino pyörittää) viittaamalla aina funktioihin, joita on kirjoitettu koodin ”ulkopuolelle”. Tämä on hyvä keino käyttää esimerkiksi jos useamman kerran täytyy kutsua samaa toimintoa, kuten vaikkapa muodostamalla lause aakkosista.
void setup() {

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);

pinMode(8, OUTPUT);

pinMode(7, OUTPUT);

pinMode(6, OUTPUT);

}

 

void loop() {     

H();

delay(1000);

 

E();

delay(1000);

 

I();

delay(1000);

}

 

void H(){

digitalWrite(13, HIGH);  

digitalWrite(11, HIGH);  

digitalWrite(9, HIGH);  

digitalWrite(8, HIGH);  

digitalWrite(6, HIGH);  

}

void E(){

digitalWrite(13, HIGH);  

digitalWrite(11, HIGH);  

digitalWrite(9, HIGH);  

digitalWrite(8, HIGH);  

digitalWrite(7, HIGH);  

}

 

void I(){

digitalWrite(13, HIGH);  

digitalWrite(9, HIGH);   

}

Mitä seuraavaksi?

Millaisen viestin haluat kertoa? Ohjelmoi oma viestisi? Voisitko liittää kirjainnäytön kertomaan viestin, kun jokin sensori havainnoi muutoksen ympäristössä?

Servomoottori

Servomoottori

Yleistä

Servomoottori on sähkömoottori, joka kääntyy haluttuun asentoon ja pysyy asennossa halutun ajan. Servomoottorien etuna tavalliseen sähkömoottoriin verrattuna on niiden tarkkuus. Niiden kytkeminen on myös huomattavasti helpompaa, sillä kytkijän ei tarvitse itse välittää transistorista,vaan transistori on piilotettu servon sisään.

Servon ohjelmoiminen graafisesti on todella yksinkertaista, mutta tekstipohjainen ohjelmoiminen hieman haastavampaa.

Tee kytkennät ja sen jälkeen ohjelmointi-osuus. Tarvitset tehtävään tietokoneen.

Voit tehdä kytkennän alla mainituilla osilla tai hyödyntää valmista permaproto-kytkentää, jonka löydät Meta-boxi tarvikkeista. Permaproto-kytkennän kanssa tarvitset Arduino-mikrokontrollerin, tietokoneen ja USB-johdon.

Osat

Servomoottori

Servomoottori on moottori, joka ei pyöri akselinsa ympäri kuten tavallinen sähkömoottori, vaan sillä voidaan liikkua edes-takas 180-astetta. Lisäksi on olemassa 360-asteen servomoottoreita, mutta tässä tehtävässä tutustutaan 180 asteen servomoottoriin.

Arduino

Hyppylankoja

Hyppylankojen värillä ei ole väliä.

USB A-B

Kytkennät

Kytke servomoottori Arduinoon hyppylangoilla siten, että oranssi (tai keltainen) johto servosta liitetään Arduinon pinniin 9.

Tämän lisäksi punainen johto liitetään 5V-pinniin ja musta (tai ruskea) johto liitetään GND-pinniin.

Tee alla oleva kytkentä ennen siirtymistä ohjelmointi osioon. Voit tehdä kytkennän joko edellä mainituista irto-osista tai kokeilla ensin valmiilla perma-proto kytkennällä. Tällöin riittää että kytket hyppylangat kuvan mukaisesti oikeisiin kohtiin Arduinossa.

Ohjelmoiminen

Graafinen ohjelmoiminen

  1.     Avaa Arduino IDE.
  2.     Kytke Arduino UNO koneeseen USB kaapelilla.
  3.     Avaa Arduino IDE ja lataa Arduinoon Firmata-koodi. 
  4.     Avaa Snap4Arduino ohjelmointiympäristö ja aktivoi Arduino ohjelmointiympäristöön painamalla Arduino-valikosta ”Connect Arduino”.
  5.     Rakenna koodi esimerkin mukaan.

Koodin rakentaminen Snap4Arduino ohjelmointiympäristössä

  1. Valitse Ohjaus-välilehdestä ”kun painetaan [välilyönti] ja raahaa se ohjelmointikenttään. Vaihda välilyönti-painikkeen tilalle haluamasi näppäin, jolla servomoottori käännetään vasemmalle. Esimerkiksi nuoli vasemmalle -näppäin.
  2. Valitse Arduino-välilehdestä ”set servo ( ) to [clockwise]”-komento. Vaihda servon numeroksi alasvetovalikosta se pinnin numero johon servo on kiinnitetty. Esimerkin mukaan siis pinni 9. Vaihda clockwise määritteen tilalle kulma angle ja anna arvoksi 0.
  3. Kokeile kääntää servo vasempaan painamalla nuolta vasemmalle.
  4. Ohjelmoi seuraavaksi servo kääntymään toiseen suuntaan tekemällä uuden koodirivin kuvan mukaisesti. Vaihda näppäimeksi esim. ”kun painetaan nuoli oikealle” ja ”set servo” komentoon kulmaksi (angle) 90.
  5. Entä miten servo kääntyy 180 asteen kulmaan?

Tekstipohjainen ohjelmoiminen

  1.     Avaa Arduino IDE ohjelmointiympäristö
  2.     Kytke Arduino kiinni koneeseen USB A to B kaapelilla.
  3.     Kopioi seuraava koodi ohjelmointiympäristöösi.
    #includeServo myservo;int pos = 0;void setup() {
    myservo.attach(9);
    }void loop() {
    for (pos = 0; pos <= 180; pos += 1) {
    myservo.write(pos);
    delay(15);
    }
    for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);
    delay(15);
    }
    }
  4. Lataa koodi Arduino-levylle painamalla ohjelmointiympäristöstä Lataa-painiketta. Käydään seuraavaksi läpi mistä koodi rakentuu.
  5. Arduino-ohjelmointiympäristössä on paljon sisäänrakennettuja komentoja joita kutsutaan kirjastoiksi (libraries). Toisinaan kirjastot tulee aktivoida itse, kuten servomoottoreita käytettäessa. Aktivoiminen tapahtuu seuraavalla komennolla:#include
  6. Seuraavaksi käytettävä objekti Servo tulee nimetä nimellä johon viitata myöhemmin koodissa. Nimetään se nimellä ”myservo” seraavalla tavalla:Servo myservo;
  7. Sitten määritellään muuttuja, jolle annetaan lähtöarvo 0. Tätä muuttujaa tarvitaan koodissa myöhemmin määritettäessä liikkeen kestoa:int pos = 0;
  8. Servo liitetään pinniin numero 9:void setup() {
    myservo.attach(9);
    }
  9. Koodi joka alkaa liikuttamaan servoa alkaa ehtolauseella ”for”. Tämä komento rakentuu kolmesta osasta jotka ovat sulkujen sisällä (pos = 0; pos <= 180; pos += 1). Ensin annetaan servon asennolle (pos) muutujan lähtöarvo (alussa määriteltu 0). Sen jälkeen määritellään, että seuraavaksi määriteltävää tapahtumaa toistetaan alusta loppuun luuppina niin kauan, että muuttuja saa arvon 180. Viimeinen määre määrittää, paljonko muuttujan arvoa muutetaan joka kierroksen jälkeen (+=1, eli sitä kasvatetaan aina yhdellä).Jokaisen edellä määritellyn kierroksen aikana tapahtuu muutos objektissa ”myservo” siten, että sille lähetetään visti muutoksesta ”write” joka on muuttujan ”pos” saama arvon muutos. Näin rakentuu melko tiivis koodi, jossa yhtä muuttujaa käytetään samanaikaisesti kahdessa paikassa siten, että kohteet joihin muuttujalla viitataan viittaavatkin samaan objektin saaden sen liikkumaan eri hallitusti 0-180 asteen välillä.for (pos = 0; pos <= 180; pos += 1) {
    myservo.write(pos);
    delay(15);
    }
  10. Sitten edellinen komento käännetäänkin tapahtumaan negatiivisesti, jolloin servo palaa takaisin alkupisteeseen.for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);
    delay(15);
    }

Mitä seuraavaksi?

Milaisen kojeen voisit rakentaa servosta? Rakenna teos jossa hyödynnät servo-moottoria. Mitä servo voisi liikuttaa?

Voit myös siirtyä seuraavaan tehtävään tutustumaan valovastukseen.

Liiketunnistin

Liiketunnistin

Yleistä

Tässä ohjeessa esitellään, kuinka voidaan tunnistaa liikettä käyttäen Arduino kehitysalustaa ja edullista pir-liiketunnistina. Pir-liiketunnistin tunnistaa ympärillä olevan infrapunasäteilyn muutokset, joita tulee esimerkiksi ihmisen liikkuessa. Käytännössä Pir-liiketunnistin toimii hieman samalla tavalla kuten esimerkiksi valokatkaisija, eli havaitessaan muutokseet, sensori menee päälle ja jos liikettä ei tapahdu määritellyn ajan kuluessa sensori menee pois päältä. Toisin sanoen Pir-liiketunnistimella ei voi mitata etäisyyttä, vaan se on digitaalinen sensori, joka kertoo vain onko liikettä vai ei. Analoginen sensori, kertoisi meille liikkeentunnistamisen lisäksi kuinka kaukana tai nopeasti joku liikkuu.

Tarvitset tehtävään tietokoneen.

Voit tehdä kytkennän alla mainituilla osilla tai hyödyntää valmista permaproto-kytkentää, jonka löydät Meta-boxi tarvikkeista. Permaproto-kytkennän kanssa tarvitset Arduino-mikrokontrollerin, tietokoneen ja USB-johdon.

 

Osat

PIR-liiketunnistin

Meta-Boxin mukana tulevat Pir-sensorit voidaan kytkeä Arduinon +5-volttiin (punainen johto). Jokainen Pir-sensori on hieman erilainen.

Vastus (330 ohm)

 Vastukse väriraidat: Oranssi-oranssi-ruskea-punainen

Arduino

Hyppylankoja 9 kpl

Hyppylankojen värillä ei ole väliä.

USB A-B

Kytkennät

Pir-liiketunnistin kytketään arduinoon (mallista riippuen) +5-voltin pinniin, maahan, sekä valitsemaan digitaaliseen pinniin. Tässä esimerkissä se on kytketty pinniin 2.

Tee alla oleva kytkentä ennen siirtymistä ohjelmointi osioon. Voit tehdä kytkennän joko edellä mainituista irto-osista tai kokeilla ensin valmiilla perma-proto kytkennällä. Tällöin riittää että kytket hyppylangat kuvan mukaisesti oikesiin kohtiin Arduinossa.


Ohjelmoiminen

Graafinen ohjelmointi

  1.     Avaa Arduino IDE
  2.     Kytke Arduino UNO koneeseen USB kaapelilla
  3.     Avaa Arduino IDE ja lataa Arduinoon Firmata-koodi. Kuvasta näkyy, mistä koodi löytyy.

4. Avaa Snap4Arduino-ohjelmointiympäristö.

5. Rakenna koodi esimerkin mukaan. Muista yhdistää Arduino ohjelmaan painamalla ohjelman valikosta ”connect arduino”.

Koodin rakentaminen Snap4Arduino ohjelmointiympäristössä

  1. Valitse Ohjaus-välilehdestä ”Kun klikataan ”vihreä lippu””
  2. Valitse Ohjaus välilehdestä Ikuisesti-komento
  3. Valitse Ohjaus-välilehdestä Jos—muuten-komento ja raahaa se rakennettavan ohjelmointikoodin jatkoksi.
  4. Valitse Laskenta-välilhdestä vihreä yhtäsuuri kuin palkki (katso kuva alla) ja raahaa se jos sanan jälkeen olevaan tyhjään valkoiseen laatikkoon.
  5. Valitse Arduino-välilehdestä”digital reading”-komento ja raahaa se yhtä suuri kuin palkin ensimmäiseen tyhjään laatikkoon. Aseta Digital reading -komennon alasvetonuolesta pinniksi 2. 
  6. Lisää toiseen yhtä suuri kuin palkin laatikkoon Laskenta valikosta  ”tosi”-painike.
  7. Tämä vastaa samaa kuin HIGH tai ON.
  8. Valitse Arduino-välilehdestä ”set digital pin”-komento ja raahaa se JOS sanan alle.
  9. Aseta ”set digital pin”-komennon numeroksi 13. (Tämä vastaa siis pinniä missä Led-valo on kytketty.)
  10. Aseta ”set digital pin”-komennon oikealla oleva painike vihreäksi, tämä laittaa siis ledin päälle.
  11. Raahaa toinen ”set digital pin”-komento MUUTEN sanan alle.

Painamalla vihreää lippua pitäisi led-valon syttyä aina kun Pir-liiketunnistin havaitsee liikettä ja sammua silloin kuin se ei havaitse.

Ohjelmointi Arduinolla

Pir-liiketunnistinta voi helposti ohjelmoida myös suoraan Arduinosta. Oheinen koodi tekee saman kuin ylläoleva koodi: Laittaa ledin päälle kun liikettä tunnistetaan. Vaikka teksipohjainen ohjelmointi voi olla vaikeaselkoisempaa, voi sillä tehdä helposti monipuolisia ohjelmia, eikä tietokoneen tarvitse olla auki tai kytkettynä Arduinoon. Kopioi ja lataa alla oleva koodi Arduinoon.

/*
 * Pir-liiketunnistimen demokoodi
 */
 
int led = 13; // Led-valo kytkettynä pinniin 13
int pir = 2; // pinni missä pir-liiketunnistin on kiinni
int pirState = LOW; // muuttuja, joka komentaa liiketunnistimen tilaa, asetettuna aluksi pois päältä
int val = 0; // muuttuja johon luetaan liiketunnistimen tila
 
void setup() {
 pinMode(led, OUTPUT); //Led-valon pinnin asettaminen outputiksi
 pinMode(pir, INPUT); // Liiketunnistimen pinnin asettaminen inputiksi
 Serial.begin(9600); // Aloitetaan yhteys arduinon ja tietokoneen välille, vianmäärittelyyn yms.
}
 
void loop(){
 val = digitalRead(pir); //luetaan liiketunnistimen tila
 if (val == HIGH) { // tarkastetaan onko tunnistin päällä ja jos se on päällä laitetaan led paalle.
 digitalWrite(led, HIGH); 
 if (pirState == LOW) {
 // we have just turned on
 Serial.println("Liiketta havaittu");
 pirState = HIGH;
 }
 } else {
 digitalWrite(led, LOW); // jos liikettä ei ole havaittu, pistetään led pois päältä.
 if (pirState == HIGH){
 // we have just turned of
 Serial.println("Ei liiketta");
 pirState = LOW;
 }
 }
}

Mitä seuraavaksi?

Voit muuttaa PIR-sensorin herkkyyttä ja aikaa kuinka kauan se on päällä suoraan vääntämällä sensorissa olevia potentiometrejä eli keltaisia säätöruuveja.

Liiketunnistinta voi käyttää moneen asiaan, esimerkiksi laittamaan moottorin päälle kun joku liikkuu, tai valot vilkkumaan kun joku liikkuu. Liiketunnistimen voi myös laittaa osaksi monipuolisempaa ohjelmaa.

Seuraavaksi  voit kokeilla servomoottorin toimintaa!

Interaktiivinen muotokuva Processingilla

Interaktiivinen muotokuva Processingilla

Yleistä

Tässä ohjeessa esitellään kuinka Processing-ohjelmointikielellä voidaan ohjelmoida interaktiivinen hahmo. Processing on erityisesti taiteilijoille suunniteltu ohjelmointikieli, jolla voi helposti luoda erilaisia interaktiivisa teoksia. Katso Processingin-asennusohjeet täältä.

Ohjelmoiminen

Ohjelmoiminen tapahtuu joko Processingin omalla ohjelmalla tai nettiselaimessa toimivalla sketchpad.cc-sivustolla. Sketchpad sivusto ei vaadi asennusta koneille ja sitä voi siis käyttää millä tahansa koneella josta löytyy nettiyhteys. Processing-ohjelman hyviä puolia ovat nopeus ja monipuolisuus. (Katso asennus- ja lataus ohjeet täältä).

 Ympyrän piirtäminen

  1. Ensimmäiseksi processingissä määritellään ikkunan, eli taideteoksen koko pikseleissä. Eli koko teosta voi ajatella koordinaateissa. Esimerkiksi 500,50o kokoisen teoksen ylä-vasen kulma on piste 0,0 ja ala-oikea kulma on 500,500.
  2. Komento size(500,500); asettaa teoksen kooksi 500 kertaa 500 pikseliä. Kokeile painaa play-painiketta ja katso miltä teos näyttää.
  3. Komento background(255,255,255); asettaa taustan värin valkoiseksi. Sulkujen sisällä olevat numerot asettavat taustan RGB (Red, Green, Blue) arvot välillä 0-255 (Sama kuin esimerkiksi photoshopissa) Kun kaikki arvot ovat 255 niin tausta on valkoinen.
  4. Kokeile muuttaa background-komennon arvoja ja katso mitä tapahtuu.
  5. Seuraavaksi piirretään ympyrä. Kirjoita komento Ellipse (250,250,200,200); Ellipsen sulkujen kaksi ensimmäistä arvoa kertovat sijainnin ja kaksi viimeistä koon: ellipse(x-sijainti, y-sijainti, x-koko, y-koko). Näillä asetuksilla piirtyy ympyrä täysin keskelle.
  6. Kokeile muuttaa ympyrän kokoa ja sijaintia!

 Naaman piirtäminen

  1. Piirrä naama ja sinne silmät käyttämällä ellipse-komentoja. Tässä yksi esimerkki naamasta, mutta voit keksiä oman! Muista piirtää myös pupillit: Tarvitse siis neljä ellipse-komentoa piirtämään silmät ja pupillit. Koita saada pupillit silmien keskelle!
  2. Seuraavaksi käytetään line-komentoa, jolla piirretään nenä ja suu. line-komento yksinkertaisesti piirtää viivan, myöhemmin muokkaamme nenää ja suuta vielä paremmaksi. line-komento koostuu neljästä osasta, jotka ovat sulkujen sisällä :(x-aloituspiste, y-aloituspiste, x-lopetuspiste, y-lopetuspiste)
  3. Kirjoita line (250,200,250,300); joka tekee nenän
  4. Komento line (200,350,300,350); puolestaan piirtää suun.
  5. Muokkaa suun ja nenän korkeuksia ja pituuksia haluamaksesi.

 Naaman muokkaaminen

Seuraavaksi lisätään naamaan hieman väri ja muotoa, sitä voidaan tehdä muutamalla eri komennolla: stroke(r,g,b) muokkaa piirretyn viivan väriä. Sulkujen sisällä olevat r,g,b kirjaimet viittaavat punaiseen, vihreään ja siniseen arvoon, joista kukin voi olla jotain välillä 0-255. Komento strokeWeight(x) (-huomaa että Weight kirjoitetaan isolla kirjaimella!) muokkaa piirretyn viivan paksuutta. Muuta x:n tilalle haluamasi paksuus. Lopuksi komento fill(r,g,b) muokkaa piirrettyjen muotojen sisällön väriä.

  1. Kirjoita ennen ensimmäistä ellipse-komentoa (eli ihan alkuun)komento: fill(255,0,0); tämä värjää naaman punaiseksi.
  2. Kokeile painaa play-nappia ja katso mitä tapahtuu!
  3. Huomaatko että myös kaikki ympyrät fill()-komennon jälkeen värittyvät punaiseksi? Kirjoita ensimmäisen ellipse-komennon jälkeen toinen fill-komento: fill(255); tämä värjää muut ympyrät valkoiseksi. Huomaatko eron kahden fill-komennon välillä? Jos haluat vain tehdä harmaan sävyjä, tai mustaa ja valkoista, voit käyttää vain yhtä arvoa kun määrittelet värejä. Tällöin 0 on musta ja 255 on valkoinen.
  4. Seuraavaksi muokataan nenän paksuutta. Kirjoita strokeWeight(30)-komento ennen nenää piirtävää viivaa.
  5. Sitten muokataan suuta. Ennen suuta piirtävää viivaa kirjoita stroke(255,0,0); ja seuraavalle riville strokeWeight(10); Nämä muokkaavat suun viivan punaiseksi ja hieman paksummaksi.

Nyt naaman pitäisi näyttää jo hieman värikkäämmälle. Muokkaa vielä värejä ja paksuuksia, jotta saat tuntumaa koodiin. Huomaa että jokaisen komennon pitää olla omalla rivillään. Jos koodi ei toimi tarkista myös oikeinkirjoitus!

VINKKI: voit myös kommentoida koodia kirjoittamalla kommenttisi eteen kaksi kenoviivaa: // Näin voit esimerkiksi jakaa koodin selkeämmin ja näet helpommin mitä mikin koodirivi tekee. Katso kuva alla:

Vuorovaikutuksen tekeminen

Seuraavaksi teemme kasvoista hieman aktiivisemmat pistämällä ne reagoimaan hiiren (tai kosketuslevyn) liikkeisiin käyttämällä mouseX ja mouseY-komentoja. Samoin kuin teoksemme, myös koko tietokoneen näyttö koostuu pikseleistä X ja Y-akseleilla. mouseX-komento yksinkertaisesti kertoo osoittimen tilan x-akselilla ja mouseY-komento vastaavan y-akselilla. Voimme käyttää näitä arvoja ennaltamääriteltyjen arvojen sijasta tuomalla interaktiivisuutta teokseen.

Ennenkuin aloitamme joudumme hieman muokkaamaan ohjelmamme rakennetta jakamalla sen kahteen osaan void setup-asetusosioon ja void draw-ohjelma osioon. Tätä voidaan ajatella hieman samoin kuin tietokonetta: Kun käynnistämme tietokoneen niin ensin kuulemme käynnistysäänen ja tietokone alkaa lataamaan käyttöjärjestelmää ja konetta valmiiksi eli se käy setup-ohjelmaa läpi. Kun kaikki on valmista tietokone siirtyy ajamaan käyttöjärjestelmä-ohjelmaa, eli Processingin tapauksessa void draw-ohjelmaa. Tuo draw-ohjelma on päällä niin kauan kunnes suljemme ohjelman, läpikäyden kirjoittamaamme koodia rivi riviltä loopissa aina uudestaan ja uudestaan.

1. Ensin siirrämme tarvittavat asetus-komennot (tässä tapauksessa teoksen koko ja taustan väri)  void setup-kohtaan. Koodin pitäisi näyttää tältä:

 void setup(){
  size (500, 500);
background(255);
}

2. Seuraavaksi suljemme lopun koodin void draw-funktion sisälle. Silloin koko koodin pitäisi näyttää suunnilleen tältä, riippuen toki millaisen hahmon olet tehnyt:

void setup(){
  size (500, 500);
background(255);
}

void draw(){
//pää
stroke(0);
strokeWeight(1);
fill(255,100,100);


//silmät
ellipse(250, 250, 300, 400);
fill(255);
ellipse(200, 150, 50, 100);
ellipse(300, 150, 50, 100);

//pupillit
strokeWeight(5);
ellipse(200,150, 10, 10);
ellipse(300,150, 10, 10);

//nenä
strokeWeight(30);
line (250,200,250,300);

//suu
strokeWeight(10);
stroke(255,0,0);
line (200,370,250,350);
}

3. Kokeile miltä piirros näyttää nyt. Jos kaikki meni oikein, niin piiroksen pitäisi näyttää samalle kuin äsken. Jos ohjelma ei toimi tarkista kirjoitusvirheet ja huomaa että sekä setup ja draw-funktio alkavat ja loppuvat aaltosulkuihin, löydät ne Windows-koneessa AltGr + 6 tai 0-näppäinyhdistelmällä ja Macissa taas SHIFT+COMMAND+8 tai 9-näppäinyhdistelmällä.
4. Seuraavaksi animoimme pupillit liikkumaan hiiren mukaan. Etsi ellipse-komento joka määrittää pupillien pienet ympyrät.
5. ellipse-komennon kaksi ensimmäistä arvoa määrittävät pupillin sijainnin. Kokeillaan ensin muokata silmiä liikkumaan x-akselilla. Kirjoita ellipsen ensimmäisen arvon sijaan mouseX-komento ja katso mitä tapahtuu!
6. Nyt silmä liikkuu villisti ulos koko päästä! Saadaksemme sen liikkumaan hieman hillitymmin voimme pyytää processingia tekemään pienen laskutoimituksen puolestamme. Kirjoita ensimmäinen ellipse-komennon arvo takaisin siksi mikä se oli ja sen jälkeen, ennen pilkkua +(mouseX/12). Tämä lisää silmän arvoon hiiren x-akselin liikkeen jaettuna kahdellatoista. Tämä vähentää liikettä huomattavasti. Kokeile!
7. Nyt haluamme hieman viela viilata tuota liikettä niin että se ei mene yksipuoliseksi. Vähennä ellipsen ensimmäistä arvoa hieman, ehkä 20-30 pikseliä kunnes tuo pupilli liikkuu sopivasti.
8. Sitten teemme saman seuraavalle pupillille.
9. Tämän jälkeen lisätään Y-akselin liike. Löydä ellipse-komennon toinen arvo, vähennä siitä 20-30 pikseliä ja kirjoita +(mouseY/10).
10. Toista sama toiselle pupillille ja säädä arvot sopiviksi! Voit kokeilla myös muuttaa jakolaskua.
11. Seuraavaksi pistämme vielä suun liikkumaan. Kokeile lisätä suuta piirtävän line-komennon jotakin arvoa kirjoittamalla +(mouseX/10) tai vaikka -(mouseY/10).
12. Kokeile eri kohtia ja lisää suuhun haluamasi määrä animaatiota!
13. Viimeiseksi muokataan naaman väri muuttumaan x ja y-akselin mukaan. Muokkaa fill-arvoiksi (mouseX,mouseY,mouseX+150); ja katso mitä tapahtuu. Kokeile rohkeasti muokata noita arvoja haluamiksesi. Muista myös että voit käyttää matemaattisia yhtälöitä arvojen muokkaamiseen, kuten teimme edellä.

Tässä yksi esimerkki koodista, voit kopioida sen ja muokata sitä!

void setup() {
 size (500, 500);
}

void draw() {
 background(255);

 //naama
 stroke(0);
 strokeWeight(1);
 fill(pmouseX, pmouseX-100, pmouseX-200);
 ellipse(250, 250, 300+(pmouseY/2), 400+(pmouseX/2));

 //silmät
 fill(255);
 ellipse(200, 150, 50+(pmouseY/6), 120-(pmouseX/10));
 ellipse(300, 150, 50+(pmouseY/6), 120-(pmouseX/10));

 //pupillit
 strokeWeight(5);
 ellipse(180+(mouseX/12), 120+(mouseY/10), 10, 10);
 ellipse(280+(mouseX/12), 120+(mouseY/10), 10, 10);

 //nenä
 strokeWeight(30);
 line (250, 200, 250, 300);

 //suu
 strokeWeight(10);
 stroke(255, 0, 0);
 line (200, 370-(mouseY/10), 250, 350);
 line (250, 350, 300, 370-(mouseY/10));
}

Mitä seuraavaksi?

Tutustu Processingin-sanastoon täällä: https://processing.org/reference/ ja tutki esimerkiksi Pmouse tai mousepressed-komentoja. Mitä voisit saada niillä tehtyä naama-ohjelmassasi?

Piirrustusohjelma Processingilla

Piirrustusohjelma Processingilla

Yleistä

Tässä ohjeessa tutustut Processing-ohjelman perusteisiin ja teet samalla hauskan piirustusohjelman. Ohje toimii niin Processing-IDE:ssä kuin vaikka openprocessing.org tai Sketchpad.cc sivuilla

Ohjelmoiminen

  1. Aloita ohjelmoiminen kirjoittamalla void setup-komento (katso esimerkkikoodi alta) ja sen sisälle komento size-komento, joka määrittelee piirtustusohjelmamme ikkunan koon. Esimerkissä sen kooksi on asetettu 500(leveys)*500(korkeus) pikseliä.
  2. Pistä size-komennon alle, seuraavalle riville vielä komento background, joka kertoo minkä värinen ikkuna on. Esimerkissä sivun väriksi on asetettu valkoinen, eli numero 255. (Processing käyttää kaikista väreistä kuvanmuokkaus-ohjelmistostakin tuttuja RGB (red,green,blue)arvoja, jotka vaihtelevat välillä 0-255.
  3. Tämän jälkeen kirjoita void draw-komento, joka aloittaa itse piirustusohjelman koodin.
  4. Kirjoita ellipse-komento, joka piirtää ympyrän. Ellipse-komennossa on neljä arvoa sisällä. Niistä kaksi ensimmäistä asettavat ympyrän X ja Y -arvot ja kaksi viimeistä ympyrän leveyden ja korkeuden. Esimerkkikoodissa,ympyrän sijainti on sidottu hiiren sijaintiin komennoilla mouseX ja mouseY. Lisätietoa komennoista: mouseX, mouseY, ellipse. 

    Piirto-ohjelman koodi kokonaisuudessaan. (Klikkaa isommaksi)

  5. Seuraavaksi voit kokeilla painaa play-nappia ja testata ohjelmaa.
  6. Seuraavaksi voimme alkaa muokata piirto-ohjelmaa mielenkiintoisemmaksi. Näytämme tässä muutaman idean, mutta ohjelmaa voi myös jatkaa pidemmälle, ideoita voi saada vaikka selailemalla Processingin referenssi sivustoa.
  7. Kirjoita ennen ellipse-komentoa, komento fill(255,0,0); tämä komento värittää ympyrän punaiseksi. fill-komennossa on kolme tai neljä arvoa: kolme ensimmäistä kertovat värin, eli RGB (red, green, blue)-arvot. Kun ensimmäinen arvo on 255 ja muut 0 niin silloin väri on aivan punainen. Voit myös kokeilla omia värejäsi kirjoittamalla eri numeroita noiksi kolmeksi arvoksi. Neljäs, vapaaehtoinen arvo on läpinäkyvyys joissa 0 on täysin läpinäkyvä.

    Piirto-ohjelman muokattu koodi

  8.  Voit taas kokeilla ohjelmaa ja katsoa että kaikki toimii. Tämän jälkeen voimme muokata piirrettävien pallojen väriä vielä lisää Random-komennolla. Random-komento nimensä mukaisesti valitsee satunnaisluvun asettamaltamme skaalalta. Esimerkiksi komento random(0,255); asettaa arvoksi minkä vain luvun väliltä 0-255.
  9. Muokkaa fill-komentoa vastaavaksi: fill(random(0,255), random(0,255), random(0,255)); tämä komento antaa jokaiselle eri värille arvon 0:n ja 255:n väliltä. Kokeile!
  10. Tämän jälkeen muokkaame ympyrän kokoa. Muokkaa ellipse-komennoksi seuraava: ellipse(mouseX, mouseY, mouseY/5, mouseX/5); Tämä komento ottaa ympyrän kooksi hiiren sijainnin arvon (Eli jos ikkunamme koko on 500*500 niin jonkun arvon 0:n ja 500:n väliltä.) Tämän jälkeen komento myös jakaa tuon hiiren arvon viidellä, jottei ympyrästä tulisi liian suuria. Kokeile! 
  11.  Piirustusohjelmamme on nyt valmis. Voit tietenkin jatkaa muokkausta. Katso lisäideoita Mitä Seuraavaksi osiosta!

Tässä koodi kokonaisuudessaan:

/* Yksinkertainen piirustusohjelma Processingilla. */

void setup() {
size(500,500);
//size(500, 500); // Tämä koodi kertoo ohjelman ikkunan koon (500*500 pikseliä)
background(255);
}

void draw () {
fill(random(0, 255), random(0, 255), random(0, 255)); //fill-komento täyttää alla olevat muodot valitulla värillä
ellipse(mouseX, mouseY, mouseY/5, mouseX/5); /*ellipse-komento piirtää ympyrän, ensimmäiset
kaksi arvoa kertovat sijainnin mihin ympyrä piirretään ja kaksi viimeistä ympyrän koon*/
}

Mitä seuraavaksi?

Piirto-ohjelmalla voit hyvin testata Processingin erilaisia komentoja, sekä tutustua ohjelmointiin paremmin. Tässä pari ideaa:

  1. Kokeile muuttaa piirto-ohjelmaa niin että se piirtää neliöitä ympyrän sijaan
  2. Kokeile muuttaa piirrettävän muodon kokoa satunnaiseksi
  3. Kokeile läpikuultavia värejä
  4. Jos ohjelmointi on jo tutumpaa kokeile tehdä monimutkaisempi piirustusohjelma: esimerkiksi eri näppäimiä painamalla piirtoohjelman väri, tai piirretävä muoto muuttuu.
Processing-ohjelmointiympäristön asennus

Processing-ohjelmointiympäristön asennus

Yleistä

Processing on ohjelmointikieli jolla voi helposti luoda omia teoksia, interaktiivisia pelejä tai vaikkapa taidetta. Processing on suunniteltu nimenomaan median kanssa työskenteleville luovien alojen ihmisille ja sen käyttöönotto on helppoa. Tässä ohjeessa näytetään miten asennat Procssingin tai vaihtoehtoisesti käytät sitä nettiselaimella. Nettiselain versioita on mahdollista käyttää myös tableteille, älypuhelimilla tai muilla koneilla joihin ei ole mahdollista asentaa ohjelmistoa.

Processingin asentaminen tietokoneeseen

  1. Processing-ohjelmointiympäristön voit ladata osoitteesta: https://processing.org/download/
  2. Valitse käyttämäsi käyttöjärjestelmä ja aloita lataus
  3. Seuraa latausohjelman ohjeita ja processing on asennettu koneellesi
  4. Kun olet saanut processingin-käynnistettyä, aukeaa processingiin tyhjä ikkuna, jota processing kutsuu sketch:ksi. Tähän voit alkaa kirjoittamaan koodia.
  5. Processingissa on kaksi nappulaa Play ja Stop (katso kuva) joilla saat ohjelman aloitettua ja lopetettua.
  6. Lisäksi alhaalta löydät paikan joka ilmoittaa mahdollisista virheistä koodista.
  7. Nyt voit aloittaa, vaikka tekemällä interaktiivisen naama-tehtävän

Processingin käyttäminen nettiselaimessa

Processing-ohjelmointiympäristöä voi käyttää kahdella eri verkkosivulla: Sketchpad.cc-sivustolla sekä OpenProcessing-sivustolla. Sketchpad.cc-sivuston hyvä puoli on se, että se ei vaadi kirjautumista, mutta sketchpadd-sivusto ei toimi kaikissa mobiililaitteissa. OpenProcessing toimii kaikissa mobiileissa, mutta vaatii tilin luomisen, joka on tosin ilmaista. OpenProcessingin lisäetu on se että siinä voi tehdä luokkahuoneita ja tällöin tehtyjä töitä voi helposti jakaa ja esitellä.

  1. Processing-ohjelmointiympäristön voit ladata osoitteesta: https://processing.org/download/
  1. Valitse käyttämäsi käyttöjärjestelmä ja aloita lataus
  2. Seuraa latausohjelman ohjeita ja processing on asennettu koneellesi

Mitä seuraavaksi?

  • Kokeile interaktiivisen naaman tekemistä, katso ohjeet!.
Moottori

Moottori

Yleistä

Sähkömoottori voidaan käynnistää ja sammuttaa halutuksi ajaksi käyttäen Arduino-kehitysalustaa.

Pyörittääksesi sähkömoottoria tarvitset avuksi transistorin. Transistori on katkaisija, jota voidaan käyttää Arduinon digitaali pinneistä otettavalla virralla. Transistori katkoo Arduinosta saatavaa 5V sähkövirtaa. Transistorin käyttäminen on välttämätöntä, koska suoraan Arduinon digitaalipinneistä saadaan vain 30mA sähkövirta, joka riittää ledin sytyttämiseen, mutta moottori vaatii käynnistyäkseen usein reilusti yli 200mA.

Osat

Sähkömoottori

Meta-Boxin irtokomponenteissa tuleviin moottoreihin on lisätty johdot, jotka helpottavat moottorin liittämistä koekytkentälevyyn.

Transistori (BD139)

Transistori on kuin ohjelmoitava katkaisija. Transistorin on kestettävä tarpeeksi suuri sähkövirta (ampeerit), joka riippuu käytettävästä moottorista. Esimerkissä käytetään BD139 transistoreja.

Vastus

220ohm (Värikoodi: Punainen-punainen-ruskea-kulta)

Diodi

Diodilla suojataan transistoria, sillä sähkömoottori toimii myös generaattorina silloin, kun se jatkaa pyörimistä vapaasti, ilman sille annettua sähkövirtaa.

Arduino

Koekytkentälevy

Hyppylangat

USB-kaapeli (A-B)

Kytkennät

Tee alla oleva kytkentä ennen siirtymistä ohjelmointi osioon. Voit tehdä kytkennän joko edellä mainituista irto-osista tai kokeilla ensin valmiilla perma-proto kytkennällä. Tällöin riittää että kytket hyppylangat kuvan mukaisesti oikesiin kohtiin Arduinossa.

Huomaathan että transistorin asennolla ja diodin suunnalla on merkitystä.

Ohjelmointi

Graafinen ohjelmointi Snap4Arduinolla

  1.     Avaa Arduino IDE
  2.     Kytke Arduino UNO koneeseen USB kaapelilla
  3.     Avaa Arduino IDE ja lataa Arduinoon Firmata-koodi. Kuvasta näkyy, mistä koodi löytyy.

4. Avaa Snap4Arduino-ohjelmointiympäristö.
5. Rakenna koodi esimerkin mukaan. Muista yhdistää Arduino ohjelmaan painamalla ohjelman valikosta ”Connect Arduino”. (Klikkaa
kuva suuremmaksi.)

Koodin rakentaminen Snap4Arduino ohjelmointiympäristössä

Rakenna koodi esimerkin mukaan.

  1.     Valitse Ohjaus-välilehdestä ”kun painetaan välilyönti” (huom. ´välilyönti´ löytyy komennon alasvetovalikosta.)
  2.     Valitse Ohjaus-välilehdestä ”toista (  ) kertaa”-komento ja raahaa se rakennettavan ohjelmakoodin jatkoksi. Täytä kenttään haluamasi kerta toistoja. Aloita pienellä toistomäärällä ja kasvata lukua kun kytkentä ja koodi toimii.
  3.      Valitse Arduino-välilehdestä aktiiviseksi digitaalipinni 6. Raahaa jälleen komento jatkoksi toista-komennon sisälle. Katso esimerkkikuvasta näkymä. Mikäli kytket useamman moottorin ohjelmoitavaksi, aktivoi aina se digitaalipinni, mihin kyseisen moottorin kytket.
  4.     Valitse Ohjaus-välilehdestä ”odota (  ) sekuntia”-komento ja raahaa se komennon jatkoksi. Tämä komento määrittelee kuinka monta sekuntia moottori on päällä.
  5.     Tämän jälkeen se tulee sammuttaa. Ilman sammutuskomentoa moottori olisi päällä jatkuvasti. Valitse siis jälleen Arduino-valikosta ”set digital pin (6) to…”-komento, raahaa se komennon jatkoksi ja määritä se sammuttamaan signaali klikkaamalla ”to” sanan jälkeistä ruutua kahdesti, niin että se muuttuu punaiseksi.
  6.     Määritä lopuksi kauanko moottori pidetään pois päältä ennen palaamista toistokomennon alkuun. Käytä tähän jällleen Ohjaus-valikon ”odota (  ) sekuntia”-komentoa.

Painamalla välilyöntiä, moottori käynnistyy ja sammuu määrittelemäsi määrän kertoja.


Tekstipohjainen ohjelmointi Arduino IDE:ssä

1. Avaa Arduino IDE ohjelmointiympäristö.
2. Kytke Arduino kiinni koneeseen USB A-B kaapelilla.
3. Avaa uusi ohjelmointialusta valitsemalla Tiedosto valikosta Uusi
4. Kopioi ja liitä seuraava koodi ohjelmointialustalle.
5. Tutustu koodin rakentumiseen joko kirjoittamalla koodi kokonaan itse ohjeiden mukaan, tai kopioimalla kokonainen koodi sivun lopusta. Lataa koodi Arduino kehitysalustaan painamalla ylälaidassa olevaa oikealle osoittavaa nuolta eli Lähetä-painiketta. Mikäli lataamisessa ilmenee ongelmia, palaa lukuun Arduinon perusteisiin ja tarkista että oikea dataportti on valittu.

6. Koodi rakentuu kahdesta funktiosta: setup-funktiosta ja loop-funktiosta. Ensimmäisen setup-funktion voi ajatella käynnistävän Arduinon ja aktivoivan kaikki ne pinnit, joita tullaan käyttämään. Siinä määritellään, että pinni 13 valmistautuu antamaan ulos sähkövirtaa. Pinni 13:aan on liitetty ledin (+)-jalka ja (–)-jalka Arduinon GND pinniin.

void setup() {
pinMode(13, OUTPUT);
}

7. Loop-funktio puolestaan toteuttaa varsinaisen toiminnan Arduino-kehitysalustalla. Tätä koodia luetaan ylhäältä alas. Esimerkkikoodissa pinni 13 aktivoidaan antamaan sähkövirtaa komennolla ”digitalWrite(13, HIGH);” Puolipiste (;) päättää komennon ja on siksi erittäin tärkeä.

void loop() {
digitalWrite(13, HIGH);

8. Seuraava komento on ”delay(1000);” joka määrittää, että edellinen komento pidetään toiminnassa 1000 millisekuntia, eli yhden sekunnin ajan. Tämän jälkeen siirrytään seuraavalle koodin riville.

delay(1000);

9. Komento ”digitalWrite(13, LOW);” määrittää ledin pois päältä.
Jälleen ”delay(1000);”-komennolla led pidetään sekunnin ajan pois päältä.

digitalWrite(13, LOW);
delay(1000);
}

10. Lopuksi vielä kokonainen koodi:

void setup() {
pinMode(13, OUTPUT);
}

void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}

Kokeile rohkeasti muuttaa delay(1000)-komennon aikoja. Kokeile esimerkiksi kolmen sekunnin vilkutusta laittamalla delayn arvoksi 3000. Muistathan että muokattu koodi tulee aina ladata uudelleen Arduinoon.

Mitä seuraavaksi?

Mitä voisit pyörittää moottorilla? Tutustuitko jo painokytkimen toimintaan? Voit esimerkiksi kokeilla moottorin ohjausta painokytkimellä?

Voit seuraavaksi kokeilla joko interaktivisten graafisten ohjelmien tekemistä Processing-ohjelmointialustalla tai testata miten liiketunnistin toimii!

Painonappi

Painonappi

Yleistä

Tässä ohjeessa käymme läpi painokoytkimen käyttöä Arduinolla. Painokytkimellä voit ohjata esimerkiksi valoa, moottoria tai muuta Arduinoon liitettyä laitetta.

Laite voidaan ohjelmoida tunnistamaan erilaisia ärsykkeitä ympäröivästä maailmasta. Tällöin tarvitaan sensoreita. Sensorien avulla laitteen voi rakentaa aistimaan erilaisia asioita, kuten kosketusta tai tunnistamaan valoisuutta. Laite joka tunnistaa kosketuksen on yksinkertaisinta rakentaa painokytkimellä. 

Tarvitset tehtävää varten tietokoneen.

Voit tehdä kytkennän alla mainituilla osilla tai hyödyntää valmista permaproto-kytkentää, jonka löydät Meta-boxi tarvikkeista. Permaproto-kytkennän kanssa tarvitset Arduino-mikrokontrollerin, tietokoneen ja USB-johdon.

Osat

Led

Vastukset

  • 220 Ohmin (värikoodi: punainen, punainen, ruskea, kulta)
  • 4,7 kOhmin (värikoodi: keltainen-violetti-punainen-kulta; vastuksen oma pohjaväri on tiilenpunainen)

Painokytkin

Arduino

Hyppylankoja

 

USB A-B

Koekytkentälevy

Kytkennät

Tee alla oleva kytkentä ennen siirtymistä ohjelmointi osioon. Voit tehdä kytkennän joko edellä mainituista irto-osista tai kokeilla ensin valmiilla perma-proto kytkennällä. Tällöin riittää että kytket hyppylangat kuvan mukaisesti oikeisiin kohtiin Arduinossa.

Ohjelmointi

Graafinen ohjelmointi Snap4Arduinolla

Snap4Arduino ja Arduino-mikrokontrollerin yhdistäminen
  1.     Avaa Arduino IDE
  2.     Kytke Arduino UNO koneeseen USB kaapelilla
  3.     Avaa Arduino IDE ja lataa Arduinoon Firmata-koodi. (Tiedosto -> Esimerkit -> Firmata -> StandartFirmata). 
  4.     Avaa Snap4Arduino-ohjelmointiympäristö ja aktivoi Arduino ohjelmointiympäristöön painamalla ”Connect Arduino”.
Koodin rakentaminen Snap4Arduino -ohjelmointiympäristössä

Rakenna koodi esimerkin mukaan.

Koodin rakentaminen Snap4Arduino-ohjelmointiympäristössä

Alla koodi rakennetaan kohtakohdalta.

Tietääksesi onko nappi painettu, on napin tila tallennettava. Tälläisten tietojen tallentamiseen ohjelmoinnissa käytetään muuttujia. Muuttuja voi olla mikä vain sana ja se tulee määritellä itse.

  1. Määrittele muuttuja Muuttujat-välilehdestä. Valitse ”Uusi muuttuja” ja anna muuttujan nimeksi jokin kuvaava nimi. Esimerkiksi ”nappi”.
  2. Aloita koodi valitsemalla Ohjaus-välilehdestä komento ”kun klikataan (vihreä lippu)”.
  3. Valitse Ohjaus-välilehdestä ”ikuisesti”-komento ja raahaa se koodin jatkoksi.
  4. Seuraavaksi määritellään aiemmin luodun muuttujan pinni Arduinosta. Valitse Muuttujat-välilehdestä komento ”aseta muuttujan [ ] arvoksi [ ]” ja raahaa se ohjelman jatkoksi.
  5. Valitse koodissa muuttujan alasvetovalikoista muuttujaksi ”nappi” ja arvoksi määrittele pinni 9. Pinni määritellään oikeaksi valitsemalla Arduino-välilehdestä ”<digital reading ( )>” ja raahamalle se koodiin. Valitse alasvetovalikosta käyttöön pinni 9.

Tämän jälkeen rakennetaa ehtolauseet ledin toiminnalle painokytkimen perusteella.

  1. Valitse Ohjaus-välilehdestä ”jos”-ehtolause ja raahaa se koodin jatkoksi.
  2. Aseta ehtolauseen ehdoksi Laskenta-välilehdestä ”on yhtä kuin” eli ”[ ] = [ ]”-komento. Valitse Muuttujat-välilehdestä aiemmin itse luotu muuttuja ”nappi” ja raahaa se vielä edellisen komennon arvoksi. Seuraavaan vapaaseen laatikkoon valitaan Laskenta-välilehdestä ”<tosi>”-komento. Näin määrität muuttujan saamaan arvon sen perusteella, onko pinnissä 9 tunnistettu sähkövirta vai ei.
  3. Luo ehtolauseen sisään seuraavaksi tapahtuma, joka seuraa jos ehtolause toteutuu. Huomaa, että ehtolauseet menevät tässä tapauksessa väärinpäin. Tosi on epätosi ja epätosi on tosi. Tämä johtuu Arduinon tekniikasta. Klikkaa ehtolause siis epätodeksi.

Rakenna seuraavaksi koodi, joka vilkuttaa lediä päälle ja pois tämän ehtolauseen toteutuessa. Voit tarkistaa koodin rakenteen joko Led päälle ja pois -tehtävästä tai allaolevasta koodikuvasta.

Viimeiseksi luo uusi jos-ehtolause, missä määrität mitä tapahtuu kun painokytkintä ei paineta. Tällöin led pitää saada sammumaan.


Tekstipohjainen ohjelmointi Arduino IDE:ssä

Kopioi ja liitä alla oleva koodi Arduinoon. Voit kirjoittaa koodin myös kokonaan käsin alla olevan vaiheittaisen ohjeen mukaan.

Koodi kokonaisuudessaan:

const int buttonPin = 9;
const int ledPin = 13;

int buttonState = 0;
void setup() { 
pinMode(ledPin, OUTPUT); 
pinMode(buttonPin, INPUT_PULLUP); 
}
void loop() {
 buttonState = digitalRead(buttonPin);
 if (buttonState == HIGH) {
 digitalWrite(ledPin, HIGH);
 delay(1000);
 digitalWrite(ledPin, LOW);
 delay(1000);
 }
else {
 digitalWrite(ledPin, LOW);
 }
 }

VAIHEET:

1. Määrittele ensin muuttujat niille pinneille, joita kytkennässä käytetään. Ledi tulee pinniin 13 ja painokytkin pinniin 9.

const int buttonPin = 9;
const int ledPin =  13;

2. Määrittele muuttuja, joka on arvo jonka kytkin saa aluksi oletuksena. Toisinsanoen kytkin ei ole päällä kun sitä ei paineta.

int buttonState = 0;

3. Määrittele ensimmäinen funktio, joka aktivoi pinnit joissa on kiinni ledi ja painokytkin. Huomaa, että painokytkin onkin ”vastaanottajana” ja nimetty muotoon INPUT_PULLUP.

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}

4. Määrittele koodi, joka lukee aluksi painokytkimen arvon ja mahdollisen muutoksen. Arduino tunnistaa onko painike painettu seuraavalla koodilla. Sama koodi viestii myös kohdassa 2. määritellyn muuttujan muutoksen joksikin muuksi kuin arvoksi 0.

 
void loop() { buttonState = digitalRead(buttonPin);

5. Määrittele seuraavaksi mitä tapahtuu kun painokytkin on painettu alas. Tällöin se ilmenee Arduinolle arvona HIGH. Kun pinniin 9 virtaa sähkövirta, alkaa led vilkkumaan. Muussa tapauksessa (else) pinni on pois päältä.

if (buttonState == HIGH) { 
digitalWrite(ledPin, HIGH); 
delay(1000); 
digitalWrite(ledPin, LOW); 
delay(1000); } 

else { 
digitalWrite(ledPin, LOW); 
 } 
}

Mitä seuraavaksi?

Tutustu seuraavaksi sähkömoottorin pyörittämistä. Voit sen jälkeen kokeilla saatko kontrolloitua moottoria painokytkimellä?

Arduino mikrokontrolleri ja koekytkentälevy

Arduino mikrokontrolleri ja koekytkentälevy

Yleistä

Arduino on laite, jonka avulla voit itse rakentaa ohjelmoitavia laitteita. Ne voivat olla vaikkapa robotteja tai vaikkapa vuorovaikutteisia taideteoksia.

Arduinoa voidaan kutsua kehitysalustaksi, jolloin tarkoitetaan itse fyysistä laitetta ja sen ohjelmoimiseen käytettävää ohjelmointiympäristöä Arduino IDE:tä.

Toinen nimitys mitä Arduinosta usein käytetään on mikrokontrolleri. Mikrokontrolleri on järjestelmä, jonka avulla on mahdollista luoda sulautetettuja järjestelmiä. Sulautettu järjestelmä tarkoittaa laitetta, jossa on kiinni elektroniikan analogisia komponentteja, kuten esimerkiksi ledejä, moottoreita, erilaisia kytkimiä, transistoreja, vastuksia; kaikkia yleisimpiä elektroniikan osia joista meitä ympäröivät laitteet rakentuvat. Sulautetuissa järjestelmissä näitä laitteita kuitenkin ohjaa koodi, jonka ohjelmoija on ladannut mikropiireihin. Arduino pitää sisällään yhden ison mikropiirin, johon myös sinä pystyt itse ohjelmoimaan ja lataamaan haluamasi toiminnon. Näin voit itse rakentaa sulautettuja järjestelmiä.

Yksinkertaisimmillaan tämä voi tarkoittaa vaikkapa valoa, joka on ohjelmoitu vilkkumaan määrättyyn tahtiin eli halutulla taajuudella. Taajuus on se syklin nopeus, jolla valo vuorottelee päällä ja pois päältä olemista. Arduinolla on myös mahdollista lukea informaatiota ympäröivästä maailmasta.

Käymme läpi Arduino-mikrokontrollerin käyttämisessä keskeisiä asioita, mikä syventää ymmärrystä ja helpottaa Arduino-ohjelmoinnin hahmottamista. Tämän lisäksi kerromme miten asennat Arduino-ohjelmointiympäristön koneellesi.

Tarvitset tehtävään tietokoneen. Voit tehdä kytkennän alla mainituilla osilla tai hyödyntää valmista permaproto-kytkentää, jonka löydät Meta-boxi tarvikkeista. Permaproto-kytkennän kanssa tarvitset Arduino-mikrokontrollerin, tietokoneen ja USB-johdon. Suosittelemme kuitenkin että teet tämän irto-osilla. Voit vaikka käyttää permaproto-kytkentää mallina!

Osat

Arduino

USB-kaapeli (A-B)

Koekytkentälevy

Led

Hyppylangat

Hyppylangan värillä ei ole väliä. Voit kuitenkin selkeyden takia käyttää ensin saman värisiä hyppylankoja kuin esimerkissä.

Vastus

220 ohmia.

Vastuksen raitojen värit: punainen-punainen-ruskea-kulta.

Kytkennät

Arduinon kanssa käytetään usein koekytkentälevyä. Koekytkentälevy on levy jolle on helppo asettaa kiinni eri elektroniikan komponentteja, joita mikrokontrolleri käyttää eri tavoin.

Koekytkentälevyn pinnalla on pieniä reikiä, joihin komponenttien jalat voidaan painaa sisään. Jokainen rivi koekytkentälevyssä muodostaa yhteyden jokaisen rivissä olevan reiän kautta. Sivuilla olevat kiskot yhdistävät jokaisen reiän koko matkalta. Keskiosiossa kiskot muodostavat lyhyet rivit ja välissä on aukko, joka halkaisee puoliskot toisistaan.

Rakenna yllä olevan kuvan mukainen kytkentä ledistä, vastuksesta ja hyppylangoista.

Arduinossa on reikiä, joita sanotaan pinneiksi. Jokaisen pinnin viereen on painettu tunnus, joka kertoo mikä pinni on kyseessä. Kytkennässä punainen johto on liitetty pinniin joka antaa 5V jännitteellä sähkövirtaa. Kytkentä on sama kuin käyttäisit 5V paristoa. HUOM! Kytke Arduino tietokoneeseen USB-johdolla.

Punainen johto johtaa virran koekytkentälevyn kiskolle joka on merkattu +-tunnuksella. Voit päättää itse mihin kytket 5V-virtajohdon, mutta vakiintunut tapa on ollut käyttää koekytkentälevyssä valmiiksi merkattuja +/– -kiskoja. Jatka kytkentää liittämällä hyppylanka (punainen) + -kiskolta koekytkentälevyn vapaalle riville. Liitä sammalle riville vastus kuvan mukaisesti, niin että sen jalat ovat koekytkentälevyn eri puolilla. Vastuksen jalat voidaan kytkeä kummin päin vain.

Laita seuraavaksi led valo. Ledin jalkojen järjestyksellä sen sijaan on väliä. Kun katsot tarkkaan lediä, huomaat että sen jalat ovat eri mittaiset. Eri mittaiset jalat ovat usein hyvä merkki siitä, että jalkojen järjestyksellä on merkitystä. Pidempi jalka on + -jalka. Kytke vastuksen kanssa samalle riville ledin pidempi jalka (eli + -jalka).

Ledin lyhyempi jalka liitetään koekytkentälevyllä jälleen uudelle kiskolle. Kiskolta johon ledin lyhyempi jalka tulee, täytyy vetää hyppylanka  – -kiskolle ja toinen hyppylanka Arduinon GND-pinniin. Tällöin muodostuu virtapiiri. Virtapiirissä sähkövirta pääsee kulkemaan halutun komponentin kautta, jolloin komponentti aloittaa toiminnan. Tässä tapauksessa led syttyy päälle.

Mitä seuraavaksi?

Kokeile seuraavaksi ledin vilkuttamista.

Arduino asennus

Arduino asennus

Yleistä

Kun asennat Arduino IDE:n tietokoneellesi, ohjelman nimi on pelkästään Arduino. Lataa ensin Arduino IDE osoitteesta www.arduino.cc > Downloads. Kun olet asentanut Arduino IDE-ohjelmointiympäristön, voit avata ohjelman.

 

Osat

Arduino

USB a-b

Asennus

Jos uusi projekti ei avaudu automaattisesti, tai sinulla on auki vanha projekti, valitse Tiedosto -> Uusi. Liitä Arduino kiinni tietokoneeseen USB A-B -kaapelilla.

Tarkista seuraavaksi, että sinulla on Arduino IDE:ssä oikeat asetukset oikealle Arduino-kehitysalustalle. Mene valikkoon Työkalut -> Kortti ja valitse Arduino/Genuino Uno. Mikäli käytät jotakin toista Arduino-kehitysalustaa, valitse sen mukainen nimi valikosta.

Seuraavaksi valitse käyttöön oikea USB-portti menemällä Työkalut -> Portti -valikkoon. Mikäli käytät Windows- käyttöjärjestelmää, löytyy oikea yhteysportti listalta jostakin COM-alkuisesta vaihtoehdosta. Applen käyttöjärjestelmissä valitse /dev/cu.usbmodem-alkuinen vaihtoehto. Linux-käyttöjärjestelmissä oikea portti löytyy /dev/ttyACM-alkuisesta vaihtoehdosta.

Snap4Arduino asennus

Snap4Arduino asennus

Yleistä

Snap4Arduino on graafisen Scratch ja tekstipohjaisen Arduino -ohjelmointialustojen yhdistelmä. Scratch on tarkoitettu ainoastaan graafisten ohjelmien ja pelien ohjelmointiin. Snap4Arduinon avulla voit ohjelmoida laitteita.

Meta-Boxin mukana tulevissa koneissa kaikki tarvittavat ohjelmat on jo valmiiksi asennettu.

Osat

Arduino

USB-kaapeli (A-B)

Asennus

Lataa Snap4Arduino osoitteesta snap4arduino.rocks -> Download.

Jotta pystyt käyttämään Snap4Arduinoa yhdessä Arduino-mikrokontrollerin kanssa tulee sinun asentaa myös tekstipohjainen Arduino-ohjelmointi ympäristö. Ohjeet löydät täältä.

Kun olet asentanut molemmat ohjelmat tulee sinun yhdistää Snap4Arduino Arduino-mikrokontrolleriin. Aloita yhdistäminen liittämällä Arduino-mikrokontrolleri ensin tietokoneeseen USB a-b kaapelilla.

Avaa tämän jälkeen Arudino IDE -ohjelma ja lataa Arduino mikrokontrolleriin Firmata-koodi. Avaa Firmata-koodi Arduino IDE:n ylävalikosta (Tiedosto->Esimerkit->Firmata->StandartFirmata).  Lataa koodi Arduinoon painamalla oikealle osoittavaa nuolta Arduino-ohjelman ylälaidassa. Kun Arduino IDE on ladannut Firmatan, jolloin alalaidassa lukee ”Lähetetty”.

Voit tämän jälkeen siirtyä Snap4Arduino -ohjelmaan. Yhdistä Arduino-mikrokontrolleri ohjelmointiympäristöön painamalla ”Connect Arduino” turkoosin värisestä Arduino-valikosta.

 

Mitä seuraavaksi?

Voit nyt aloittaa ohjelmoimisen Snap4Arduinolla. Voit edetä nyt seuraaviin tehtäviin, kuten ledin vilkuttamiseen. Suosittelemme kuitenkin tutustumaan ensin koekytkentälevyyn ja Arduino-mikrokontrolleriin.

Led valon vilkuttaminen

Led valon vilkuttaminen

Yleistä

Miksi ohjelmoidun ilmiön pitäisi tapahtua vain näytöllä, kun se voi tapahtua esimerkiksi liikkeenä, äänenä tai valona missä vain?  Miten saat ledin päälle ja pois ja vilkkumaan halutulla nopeudella, eli taajuudella?

Huom! Tarvitset tehtävään tietokoneen.

Voit tehdä kytkennän alla mainituilla osilla tai hyödyntää valmista permaproto-kytkentää, jonka löydät Meta-boxi tarvikkeista. Permaproto-kytkennän kanssa tarvitset Arduino-mikrokontrollerin, tietokoneen ja USB-johdon.

Osat

Arduino

Mikrokontrolleri voi olla myös merkitltään Genuino, mutta mallin tulee olla UNO.

Vastus

220 ohmia (Värikoodi: punainen, punainen, ruskea, kulta).

USB-kaapeli (A-B)

Koekytkentälevy

Led

Voit kokeilla eri värisiä tai kokoisia ledejä.

Hyppylangat

Kytkentä

Tee alla oleva kytkentä ennen siirtymistä ohjelmointi osioon. Voit tehdä kytkennän joko edellä mainituista irto-osista tai kokeilla ensin valmiilla perma-proto kytkennällä. Tällöin riittää että kytket hyppylangat kuvan mukaisesti oikeisiin kohtiin Arduinossa.

Huomaathan että ledin suunnalla on väliä, joten laita pitkä ja lyhyt ledin jalka kuvan mukaisesti. Pidempi jalka on kuvassa taitettu. Vastuksen suunnalla ei ole väliä. Hyppylankojen värillä ei ole väliä.

Ohjelmointi

Graafinen ohjelmointi Snap4Arduinolla

Snap4Arduino ja Arduino-mikrokontrollerin yhdistäminen
  1.     Avaa Arduino IDE.
  2.     Kytke Arduino UNO koneeseen USB kaapelilla.
  3.     Avaa Firmata-koodi ylävalikosta (Tiedosto->Esimerkit->Firmata->StandartFirmata).  Lataa koodi Arduinoon painamalla oikealle osoittavaa nuolta Arduino-ohjelman ylälaidassa.
  4.     Kun Arduino IDE on ladannut Firmatan (Alalaidassa lukee ”Lähetetty”) sulje Arduino IDE.

Avaa Snap4Arduino-ohjelmointiympäristö ja yhdistä Arduino-mikrokontrolleri ohjelmointiympäristöön painamalla ”Connect Arduino” turkoosin värisestä Arduino-valikosta.

Koodin rakentaminen Snap4Arduino -ohjelmointiympäristössä

Rakenna koodi esimerkin mukaan.

  1. Raahaa oranssista Ohjaus-välilehdestä ”kun klikataan (vihreä lippu)” -palikka ruudun keskellä olevalle Skriptit alueelle.
  2. Valitse Arduino-välilehdestä ”set digital pin (  ) to < >”-komento ja raahaa se rakennettavan ohjelmakoodin jatkoksi. 
  3. Valitse pinniksi pinni nro 13 avaamalla edellisen komennon alasvetovalikko mustasta alaspäin osoittavasta nuolesta.
  4. Klikkaa ”to”  sanan perässä olevaan timantinmuotoista laatikkoa jolloin pinni 13 aktivoituu (muuttuu vihreäksi).
  5. Klikkaa vihreää lippua oikeassa ylälaidassa. Ledin pitäisi syttyä.

Olet nyt sytyttänyt ledin. Saat ledin sammumaan seuraavasti:

  1. Valitse Ohjaus-välilehdestä “odota (1) sekuntia”-komento ja raahaa se koodin jatkoksi.
  2. Mene Arduino-välilehteen ja raahaa koodin perään”set digital pin (  ) to < >” palikka. Muuta pinnin numero taas 13:sta, mutta jätä käynnistys nappi off-asentoon.
  3. Klikkaa vihreää lippua oikeassa ylälaidassa.

Voit myös luoda vilkkuvan ledin lisäämässä edellisen koodin ympärille toistorakenteen.

  1. Aloita lisäämällä edellisen komennon jatkoksi odotus-komento, valitsemalla Ohjaus-välilehdestä ”odota (1) sekuntia” ja raahaa tämä koodin jatkoksi. Tätä vaihetta tarvitaan, jotta led pysyisi myös pois päältä tietyn aikaa.
  2. Toistorakenne löytyy Ohjaus-välilehdestä. Valitse toistokomento ”toista (10) kertaa”-komento ja raahaa se ”kun klikataan (vihreä lippu) alle ja muut koodit sisälle.
  3. Paina taas vihreää lippua, niin koodi aktivoituu.
  4. Voit muokata toistojen määrää korvaamalla luvun 10 haluamallasi toistomäärällä sekä muuttaa vilkkumisen taajuutta (eli nopeutta) vaihtamalla odotettavaa aikaa ledien päällä olon välillä esimerkiksi sekunnin murto-osiksi.

Muistathan että muokattu koodi tulee aina ladata uudelleen Arduinoon.


Tekstipohjainen ohjelmointi Arduino IDE:ssä

  1. Avaa Arduino IDE ohjelmointiympäristö.
  2. Kytke Arduino kiinni koneeseen USB A-B kaapelilla.
  3. Avaa uusi ohjelmointialusta valitsemalla Tiedosto valikosta Uusi
  4. Kopioi ja liitä seuraava koodi ohjelmointialustalle.
  5. Lataa koodi Arduino kehitysalustaan painamalla ylälaidassa olevaa oikealle osoittavaa nuolta eli Lähetä-painiketta. Mikäli lataamisessa ilmenee ongelmia, palaa lukuun Arduinon perusteisiin ja tarkista että oikea dataportti on valittu.
void setup() {

  pinMode(13, OUTPUT);

}

void loop() {     

  digitalWrite(13, HIGH);  

  delay(1000);          

  digitalWrite(13, LOW);

  delay(1000); 

}

Koodi rakentuu kahdesta funktiosta: setup-funktiosta ja loop-funktiosta. Ensimmäisen setup-funktion voi  ajatella käynnistävän Arduinon ja kaikki ne pinnit, joita tullaan käyttämään. Siinä määritellään, että pinni 13 valmistautuu antamaan ulos sähkövirtaa. Pinni 13:aan on liitetty ledin (+)-jalka ja (–)-jalka Arduinon GND pinniin.

Loop-funktio puolestaan toteuttaa varsinaisen toiminnan Arduino-kehitysalustalla. Tätä koodia luetaan ylhäältä alas. Esimerkkikoodissa pinni 13 aktivoidaan antamaan sähkövirtaa komennolla ”digitalWrite(13, HIGH);” Puolipiste (;) päättää komennon ja on siksi erittäin tärkeä.

Seuraava komento on ”delay(1000);” joka määrittää, että edellinen komento pidetään toiminnassa 1000 millisekuntia, eli yhden sekunnin ajan. Tämän jälkeen siirrytään seuraavalle koodin riville.

Komento ”digitalWrite(13, LOW);” määrittää ledin pois päältä.

Jälleen ”delay(1000);”-komennolla led pidetään sekunnin ajan pois päältä.

Kokeile rohkeasti muuttaa delay(1000)-komennon aikoja. Kokeile esimerkiksi kolmen sekunnin vilkutusta laittamalla delayn arvoksi 3000. Muistathan että muokattu koodi tulee aina ladata uudelleen Arduinoon.

Mitä seuraavaksi?

Osaisitko rakentaa liikennevalot? Lisää kytkentään ledejä ja ohjelmoi ne syttymään vuorollaan.

Voit myös siirtyä kokeilemaan painokytkintä!