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;

BL40A1810 Mikroprosessorit, harjoitus 1

BL40A1810 Mikroprosessorit, harjoitus 1 BL40A1810 Mikroprosessorit, harjoitus 1 Käytettävä laitteisto Kurssin opetuslaitteistona käytetään Legon MINDSTORMS laitteita, jonka pääosia ovat ohjelmoitava NXT-yksikkö (Atmel ARM7, 64k RAM, 256k Flash),

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

Gimp JA MUUT KUVANKÄSITTELYOHJELMAT

Gimp JA MUUT KUVANKÄSITTELYOHJELMAT Gimp JA MUUT KUVANKÄSITTELYOHJELMAT Daniela Lund Ti07 A241227 Linux-järjstelmät 01.12.2009 MIKÄ ON KUVANKÄSITTELYOHJELMA? Kuvankäsittelyohjelma on tietokoneohjelma, jolla muokataan digitaalisessa muodossa

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011 1 Joonas Ruotsalainen GIT PIKAOPAS Tutkielma 2011 2 SISÄLTÖ 1. JOHDANTO... 3 2. ASENTAMINEN... 4 3. KÄYTTÖ... 4 3.1 Perusasetukset... 4 3.2 Git:n ottaminen käyttöön projektissa... 5 3.3 Tiedostojen lisääminen

Lisätiedot

6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva

6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva 6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva Experience is what causes people to make new mistakes instead of old ones... - Unknown Sisältö Yleistä EEPROM-rekisterit Protoilu-ohje EEPROMmista ja Fuse-biteistä

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

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

S11-09 Control System for an. Autonomous Household Robot Platform

S11-09 Control System for an. Autonomous Household Robot Platform S11-09 Control System for an Autonomous Household Robot Platform Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Quang Doan Lauri T. Mäkelä 1 Kuvaus Projektin tavoitteena on

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

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE: 15.03.

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE: 15.03. EMVHost Online SUBJECT: COMPANY: COMMENTS: AUTHOR: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT NETS OY EMVHost Online Client sovelluksen käyttöohje NETS OY DATE: 15.03.2011 VERSION: 1.0 1 SISÄLLYS SISÄLLYS...

Lisätiedot

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

OHJELMISTOKEHITYS -suuntautumisvaihtoehto OHJELMISTOKEHITYS -suuntautumisvaihtoehto Suuntautumisvaihtoehdon esittely 1. vuoden opiskelijoille Kari Laitinen www.oamk.fi/~karil/opetus.html Ohjelmistokehitys -opintosuunnan valitsevista henkilöistä

Lisätiedot

Simulaattorin asennus- ja käyttöohje

Simulaattorin asennus- ja käyttöohje Linux ja Windows XP Versio Päiväys Muokkaaja Kuvaus 0.2 16.2.2006 Mikko Halttunen Katselmoinin jälkeen 0.1 13.2.2006 Mikko Halttunen Alustava versio Sisällysluettelo 1 Johdanto... 3 2 Simulaattorin asennus...

Lisätiedot

Mikrokontrollerit. Mikrokontrolleri

Mikrokontrollerit. Mikrokontrolleri Mikrokontrollerit S-108.2010 Elektroniset mittaukset 18.2.2008 Mikrokontrolleri integrointi säästää tilaa piirilevyllä usein ratkaisu helpompi ja nopeampi toteuttaa ohjelmallisesti prosessori 4-64 bittinen

Lisätiedot

LINUX-HARJOITUS, MYSQL

LINUX-HARJOITUS, MYSQL LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Ohjelmointi Linuxissa. Sisällysluettelo. 1. Mitä tarvitaan sovellusten tuottamiseen? Tehnyt: Antti Martikainen (1300698)

Ohjelmointi Linuxissa. Sisällysluettelo. 1. Mitä tarvitaan sovellusten tuottamiseen? Tehnyt: Antti Martikainen (1300698) Ohjelmointi Linuxissa Tehnyt: Antti Martikainen (1300698) Sisällysluettelo 1. Mitä tarvitaan sovellusten tuottamiseen?...1 2. GNU Toolchain...2 3. Tekstieditorit...2 4. Hello world-sovelluksen luominen

Lisätiedot

Arduino ohjelmistokehitys

Arduino ohjelmistokehitys Arduino ohjelmistokehitys http://www.arduino.cc/ jak Sisältö Mikä on Arduino? Ohjelmistonkehitysympäristö (Arduino IDE) Ohjelmointikieli Esimerkkejä Lähteitä Arduino -ohjelmistokehitys/ jak 2 Mikä on Arduino?

Lisätiedot

Historiaa. Unix kirjoitettiin kokonaan uudestaan C-kielellä 1973. Unix jakautui myöhemmin System V ja BSDnimisiin. Kuutti, Rantala: Linux

Historiaa. Unix kirjoitettiin kokonaan uudestaan C-kielellä 1973. Unix jakautui myöhemmin System V ja BSDnimisiin. Kuutti, Rantala: Linux Historiaa Linux on Unix-yhteensopiva käyttöjärjestelmä. Unixin perusta luotiin 1964 MIT:ssa aloitetussa MULTICS-projektissa (http://www.cs.helsinki.fi/u/kerola/tkhist/k2000/alustukset/unix_hist/unix_historia.htm)

Lisätiedot

Fiery Driver Configurator

Fiery Driver Configurator 2015 Electronics For Imaging, Inc. Tämän julkaisun tiedot kuuluvat tämän tuotteen Lakisääteisien ilmoitusten piiriin. 16. marraskuuta 2015 Sisällys 3 Sisällys Fiery Driver Configurator...5 Järjestelmävaatimukset...5

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

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle ELEC-A4010 Sähköpaja Arduinon ohjelmointi Jukka Helle Arduino UNO R3 6-20VDC 5VDC muunnin 16 MHz kideoskillaattori USB-sarjamuunnin (ATmega16U2) ATmega328 -mikro-ohjain 14 digitaalista I/O väylää 6 kpl

Lisätiedot

Avoimen lähdekoodin kehitysmallit

Avoimen lähdekoodin kehitysmallit Avoimen lähdekoodin kehitysmallit Arto Teräs Avoimen lähdekoodin ohjelmistot teknisessä laskennassa -työpaja CSC, 25.5.2009 Avoimen lähdekoodin kehitysmallit / Arto Teräs 2009-05-25

Lisätiedot

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän e eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokone- järjestelmäj ä Käyttäjä Tietokonelaitteisto Oheislaitteet

Lisätiedot

Älypuhelimet. Sisällysluettelo

Älypuhelimet. Sisällysluettelo Älypuhelimet Jussi Huhtala Sisällysluettelo Älypuhelimen määritelmä Historia Laitteistoarkkitehtuuri Käyttöjörjestelmät Android Symbian ios Yhteenveto 1 Älypuhelin Puhelin joka sisältää normaalit puhelimen

Lisätiedot

Liitäntäkaapelin CA-42 pika-asennusohje

Liitäntäkaapelin CA-42 pika-asennusohje Liitäntäkaapelin CA-42 pika-asennusohje 9234594 2. painos Nokia, Nokia Connecting People ja Pop-Port ovat Nokia Oyj:n rekisteröityjä tavaramerkkejä. Copyright 2005 Nokia. Kaikki oikeudet pidätetään. Johdanto

Lisätiedot

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityökalu Java-ohjelmistoon. Ohje Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5

Lisätiedot

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle TEEMA 1 Tietokoneen peruskäyttö Digikamera Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle Tämä tietopaketti hahmottaa lukijalle, millä tavalla kuvat voidaan siirtää kamerakännykästä tai

Lisätiedot

IR-lämpömittarityypit

IR-lämpömittarityypit IR-lämpömittarityypit Kokonaissäteilypyrometrit Laaja aallonpituusalue (esim. 1-100 µm) häiriöaltis Hidas (vaste 1-3 s) Osittaissäteilypyrometrit Kapea aallonpituusalue (esim. 0,5-1,1 µm) vähemmän häiriöaltis

Lisätiedot

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245 Android ohjelmointi Mobiiliohjelmointi 2-3T5245 Mikä on Android? Linux kernelin päälle rakennettu, Googlen kehittämä sovelluspino mobiilisovelluksiin Erillinen versio puhelimelle ja taulutietokoneille

Lisätiedot

WINE API ja Virtualisointiohjelmistot

WINE API ja Virtualisointiohjelmistot WINE API ja Virtualisointiohjelmistot Yleistä Winestä Ohjelmisto, joka mahdollistaa Windows -pohjaisten ohjelmien käytön kuissa käyttöjärjestelmissä Toimii yhteensopivuuskerroksena ohjelman ja käyttöjärjestelmän

Lisätiedot

DXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/

DXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DXL Library ja DXL-kielen olemus Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DOORS extension Language DXL on DOORSin laajennuskieli, jolla voidaan kehittää lisätoiminnallisuutta.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Pika-asennusohjeet Suomeksi

Pika-asennusohjeet Suomeksi Pika-asennusohjeet Suomeksi (Virallinen ohje löytyy asennuslevyltä Englanninkielisenä) Tulosta tämä ohje asennuksen avuksi. Ensiksi asennetaan itse ohjelma, sitten rekisteröidytään testerin käyttäjäksi

Lisätiedot

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. On arvioitu, että maailmassa on tällä hetkellä enemmän sulautettuja

Lisätiedot

LINUX LINUX. Viisi hyvää syytä käyttää Linuxia MUISTA! GNU Free Documentation License

LINUX LINUX. Viisi hyvää syytä käyttää Linuxia MUISTA! GNU Free Documentation License GNU Free Documentation License LINUX Lähde: http://www.ubuntufi.org/ LINUX Linux-käyttöjärjestelmäydin on saanut alkunsa suomalaisen Linus Torvaldsin ansiosta Linux (GNU+Linux) on levinnyt maailmalla nopeasti

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

Lisätiedot

D-Link DSL-504T ADSL Reitittimen Asennusohje ver. 1.0

D-Link DSL-504T ADSL Reitittimen Asennusohje ver. 1.0 D-Link DSL-504T ADSL Reitittimen Asennusohje ver. 1.0 Tervetuloa D-Link ADSL reitittimen omistajaksi. Tämän ohjeen avulla saat reitittimesi helposti ja nopeasti toimimaan. Tämä ohje kannattaa lukea läpi

Lisätiedot

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi Business is evolving, you should too. MeeGo ulkona vai myöhässä? Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi Helsinki, Tampere, Turku, Stockholm, Göteborg www.tieturi.fi MeeGo YALMP (Yet

Lisätiedot

WBelectronics. Infinity USB Phoenix - Käyttöohje

WBelectronics. Infinity USB Phoenix - Käyttöohje WBelectronics Infinity USB Phoenix - Käyttöohje Johdanto Laitteen asentaminen Onneksi olkoon Infinity USB Phoenix -laitteen hankinnasta! Infinity kytketään toimintaan kolmessa vaiheessa: 1) Asenna laite

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

Phantom / H3-3D Gimbal Kalibrointiohjeet. Aloitus:

Phantom / H3-3D Gimbal Kalibrointiohjeet. Aloitus: Phantom / H3-3D Gimbal Kalibrointiohjeet - Uuden kauko-ohjaimen yhdistäminen kopteriin - Kauko-ohjaimen kalibrointi - Gimbaalin kuvauskulman säätövivun X1 kalibrointi - Gimbaalin asetukset - IMU kalibrointi

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

Choose Finland-Helsinki Valitse Finland-Helsinki

Choose Finland-Helsinki Valitse Finland-Helsinki Write down the Temporary Application ID. If you do not manage to complete the form you can continue where you stopped with this ID no. Muista Temporary Application ID. Jos et onnistu täyttää lomake loppuun

Lisätiedot

Pedacode Pikaopas. Web-sovelluksen luominen

Pedacode Pikaopas. Web-sovelluksen luominen Pedacode Pikaopas Web-sovelluksen luominen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Netbeans-työkalulla luodaan uusi yksinkertainen web-sovellus ja testataan sen toiminta. Opas kattaa kaiken aiheeseen

Lisätiedot

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat Linux rakenne Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat Linux ydin Ytimen (kernel) päätehtävä on tarjota rajapinta

Lisätiedot

VALO-ohjelmat ja LTSP kouluissa. Elias Aarnio Innopark, AVO-hanke elias.aarnio@innopark.fi 040-8204614

VALO-ohjelmat ja LTSP kouluissa. Elias Aarnio Innopark, AVO-hanke elias.aarnio@innopark.fi 040-8204614 VALO-ohjelmat ja LTSP kouluissa Elias Aarnio Innopark, AVO-hanke elias.aarnio@innopark.fi 040-8204614 Mikä ihmeen VALO? VALO = Vapaat ja avoimen lähdekoodin ohjelmat Kyse on siis Open Sourcesta eli avoimesta

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

Automaattinen rivitys

Automaattinen rivitys Automaattinen rivitys 1. Kirjoita oheinen teksti. Anna ohjelman rivittää automaattisesti, paina Enter vain lisätäksesi tyhjän rivin kappaleiden väliin. Rivien ei tarvitse vaihtua samassa kohdassa kuin

Lisätiedot

Web Services tietokantaohjelmoinnin perusteet

Web Services tietokantaohjelmoinnin perusteet ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

Lisätiedot

Lumon tuotekirjaston asennusohje. Asennus- ja rekisteröintiohje

Lumon tuotekirjaston asennusohje. Asennus- ja rekisteröintiohje Lumon tuotekirjaston asennusohje Asennus- ja rekisteröintiohje 1. Sisältö 1. Asennuspaketin lataaminen 4 2. Zip-tiedoston purkaminen ja sovelluksen asentaminen 4 3. Sovelluksen rekisteröiminen 7 4. Sisällön

Lisätiedot

H9 Julkaiseminen webissä

H9 Julkaiseminen webissä H9 Julkaiseminen webissä Tässä harjoituksessa opetetaan kaksi tapaa viedä tiedostoja jakoon webin kautta (tehtävä 1 ja tehtävä 3), sekä kokeillaan yksinkertaista, jokamiehen tapaa tehdä oma sivusto (tehtävä

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

TIETOKONETEKNIIKAN LABORAATIOT V2.0 VHDL ohjelmoinnin perusteet

TIETOKONETEKNIIKAN LABORAATIOT V2.0 VHDL ohjelmoinnin perusteet TIETOKONETEKNIIKAN LABORAATIOT V2.0 VHDL ohjelmoinnin perusteet Työ: VHDL ohjelmoinnin perusteet & Quartus II ohjelmiston käyttöönotto Tehnyt: Kari Huovinen Pvm: 26.4.2006 Lisäyksiä: Harri Honkanen 13.09.2007

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

- Uuden kauko-ohjaimen yhdistäminen kopteriin - Kauko-ohjaimen kalibrointi - Gimbaalin kuvauskulman säätövivun X1 kalibrointi - Gimbaalin asetukset

- Uuden kauko-ohjaimen yhdistäminen kopteriin - Kauko-ohjaimen kalibrointi - Gimbaalin kuvauskulman säätövivun X1 kalibrointi - Gimbaalin asetukset Phantom / H3-3D Gimbal Kalibrointiohjeet - Uuden kauko-ohjaimen yhdistäminen kopteriin - Kauko-ohjaimen kalibrointi - Gimbaalin kuvauskulman säätövivun X1 kalibrointi - Gimbaalin asetukset Aloitus: DJI

Lisätiedot

PDA CAM KÄYTTÖOPAS PDA CAM

PDA CAM KÄYTTÖOPAS PDA CAM PDA CAM KÄYTTÖOPAS Fi 1 Suomi Käyttäjän käsikirja Sisällys Valmistelut... 2 Pakkauksen sisältö... 2 Järjestelmävaatimukset... 2 PDA Cam -kamera... 3 PDA Cam -kameran osat... 3 Asentaminen... 4 Laitteiston

Lisätiedot

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu

Lisätiedot

MASSER Loader V2.00. käyttö- ja asennusohje 5.5.2014

MASSER Loader V2.00. käyttö- ja asennusohje 5.5.2014 MASSER Loader V2.00 käyttö- ja asennusohje 5.5.2014 Masser Oy Tel. +358 400 904 500 BID No 0665142-9 Jämytie 1 Fax. +358 16 282 554 VAT No. FI06651429 FI-96910 Rovaniemi, Finland Domicile Rovaniemi OHJELMAN

Lisätiedot

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Peter Kronström

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Peter Kronström ELEC-A4010 Sähköpaja Arduinon ohjelmointi Peter Kronström Arduinon rakenne 5 voltin regulaattori 16 MHz kide USB-sarjamuunnin ATmega328 -mikrokontrolleri 20 I/O-pinniä, joista 14 digitaalista ja 6 analogista

Lisätiedot

Varmuuskopiointi ja palauttaminen

Varmuuskopiointi ja palauttaminen Varmuuskopiointi ja palauttaminen Käyttöopas Copyright 2007 Hewlett-Packard Development Company, L.P. Windows on Microsoft Corporationin Yhdysvalloissa rekisteröimä tavaramerkki. Tässä olevat tiedot voivat

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

C++ Ohjelmoijan käsikirja. Johdanto

C++ Ohjelmoijan käsikirja. Johdanto Johdanto C++ Ohjelmoijan käsikirja Johdanto Tervetuloa Inside C++-kirjan pariin. Tämä on opaskirja standardi C++:n käyttöön. Käsittelemme kirjassa kaikki syntaksin, kieliopin, olio-ohjelmoinnin ja standardikirjastojen

Lisätiedot

Viva-16. Käyttöohje. 1.4.2009 Veikko Nokkala Suomen Videovalvonta.com

Viva-16. Käyttöohje. 1.4.2009 Veikko Nokkala Suomen Videovalvonta.com Viva-16 Käyttöohje 1.4.2009 Veikko Nokkala Sisällysluettelo Sisällysluettelo... 2 Ohjelmisto käyttöliittymä... 3 Asentaminen... 3 Käyttöönotto... 3 Katselu... 6 Tallennus... 8 Toistaminen... 9 Selain käyttöliittymä...

Lisätiedot

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,

Lisätiedot

Taitaja semifinaali 2010, Iisalmi Jääkaapin ovihälytin

Taitaja semifinaali 2010, Iisalmi Jääkaapin ovihälytin Taitaja semifinaali 2010, Iisalmi Jääkaapin ovihälytin Ohjelmointitehtävänä on laatia ohjelma jääkaapin ovihälyttimelle. Hälytin toimii 3 V litium paristolla ja se sijoitetaan jääkaapin sisälle. Hälyttimen

Lisätiedot

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä Anne Benson/Tanja Bergius Opintojakson ict1td002 käyttöön Sivu 1 / 13 Eclipse 3.2 pikku opas versio 1.0 Ohjeen sisältö: Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Lisätiedot

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa ssa ohjelman käytössä suoritusaikana oleva muisti jakautuu neljään osaan: koodisegmentti datasegmentti pinosegmentti (stack) kasa (heap) ssa ohjelman koodisegmentti sisältää käännetyn ohjelmakoodin sisältö

Lisätiedot

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

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

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

5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma

5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma 5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma Every cloud has a silver line. - englantilainen sananlasku Tässä osiossa tärkeää: yksi- ja moniulotteinen taulukko Sisältö Yleistä Yksiulotteinen

Lisätiedot

Comet pysäköintimittarin asennus ja kytkeminen tietokoneeseesi (Windows XP) USB-kaapelilla.

Comet pysäköintimittarin asennus ja kytkeminen tietokoneeseesi (Windows XP) USB-kaapelilla. Comet pysäköintimittarin asennus ja kytkeminen tietokoneeseesi (Windows XP) USB-kaapelilla. HUOM! TÄMÄ OHJE ON COMET LAITTEEN ENSIMMÄISTÄ ASENNUSKERTAA VARTEN. Ladataksesi rahaa Comet pysäköintimittariisi

Lisätiedot

mobile PhoneTools Käyttöopas

mobile PhoneTools Käyttöopas mobile PhoneTools Käyttöopas Sisältö Vaatimukset...2 Ennen asennusta...3 Asentaminen - mobile PhoneTools...4 Matkapuhelimen asennus ja määritys...5 Online-rekisteröinti...7 Asennuksen poistaminen - mobile

Lisätiedot

PIKAOPAS NOKIA PC SUITE 4.3. Nokia 8310 -puhelimelle. Copyright Nokia Mobile Phones 2001. Kaikki oikeudet pidätetään Issue 6

PIKAOPAS NOKIA PC SUITE 4.3. Nokia 8310 -puhelimelle. Copyright Nokia Mobile Phones 2001. Kaikki oikeudet pidätetään Issue 6 PIKAOPAS NOKIA PC SUITE 4.3 Nokia 8310 -puhelimelle Copyright Nokia Mobile Phones 2001. Kaikki oikeudet pidätetään Issue 6 Sisällysluettelo 1. JOHDANTO...1 2. JÄRJESTELMÄVAATIMUKSET...1 3. PC SUITE -OHJELMISTON

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN

Lisätiedot

EDMODO. -oppimisympäristö opettajille ja oppilaille KOONNUT: MIKA KURVINEN KANNUKSEN LUKIO

EDMODO. -oppimisympäristö opettajille ja oppilaille KOONNUT: MIKA KURVINEN KANNUKSEN LUKIO EDMODO -oppimisympäristö opettajille ja oppilaille KOONNUT: MIKA KURVINEN KANNUKSEN LUKIO HUOM! Edmodo kehittyy koko ajan, seuraavat ohjeet voivat olla jo päivityksen tarpeessa. 1 Sisällysluettelo Rekisteröityminen

Lisätiedot

Octave-opas. Mikä on Octave ja miksi? Asennus

Octave-opas. Mikä on Octave ja miksi? Asennus Octave-opas Mikä on Octave ja miksi? Asennus Käynnistys ja käyttöliittymä Komennot tiedostojen hallintaan SciTE-editor.m-tiedostot Ohjeita muualla Mikä on Octave ja miksi? Octave on numeeriseen laskentaan

Lisätiedot

Lab A1.FARM_Hyper-V.v3

Lab A1.FARM_Hyper-V.v3 Lab A1.FARM_Hyper-V Installing SharePoint Server 2013 SharePoint Server 2013 -asennus Scenario To install and configure SharePoint 2013 on a single server (Server 2012, AD and SQL Server), you will follow

Lisätiedot

13 Operaattoreiden ylimäärittelyjä

13 Operaattoreiden ylimäärittelyjä 248 13 C++-kielessä voidaan operaattoreita ylimäärittää. Ylimääriteltävää operaattoria voidaan pitää ikäänkuin metodina, joka esitellään luokan esittelyssä ja määritellään luokan ulkopuolella kuten metoditkin.

Lisätiedot

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012 KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012 SISÄLLYS 1 JOHDANTO 3 2 WWW-PALVELIMEN TOIMINTA 4 3 OMINAISUUDET

Lisätiedot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot Tiedosto yhteenkuuluvien tietojen joukko, joka on tavallisesti talletettu pysyväismuistiin muodostuu tietueista, jotka voivat olla keskenään samanlaisia tai vaihdella tyypiltään tiedostot ovat joko tekstitiedostoja

Lisätiedot

VHDL/Verilog/SystemC. Jukka Jokelainen 20.10.2009

VHDL/Verilog/SystemC. Jukka Jokelainen 20.10.2009 VHDL/Verilog/SystemC Jukka Jokelainen 20.10.2009 Sisältö Mitä ihmettä on hardwaren ohjelmointi? VHDL Verilog SystemC Analogiaelektroniikan yhdistäminen digitaaliseen maailmaan Yhteenveto ja pohdintaa Hardwaren

Lisätiedot

Quha Zono. Käyttöohje

Quha Zono. Käyttöohje Quha Zono Käyttöohje 2 Virtakytkin/ merkkivalo USB-portti Kiinnitysura Tervetuloa käyttämään Quha Zono -hiiriohjainta! Tämä käyttöohje kertoo tuotteen ominaisuuksista ja opastaa laitteen käyttöön. Lue

Lisätiedot

Sisällysluettelo. USB-laitteen jakaminen verkossa... 3. USB-tulostimen jakaminen... 5. Macin varmuuskopiointi Time Machine -ohjelmalla...

Sisällysluettelo. USB-laitteen jakaminen verkossa... 3. USB-tulostimen jakaminen... 5. Macin varmuuskopiointi Time Machine -ohjelmalla... Lisätoiminnot Sisällysluettelo USB-laitteen jakaminen verkossa... 3 USB-tulostimen jakaminen... 5 Macin varmuuskopiointi Time Machine -ohjelmalla... 6 NETGEAR genie -sovellus... 8 2 USB-laitteen jakaminen

Lisätiedot

Näin saat 365 päivän ajalta Freshest Data sisältöä NavionicsWeb Store nettikaupasta

Näin saat 365 päivän ajalta Freshest Data sisältöä NavionicsWeb Store nettikaupasta Näin saat 365 päivän ajalta Freshest Data sisältöä NavionicsWeb Store nettikaupasta April 2012 Näin pääset alkuun: Tämä dokumentti kuvaa kuinka saat Navionics Freshest Data päivityksen ensimmäistä kertaa.

Lisätiedot

Ohjelmiston asennusopas NPD4758-00 FI

Ohjelmiston asennusopas NPD4758-00 FI NPD4758-00 FI Ohjelmiston asennus USB-liitäntää koskeva huomautus: Älä liitä USB-johtoa ennen kuin ohjeissa määrätään tekemään niin. Jos tämä näyttö tulee esiin, napsauta Cancel (Peruuta). Ethernet-liitäntää

Lisätiedot

BaseMidlet. KÄYTTÖOHJE v. 1.00

BaseMidlet. KÄYTTÖOHJE v. 1.00 KÄYTTÖOHJE v. 1.00 KUVAUS BaseMidlet on matkapuhelimessa toimiva sovellus jolla voi etäkäyttää Tiimi 7000 sarjan säätimiä. Copyright Team-Control Oy, oikeudet muutoksiin pidätetään. TiiMi on Team-Control

Lisätiedot

KIITOS RICA OPTIMOINTIOHJELMAN VALITSEMISESTA

KIITOS RICA OPTIMOINTIOHJELMAN VALITSEMISESTA KIITOS RICA OPTIMOINTIOHJELMAN VALITSEMISESTA Asennusohjeiden sisältö 1. RICA optimointiohjelmoinnin periaate isoftloaderilla... 2 2. RICA isoftloader toimituspaketin sisältö... 3 3. isoftloader Sync-ohjelmiston

Lisätiedot

Toimilohkojen turvallisuus tulevaisuudessa

Toimilohkojen turvallisuus tulevaisuudessa Toimilohkojen turvallisuus tulevaisuudessa Turvallisuusseminaari ASAF 30.10-1.11.2006 Mika Strömman Teknillinen korkeakoulu 1 Sisältö Luotettavuuden lisääminen hyvillä tavoilla Toimilohkokirjastot Turvatoimilohkot

Lisätiedot

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan Aram Abdulla Hassan Windows Server 2012 asentaminen ja käyttö 1 Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan Hyper-V ohjelma. Riipu minkälaista Serveria yritämme

Lisätiedot

CLOUDBACKUP TSM varmistusohjelmiston asennus

CLOUDBACKUP TSM varmistusohjelmiston asennus Luottamuksellinen JAVERDEL OY CLOUDBACKUP TSM varmistusohjelmiston asennus Copyright 2 (9) SISÄLLYSLUETTELO 1 ASENNUSOHJE WINDOWS KÄYTTÖJÄRJESTELMÄLLÄ VARUSTETTUIHIN LAITTEISIIN... 3 1.1 Yleistä... 3 1.2

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

KÄYTTÖOHJE DENVER MPG-4054 NR Mediasoitin

KÄYTTÖOHJE DENVER MPG-4054 NR Mediasoitin KÄYTTÖOHJE DENVER MPG-4054 NR Mediasoitin Tämä MP4-videosoitin on varustettu täysillä multimediaominaisuuksilla. Laite sopii valokuvien katseluun, e-kirjojen lukemiseen, äänen tallentamiseen ja toistamiseen

Lisätiedot

Ohjelmapohjan toteuttaminen TFT-näytön käyttöönottoa varten

Ohjelmapohjan toteuttaminen TFT-näytön käyttöönottoa varten Maarit Tötterman Ohjelmapohjan toteuttaminen TFT-näytön käyttöönottoa varten Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikka Insinöörityö 14.1.2013 Tiivistelmä Tekijä Otsikko Sivumäärä Aika

Lisätiedot

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

TW- LTE 4G/3G. USB- sovitin (USB 2.0) TW- LTE 4G/3G USB- sovitin (USB 2.0) Tiedonsiirtonopeus: 100 Mbps/50 Mbps LTE: 800/1800/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

Kääntäjän virheilmoituksia

Kääntäjän virheilmoituksia OHJ-1101 Ohjelmointi 1e 2008-09 1 Kääntäjän virheilmoituksia Kun progvh2 ohjelma käännetään antaa tutg++ seuraavat virheilmoitukset ja varoitukset: proffa> tutg++ progvh2.cc progvh2.cc:29:13: warning:

Lisätiedot