OPTIMIVÄRITYKSEN ETSIMINEN KUVALLE GENEETTISELLÄ ALGORITMILLA SULAUTETTU SOVELLUS

Koko: px
Aloita esitys sivulta:

Download "OPTIMIVÄRITYKSEN ETSIMINEN KUVALLE GENEETTISELLÄ ALGORITMILLA SULAUTETTU SOVELLUS"

Transkriptio

1 VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA AUTOMAATIOTEKNIIKKA Kari Kaunonen AUTO2050 Soft computing, AUTO3230 Sulautetut järjestelmät OPTIMIVÄRITYKSEN ETSIMINEN KUVALLE GENEETTISELLÄ ALGORITMILLA SULAUTETTU SOVELLUS Sivumäärä: 24 Jätetty tarkastettavaksi: Työn tarkastaja Työn tarkastaja Jarmo Alander Timo Mantere

2 2 SISÄLLYSLUETTELO sivu 1. JOHDANTO 3 2. SUUNNITTELUYMPÄRISTÖ ARM-prosessori Laitteisto Ohjelmat 7 3. OHJELMOINTI Ohjelman toiminta Ohjelman rakenne Käyttöliittymä Geneettinen algoritmi TYÖN ONNISTUMINEN JA TULEVAISUUS 17 LÄHDELUETTELO 19 LIITTEET 20 LIITE 1. Main.c 20 LIITE 2. GA.c 22

3 3 1. JOHDANTO Sulautetut järjestelmät - ja soft computing -kurssien yhteisessä harjoitustyössä tehtiin sulautetulle laitteistolle sovellus, joka väritti harmaasävyisiä valokuvia geneettisen algoritmin avulla. Sovelluksella pystyttiin hakemaan optimia värimaailmaa muutamalle esivalitulle kuvalle käyttämällä hyväksi geneettistä algoritmia. Kuvien väritys tapahtui erityisen väripaletin avulla, joka sisälsi ennalta määritetyn määrän värejä. Sovelluksessa jokainen väripaletin väri asetettiin vastaamaan harmaasävykuvan tiettyä harmaasävyaluetta. Väripaletit luotiin geneettisen algoritmin avulla. Sovelluksella voitiin siis luoda uusia värikuvia kahden vanhemman kuvan avulla risteyttämällä niiden väripaletteja. Väritysohjelma ohjelmoitiin C-kielellä sulautetulle laitteistolle, joka sisälsi muun muassa ARM-prosessorin ja kosketusnäytön. ARM-suoritinarkkitehtuuri on ehkä tunnetuin prosessoriarkkitehtuuri sulautetuissa järjestelmissä, ja siihen perustuvia prosessoreita käytetään lukemattomissa erilaisissa digitaalisissa sovelluksissa ja eritoten vähävirtaisissa mobiililaitteissa. Niitä on valmistettu vuonna 2010 jo yli 20 miljardia kappaletta, ja niitä valmistuu joka päivä 10 miljoonaa kappaletta lisää (ARM 2010a). Väritysohjelma implementoitiin Atmelin valmistamalle AT91SAM9261-piirille, joka sisältää ARM926EJ-S ARM Thumb -prosessorin lisäksi lukuisia muita oheisominaisuuksia kuten tässä työssä tarvitun LCD-ohjauksen (ks. AT91SAM9261 Preliminary 2010: 1 2). Kehityslaitteistona käytettiin Olimexin valmistamaa SAM9- L9261-laitteistoa, joka sisälsi ARM-prosessorin lisäksi muun muassa 3,5 tuuman TFT LCD -kosketusnäyttö, joka toimi sovelluksen näyttöpäätteenä. Sovelluksen tekeminen koostui ohjelmointiympäristön asettamisesta, käyttöliittymän suunnittelusta sekä geneettisen algoritmin suunnittelusta ja implementoinnista. Koska kyseessä oli sulautettu järjestelmä, eikä mukaan implementoitu käyttöjärjestelmää, riippuivat kaikki ohjelman osat toisistaan tavalla tai toisella. Valmis ohjelma ei ole siten suoraan siirrettävissä esimerkiksi PC-laitteistoon. Ohjelmisto luotiin käyttäen ANSI C - kieltä, Eclipse-ohjelmistokehitysympäristöä ja YAGARTO-työkalupakettia (Yet

4 4 another GNU ARM toolchain). Ohjelman lataus laitteelle tehtiin Atmelin SAM-BAohjelmalla.

5 5 2. SUUNNITTELUYMPÄRISTÖ Sulautetut järjestelmät tehdään yleensä tiettyä tarkoitusta varten. Tosin yleiskäyttöisten tietokoneiden ja sulautettujen järjestelmien välinen raja voi olla jossain tapauksissa hieman hämärä. Tästä esimerkkinä ovat kämmentietokoneet ja älypuhelimet, joiden voidaan ajatella olevan sulautettuja järjestelmiä komponenttiensa puolesta, mutta niihin voidaan silti asentaa uusia ohjelmia ja niitä voidaan käyttää useaan tarkoitukseen. Tässä luvussa käsitellään käytössä ollutta kehityslaitteistoa sekä sulautetun ohjelman tekemiseen vaadittuja PC-ohjelmia. Aloitetaan kuitenkin tutustumalla ARM-yhtiöön ja sen tuotteisiin ARM-prosessori ARM Holdings on brittiläinen IP-lohkojen (Intellectual property) toimittaja, joka ei valmista itse fyysisiä prosessoripiirejä, vaan suunnittelee IP-lohkoja ja myy niiden lisenssejä piirivalmistajille kuten NXP:lle, Samsungille, Texas Instrumentsille ja Atmelille. ARM:in päätuote on ARM-prosessoriydin, jota käytetään laajasti matkapuhelimissa, kämmentietokoneissa, sulautetuissa tietokoneissa, digitaalikameroissa, viihde-elektroniikassa, reitittimissä ja lukemattomissa muissa sovelluksissa. ARM-ydin on 32-bittinen ja se käyttää sulautetuissa järjestelmissä tyypillistä RISC-arkkitehtuuria (Reduced Instruction Set Computer). (Sloss, Symes & Wright 2004: 3 4; ARM 2010a.) ARM-prosessoriytimiä on useita erilaisia, jotka kaikki kuitenkin perustuvat yhteiseen tehokkaaseen ja virtapihiin arkkitehtuuriin. ARM on jakanut prosessorit niiden käyttötarkoituksen perusteella erilaisiin sarjoihin, joita ovat klassiset prosessorit (ARM7, ARM9 ja ARM11), sulautetut prosessorit (Cortex-M0, -M1, -M2, -M3, -M4 ja R4) ja sovellusprosessorit (Cortex-A5, -A8, -A9 ja -A15). Joista A-sarjalaiset eli klassiset prosessorit ovat tarkoitettu tehokkuutta vaativiin sovelluksiin kuten älypuhelimiin ja digitaalisiin televisioihin. R- ja M-sarjalaiset eli sulautetut prosessorit ovat tarkoitettu useisiin erilaisiin sovelluksiin, jotka vaativat reaaliaikaisuutta (R-sarja)

6 6 tai deterministisyyttä (M-sarja). Klassiset ARM-prosessorit ovat tarkoitettu yleiskäyttöisiin sovelluksiin. Tarkemmin määriteltyjä tarpeita varten ARM:lla on myös spesialistiprosessorisarja, joka sisältää ytimet FPGA-piireille ja korkeaa turvallisuutta vaativiin sovelluksiin. (ARM 2010a.) Tuotesarjoista on edelleen johdettu tuoteperheet ja prosessorimallit. Tässä työssä käytettiin ARM9-perheen prosessoria, joka on ARM:in suosituin prosessoriperhe (ARM 2010b). ARM9-perheen prosessoreita käytetään laajasti erilaisissa sovelluksissa. ARM9:n sovelluksiin kuuluvat muun muassa matkapuhelimet, PDA:t, digitaalikamerat, tietoverkkolaitteet, navigaatiolaitteet, lääketieteelliset skannerit, PC:n kovalevyt jne. (ARM 2010b). ARM9-perhe sisältää erilaisiin sovelluksiin räätälöityjä prosessoreita. Työssä käytetty kehityslaite sisälsi Atmelin valmistaman AT91SAM9261-prosessorin, joka sisältää ARM926EJ-S-ytimen. ARM926EJ-S on niin sanottu sovellusprosessori. Se sisältää muistinhallintayksikön (Memory Mangement Unit, MMU), joten se tukee yleiskäyttöisiä käyttöjärjestelmiä kuten Linuxia, Windows CE:tä ja Symbiania. Se esiteltiin vuonna 2000 ja se on tehty erityisesti pienien, kannettavien ja Javaohjelmoitavien laitteiden kuten matkapuhelimien ja PDA-laitteiden prosessoriksi. (Sloss ym. 2004: 56; ARM 2010b.) 2.2. Laitteisto Työssä käytettiin Olimexin valmistamaa SAM9-L9261-kehityslaitetta. Olimex valmistaa erilaisia sulautettuja kehityslaitteita aina pienistä 8-bittisen prosessorin sisältävistä laitteista tehokkaisiin DSP- ja ARM-laitteisiin. Olimexin tuotteet ovat ns. halpoja kopioita eri piirivalmistajien virallisista kehityslaitteista. Koska Olimexin kopiolaitteet toimivat samalla tavalla kuin piirivalmistajien viralliset kehityslaitteet, käyvät niihin myös samat esimerkkiohjelmat. Olimexin tuotteet sopivat mainiosti opiskelijoille ja harrastelijoille, joilla ei ole varaa maksaa suuria summia virallisista kehityslaitteista. SAM9-L9261-laitteessa oleva ARM-prosessori on Atmelin valmistama AT91SAM9261-mikro-ohjain, joka on optimoitu erityisesti LCD-näyttöä tarvitseviin

7 7 sovelluksiin (AT91SAM9261 Preliminary 2009: 3). Laitteen TFT LCD -näytön koko on 3,5 tuumaa ja sen resoluutio on 320x240 pikseliä. ARM-laitteet tarvitsevat toimiakseen ainakin muistia ja tehoelektroniikkaa, mutta ilman oheislaitteistoa ne ovat melko hyödyttömiä. Koska AT91SAM9261-mikro-ohjain on optimoitu LCD-näyttöä tarvitsevia sovelluksia varten, on SAM9-L9261-laitteiston oheiskomponenteiksi loogisesti valittu PC:stä tuttuja komponentteja. SAM9-L9261-laitteisto sisältää 64 megatavua SDRAM-muistia, 512 megatavua NAND Flash -muistia, SD/ MMC/ Dataflash -korttiliittimen, 100 megabitin ethernet -ohjaimen, laite ja isäntä USBliittimen, ohjelmointi USB-liittimen, JTAG-liittimen, RS-232-väylämuuntimen ja - liittimen, audio-digitaali-analogia-muuntimen ja audioliittimen, neljä nappia, kolme lediä ja 20 pinnin laajennusliittimen käyttämättömille SAM9261 GPIO -porteille. Laitteessa on myös 3,3 voltin litiumparisto reaaliaikakellon pitämiseksi toiminnassa laitteen ollessa virrattomana. (Olimex 2008.) SAM9-L9261-laitteisto on lähes suora kopio Atmelin valmistamasta AT91SAM9261- EK-kehityslaitteistosta, joten Atmelin kehityslaitteistolleen kehittämiä ohjelmia voidaan käyttää Olimexin laitteistossa pienien muuntelujen jälkeen. Laitteen ohjelmointi tehdään USB-liitännän ja latausohjelman avulla. Toinen vaihtoehto on käyttää erillistä latauslaitetta ja laitteen JTAG-liitäntää, jolloin myös rauta-debuggaus on mahdollista. Laitteistoon on esiohjelmoitu aloituskynnyksen madaltamiseksi Linuxkäyttöjärjestelmän Ångström-distribuutio Ohjelmat Korostettakoon, että ARM ei sovellu aloittelijoille. Pelkästään ohjelmointiympäristön asentaminen vaatii jonkin verran perehtymistä. ARM-ohjelmien ohjelmointi, ohjelman kääntäminen ja vieminen ARM-prosessorille vaatii usean erillisen PC-ohjelman käyttöä. Nopeinten ohjelmointityön alkuun pääsee käyttämällä kaupallisia erilliset ohjelmat yhteen niputtavia ohjelmia, joita valmistavat muun muassa IAR Systems, Segger, Codesourgery ja KEIL. Kaupalliset ohjelmat ovat monipuolisia, niitä tuetaan hyvin ja ne sisältävät runsaasti valmiita esimerkkiohjelmia ja kirjastoja. Lisäksi ne tekevät

8 8 tehokasta ja nopeaa koodia. Useimmat niistä osaavat viedä koodin suoraan RAM- tai FLASH-muistiin ja niiden avulla voidaan myös debugata koodia. Kaupallisia ohjelmia ei ole kuitenkaan pakko käyttää. Viime aikoina hyväksi vaihtoehdoksi niille on noussut ilmaiseen lähdekoodiin perustuva GNU-työkaluketju (toolchain), joka soveltuu hyvin erityisesti harrastelijoille. GNU-työkaluketjuun perustuva ohjelmointiympäristö koostuu vähimmillään neljästä erikseen hankittavasta ohjelmistosta: latausohjelmasta, GNU ARM -työkaluketjusta, make-työkalusta ja ohjelmointiympäristöstä (IDE) (Atmel 2007). Ohjelmointiympäristö ei ole pakollinen ja pelkkää tekstieditoria voidaan myös käyttää, mutta se helpottaa ohjelmatiedostojen hallintaa ja nopeuttaa ohjelmointia. Yleisesti ottaen mikro-ohjaimet ohjelmoidaan piirivalmistajan omaa sovellusta käyttäen tai muulla yleiskäyttöisellä ohjelmalla, joka tulee esimerkiksi kaupallisten ohjelmien mukana. Käytettäessä GNU-työkaluketjua Atmelin AT91-perheen prosessorit ohjelmoidaan Atmelin SAM-BA-ohjelman avulla (tai esimerkiksi OpenOCD:llä), joka tulee AT91 In-System Programming (ISP) solution -paketin mukana. Ohjelman lataus tehdään joko SAM-BA:n graafisen käyttöliittymän tai skriptien avulla. C-ohjelman kääntäminen, linkitys ja binääritiedoston luominen tehdään useiden ohjelmien avulla. Nykyään kaikkia tarpeellisia ohjelmia ei ole järkevää ladata erikseen, vaan kannattaa käyttää valmiiksi luotuja GNU-työkaluketjuja, jotka sisältävät kaiken tarvittavan valmiissa paketissa. GNU-työkaluketju sisältää GNU C -kääntäjän ja - linkittäjän, assemblerin, mahdollisesti make-työkalun, debuggerin, kirjastoja ja useita muita hyödyllisiä työkaluja (vrt. Lynch 2007: 5). Tässä työssä käytettiin Saksalaisen Michael Fischerin luomaa GNU ARM -työkaluketjuimplentaatiota nimeltään YAGARTO (Yet Another GNU Arm Toolchain). Sen etu muihin työkaluketjuihin on täysi yhteensopivuus Windows-käyttöjärjestelmien kanssa. Suurin osa muista työkaluketjuimplementaatioista käyttää useita Unix-kerroksia porttaukseen (kuten Gygwin tai MinGW), joten niiden käyttö on epämiellyttävämpää kuin Windowsille suunnatun binäärin käyttäminen. YAGARTO on myös täysin yhteensopiva Eclipsen kanssa. (Atmel 2007: 3.)

9 9 Make-työkalun avulla voidaan automatisoida lähdekoodien kääntäminen, linkitys ja binääritiedoston luominen käyttämällä makefile-tiedostoa. Make ottaa huomioon riippuvuudet, joten se osaa kääntää vain tarvittavat tiedostot. Suurissa projekteissa sillä saadaan säästettyä erittäin paljon aikaa. (Lynch 2007: 7.) Koska Make ei tule YAGARTO:n mukana, se tuli asentaa erikseen. Ohjelmointiympäristönä käytettiin avoimeen lähdekoodiin perustuvaa Eclipsea. Se on alun perin suunnattu Java-ohjelmointia varten, mutta siitä on kehitetty myös versio C/ C++ -ohjelmointia varten. Koska Eclipse perustuu Java-arkkitehtuuriin, voidaan sitä käyttää missä tahansa Java-yhteensopivassa käyttöjärjestelmässä.

10 10 3. OHJELMOINTI Ohjelmointiprojektin tavoitteena oli ohjelmoida LCD-näytöllä toimiva kuvankatseluohjelma ja rakentaa sen jatkoksi kuvien väritysohjelma hyödyntäen geneettisiä algoritmeja. Projektin ensimmäinen tavoite oli saada LCD-näyttö ja kosketustoiminnot toimiviksi. Tämän jälkeen rakennettiin valokuvista ja napeista koostuva käyttöliittymä. Lopuksi suunniteltiin sovelluksen lopullinen toiminta ja geneettinen algoritmi. Oman ohjelman suunnittelun tukena käytettiin Atmelin AT91SAM9261-EK-laitteelle tehtyjä ohjelmia, jotka esittelevät AT91SAM9261- prosessorin ominaisuuksia. Ohjelmat ovat vapaasti saatavana Atmelin kotisivulta. Oman ohjelman perustana käytettiin ohjelmaa nimeltään Basic Touchsreen Project, jonka avulla voidaan tutustua AT91SAM9261-EK:n kosketusnäytön ohjelmointiin. Sovellukseen ei tullut käyttöjärjestelmää Ohjelman toiminta Sovelluksen toiminta oli yksinkertainen. Siinä valittiin ensin kuudesta esivalitusta kuvasta yksi kuva. Tämän jälkeen käynnistettiin väritysohjelma, joka aluksi teki valitusta kuvasta kuusi uutta kuvaa, joille kullekin tehtiin satunnainen väripaletti. Käyttäjän tuli valita kuudesta satunnaisesti väritetystä kuvasta kaksi mielestään optimeinta kuvaa, jotka risteytettiin ja jotka toimivat vanhempina neljälle lapsikuvalle. Kaksi vanhempaa siirtyivät automaattisesti jatkoon, joten seuraavat kuusi kuvaa koostuivat niistä ja neljästä lapsesta. Sovelluksessa voitiin käyttää myös mutaatiota, jolloin yksi lapsikuva korvattiin satunnaisväripalettikuvalla. Risteytystä voitiin jatkaa niin kauan kuin käyttäjällä riitti mielenkiintoa löytää parhaan näköinen tai mielestään optimi kuva. Sovelluksessa oli myös koko näytön tila. Koko näytön tilassa mikä tahansa kuva voitiin asettaa koko näytön tilaan, jolloin siitä sai paremmin selvää. Ohjelma voitiin myös käynnistää uudelleen kuvanvalintatilaan.

11 11 Risteytys tehtiin kahdella tavalla. Ensimmäisessä tavassa kaksi lapsikuvaa tehtiin yhden pisteen risteytyksen avulla ja toisessa tavassa ne tehtiin maskatun risteytyksen (uniform crossover) avulla. Lisää risteytyksen toiminnasta löytyy luvusta Ohjelman rakenne Ohjelmistoprojekti koostui useista tiedostoista ja kansioista. Sen puurakenne ja kansioiden sisällön selvitykset on nähtävissä kuvassa 1. Main.c-tiedosto ja muut itse tehdyt tiedostot sijoitettiin imga-project-kansioon. Muut tiedostot olivat lähinnä valmiiksi tehtyjä prosessorin oheistoimintojen ajureita, jotka olivat sijoitettu at91libkirjastokansioon. Ajureista keskeisimpiin kuuluivat keskeytys-, ajastin- ja SPI-ajureiden lisäksi LCD- ja kosketusnäytön ajurit. Prosessorilta löytyy suora tuki erilaisten LCDnäyttöjen ohjaukseen ja siinä on jopa sisäänrakennettu LCD-kuvabufferi. Kosketusnäytön ohjaus oli tehty kuitenkin suoraan ulkoista oheispiiriä ohjaamalla ja lukemalla. Kirjastokansiosta löytyi myös boards-kansio. Siihen oli sijoitettu kaikki laitteistoon liittyvät tiedostot, kuten mikro-ohjaimen määrittelyt sisältänyt AT91SAM9261.htiedosto ja laitteen määrittelyt sisältänyt board.h-tiedosto. Boards-kansiosta löytyi myös lähdekoodit muistien alustusta varten sekä tärkeät board_cstartup.s-tiedosto ja board_lowlevel.c-tiedosto, joissa alustettiin ja konfiguroitiin muun muassa keskeytys- ja reset-käsittelijät, kello, USB Watchdog ja niissä myös mapataan prosessorin muistialue uudelleen. Koska Olimexin laite oli hieman erilainen kuin Atmelin aito ja alkuperäinen laite, tehtiin board.h-tiedostoon hieman tarvittavia muutoksia. Lisäksi kosketusnäytön vaakaja pystysuunnan huomattiin toimivan väärin päin Atmelin laitteeseen verrattuna, joten suunnat korjattiin kosketusnäytön kirjastoon. Suurin osa itse tehdyistä koodeista sijaitsi projektikansiossa. Pääohjelma main.c:ssä sijaitsi funktiokutsut oheistoimintojen alustuksiin. Ui.c- ja ui.h-tiedostot pitivät sisällään kosketusnäytön käsittelijäfunktiot sekä käyttöliittymä- ja kuvankäsittelyfunktiot. Ga.c-

12 12 ja ui.h-tiedostot sisälsivät funktiot väripaletin luomiselle sekä risteytykselle ja mutaatiolle. Ohjelman kääntäminen ja linkitys tehtiin Makefilen avulla ja valmis SDRAM-binääri vietiin laitteelle SAM-BA-ohjelmalla tehdyn tcl-skriptin avulla. Lataus käynnistettiin MS-DOS komentojonon avulla (load and execute.bat). Laitemäärittelyt Mikro-ohjaimen ja laitteen alustukset ja määrittelyt Keskeytys- ja resetkäsittelijät, kellon alustus, muistin uudelleen-mappaus, USB, watchdog Oheistoimintoajurit Kosketus- ja LCDnäytön ajurit ja kirjastot Mikro-ohjaimen oheistoimintojen kirjastot ga.c/ ga.h Väripalettien luonti ja asetus kuvaan Risteytykset mutaatio Projektitiedostot main.c Kuvien, LCD:n, kosketuksen ja ajastimen alustukset Kutsutaan kosketuskäsittelijää ajastimen tahdissa ui.c/ ui.h Kosketusnäyttökäsittelijät Käyttöliittymägrafiikan luonti Kuvankäsittely Kuva 1. Ohjelmistoprojektin puurakenne ja kansioiden sisällön selvitys.

13 Käyttöliittymä Käyttöliittymä- ja kosketusnäyttöfunktiot sijoitettiin ui.c-tiedostoon. Käyttöliittymä koostui kuudesta näytön kokoisesta (320x240) kuvasta, jotka skaalattiin täydestä kuvakoosta pienemmiksi 100x70 pikselin kokoisiksi kuviksi ja sijoitettiin kahdeksi kolmen kuvan riviksi (ks. kuva 2). Kuvien ympärille rakennettiin myös kehykset, joiden värin perusteella voitiin havaita onko kuva valittu. Käyttöliittymä tarvitsi myös painikkeita ja tekstiä sovelluksen ohjausta varten, jotka rakennettiin valmiiden grafiikkakirjastojen avulla. Laitteistolle ei voitu viedä suoraan mitä tahansa tavallisia jpeg-valokuvia. Kuvat oli ensin skaalattava ja muokattava näytön kokoisiksi raakadatakuviksi PC:llä. Kuvien tuli silti olla 24-bittisiä, jolloin jokaiselle RGB-arvolle sijoitettiin sama arvo harmaasävykuvan tapauksessa. Muokkaukseen käytettiin GIMP-ohjelmaa. Tämän jälkeen niiden käsittely C-koodissa oli suoraviivaista. Raakadatakuvat vietiin prosessorin omaan muistiin ohjelman latauksen yhteydessä. Kuvat luetaan pääohjelmassa, jonka koodi on liitteessä 1. Pelkkä graafinen käyttöliittymä ei riittänyt laitteen ohjaamiseen. Sovellukseen oli implementoitava myös kosketusnäyttöominaisuudet. Laitteessa on resistiivinen kosketusnäyttö, jonka vaaka- ja pystyrivin kosketustieto siirrettiin dedikoidun ADmuunninpiirin avulla prosessorille. Raaka kosketustieto ei vastannut suoraan näytön koordinaatistoa, joten se oli ensin kalibroitava vastaamaan sitä. Kalibrointi tehtiin ensin kalibrointipisteillä interpoloinnin avulla, mutta lopullisessa sovelluksessa kalibrointidata otettiin talteen, jolloin näytön kalibrointia ei enää tarvittu tehdä ohjelman käynnistyksen yhteydessä. Sovelluksen ohjaamiseen käytettiin ainoastaan kynä vapautettu -kutsua, jolloin valinta tehtiin vain sormen noston yhteydessä. Kun painalluksen paikka oli saatu selville, verrattiin saatua paikkatietoa käyttöliittymän objekteihin eli nappien ja kuvien paikkaan. Jos paikka vastasi objekteja, tehtiin objektia ja sovelluksen tilaa vastaavat toimenpiteet kosketusnäyttökäsittelijässä (PenPressedHandler). Esimerkiksi sovelluksen alkutilassa voitiin valita vain yksi kuva kerrallaan (ks. kuva 2). Kun kuva oli valittu, aktivoitui

14 14 napit Next ja Full scr, jolloin voitiin siirtyä eteenpäin väritystilaan tai asettaa kuva koko näytön tilaan. Tällöin toisia kuvia ei voitu enää valita aktiiviseksi, ennen kuin valittua kuvaa painettiin uudelleen, jolloin se asetettiin pois päältä. Resurssien säästämiseksi kosketusnäyttökäsittelijää ei käynnistetty jokaisen kosketuksen yhteydessä, vaan se ajettiin ajastimeen säädetyn ajan välein main-funktiosta käsin. Käytännössä aika oli niin pieni, että ohjelman käytettävyyteen sillä ei ollut vaikutusta. Kuva 2. Käyttöliittymä. Käynnistystila (ylh. vas.), aloitustila (ylh. oik.), kuva valittu sekä Full scr janext-napit aktiivisena (alh. vas.) ja kokonäytön tila (alh. oik.). Vaikka sovellus oli tehty harmaasävykuvien värittämistä varten, voitiin siinä käyttää yhtälailla värikuvia, koska raakadatakuvan tuli olla 24-bittinen. Silloin vain värien sijoittelussa ei otettu huomioon värikuvan kaikkia värejä, vaan ainoastaan punainen värikanava.

15 Geneettinen algoritmi Kuvan värit luotiin väripaletin avulla, joka koostui 21 väristä. Jokainen väri sijoitettiin harmaasävykuvan tietylle harmaasävyalueelle, siten että jokainen harmaasävy korvattiin jollakin värillä. Suurempaakin väripalettia testattiin, mutta silloin kuvista alkoi tulla liian sekaisen näköisiä, eikä niistä saanut enää selvää. Hyvyysfunktion keksiminen ja tekeminen kuuluu olennaisena osana geneettisen algoritmin tekemiseen. Tässä sovelluksessa jatkoon päässeet kuvat valittiin käsin eli sovelluksen käyttäjä toimi hyvyysfunktiona. Toinen olennainen geneettisen algoritmin tekoon kuuluva osa on vanhempien kromosomien risteytystavan valinta. Tässä työssä risteytystapoja oli kaksi: yhden pisteen risteytys ja maskattu risteytys (uniform crossover). Yhden pisteen risteytyksessä vanhempien kromosomien geenit eli väripattien värit jaettiin lapsikromosomeille leikkaamalla väripaletit satunnaisesta kohdasta kahtia. Ensimmäisen vanhemman väripaletin ensimmäisen puolen värit ja toisen vanhemman toisen puolen värit asetettiin ensimmäiselle lapselle ja vastakkaiset värit toiselle lapselle. Maskatussa risteytyksessä tehtiin ensin väripaletin pituinen satunnaisbittimaski. Vanhempien väripaletit jaettiin lapsipaleteille satunnaismaskin avulla. Kuvassa 3 on esitetty väripalettien luomista ohjelman avulla. Mutaatiosta tehtiin erittäin yksinkertainen. Siinä ensimmäinen maskatulla risteytyksellä luotu lapsiväripaletti korvattiin kokonaan satunnaisväripaletilla. Käyttöliittymässä ylärivin kaksi ensimmäistä kuvaa ovat vanhemmat ja kolmas kuva on joko maskatulla risteytyksellä saatu kuva tai mutatoitu kuva. Toisen rivin ensimmäinen kuva on luotu maskatulla risteytyksellä ja loput kaksi kuvaa on luotu yhden pisteen risteytyksellä. Geneettisen algoritmin C-koodi on liitteessä 2.

16 16 Kuva 3. Kuvan värittäminen geneettisen algoritmin avulla. Ylhäältä vasemmalta lähtien: risteytystila harmaasävyliukukuvasta, kaksi kuvaa valittu ja mutaatio pääällä, kokonäytön tila harmaasävyliukukuvasta sekä kokonäytön tila pomppulinnakuvasta.

17 17 4. TYÖN ONNISTUMINEN JA TULEVAISUUS Työ onnistui odotusten mukaisesti. Laitteelle viedyistä kuvista voitiin hakea optimikuva ja sovellus toimi sulavasti ja nopeasti. Työ oli kokonaisuudessaan mielenkiintoinen ja siitä tuli lopulta toiminnaltaan yksinkertainen ja selkeä. Ohjelma jäi kuitenkin jokin bugi, koska se kaatui satunnaisesti. Kaatuilulle ei löytynyt selkeää syytä, koska debuggaukseen tarvittavaa JTAG-debuggerlaitetta ei hankittu. Debuggaus tehtiin PC:n terminaaliohjelman avulla kirjoittamalla printf() sinne viestejä RS-232-väylän välityksellä. Sovelluksen geneettinen algoritmi oli toiminnaltaan yksinkertainen mutta riittävä, koska sillä ei ollut selkeää sovelluskohdetta. Ohjelmoinnin haasteet asettuivat käyttöliittymän tekoon, joka oli kokonaisuudessaan melko monimutkainen grafiikkaobjektien määrittelyineen sekä TFT LCD -näytön ja kosketusnäytön ohjauksineen. Eniten työssä vei aikaa ohjelmistoympäristön määrittely, laitteistoon ja valmiisiin koodeihin tutustuminen, parhaan ohjelmarakenteen löytäminen ja C-kielen syntaksin opettelu, koska tekijällä oli melko vähän kokemusta monimutkaisen C- ohjelman kirjoittamisesta. Kyseisellä kuvien värityssovelluksella ei ole suoraa sovelluskohdetta, mutta PC:llä tai matkapuhelimessa vastaavaa sovellusta voisi käyttää parantamaan harmaasävykuvan havainnollisuutta. Esimerkiksi avaruudesta otetut kuvat ovat usein harmaasävykuvia tai ne koostuvat useista eri tekniikoilla otetuista kuvista, jotka usein väritetään havainnollisuuden vuoksi. Samoin useissa maanläheisemmistä kohteista otetuista harmaasävykuvista tai tietoteknisesti generoiduista kuvista voidaan luoda värikuva värittämällä se havainnollisuuden vuoksi. Jossain tapauksissa optimaalista väripalettia voisi pyrkiä generoimaan myös geneettisien algoritmien avulla. Kyseisen tyyppinen sovellus soveltuu muutenkin sulautettuihin laitteisiin melko huonosti, koska niissä on perinteisesti pieni ja epätarkka näyttö. Se ei kuitenkaan sulje pois mahdollisuutta, että samantyyppistä sovellusta voisi käyttää esimerkiksi matkapuhelimissa. Tässä työssä käsitelty sovellus voisi olla vain pieni osa suurempaa kokonaisuutta. Työssä keskityttiin lähinnä käyttöliittymän rakentamiseen, joka vaatii kokeeltakin ohjelmoijalta melko paljon aikaa. Samantyyppisien ohjelmien teossa kannattaa käyttää ehdottomasti jotain

18 18 käyttöjärjestelmää, jolloin ohjelmointiresurssit voidaan keskittää enemmän olennaiseen. Nyt työn osittainen tarkoitus oli tutustua laitteen ohjelmointiin ilman käyttöjärjestelmää. Ohjelmaan jäi rutkasti parantamisen varaa. Ensinnäkin väriavaruutta voisi rajata pienemmäksi. Väripaletissa mahdollisia värejä oli 2^24 eli yli 16,7 miljoonaa. Toiseksi risteytyksen yhteydessä värit asetettiin kuvaan vain harmaasävyn perusteella. Siinä voisi ottaa jotain muutakin huomioon, kuten kuvan muodot tai värin paikan. Kaikista maailman laitteista suuri osa on ARM-prosessorilla toimivia laitteita. Niitä käytetään paljon muuallakin kuin vain matkapuhelimissa. Erilaiset sulautetut laitteet tulevat jatkossakin olemaan osa ihmisten elämää niin tehtaissa kuin kotona. Myös kosketusnäytöt yleistyvät sulautetuissa laitteissa, ja yhä useammassa laitteessa on jokin kosketuksella toimiva graafinen käyttöliittymä. Tämä työ osoitti, että niiden sovellusmahdollisuudet ovat rajoittamattomat.

19 19 LÄHDELUETTELO ARM (2010a). Processors [online]. Cambridge: ARM Holdings [siteerattu ]. Saatavana World Wide Wepistä: <URL:http://www.arm.com/products/processors/index.php> ARM (2010b). ARM9 Processor Family [online]. Cambridge: ARM Holdings [siteerattu ]. Saatavana World Wide Wepistä: <URL:http://www.arm.com/products/processors/classic/arm9/index.php> AT91SAM9261 Preliminary (2009). AT91 ARM Thum-based Microcontroller [online]. San Jose: Atmel [siteerattu ]. Saatavana World Wide Wepistä: <URL:http://www.atmel.com/dyn/resources/prod_documents/doc6062.pdf> Atmel (2007). GNU-Based Software Development on AT91SAM Microcontrollers - Application Note [online]. [siteerattu ]. Saatavana World Wide Wepistä: <URL:http://www.atmel.com/dyn/resources/prod_documents/doc6310.pdf> Lynch James P. (2007). Using Open Source Tools for AT91SAM7S Cross Development Revision C [online]. [siteerattu ]. Saatavana World Wide Wepistä: <URL:http://www.atmel.com/dyn/resources/prod_documents/doc6250.pdf> Olimex (2008). SAM9-L9261 Development Board For AT91SAM9260 Microcontroller [online]. [siteerattu ]. Saatavana World Wide Wepistä: <URL:http://www.olimex.com/dev/sam9-L9261.html > Sloss Andrew N., Dominic Symes & Chris Wright (2004). ARM System Developer s Guide Designing and Optimizing System Software. San Francisco: Elsevier.

20 20 LIITTEET LIITE 1. Main.c // // Headers // #include <board.h> #include <board_memories.h> #include <pio/pio.h> #include <dbgu/dbgu.h> #include <tsd/tsd.h> #include <rtt/rtt.h> #include <lcd/lcdd.h> #include <lcd/draw.h> #include <lcd/color.h> #include "ui.h" #include "ga.h" #include <stdio.h> #include <string.h> #include <utility/trace.h> // // Local types // /// Image buffer addresses static unsigned char *images[13] = (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ), (unsigned char *) (AT91C_EBI_SDRAM + 0x ) ; /// LCD buffer. unsigned char *plcdbuffer = (unsigned char *) (AT91C_EBI_SDRAM + 0x ); // /// Configures the PIO needed by the application. // static void ConfigurePins()

21 21 static const Pin pins[] = PINS_LCD; PIO_Configure(pins, PIO_LISTSIZE(pins)); // // Global functions // extern void TSD_WaitPenReleased(); // /// Initializes the touchscreen and outputs measurements on the DBGU. // int main(void) unsigned short time; TRACE_CONFIGURE(DBGU_STANDARD, , BOARD_MCK); printf("-- ImGA %s --\n\r", SOFTPACK_VERSION); printf("-- %s\n\r", BOARD_NAME); printf("-- Compiled: %s %s --\n\r", DATE, TIME ); #if!defined(sdram) BOARD_ConfigureSdram(BOARD_SDRAM_BUSWIDTH); #endif ConfigurePins(); // Initialize LCD LCDD_Fill(pLcdBuffer, COLOR_WHITE); LCDD_Initialize(); LCDD_DisplayBuffer(pLcdBuffer); // Configure RTT RTT_SetPrescaler(AT91C_BASE_RTTC, (0x8000>>2)); // Initialize touchscreen //TSD_Initialize(pLcdBuffer); // manual calibration TSD_Initialize(0); // quick calibration // print introduction screen LCDD_DrawString(pLcdBuffer, 140, 50, "ImGA", COLOR_RED); LCDD_DrawString(pLcdBuffer, 90, 90, "Press screen", COLOR_BLACK); LCDD_DrawString(pLcdBuffer, 85, 110, "to continue...", COLOR_BLACK); TSD_WaitPenReleased(); // Initialize user interface UIInit(pLcdBuffer,images); // Infinite loop time = Timer(); while(1) // Wait while (time == Timer());

22 22 time = Timer(); if(!penpressedhandler(plcdbuffer)) // restart UIInit(pLcdBuffer,images); LIITE 2. GA.c /* * ga.c * * Created on: * Author: Kari */ #include "ui.h" #include "ga.h" #include <lcd/color.h> #include <lcd/draw.h> #include <lcd/font.h> #include <lcd/lcd.h> #include <board.h> #include <utility/assert.h> #include <string.h> #include <stdlib.h> #include <rtt/rtt.h> // Used from main.c but not from here anymore unsigned short Timer (void) return RTT_GetTime(AT91C_BASE_RTTC); // Make a new color palette and fill image // grayscale values with new colors. void MakeInitialColorImage(void *pdestination, void *psource,unsigned int *pcolorpalette) unsigned char *ptmpsource = &(((unsigned char *) psource)[0]); unsigned char *ptmpdest = &(((unsigned char *) pdestination)[0]); unsigned int *ptmpcolorpalette = pcolorpalette; unsigned int i,j; unsigned int tmprand; for (i=0; i<=ga_colors;i++) tmprand = rand()%0xffffff; for (j=0;j<ga_color_interval;j++)

23 23 ptmpcolorpalette[i*ga_color_interval+j] = tmprand; if (i*ga_color_interval+j >= 255) break; Colorize(pTmpDest,pTmpSource,pTmpColorPalette); // Fill the grayscale image with color palette colors void Colorize(void *pdestination, void *psource,unsigned int *pcolorpalette) unsigned char *ptmpsource = &(((unsigned char *) psource)[0]); unsigned char *ptmpdest = &(((unsigned char *) pdestination)[0]); unsigned int *ptmpcolorpalette = pcolorpalette; unsigned char tmpgray; unsigned int i; for (i=0;i<board_lcd_width*board_lcd_height;i++) tmpgray = ptmpsource[i*3]; ptmpdest[i*3] = (ptmpcolorpalette[tmpgray] >> 16) & 0xFF; ptmpdest[i*3+1] = (ptmpcolorpalette[tmpgray] >> 8) & 0xFF; ptmpdest[i*3+2] = (ptmpcolorpalette[tmpgray] >> 0) & 0xFF; // Crossover // \param pchromosome[6] Pointer to color palettes // \return // Parents (chromosome[0]&[1]) // Uniform crossover (chromosome[2]&[3]) // single point crossover (chromosome[4]&[5]) // \param parenta Index of the first parent // \param parentb Index of the secont parent void Crossover(unsigned int (*pchromosome)[256],unsigned int parenta, unsigned int parentb) unsigned int i,j; unsigned int parent[2][256]; unsigned int unimask[21]; unsigned int singlepoint; unsigned int color_interval = GA_COLOR_INTERVAL; unsigned int colors = GA_COLORS; for(i=0;i<256;i++) parent[0][i] = pchromosome[parenta][i]; parent[1][i] = pchromosome[parentb][i]; for(i=0;i<256;i++) pchromosome[0][i] = parent[0][i];

24 24 pchromosome[1][i] = parent[1][i]; // Create crossover point for single point crossover. // Slide starting point to the start of color area. singlepoint = (rand() % 230) + 35; printf("\n\rsingle point real: %d ",singlepoint); singlepoint = (singlepoint/color_interval)*color_interval; // division is rounded down printf(", adjusted: %d\n\r",singlepoint); // Single point crossover for(i=0;i<256;i++) if (i<singlepoint) ((unsigned int *)pchromosome[4])[i]=parent[0][i]; ((unsigned int *)pchromosome[5])[i]=parent[1][i]; else ((unsigned int *)pchromosome[4])[i]=parent[1][i]; ((unsigned int *)pchromosome[5])[i]=parent[0][i]; printf("uniform mask: "); // create mask for uniform crossover for (i=0;i<colors+1;i++) unimask[i] = rand() % 2; printf("%d,",unimask[i]); // Uniform crossover for (i=0;i<colors+1;i++) for (j=0;j<color_interval;j++) if (unimask[i]) ((unsigned int *)pchromosome[2])[i*color_interval+j]=parent[0][i*color_interval+j]; ((unsigned int *)pchromosome[3])[i*color_interval+j]=parent[1][i*color_interval+j]; else ((unsigned int*)pchromosome[2])[i*color_interval+j] =parent[1][i*color_interval+j]; ((unsigned int*)pchromosome[3])[i*color_interval+j] =parent[0][i*color_interval+j]; if (i*color_interval+j >= 255) break;

25 // mutation // \param *pchromosome Pointer to color palette // \param ratio Mutation ratio (1-100) void mutation(unsigned int *pchromosome, unsigned int ratio) unsigned int i,j; unsigned int mutcolor; unsigned int randomnum; unsigned int *ptmpchrom = pchromosome; 25 printf("mutation: \n\rratio: %d ",ratio); for (i=0;i<=ga_colors;i++) randomnum = ((rand() % 100) + 1); printf("#%d:%d, ",i,randomnum); if (ratio < randomnum) mutcolor = rand()%0xffffff; printf("color: %x\n\r",mutcolor); for (j=0;j<ga_color_interval;j++) ((unsigned int *)ptmpchrom)[i*ga_color_interval+j] = mutcolor;

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Useampitasoiset ADT:t Käytetään esimerkkiohjelmaa Ratkaisuyritys 1 Ratkaisuyritys 2 Lopullinen ratkaisu Lopullisen ratkaisun toteutusyritys Lopullisen ratkaisun oikea toteutus

Lisätiedot

Ohjelmointi 1 / syksy /20: IDE

Ohjelmointi 1 / syksy /20: IDE Ohjelmointi 1 / syksy 2007 10/20: IDE Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Tämän luennon rakenne

Lisätiedot

Mainosankkuri.fi-palvelun käyttöohjeita

Mainosankkuri.fi-palvelun käyttöohjeita Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...

Lisätiedot

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro: KILPAILIJAN TEHTÄVÄT Kilpailijan nimi / Nro: Tehtävän laatinut: Hannu Laurikainen, Deltabit Oy Kilpailutehtävä Kilpailijalle annetaan tehtävässä tarvittavat ohjelmakoodit. Tämä ohjelma on tehty laitteen

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin

Lisätiedot

1. NetBeans-ohjelman asennus ja käyttöönotto pva

1. NetBeans-ohjelman asennus ja käyttöönotto pva 1. NetBeans-ohjelman asennus ja käyttöönotto 11.7.2016 pva NetBeans on ohjelmointiympäristö, IDE (Integrated Development Environment) jonka avulla opiskelemme laiteläheistä C-ohjelmointia. Oletus Sinulla

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä Linux 00 Keskeiset piirteet Tux-pingviinin kuva: Larry Ewing, Simon Budig ja Anja Gerwinski Kysymyksiä 1. Mikä Linux on? 2. Kuinka Linux syntyi ja kehittyy? 3. Mitkä ovat Linuxin vahvuudet? 2 1 Linux on

Lisätiedot

TW-LTE 4G/3G. USB-modeemi (USB 2.0)

TW-LTE 4G/3G. USB-modeemi (USB 2.0) TW-LTE 4G/3G USB-modeemi (USB 2.0) Tiedonsiirtonopeus: 100 Mbps/50 Mbps LTE: 1800/2100/2600 MHz GSM/GPRS/EDGE: 850/900/1800/1900 MHz UMTS: 900/2100 MHz Pikaohje (Finnish) CE Käyttöönotto- ohje SIM- kortin

Lisätiedot

lizengo Asennusopas Windows: in kopioiminen

lizengo Asennusopas Windows: in kopioiminen lizengo Asennusopas Windows: in kopioiminen Windows: in kopioiminen lizengo Asennusopas Klikkaa sitä Windows-versiota, jonka haluat kopioida USB-tikulle, niin pääset suoraan oikeaan oppaaseen. Windows

Lisätiedot

NetBeans asennus ja etäkäyttö C-kielen opiskeluun, Windows

NetBeans asennus ja etäkäyttö C-kielen opiskeluun, Windows NetBeans asennus ja etäkäyttö C-kielen opiskeluun, Windows PUNOMO NETWORKS OY 24.7.2016 & 27.8.2016 pva NetBeans on ohjelmointiympäristö, IDE (Integrated Development Environment) jonka avulla opiskelemme

Lisätiedot

em4 3G, GPRS tai Ethernet Loggaus ja hälytys Analogiset tulot/lähdöt Etäkäyttö Keskus Pienoislogiikat

em4 3G, GPRS tai Ethernet Loggaus ja hälytys Analogiset tulot/lähdöt Etäkäyttö Keskus Pienoislogiikat Keskus Pienoislogiikat em4 3G, GPRS tai Ethernet Loggaus ja hälytys Analogiset tulot/lähdöt Etäkäyttö www.oem.fi, asiakaspalvelu@oem.fi, PUH, 0207 499 499, FAX 0207 499 456 1 / 6 Toiminta Crouzet logiikkaperhe

Lisätiedot

KYMENLAAKSON AMMATTIKORKEAKOULU

KYMENLAAKSON AMMATTIKORKEAKOULU 1 KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Ole Halonen GNU-ohjelmointityökalut Linux-järjestelmät 206101310 Seminaarityö 22.11.2012 2 Sisällysluettelo 2 1 Johdanto

Lisätiedot

LUMA SUOMI -kehittämisohjelma LUMA FINLAND -utvecklingsprogram LUMA FINLAND development programme Ohjelmointia Arduinolla

LUMA SUOMI -kehittämisohjelma LUMA FINLAND -utvecklingsprogram LUMA FINLAND development programme Ohjelmointia Arduinolla Ohjelmointia Arduinolla Kyösti Blinnikka, Olarin koulu ja lukio LUMA-keskus Aalto Mikä on Arduino? Open Source Electronics Prototyping Platform Arduino on avoimeen laitteistoon ja ohjelmistoon perustuva

Lisätiedot

Hellä ensikosketus. Tomi Kiviniemi

Hellä ensikosketus. Tomi Kiviniemi Hellä ensikosketus Tomi Kiviniemi Asialista Vähän debuggauksen filosofiaa. GDB:n peruskäyttö Netbeansissä. GDB:n peruskäyttö komentoriviympäristössä. Hieman edistyneempää sähellystä komentoriviympäristössä.

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Muuttujat eri muisteissa Ohjelman muistialueen layout Paikallisen ja globaalin muuttujan ominaisuudet Dynaamisen muistinkäytön edut Paikallisten muuttujien dynaamisuus ADT

Lisätiedot

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0 Johdanto Nämä ohjeet opastavat sinut tekemään kurssiin TKT-1110 Mikroprosessorit liittyvät harjoitustyöt. Ohjeet sisältävät kolme osiota. Ensimmäisenä esitellään projektin luonti, mikä tehdään ainoastaan

Lisätiedot

Raspberry Pi. Yhden piirilevyn tietokone. Tässä dokumentissa kerrotaan yleistä tietoa Rasberry Pi- tietokoneesta ja. sen toiminnoista.

Raspberry Pi. Yhden piirilevyn tietokone. Tässä dokumentissa kerrotaan yleistä tietoa Rasberry Pi- tietokoneesta ja. sen toiminnoista. Yhden piirilevyn tietokone Tässä dokumentissa kerrotaan yleistä tietoa Rasberry Pi- tietokoneesta ja sen toiminnoista. Sisällys Raspberry Pi Yleistä... 2 Teknistä... 2 Käyttöjärjestelmät... 4 Pelaaminen

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

Langattoman kotiverkon mahdollisuudet

Langattoman kotiverkon mahdollisuudet Langattoman kotiverkon mahdollisuudet Tietoisku 5.4.2016 mikko.kaariainen@opisto.hel.fi Lataa tietoiskun materiaali netistä, kirjoita osoite selaimen osoitelokeroon: opi.opisto.hel.fi/mikko Tietoverkot

Lisätiedot

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...

Lisätiedot

Modulaarinen ohjelmointi

Modulaarinen ohjelmointi C-ohjelmointi Modulaarinen ohjelmointi Viikko 6 1 Sisältö Modulaarisuus C:ssä Käännösyksikkö ja otsaketiedosto Makefile 2 Ison ohjelman toteuttaminen Kokonaisuus on jaettava hallittaviin osiin Toiminnallisia

Lisätiedot

Ulkoiset laitteet. Asiakirjan osanumero: Tässä oppaassa kerrotaan lisävarusteena saatavien ulkoisten laitteiden käytöstä.

Ulkoiset laitteet. Asiakirjan osanumero: Tässä oppaassa kerrotaan lisävarusteena saatavien ulkoisten laitteiden käytöstä. Ulkoiset laitteet Asiakirjan osanumero: 419462-351 Tammikuu 2007 Tässä oppaassa kerrotaan lisävarusteena saatavien ulkoisten laitteiden käytöstä. Sisällysluettelo 1 USB-laitteen käyttäminen USB-laitteen

Lisätiedot

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut www.helsinki.fi

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut www.helsinki.fi Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut Ohjelmointikurssin järjestäminen Helsingin yliopiston Ohjelmoinnin MOOC-kurssimateriaalin avulla 15.4.2016 1 Linkki Tietojenkäsittelytieteen

Lisätiedot

PLA-32820 Mobiiliohjelmointi. Mika Saari mika.saari@tut.fi http://www.students.tut.fi/~saari5/pla_32820_2016/

PLA-32820 Mobiiliohjelmointi. Mika Saari mika.saari@tut.fi http://www.students.tut.fi/~saari5/pla_32820_2016/ PLA-32820 Mobiiliohjelmointi Mika Saari mika.saari@tut.fi http://www.students.tut.fi/~saari5/pla_32820_2016/ 1. Luento 2 Suoritus vaatimukset Kurssin sisältö Kirjallisuus Mobiiliohjelmointi Mobiililaitteita...

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Taulukon edut Taulukon haitat Taulukon haittojen välttäminen Dynaamisesti linkattu lista Linkatun listan solmun määrittelytavat Lineaarisen listan toteutus dynaamisesti linkattuna

Lisätiedot

TKT-1220 Tietokonearitmetiikka I PC-harjoitus 3

TKT-1220 Tietokonearitmetiikka I PC-harjoitus 3 TKT-1220 Tietokonearitmetiikka I PC-harjoitus 3 NIOS-työ Tässä harjoituksessa mitataan NIOS II prosessorin laskutoimituksiin kuluvaa aikaa eri prosessorin konfiguraatioilla ja operandien datatyypeillä.

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

Menetelmäraportti - Konfiguraationhallinta

Menetelmäraportti - Konfiguraationhallinta Menetelmäraportti - Konfiguraationhallinta Päiväys Tekijä 22.03.02 Ville Vaittinen Sisällysluettelo 1. Johdanto... 3 1.1 Tärkeimmät lyhenteet... 3 2. Konfiguraationhallinnan tärkeimmät välineet... 4 2.1

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n

Lisätiedot

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Johdatus ohjelmointiin

Johdatus ohjelmointiin Johdatus ohjelmointiin EXAM tentin liitetiedostojen lataaminen, käyttäminen ja palauttaminen Kerro mahdolliset puutteet tai parannusehdotukset: pietari.heino@tut.fi Tällä sivulla on selitetty lyhyesti

Lisätiedot

padvisor - pikaohje - työkalu SATRON Smart/Hart dp- ja painelähettimiä varten

padvisor - pikaohje - työkalu SATRON Smart/Hart dp- ja painelähettimiä varten padvisor - pikaohje - työkalu SATRON Smart/Hart dp- ja painelähettimiä varten Sisältö: 1. Ohjelman toimintojen kuvaus 2. Ohjelman asennus 3. padvisor-ohjelman perustoiminnot 3.1 Ohjelman käynnistys 3.2

Lisätiedot

AutoCAD-natiiviobjektin toteutus

AutoCAD-natiiviobjektin toteutus AutoCAD-natiiviobjektin toteutus Kontiotuote OY Maailman toiseksi suurin hirsitalotoimittaja Aloittanut toimintansa 70-luvulla Liikevaihto vuonna 2003-37,355 Milj. euroa josta vientiä 7,376 Milj. euroa

Lisätiedot

NetBeans asennus ja etäkäyttö C-kielen opiskeluun, Linux

NetBeans asennus ja etäkäyttö C-kielen opiskeluun, Linux NetBeans asennus ja etäkäyttö C-kielen opiskeluun, Linux PUNOMO NETWORKS OY 24.7.2016 pva NetBeans on ohjelmointiympäristö, IDE (Integrated Development Environment) jonka avulla opiskelemme laiteläheistä

Lisätiedot

Projektin luonti LPCXpressolla

Projektin luonti LPCXpressolla Projektin luonti LPCXpressolla Ensimmäiseksi työtilaan (workspace) pitää liittää käytössä olevalle prosessorille sopiva CMSIS-kirjasto. LPCXpresson projektinluontivelhot olettavat, että projektit käyttävät

Lisätiedot

Harjoitus 2: Oppijan aktivointi (15.3.2016)

Harjoitus 2: Oppijan aktivointi (15.3.2016) Harjoitus 2: Oppijan aktivointi (15.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

Lisätiedot

Interfacing Product Data Management System

Interfacing Product Data Management System Interfacing Product Data Management System Tekijä: Työn valvoja: Mats Kuivalainen Timo Korhonen Esitelmän sisältö Työn suorituspaikka - Ideal Product Data Oy Käsitteitä Työn tavoitteet Työn tulokset 1/5

Lisätiedot

SISÄLLYS 1 YLEISTÄ VERSIOT Tukiaika Variaatiot OHJELMISTO Paketinhallinta Komentorivisyntaksi

SISÄLLYS 1 YLEISTÄ VERSIOT Tukiaika Variaatiot OHJELMISTO Paketinhallinta Komentorivisyntaksi Niko Junnila (1501883 TI15SPELI) Ubuntu Seminaarikooste Linux-järjestelmät Marraskuu 2016 SISÄLLYS 1 YLEISTÄ... 3 2 VERSIOT... 3 2.1 Tukiaika... 3 2.2 Variaatiot... 4 3 OHJELMISTO...4 3.1 Paketinhallinta...4

Lisätiedot

OPETTAJA VERKOSSA: Koodaaminen

OPETTAJA VERKOSSA: Koodaaminen OPETTAJA VERKOSSA: Koodaaminen 27.2.2017 Oskari Uotinen #opeverkossa OPETTAJA VERKOSSA: Koodaaminen 27.2.2017 Oskari Uotinen #opeverkossa Tallenteet: Tinyurl.com/opeverkossa Tulevien webinaarien rekisteröitymislinkit:

Lisätiedot

Trust Gamer Kit PCI TRUST GAMER KIT PCI. Pika-asennusohje. Versio 1.0

Trust Gamer Kit PCI TRUST GAMER KIT PCI. Pika-asennusohje. Versio 1.0 TRUST GAMER KIT PCI Pika-asennusohje Versio 1.0 1 1. Johdanto Tämä käyttöohje on tarkoitettu Trust Gamer Kit PCI -tuotteen käyttäjille. Tuotteen asentamisessa tarvitaan jonkin verran kokemusta tietokoneista.

Lisätiedot

Näin asennat Windows käyttöjärjestelmän virtuaalikoneeseen

Näin asennat Windows käyttöjärjestelmän virtuaalikoneeseen Näillä ohjeilla asennat Microsoft Windows 3.11 tai Microsoft Windows 3.1 -käyttöjärjestelmän Virtual PC 2007 -virtuaalikoneeseen. Huomioi, että voidaksesi asentaa Windows-käyttöjärjestelmän virtuaalikoneeseen,

Lisätiedot

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

Lisätiedot

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU011 Sweex 1-portin rinnakkainen PCI Express -kortti

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU011 Sweex 1-portin rinnakkainen PCI Express -kortti PU011 Sweex 1-portin rinnakkainen PCI Express -kortti Johdanto Älä altista PU011-korttia äärilämpötiloille. Älä aseta laitetta suoraan auringonvaloon tai sulje lämmityselementtejä. Älä käytä PU011-korttia

Lisätiedot

Moduli 4: Moniulotteiset taulukot & Bittioperaatiot

Moduli 4: Moniulotteiset taulukot & Bittioperaatiot C! : Moniulotteiset taulukot & Bittioperaatiot 15.3.2016 Agenda Pieni kertausharjoitus Moniulotteiset taulukot Esimerkki taulukoista Tauko (bittitehtävä) Binäärioperaatioista Esimerkki (vilkaistaan IP

Lisätiedot

1. Taustatietoa näppäimistönkuuntelusta

1. Taustatietoa näppäimistönkuuntelusta Muilla kielillä: English Suomi Pong-peli, vaihe 5 Tämä on Pong-pelin tutoriaalin osa 5/7. Tämän vaiheen aikana Lisäämme peliin näppäimet Laitetaan mailat liikkumaan pelaajien ohjaamina Näin ohjelmaamme

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU013 Sweex 1-portin rinnakkainen & 2 -portin sarja PCI-kortti

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU013 Sweex 1-portin rinnakkainen & 2 -portin sarja PCI-kortti PU013 Sweex 1-portin rinnakkainen & 2 -portin sarja PCI-kortti Johdanto Älä altista PU013-korttia äärilämpötiloille. Älä aseta laitetta suoraan auringonvaloon tai sulje lämmityselementtejä. Älä käytä PU013-korttia

Lisätiedot

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen Nspire CAS - koulutus Ohjelmiston käytön alkeet 3.12.2014 Pekka Vienonen Ohjelman käynnistys ja käyttöympäristö Käynnistyksen yhteydessä Tervetuloa-ikkunassa on mahdollisuus valita suoraan uudessa asiakirjassa

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta TAMK Ohjelmistotekniikka G-04237 Graafisten käyttöliittymien ohjelmointi Harjoitustehtävä 2: Karttasovellus Kartta TAMK Karttasovellus Kartta Sivu 2/8 Sisällysluettelo 1. JOHDANTO...3 2. VAATIMUSMÄÄRITTELY...

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy

Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy Opiskelijoiden OneDriveohje Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy Ohjeen nimi Opiskelijoiden OneDrive-ohje Vastuuhenkilö Mari Jokiniemi

Lisätiedot

13/20: Kierrätys kannattaa koodaamisessakin

13/20: Kierrätys kannattaa koodaamisessakin Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys ClassPad fx-cp400 päivitys + Manager for ClassPad II Subscription päivitys Käyttöjärjestelmän ja Add-in sovellusten päivityksestä Casio suosittelee aina viimeisimmän käyttöjärjestelmän asentamista. Tällöin

Lisätiedot

Yhdistä kodinkoneesi tulevaisuuteen. Pikaopas

Yhdistä kodinkoneesi tulevaisuuteen. Pikaopas Yhdistä kodinkoneesi tulevaisuuteen. Pikaopas Kotisi tulevaisuus alkaa nyt! Hienoa, että käytät Home Connect -sovellusta * Onneksi olkoon käytät tulevaisuuden kahviautomaattia, joka jo tänään helpottaa

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Demo 13. Aihe: Linux. Opettaja: Antti Ekonoja. Tekijä: Heini Puuska

Demo 13. Aihe: Linux. Opettaja: Antti Ekonoja. Tekijä: Heini Puuska Demo 13 Aihe: Linux Opettaja: Antti Ekonoja Tekijä: Heini Puuska Päiväys: 30.5.2011 Sisällys 1 Linux... 1 2 Jakelupaketit... 1 2.1 Debian... 1 2.2 Ubuntu... 1 2.3 Red Hat... 1 2.4 Fedora... 2 2.5 SUSE...

Lisätiedot

Java ja grafiikka. Ville Sundberg 12.12.2007

Java ja grafiikka. Ville Sundberg 12.12.2007 Java ja grafiikka Ville Sundberg 12.12.2007 What happen Viritetty JPanel Graphics ja Graphics2D ImageIO ja BufferedImage Animaatio ja ajastus Optimoinnista Kehykset import javax.swing.jframe; public class

Lisätiedot

Tulostimen asentaminen Software and Documentation -CD-levyn avulla

Tulostimen asentaminen Software and Documentation -CD-levyn avulla Sivu 1/6 Yhteysopas Tuetut käyttöjärjestelmät Software and Documentation -CD-levyltä voi asentaa tulostinohjelmiston seuraaviin käyttöjärjestelmiin: Windows 7 Windows Server 2008 R2 Windows Server 2008

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Ulkoiset mediakortit Käyttöopas

Ulkoiset mediakortit Käyttöopas Ulkoiset mediakortit Käyttöopas Copyright 2010 Hewlett-Packard Development Company, L.P. Java on Sun Microsystems, Inc:n tavaramerkki Yhdysvalloissa. SD-logo on omistajansa tavaramerkki. Tuotetta koskeva

Lisätiedot

Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta.

Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta. Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta. Sisäänkirjauduttuasi näet palvelun etusivulla helppokäyttöisen hallintapaneelin. Vasemmassa reunassa on esillä viimeisimmät tehdyt muutokset

Lisätiedot

FinFamily Installation and importing data (11.1.2016) FinFamily Asennus / Installation

FinFamily Installation and importing data (11.1.2016) FinFamily Asennus / Installation FinFamily Asennus / Installation 1 Sisällys / Contents FinFamily Asennus / Installation... 1 1. Asennus ja tietojen tuonti / Installation and importing data... 4 1.1. Asenna Java / Install Java... 4 1.2.

Lisätiedot

Ohje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: 15.03.2005 Projekti : AgileElephant

Ohje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: 15.03.2005 Projekti : AgileElephant AgilElephant Tekijä: Petri Kalsi Omistaja: ElectricSeven Dokumentti:.doc Päiväys: 15.03.2005 Aihe: Sivu 1 of 6 Dokumenttihistoria Muutoshistoria Revision Revision Yhteenveto muutoksista Revision tekijä

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

LASERJET PRO 500 COLOR MFP. Pikaopas M570

LASERJET PRO 500 COLOR MFP. Pikaopas M570 LASERJET PRO 500 COLOR MFP Pikaopas M570 USB-pikatulostus 1. Liitä USB-asema laitteen etupaneelin USBporttiin. 2. USB-flash-asema-valikko avautuu. Selaa vaihtoehtoja nuolipainikkeilla. Tulosta asiakirja

Lisätiedot

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen Näissä ohjeissa käydään läpi Microsoftin MS-DOS 6.22 -käyttöjärjestelmän asennus Microsoftin Virtual PC 2007 -virtuaalikoneeseen. Asennusta varten sinulla on oltava Virtual PC 2007 asennettuna tietokoneellasi

Lisätiedot

USB-siirto-ohjelman ja ajurin asentaminen

USB-siirto-ohjelman ja ajurin asentaminen 1 (8) USB-siirto-ohjelman ja ajurin asentaminen Ladattuasi Handan CV-7700 PVR laitteen USB-siirto-ohjelman Welhon internet- sivuilta, asenna ohjelma alla olevien ohjeiden mukaan. Siirto-ohjelman asennus

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä

Lisätiedot

Monipuolinen esimerkki

Monipuolinen esimerkki Monipuolinen esimerkki Lopuksi monipuolinen esimerkki, jossa ohjelmisto koostuu pääohjelmasta ja kahdesta aliohjelmasta, joista toinen on proseduuri ja toinen funktio. Funktio Sqrt(int n): int Sqrt(int

Lisätiedot

Valppaan asennus- ja käyttöohje

Valppaan asennus- ja käyttöohje Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi

Lisätiedot

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

Lisätiedot

ASIAKASKOULUTUKSET. Kurssiohjelma Syksy 2016

ASIAKASKOULUTUKSET. Kurssiohjelma Syksy 2016 Lahden kaupunginkirjasto ASIAKASKOULUTUKSET Kurssiohjelma Syksy 2016 Opettele käyttämään tietokonetta, ota käyttöön oma sähköpostiosoite, kurkista internetiin, tai tutustu tablettiin. Tervetuloa! Kursseista

Lisätiedot

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit GA & robot path planning Janne Haapsaari AUTO3070 - Geneettiset algoritmit GA robotiikassa Sovelluksia liikkeen optimoinnissa: * eri vapausasteisten robottien liikeratojen optimointi * autonomisten robottien

Lisätiedot

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0 CODEONLINE Monni Oo- ja Java-harjoituksia Version 1.0 Revision History Date Version Description Author 25.10.2000 1.0 Initial version Juha Johansson Inspection History Date Version Inspectors Approved

Lisätiedot

Seuraavat kysymykset koskevat erilaisia tekijöitä, jotka liittyvät digitaaliseen mediaan ja digitaalisiin laitteisiin kuten pöytätietokoneet,

Seuraavat kysymykset koskevat erilaisia tekijöitä, jotka liittyvät digitaaliseen mediaan ja digitaalisiin laitteisiin kuten pöytätietokoneet, Seuraavat kysymykset koskevat erilaisia tekijöitä, jotka liittyvät digitaaliseen mediaan ja digitaalisiin laitteisiin kuten pöytätietokoneet, kannettavat tietokoneet, älypuhelimet, tablettitietokoneet,

Lisätiedot

DIGITAALINEN AJASTIN ULKOKÄYTTÖÖN

DIGITAALINEN AJASTIN ULKOKÄYTTÖÖN KÄYTTÖ-OHJE DIGITAALINEN AJASTIN ULKOKÄYTTÖÖN E135008 A. Toiminnot 1. Digitaalisen ajastimen ohjelmointi on yhtä helppoa kuin mekaanisen ajastimen antaen samalla digitaalisen ajastimen tarkkuuden. 2. Tällä

Lisätiedot

Basler teollisuuskameroiden ja Pylon-ohjelman käytön aloittaminen

Basler teollisuuskameroiden ja Pylon-ohjelman käytön aloittaminen Basler teollisuuskameroiden ja Pylon-ohjelman käytön aloittaminen Ajureiden ja ohjelman asentaminen Lataa ensimmäiseksi Pylon-sovellus Baslerin sivuilta osoitteesta http://www.baslerweb.com/pylon Käynnistä

Lisätiedot

Selaimen kautta käytettävällä PaikkaOpin kartta-alustalla PaikkaOppi Mobiililla

Selaimen kautta käytettävällä PaikkaOpin kartta-alustalla PaikkaOppi Mobiililla 19.1.2017 Sisällys Slide 3. Mikä on PaikkaOppi Mobiili? Slide 4. Kaavio PaikkaOppi Mobiilin käytön aloituksesta. Slidet 5-7. Tunnusten ja kurssin luominen ennen sovelluksen käyttöä. Slide 8. Hae sovellus

Lisätiedot

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut järjestelmät Luku 2 Sivu 1 (??) Kiertokysely Perinteiset ohjelmointikielet kuten C tukevat hyvin sekventiaalista ohjelmointia, jossa herätteisiin reagointi on helppoa toteuttaa pollauksella

Lisätiedot

Adobe Digital Editions -ohjeet

Adobe Digital Editions -ohjeet Adobe Digital Editions -ohjeet Adobe Digital Editions on Adoben e-kirjojen lukemiseen tarkoitettu kevyt erillinen lukuohjelma, joka on ollut käytössä Adobe Reader -ohjelman 8-versiosta alkaen. Ohjelman

Lisätiedot

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen S14 09 Sisäpeltorobotti AS 0.3200 Automaatio ja systeemitekniikan projektityöt Antti Kulpakko, Mikko Ikonen 1. Projektin tavoitteet Projektin tavoitteena on toteuttaa ohjelmisto sisäpeltorobottiin seuraavien

Lisätiedot

Kannettavatilanne (päivitetty )

Kannettavatilanne (päivitetty ) Kannettavatilanne (päivitetty 16.9.2016) Kannettavat Renew Meiltä tietokoneet myös asennettuna avaimet käteen -periaatteella! Kaikki tietokoneet on päivitetty Windows 10 käyttöjärjestelmään. HP RENEW Program-Remanufactured:

Lisätiedot

Ti LÄHIVERKOT -erikoistyökurssi. X Window System. Jukka Lankinen

Ti LÄHIVERKOT -erikoistyökurssi. X Window System. Jukka Lankinen Ti5316800 LÄHIVERKOT -erikoistyökurssi X Window System Jukka Lankinen 2007-2008 Sisällys Esitys vastaa seuraaviin kysymyksiin: Mikä on X Window System? Minkälainen X on? Mistä sen saa? Miten X:ää käytetään?

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen CVS Versionhallintajärjestelmä Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen Käytetään komentoriviltä, myös graafisia käyttöliittymiä saatavilla CVS Kaikki tiedostot

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

5/20: Algoritmirakenteita III

5/20: Algoritmirakenteita III Ohjelmointi 1 / syksy 2007 5/20: Algoritmirakenteita III Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/17 Tämän

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

.NET ajoympäristö. Juha Järvensivu 2007

.NET ajoympäristö. Juha Järvensivu 2007 .NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET

Lisätiedot

Pertti Pennanen License 1 (7) EDUPOLI ICTPro1 23.10.2013

Pertti Pennanen License 1 (7) EDUPOLI ICTPro1 23.10.2013 License Pertti Pennanen License 1 (7) SISÄLLYSLUETTELO Lisenssien hallinta... 2 Lisenssisopimus... 2 Yleisimmät lisensiointimallit... 2 OEM lisenssi... 3 Kelluva lisenssi... 3 Työasemakohtainen lisenssi...

Lisätiedot

Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita.

Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita. Mikä on tietokone PUNOMO NETWORKS OY 22.7.2016 pva, piirroskuvat J. Mansikkaviita Henkilökohtaisesti olen aina valmis oppimaan, vaikka en välitäkään tulla opetetuksi. - Winston Churchill Tietokone on elektroninen

Lisätiedot

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,

Lisätiedot