Ohjelmoi Arduino Grovella Tomi Hukkalainen ja Kati Sormunen 25.9.2016 2016 Innokas 1
Tarvikkeet 25.9.2016 2016 Innokas 2
Tarvikkeet Näissä harjoituksissa käytetään Seeduino Lotus piirilevyä, jossa käytetään Grove järjestelmän osia. Välineillä on helppo opetella tekstuaalista ohjelmointia, sillä elektroniset kytkennät ovat helposti toteutettavissa. Laitteilla ohjelmoidaan Arduinon ohjelmointiympäristössä. Harjoituksiin käytetään näitä tarvikkeita: Chainable RGB LED Johto Nappula Seeeduino Lotus piirilevy ja USB -kaapeli Potentiometri Summeri 25.9.2016 2016 Innokas 3
Alkuvalmistelut Ohjelmiston asennus, kirjaston lisääminen 25.9.2016 2016 Innokas 4
Alkuvalmistelut: Ohjelmiston asennus Lataa Arduino IDE ohjelmisto koneellesi osoitteesta https://www.arduino.cc/en/main/software Kytke piirilevy kiinni koneeseen USB-kaapelilla ja avaa asentamasi ohjelma. Varmista, että laite löytyy ohjelmasta. Huom! Sopiva portin nimi riippuu tietokoneesta ja tietokoneesta. 1. 2. 25.9.2016 2016 Innokas 5
Alkuvalmistelut: Kirjaston lataaminen Ensimmäisissä harjoituksissa käytetään ketjutettavaa RGB lediä. Se on tavallista lediä älykkäämpi osa, joka mahdollistaa useamman ledin kiinnittämisen ketjuun. Sitä on myös helpompi ohjelmoida. 25.9.2016 2016 Innokas 6
Alkuvalmistelut: Kirjaston lataaminen Hae RGB LEDin kirjasto osoitteesta http://www.seeedstudio.com/wiki/grove_- _Chainable_RGB_LED Siirry kohtaan 4. Resourses Valitse Chainable RGB LED Library for the P9813 https://github.com/pjpmarques/chainableled Valitse Releases välilehti ja lataa v1.2 zip. HUOM! Zip-tiedostoa ei pureta tässä vaiheessa. 25.9.2016 2016 Innokas 7
Kirjaston lisääminen Avaa Arduino ohjelmasta Sketsi > Include library > add.zip library 25.9.2016 2016 Innokas 8
1. tehtävä: LED 25.9.2016 2016 Innokas 9
1. tehtävä: LED Tarvikkeet: Seeeduino Lotus, USB-kaapeli, 2 RGB lediä ja 2 johtoa. Varmista, ettei levy ole kytkettynä tietokoneeseen. Yhdistä johdot kuvan mukaisesti: OUT D7 IN 25.9.2016 2016 Innokas 10
1. tehtävä: LED Kopioi / kirjoita alla oleva ohjelma Arduino -ohjelmointialueelle. Siirrä kirjoittamasi ohjelma Grovelle yläpalkin nuolesta. Ensimmäinen ledi muuttuu punaiseksi. #include <ChainableLED.h> #define NUM_LEDS 2 #define LED_PIN1 7 #define LED_PIN2 8 ChainableLED leds(led_pin1, LED_PIN2, NUM_LEDS); void setup() { leds.init(); leds.setcolorrgb(0, 255, 0, 0); } void loop() { } 25.9.2016 2016 Innokas 11
Mitä ohjelma tarkoittaa? Ohjelmaan lisätään ketjutettavien RGBledien kirjasto valikon kautta Sketsi -> Include library -> ChainableLED-master. Nimetään levyyn kiinnitetyt ledit ohjelmoinnin helpottamiseksi: NUM_LEDS 2 ketjutettavien ledien määrä LED_PIN1 7 lediketjun datapinnit LED_PIN2 8 lediketjun datapinnit -> Johto kiinnitettiin levyn kohtaan D7 Määritellään led-ketju ja sille annetaan nimeksi leds. Arduino-ohjelmassa pitää olla void setup ja void loop. Void setupiin laitetaan ohjelma, joka ajetaan vain kerran. Void loopiin ajetaan ohjelma, joka toistaa sitä loputtomasti. Värikäskyn lähetys ledille: (ledin nro, R=punainen, G=vihreä, B= sininen) 25.9.2016 2016 Innokas 12
2. tehtävä: LED sovella oppimaasi 25.9.2016 2016 Innokas 13
2. tehtävä: LED sovella oppimaasi Tee seuraavat harjoitukset: 1. Vaihda ledin väri vihreäksi, keltaiseksi ja vaaleansiniseksi. 2. Laita toinen ledi palamaan. 3. Laita molemmat ledit palamaan yhtäaikaa. 25.9.2016 2016 Innokas 14
2. tehtävä: LED - sovella oppimaasi - RATKAISU Värien arvot voivat olla esim. seuraavat: Vihreä: leds.setcolorrgb(0, 0, 255, 0); Keltainen: leds.setcolorrgb(0, 150, 130, 0); Vaaleansininen: leds.setcolorrgb(0, 100, 100, 150); Toisen ledin ohjelmointi: 25.9.2016 2016 Innokas 15
3. tehtävä: Nappipainike 25.9.2016 2016 Innokas 16
3. tehtävä: Nappipainike Kopioi / kirjoita viereinen ohjelma ohjelmointialueelle. Liitä nappipainike ohjelmassa asetettuun porttiin ja lataa ohjelma levylle. Paina nappipainiketta: ledi syttyy ja sammuu. Pitkään painettaessa valo välkkyy. Video https://www.instagram.com/p/bdx2k5v Pbj9/ #include <ChainableLED.h> #define NUM_LEDS 2 #define LED_PIN1 7 #define LED_PIN2 8 #define BUTTON_PIN 6 ChainableLED leds(led_pin1, LED_PIN2, NUM_LEDS); void setup() { leds.init(); } void loop() { leds.setcolorrgb(0, 0, 0, 0); delay(400); while(digitalread(button_pin) == LOW) {} leds.setcolorrgb(0, 255, 0, 0); delay(400); while(digitalread(button_pin) == LOW) {} } 25.9.2016 2016 Innokas 17
4. tehtävä: Nappipainike - Sovella oppimaasi 25.9.2016 2016 Innokas 18
4. tehtävä: Nappipainike - Sovella oppimaasi Tee seuraavat harjoitukset: 1. Kun Arduinoon kytketään virrat, ledi on pois päältä. Nappulaa painamalla voi vaihdella väriä punainen, vihreä, sininen, punainen HUOM! Ledi ei saa sammua nappulaa painamalla.) Video https://www.instagram.com/p/bdx4izevbob/ 2. Sama, mutta nappulan painonopeudella ei ole väliä. Ledi ei saa vaihtaa väriä monta kertaa, jos nappulaa pitää pohjassa. Jokainen nopea painallus vaihtaa väriä. Video https://www.instagram.com/p/beavp7apbue 25.9.2016 2016 Innokas 19
4. tehtävä: Nappipainike - Sovella oppimaasi - RATKAISU 1. 2. 25.9.2016 2016 Innokas 20
5. Tehtävä : Potentiometri 25.9.2016 2016 Innokas 21
5. Tehtävä : Potentiometri Tarvikkeet: Seeeduino Lotus, USB-kaapeli, potentiometri, 2 RGB lediä ja 3 johtoa. Varmista, ettei levy ole kytkettynä tietokoneeseen. Yhdistä johdot kuvan mukaisesti: Ledit kytketään samalla tavalla kuin 1. tehtävässä. A0 25.9.2016 2016 Innokas 22
5. Tehtävä : Potentiometri Kopioi / kirjoita viereinen ohjelma ohjelmointialueelle. Liitä potentiometri ohjelmassa asetettuun porttiin ja lataa ohjelma levylle. Käännä potentiometriä: punainen valo himmenee ja kirkastuu. #include <ChainableLED.h> #define NUM_LEDS 2 #define LED_PIN1 7 #define LED_PIN2 8 #define POTENTIOMETER_PIN A0 ChainableLED leds(led_pin1, LED_PIN2, NUM_LEDS); void setup() { leds.init(); Serial.begin(9600); } void loop() { int potikan_asento = analogread(potentiometer_pin); Serial.print(potikan_asento); Serial.print(" "); int korjattu_asento = potikan_asento / 4; Serial.println(korjattu_asento); leds.setcolorrgb(0, korjattu_asento, 0, 0); delay(200); } 25.9.2016 2016 Innokas 23
5. Tehtävä : Potentiometri Avaa Työkaluista Sarjamonitori. Sarjamonitorin arvoja tutkimalla saa selville potentiometrin minimiarvon 0 ja maksimiarvon 1023. Ohjelmassa käsky int korjattu_asento = potikan_asento / 4; tarkoittaa sitä, että punainen valo palaa potentiometrin ollessa maksimiasennossa. Punaisen valon arvo 255 on neljäsosa potentiometrin arvosta. 25.9.2016 2016 Innokas 24
6. Tehtävä : Potentiometri Sovella oppimaasi Tee seuraavat harjoitukset: 1. Ensimmäisen ledin himmetessä toisen ledin pitää kirkastua (yhdessä ääripäässä ensimmäinen ledi palaa ja toinen on pois päältä, keskiasennossa molemmat ovat himmeitä, toisessa ääripäässä ensimmäinen on pois päältä ja toinen palaa.) 2. Sama vaaleanpunaisella värillä, väri ei saa muuttua. Ks. Video https://www.instagram.com/p/bdxrrsmpbuq/ 25.9.2016 2016 Innokas 25
6. Tehtävä : Potentiometri Sovella oppimaasi - RATKAISU 25.9.2016 2016 Innokas 26
7. tehtävä: Liikennevalot 25.9.2016 2016 Innokas 27
7. tehtävä: Liikennevalot Tarvikkeet: Seeeduino Lotus, USB-kaapeli, nappipainike, 2 RGB lediä ja 4 johtoa. Rakenna edellisissä tehtävissä oppimasi perusteella liikennevalot, joissa auton liikennevalon kolme lediä vaihtuvat vihreästä punaiseen ja takaisin, kun jalankulkija painaa nappia. 25.9.2016 2016 Innokas 28
Työskentelyn avuksi Mistä saat apua? Mistä ostat tarvikkeita? Miten toimin virheilmoituksen kanssa? 25.9.2016 2016 Innokas 29
Mistä saat apua? Grove wiki: http://www.seeedstudio.com/wiki/category:grove Arduino: http://www.arduino.cc/en/tutorial/homepage 25.9.2016 2016 Innokas 30
Mistä ostat tarvikkeita? Grove: http://www.seeedstudio.com/depot/category_products?themes_id=1417 Adafruit: https://www.adafruit.com/categories Mansteri.com: http://store.mansteri.com/ 25.9.2016 2016 Innokas 31
Miten toimin virheilmoituksen kanssa? Katso ensin, että piirilevy on kytkettynä koneeseen. Varmista, että oikea portti on valittuna. Työkalut -> Portti Jos porttia ei löydy, kokeile jotain toista USB paikkaa. Katso, että ohjelma käskee oikeaa piirilevyn pinnissä. TAI Katso, että johto on oikeassa piirilevyn portissa. Tarkista koodin kirjoitusasu. Usein ongelma liittyy näppäinvirheeseen. Ohjelma kertoo yleensä, jos merkki ; puuttuu tai alkavia ja loppuvia sulkuja ei ole yhtä paljon tai ne eivät ole oikeissa kohdissa. 25.9.2016 2016 Innokas 32