/ * PROSESSORIN C-KIELINEN OHJELMA */



Samankaltaiset tiedostot
HTML-ohjeet. Sivun perusrakenne <HTML> <HEAD> <STYLE TYPE="text/css"> ...tänne tulee CSS-koodi eli sivun ulkonäkö määritykset...

Alkuun HTML5 peliohjelmoinnissa

Asemointi. 1. Lohkon korkeus ja leveys

selector { CSS property: value; property2: value; Code Camp for Girls Sonja Jaakkola & Sanna Nygård

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Written by Administrator Wednesday, 05 October :06 - Last Updated Monday, 17 October :28

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Tietokonetekniikan suuntautumisvaihtoehto. Joni Nurminen ETÄOHJATTAVA VALVONTAKAMERA

Proseduraalinen dokumentti: sisältö, rakenne ja ulkoasu yhdessä, esim. worddokumentti

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Tietotyypit ja operaattorit

Muuttujien roolit Kiintoarvo cin >> r;

1. Lohkon korkeus ja leveys

Sivupohja flat file julkaisujärjestelmälle. Kirjoittanut Jari Sarja (

Kuvat. 1. Selaimien tunnistamat kuvatyypit

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

Ulkoasun muokkaus CSS-tiedostossa


Kylänetti projektin sivustojen käyttöohjeita Dokumentin versio 2.10 Historia : 1.0, 1.2, 1.6 Tero Liljamo / Deserthouse, päivitetty 25.8.

7.10. Oheisrautaa. sms Kooste vanhoista, kaipaa vielä fixsaamista,se tulee seuraavaan painokseen.

Ohjelmoinnin peruskurssi Y1

KILPAILIJAN TEHTÄVÄT ARVIOINTIOSA 5

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

Kotisivut helposti - osa 4

Listarakenne (ArrayList-luokka)

GetSimple Jari Sarja. Maaliskuu 2011

HTML:n perusteet. Jari Sarja / Otavan Opisto Tämä oppimateriaali on lisensoitu Creative Commons Nimeä-Tarttuva 3.

Sulautettujen järjestelmien kilpailutehtävä

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

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

JSP (JavaServer Pages) tekniikka Lähde Arvo Lipitsäinen, JSP JavaServer Pages, 2003

Laravel 5.14 by Dummy

CSS-kielen avulla määritellään HTML-dokumentin tyyli. CSS avulla voidaan tarkemmin määritellä eri elementtien ominaisuuksia.

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

XHTML jatkuu linkit, listat, taulukot. Mirja Jaakkola

Miten Internet toimii. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2013

valitsin on useimmiten html-elementti, jolle tyyli halutaan luoda

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Kuvat ja taustat ICT1TN004. Elina Ulpovaara

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

CSS. Tekstin muotoilua

Lisätehtävät. Frantic 2015 sivu 1

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Kotisivujen teko. Jan Lindholm Kirkkonummen kansalaisopisto Syksy koodari.eu jsbin.com

Taitaja2005/Elektroniikka. 1) Resistanssien sarjakytkentä kuormittaa a) enemmän b) vähemmän c) yhtä paljon sähkölähdettä kuin niiden rinnankytkentä

////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ //-PID säätimellä. #include <EEPROM.h> #include <SoftwareSerial.h>

Ohjelmointiharjoituksia Arduino-ympäristössä

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

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

WWW-sivujen Verkkosivujen ulkoasu (CSS)

Kuva xhtml-sivulla. Mirja Jaakkola

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Harjoitustyö Fire Bird

Digitaalisen median tekniikat css tyylimääritykset jatkuu

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Digitaalisen median tekniikat css tyylimääritykset jatkuu Harri Laine 1

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...

Java-kielen perusteet

Taitaja2007/Elektroniikka

GSM-MODUULI SULAUTETUSSA JÄRJESTELMÄSSÄ

Tyylien käyttö. <LINK href="mystyle.css" rel="stylesheet" type="text/css"> 5 WWW-hypermedian perusta: HTML

13 Operaattoreiden ylimäärittelyjä

Ohjelmoinnin perusteet Y Python

Osa. Toimintojen toteuttaminen ohjelmissa vaatii usein haarautumisia ja silmukoita. Tässä luvussa tutustummekin seuraaviin asioihin:

TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Tietokonetekniikan suuntautumisvaihtoehto. Insinöörityö. Toni Palosaari GPS-NOPEUSMITTARI

Verkkosivut perinteisesti. Tanja Välisalo

QT tyylit. Juha Järvensivu 2008

11. oppitunti III. Viittaukset. Osa. Mikä on viittaus?

Harjoitustyön aihe. mrahkila/ht/ Martti Rahkila opnro

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

// // whiledemov1.c // #include <stdio.h> int main(void){ int luku1 = -1; int luku2 = -1;

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ #include <EEPROM.h> #include <SoftwareSerial.h> SoftwareSerial gps(10, 0); // RX, TX -pinnit

Code Camp for Girls. Sanna Nygård. Lokakuussa

RACE-KEEPER COMPARO PC-OHJELMAN PIKAOHJE

Harjoitustyö (TKO_2023)

Ohjelmoinnin perusteet Y Python

Ulkopuolisen tyylitiedoston käyttö

Plagioinnin tunnistaminen lähdekielisistä ohjelmista

XNA grafiikka laajennus opas. Paavo Räisänen. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa.

LUKU 17 MUUTAMIA JAVA FX -SOVELLUKSIA. Tässä dokumentissa esitellään muutamia Java FX -sovelluksia.

AT4-kotisivukurssi. 4. jakso

21. oppitunti. Esikäsittelijä. Osa. Esikäsittelijä ja kääntäjä

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

Binäärioperaatiot Tiedostot ja I/O

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

HELIA 1 (14) Outi Virkki Tiedonhallinta

Ohjelmoinnin perusteet Y Python

CSS - tyylit Seppo Räsänen

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Opiskeluoikeuksien maaran tiedonkeruu

RFM12B LANGATON LÄHETIN/VASTAANOTIN MODULI SULAUTETUISSA JÄRJESTELMISSÄ

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

5.4. Sulautetun järjestelmän C-kielen perusteet. 4/8. Ohjausrakenteet pva

Transkriptio:

/ * PROSESSORIN C-KIELINEN OHJELMA */ #define AVR_ATtiny2313 #define F_CPU 12000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> void InitUART (unsigned char baudrate); unsigned char ReceiveByte (void); void TransmitByte (unsigned char data2); void eteen (); void taakse (); void ylos (); void alas (); void viive (); int main (void) unsigned char data; int luku = 0; /*luku muuttujien alustukset */ int luku2 = 0; DDRB=0xFF; /*11111111 portti B:n kaikki suuntarekisterit lähtötilaan (1) */ PORTB=0x00; /* käämit jännittettömäks alkutilassa */ DDRD=0x04; /*0 0000100 PD2lähdöksi(1), PD3-PD6 tuloiksi(0) */ PORTD=0x78; /*0 1111000 PD3-PD6 pull-upit ylös */ InitUART (77); /* UBRR= fosc / (16(BAUD-1))*/ while (1) data = ReceiveByte(); switch (data) case 'e' : PORTD = (1 << PD2); /* tuuletin päälle */ viive(); TransmitByte(PIND); /* lähetetään input nastojen tilat */ /* lähetetään rivinvaihtomerkki */ case 'r' : PORTD &= (0 << PD2); /* tuuletin pois päältä */ PORTD=0x78; TransmitByte(PIND); case 'w' : /* virrat pois käämeistä */ PORTB = 0x00; case 'x' : if(pind!= 0x73 && PIND!= 0x77) /* jos ei osu etu-anturiin.. */ eteen(); /* yksi askel eteen */

TransmitByte(PIND); TransmitByte(PIND); /* lähetetään I/O:den tilat sarjaporttiin */ PORTB = 0x00 ; /* ja käämit jännitteettömäksi */ case 'z' : if(pind!= 0x3B && PIND!= 0x3F) /* jos ei osu taka-anturiin.. */ taakse(); /* ykse askel taakse */ TransmitByte(PIND); TransmitByte(PIND); /* lähetetään I/O:den tilat sarjaporttiin */ PORTB = 0x00 ; /* ja käämit jännitteettömäksi */ case 'c' : if(pind!= 0x6B && PIND!= 0x6F) /* jos ei osu yläanturiin.. */ ylos(); /* yksi askel ylos */ TransmitByte(PIND); TransmitByte(PIND); /* lähetetään I/O:den tilat sarjaporttiin */ PORTB = 0x00 ; /* ja käämit jännitteettömäksi */ case 'v' : if(pind!= 0x5B && PIND!= 0x5F) /* jos ei osu ala-anturiin.. */ alas(); /* yksi askel alas */ TransmitByte(PIND); TransmitByte(PIND); /* lähetetään I/O:den tilat sarjaporttiin */ PORTB = 0x00 ; /* ja käämit jännitteettömäksi */

case 'm' : /* pysty suunnan kalibrointi, ajetaan ensin alas niin kauan kunnes raja-anturi tulee vastaan. Tämän jälkeen ajetaan ylös niin kauan kunnes törmätään anturiin ja lasketaan samalla matkaan kuluvien askelien määrä. */ while (PIND!= 0x5B && PIND!= 0x5F ) /* pind6 0 1011011 0x5B*/ alas(); while (PIND!= 0x6B && PIND!= 0x6F) /* pind5 0 1101011 0x6B*/ luku++; ylos(); for(int i=0;i<(luku-5);i++) /* ajetaan kamera paikkaan, laskettujen askelten lukumäärä-5. */ alas(); luku = 0; /* alustetaan luku nollaksi */ /* vaaka suunnan kalibrointi, vastaava toiminta kuin pystysuunnan kalibroinnissakin */ while (PIND!= 0x73 && PIND!= 0x77) /* pind4 0 1110011 */ eteen(); while (PIND!= 0x3B && PIND!= 0x3F) /* pind3 0 0111011 */ luku2++; taakse(); for(int j=0;j<((luku2/2)+3);j++) eteen(); PORTB = 0x00; /* käämit jännitteettömäksi */ luku2 = 0;

/* ----------------aliohjelmat------------------- */ void ylos() for(int i=0;i<1;i++) PORTB = 0x10 ; /*00010000*/ PORTB = 0x40 ; /*01000000*/ PORTB = 0x20 ; /*00100000*/ PORTB = 0x80 ; /*10000000*/ PORTB = 0x80; void alas() for(int i=0;i<1;i++) PORTB = 0x80 ; /*10000000*/ PORTB = 0x20 ; /*00100000*/ PORTB = 0x40 ; /*01000000*/ PORTB = 0x10 ; /*00010000*/ PORTB = 0x10 ; void taakse() for(int i=0;i<1;i++) PORTB = 0x01 ; /*00000001*/ PORTB = 0x04 ; /*00000100*/ PORTB = 0x02 ; /*00000010*/ PORTB = 0x08 ; /*00001000*/ PORTB = 0x08;

void eteen() for(int i=0;i<1;i++) PORTB = 0x08 ; /*00001000*/ PORTB = 0x02 ; /*00000010*/ PORTB = 0x04 ; /*00000100*/ PORTB = 0x01 ; /*00000001*/ PORTB = 0x01; void viive() for(int i=0;i<5;i++) void InitUART (unsigned char baudrate) UBRRL = baudrate; UBRRH = (baudrate >> 8); /* sallitaan lähetys ja vastaanotto */ UCSRB = (1 << RXEN) (1 << TXEN); /* 8 data bittiä, 1 stop bitti ja ei pariteettia */ UCSRC = (1 << UCSZ1) (1 << UCSZ0); unsigned char ReceiveByte (void) /* odotetaan datan tuloa */ while (!(UCSRA & (1 << RXC))); return UDR; /* palautetaan saatu merkki pääohjelmaan */ void TransmitByte (unsigned char data2) while (!(UCSRA & (1 << UDRE))); /* kunnes datarekisteri on tyhjä, lippu nousee */ /* laitetaan data bufferiin ja lähetetään se */ UDR = data2;

<html> <head> <style type="text/css"> body background-image: url("http://iideetee.no-ip.org/led/attiny2313.png"); </style> </head> <body> <table width="300" border="1" align="center" cellpadding="0" cellspacing="1" bgcolor="#d9d7d7"> <tr> <form name="form" method="post" action="validate.php"> <td> <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#d9d7d7"> <tr> <td colspan="3"><strong>kirjautuminen</strong></td> </tr> <tr> <td width="78">tunnus</td> <td width="6">:</td> <td width="294"><input name="username" type="text" id="username"></td> </tr> <tr> <td>salasana</td> <td>:</td> <td><input name="password" type="text" id="password"></td> </tr> <tr> <td> </td> <td> </td> <td><input type="submit" name="submit" value="sisään"></td> </tr> </table> </td> </form> </tr> </table> </body> </html>

// KIRJAUTUMISEN TARKISTUS <?php session_start(); // käynnistetään sessioni $host="localhost"; // Hostin nimi $name="****"; // Mysql:n käyttäjänimi $passu="*******"; // Mysql:n salasana $db_name="login"; // Tietokannan nimi $tbl_name="login"; // "Tablen" nimi // Yhdistetään serverille ja valitaan tietokanta. mysql_connect("$host", "$name", "$passu")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // Tuodaan annettu käyttäjänimi ja salasana kirjautumiskyselystä. $username = $_POST['username']; $password = $_POST['password']; // Suoritetaan mysql-käsky, jossa tarkistetaan löytyykö annettu salasana ja käyttäjänimi tietokannasta. $sql = "SELECT * FROM $tbl_name WHERE username='$username' and password='$password'"; $result = mysql_query($sql); // suoritetaan kysely tietokannasta ja sijoitetaan tulos muuttujaan. // Mysql_num_row, laskee rivit $count = mysql_num_rows($result); // Tulos oikea jos, $myusername and $mypassword, table on yhdellä rivillä. if($count == 1) // Rekisteröidään $myusername, $mypassword ja ohjataan sivulle "attiny2313.php" $_SESSION['username'] = $username; $_SESSION['password'] = $password; echo $_SESSION['username']; header("location:attiny2313.php"); else // jos $myusername ja $mypassword ei matsannu, annetaan virheilmoitus echo "Väärä <b> tunnus </b> tai <b> salasana</b><br />"; echo "<a href=\"index.php\">palaa arpoon uudestaan</a>"; //header("location:index.php");?>

// HALLINTASIVU <?php session_start(); if(!isset($_session['username'])) header("location:index.php");?> <?php $ylos = $_POST['ylos']; $alas = $_POST['alas']; $oikea = $_POST['oikea']; $vasen = $_POST['vasen']; $ota_kuva = $_POST['ota_kuva']; $On = $_POST['Camera_On']; $Off = $_POST['Camera_Off']; $nayta = $_POST['nayta']; $piilota = $_POST['piilota']; $Liike_On = $_POST['Liike_On']; $Liike_Off = $_POST['Liike_Off']; $kalibroi = $_POST['kalibroi']; $poista = $_POST['poista']; $Fan_On = $_POST['Fan_On']; $Fan_Off = $_POST['Fan_Off']; $RS232_On = $_POST['RS232_On']; $RS232_Off = $_POST['RS232_Off']; /* kirjota data sarjaporttiin*/ if(isset($fan_on)) $ttys0 = fopen("/dev/ttys0", "w"); fwrite($ttys0, "e"); fclose($ttys0); tiedustele(); if(isset($fan_off)) $ttys0 = fopen("/dev/ttys0", "w"); fwrite($ttys0, "r"); fclose($ttys0); tiedustele(); if(isset($poista)) system('cd kamera/save ; sudo rm *.jpg'); if(isset($liike_on)) system('sudo /etc/init.d/liiketunnistus start > /dev/null &');

if(isset($liike_off)) system('sudo /etc/init.d/liiketunnistus stop > /dev/null &'); if(isset($on)) system('sudo /etc/init.d/oma start > /dev/null &'); if(isset($off)) system('sudo /etc/init.d/oma stop > /dev/null &'); $ttys0 = fopen("/dev/ttys0", "w"); fwrite($ttys0, "w"); fclose($ttys0); if(isset($kalibroi)) $ttys0 = fopen("/dev/ttys0", "w"); fwrite($ttys0, "m"); fclose($ttys0); if(isset($ylos)) $ttys0 = fopen("/dev/ttys0", "w"); for($i=0;$i<$_post['luku'];$i++) usleep(200); fwrite($ttys0, "c"); fclose($ttys0); if(isset($alas)) $ttys0 = fopen("/dev/ttys0", "w"); for($i=0;$i<$_post['luku3'];$i++) usleep(200); fwrite($ttys0, "v"); fclose($ttys0); if(isset($oikea)) $ttys0 = fopen("/dev/ttys0", "w"); for($i=0;$i<$_post['luku1'];$i++) usleep(200); fwrite($ttys0, "z");

fclose($ttys0); if(isset($vasen)) $ttys0 = fopen("/dev/ttys0", "w"); for($i=0;$i<$_post['luku2'];$i++) usleep(200); fwrite($ttys0, "x"); fclose($ttys0); tiedustele(); function tiedustele() global $taulu; /* taulu, taulukko globaaliksi */ usleep(500000); /* ehtii uusi ascii tuleen data muuttujaan */ $data = fopen("/srv/www/lighttpd/serial/serial.txt", "r"); while (!feof($data)) $rivi = fgets($data, 1024); /* luetaan asciina tullut data muuttujaan */ $rivi = decbin(hexdec(bin2hex($rivi))); /*muutetaan ensin ascii hexaksi, sitten hexa -> deciksi ja lopuksi dec->binääriksi*/ $rivi_8bit = substr("00000000",0,8 - strlen($rivi)). $rivi; /*muutetaan binääri näkymään 8 bittisenä*/ fclose($data); $taulu = str_split($rivi_8bit); /* jaetaan bitit taulukon indexeihin */?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>jassoo</title> <link href="tyylit.css" rel="stylesheet" type="text/css" media="screen" /> </head> <body> <div id="kokoalue"> <div id="ylaosa"> <div id="kuva1"> <div id="kuva2"> <div id="keskialue"> <div id="kamera"> <!-- Javakoodi kuvan automaattiseen päivitykseen --> <IMG src="http://iideetee.no-ip.org/serial/kamera/webcam.jpg" border="1"

name="refresh"> <SCRIPT language="javascript" type="text/javascript"> var t = 7 // interval in seconds image = "http://iideetee.no-ip.org/serial/kamera/webcam.jpg" function Start() tmp = new Date(); tmp = "?"+tmp.gettime() document.images["refresh"].src = image+tmp settimeout("start()", t*1000) Start(); </SCRIPT> <div id="ohjaus"> <form action=" " method="post"> <div id="ylos"><input type="submit" name="ylos" value="ylös" /><input type="text" name="luku" size="1" maxlength="1" value="2" /> <div id="oikea"><input type="submit" name="oikea" value="oikea" /><input type="text" name="luku1" size="1" maxlength="1" value="2"/> <div id="vasen"><input type="submit" name="vasen" value="vasen" /><input type="text" name="luku2" size="1" maxlength="1" value="2"/> <div id="alas"><input type="submit" name="alas" value="alas" /><input type="text" name="luku3" size="1" maxlength="1" value="2"/> </form> <div id="valikko"> <form action=" " method="post"> <div id="kalibroi"><input type="submit" name="kalibroi" value="kalibroi" /><br /> <!-- <div id="rs232_on"><input type="submit" name="rs232_on" value="rs232 On" /> <div id="rs232_off"><input type="submit" name="rs232_off" value="rs232 Off" /><br /> --> <div id="camera_on"><input type="submit" name="camera_on" value="kamera On" /> <div id="camera_off"><input type="submit" name="camera_off" value="kamera Off" /><br /> <div id="fan_on"><input type="submit" name="fan_on" value="fan On" /> <div id="fan_off"><input type="submit" name="fan_off" value="fan Off" /><br /> <div id="liike_on"><input type="submit" name="liike_on" value="liike On" /> <div id="liike_off"><input type="submit" name="liike_off" value="liike Off" /><br /> <div id="nayta"><input type="submit" name="nayta" value="näytä kuvat" /> <div id="piilota"><input type="submit" name="piilota" value="piilota kuvat" /> <?php if(isset($nayta))

echo "<div id=\"poista\"><input type=\"submit\" name=\"poista\" value=\"poista\" />";?> </form> <div id="kuva"> <?php echo "<span class=\"tila\">tuuletin: </span>"; if($taulu[5] == 0) echo "<span class=\"offline\">offline</span><br />"; if($taulu[5] == 1) echo "<span class=\"online\">online</span><br />"; echo "<span class=\"tila\">kamera: </span>"; system('sudo /etc/init.d/oma status'); echo "<br />"; echo "<span class=\"tila\">liiketunnistin: </span>"; system('sudo /etc/init.d/liiketunnistus status'); echo "<br />"; /* echo "<span class=\"tila\">sarjaportin luku: </span>"; system('sudo /etc/init.d/serial status'); echo "<br />"; */ echo "<br />"; echo "<span class=\"tila\">vaakasuunta oikea: </span>"; if($taulu[1] == 1) echo "<span class=\"online\">vapaa</span><br />"; if($taulu[1] == 0) echo "<span class=\"offline\">kiinni</span><br />"; echo "<span class=\"tila\">vaakasuunta vasen: </span>"; if($taulu[4] == 1) echo "<span class=\"online\">vapaa</span><br />"; if($taulu[4] == 0) echo "<span class=\"offline\">kiinni</span><br />"; echo "<span class=\"tila\">pystysuunta alas: </span>"; if($taulu[2] == 1) echo "<span class=\"online\">vapaa</span><br />"; if($taulu[2] == 0) echo "<span class=\"offline\">kiinni</span><br />"; echo "<span class=\"tila\">pystysuunta ylös: </span>"; if($taulu[3] == 1) echo "<span class=\"online\">vapaa</span><br />"; if($taulu[3] == 0) echo "<span class=\"offline\">kiinni</span><br />";?> <div id="ohje"> <p><b>käyttö:</b> <i>kamera on</i> asettaa kameran päälle. Vastaavasti <i>kamera off</i> sammuttaa kameran. Kameran ohjaaminen tapahtuu napeilla <i>ylös</i>,<i>alas</i>,<i>oikea</i> ja <i>vasen</i>. Numerokenttiin voi määrittää liikuttavien askelten määrän. Oletuksena on

2. Kameran saavutettua max-liikkumisrajansa, tulee vastaavaan suunnan perään <span class=red>kiinni</span>-teksti ja kyseiseen suuntaan ei pysty enään liikkua. Kalibrointi palauttaa kameran ohjelmoituun lähtöpisteeseensä. <i>liike on</i> asettaa liikkeentunnistuksen päälle. Kuvat tulevat näkyviin painamalla <i>näytä kuvat</i>. <i>poista</i>, poistaa kaikki tallennetut kuvat!</p> <div id="fotot"> <?php if(isset($nayta)) $kansio = opendir("kamera/save"); if ($kansio == false) echo "vituks meni! Tommosta kansioo ei o!"; else while (($file = readdir($kansio))!== false) if($file!= "." && $file!= "..") echo "<a href = \"kamera/save/". $file."\">"; echo "<img src = \"kamera/save/". $file."\" width=\"100\" height=\"120\" alt=\"kuva\"/></a>"; echo " "; closedir($kansio);?> </body> </html> TYYLITIEDOSTO(css) body background-image: url("osat/attiny2313.png"); #kokoalue margin-left: auto; margin-right: auto; width: 95%; height: auto; min-height: 600px; border: 1px solid gray; #ylaosa

margin-left: auto; margin-right: auto; margin-top: 0px; height:115px; width: 100%; background-image: url("osat/webcontrol.png"); background-repeat: no-repeat; background-position: center; #kuva1 margin-top:0px; height: 100px; width: 182px; background-image: url("osat/piiri2.png"); float: left; #kuva2 margin-top:0px; height: 100px; width: 182px; background-image: url("osat/piiri2.png"); float: right; #keskialue border:3px solid black; width: 90%; height: 430px; background-color: #dcd5d5; margin-left:50px; margin-top:10px; border: 1px solid red; #kamera position: absolute; left: 12%; width: 320px; top: 150px; #ohjaus position: absolute; left: 13%; width: 25%; top: 400px;

border: 1px solid black; #vasen text-align: center; width: 70px; float: left; #oikea text-align: center; width: 70px; float: right; #ylos text-align: center; width: 70px; margin-top: 0px; margin-left: auto; margin-right: auto; #alas text-align: center; width: 70px; margin-top: 25px; margin-left: auto; margin-right: auto; #valikko position: absolute; left: 42%; width: 12%; top: 150px; text-align: center; border: 1px solid black; #kuva position: absolute; left: 57%; width: 320px; top: 150px; #fotot margin-top: 10px;

border: none; text-align: center;.offline color: red;.online color: green; #ohje width: 395px; margin-top:10px; margin-left:0px; border: 1px solid black; #ohje p font-size: smaller;.red color:red;