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

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

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

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

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

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

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

Loppukurssin järjestelyt C:n edistyneet piirteet

Loppukurssin järjestelyt C:n edistyneet piirteet C! Loppukurssin järjestelyt C:n edistyneet piirteet 30.3.2017 Ohjelmassa Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Esikääntäjä Parametrilistat Funktio-osoittimet Kunniamainintoja Kuura

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

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

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

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

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

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

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

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

Ohjelmointi 1. Kumppanit

Ohjelmointi 1. Kumppanit Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5

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

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

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

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

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

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

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

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

C-ohjelmoinnin peruskurssi. Pasi Sarolahti C! C-ohjelmoinnin peruskurssi Pasi Sarolahti Mitä haluan oppia C-kurssilla? ja miksi? Tutustu lähimpään naapuriin Keskustelkaa miksi halusitte / jouduitte tulemaan kurssille 3 minuuttia è kootaan vastauksia

Lisätiedot

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps Pikaohje Laite toimii Windows XP SP3, Windows 7,8,10 ja Mac OSx 10.5 tai käyttöjärjestelmissä, Linux tuki netistä ladattavilla ajureilla USB portin

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

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

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

Jouko Nielsen. Ubuntu Linux

Jouko Nielsen. Ubuntu Linux Jouko Nielsen Ubuntu Linux 19.4.2017 SISÄLLYS 1 UBUNTU... 3 2 LUETTELO VERSIOISTA... 4 3 OMINAISUUDET... 4 4 ASENNUS... 5 5 UBUNTU SERVER... 9 LÄHTEET... 10 3 1 UBUNTU Ubuntu on debian pohjainen Linux

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

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

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

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

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

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

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

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

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

Ä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

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

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

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

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

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

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

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

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

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

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 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

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

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

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

C-ohjelmoinnin peruskurssi. Pasi Sarolahti C! C-ohjelmoinnin peruskurssi Pasi Sarolahti 12.1.2017 presemo.aalto.fi/c17 1/12/17 Mikä C? 3 Ken Thompson & Dennis Ritchie http://www.computerhistory.org/fellowawards/hall/bios/ken,thompson/ 4 Mikä C?

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

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

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

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

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

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

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

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

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

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

S09 04 Kohteiden tunnistaminen 3D datasta

S09 04 Kohteiden tunnistaminen 3D datasta AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen 1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen

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

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

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

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

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

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

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

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_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

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

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

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

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

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

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

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

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

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

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

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

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

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

- 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

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

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

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

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

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

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

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

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

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

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

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