Changeset 3


Ignore:
Timestamp:
Jul 27, 2016, 8:36:02 PM (8 years ago)
Author:
chronos
Message:
  • Modified: Updated to work with PHP7. Old database class replaced by Common package.
Location:
trunk
Files:
22 added
1 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/bc_prace/index.php

    r1 r3  
    44  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
    55  <meta name="keywords" content="oko, zornice, vyhodnocování, rozpoznávání, poloha, polohy">
    6   <meta name="description" content="Bakaláøská práce - Vyhodnocování polohy oèní zornice">
     6  <meta name="description" content="Bakalářská práce - Vyhodnocování polohy oční zornice">
    77  <link rel="stylesheet" type="text/css" href="style.css">
    8   <title>Vyhodnocování polohy oèní zornice</title>
     8  <title>Vyhodnocování polohy oční zornice</title>
    99</head>
    1010<body style="font-family: Arial;">
    1111
    12 <h2>Bakaláøská práce - Vyhodnocování polohy oèní zornice</h2>
     12<h2>Bakalářská práce - Vyhodnocování polohy oční zornice</h2>
    1313<h3>Úvod</h3>
    14 <img src="Materials/Image1_mini.jpg" alt="Fotka oka se zamìøeným støedem" align="right">
    15 Práce je zamìøena na urèování polohy støedu zornice oka snímané èernobílou kamerou. Zji¹tìné souøadnice lze vyu¾ít pro úèely nahrazení nebo doplnìní polohovacích zaøízení jako je my¹. Zadání tohoto projektu je konkrétnì zamìøeno na pou¾ití kamery umístìné na 3D brýlích a vyu¾ití získané polohy pro ovládání grafických prvkù obsa¾ených ve zobrazovaného obrazu, který je zobrazován operátorovi vyu¾ívajícímu robotický teleprezenèní systém Orpheus.<br>
    16 Výsledkem práce je testovací aplikace, která naèítá video prostøednictvím rozhranní DirectShow a umo¾òuje sestavovat metody vyhodnocování slo¾ené z nìkolika naprogramovaných krokù. Pomocí sestavených metod lze získat souøadnice zornice oka s rùznou pøesností, èasovou nároèností a spolehlivostí. Lze provést kalibraci, která pomocí metody nejmen¹ích ètvercù nalezne vhodné koeficienty pro aplikování geometické transformace souøadnic. Získané souøadnice je mo¾no odesílat sériovou linkou.<br>
    17 Systém se nepodaøilo v dobì dokonèení nasadit v praxi. Správnost urèení polohy toti¾ negativnì ovlivòuje øada vlivù.<br>
     14<img src="Materials/Image1_mini.jpg" alt="Fotka oka se zaměřeným středem" align="right">
     15Práce je zaměřena na určování polohy středu zornice oka snímané černobílou kamerou. Zjištěné souřadnice lze využít pro účely nahrazení nebo doplnění polohovacích zařízení jako je myš. Zadání tohoto projektu je konkrétně zaměřeno na použití kamery umístěné na 3D brýlích a využití získané polohy pro ovládání grafických prvků obsažených ve zobrazovaného obrazu, který je zobrazován operátorovi využívajícímu robotický teleprezenční systém Orpheus.<br>
     16Výsledkem práce je testovací aplikace, která načítá video prostřednictvím rozhranní DirectShow a umožňuje sestavovat metody vyhodnocování složené z několika naprogramovaných kroků. Pomocí sestavených metod lze získat souřadnice zornice oka s různou přesností, časovou náročností a spolehlivostí. Lze provést kalibraci, která pomocí metody nejmenších čtverců nalezne vhodné koeficienty pro aplikování geometické transformace souřadnic. Získané souřadnice je možno odesílat sériovou linkou.<br>
     17Systém se nepodařilo v době dokončení nasadit v praxi. Správnost určení polohy totiž negativně ovlivňuje řada vlivů.<br>
    1818<br>
    1919<strong>Omezující vlivy:</strong>
    2020<ul>
    21 <li>Nerovnomìrné a promìnné osvìtlení</li>
    22 <li>Nízká intenzita osvìtlení => potøeba pøisvícení</li>
     21<li>Nerovnoměrné a proměnné osvětlení</li>
     22<li>Nízká intenzita osvětlení => potřeba přisvícení</li>
    2323<li>Odlesky monitoru, LCD displeje nebo okolí na povrchu oka</li>
    24 <li>Nedostateèné rozli¹ení kamery</li>
    25 <li>Vertikální posun brýlí na hlavì. Nutnost neurèovat polohu relativnì vùèi okraji snímku, ale vùèi nìjakému vhodnému bodu v obraze. Urèování dal¹ího bodu => zvìt¹ení chyby, zvý¹ení výpoèetních nárokù</li>
    26 <li>Omezené umístìní a rozmìry kamery. Snímání èásteènì z boèního pohledu</li>
    27 <li>Èásteèné pøekrytí zornice pøi natáèení oka</li>
     24<li>Nedostatečné rozlišení kamery</li>
     25<li>Vertikální posun brýlí na hlavě. Nutnost neurčovat polohu relativně vůči okraji snímku, ale vůči nějakému vhodnému bodu v obraze. Určování dalšího bodu => zvětšení chyby, zvýšení výpočetních nároků</li>
     26<li>Omezené umístění a rozměry kamery. Snímání částečně z bočního pohledu</li>
     27<li>Částečné překrytí zornice při natáčení oka</li>
    2828</ul>
    2929<h3>Materiály</h3>
     
    3333
    3434echo(
    35 IconedLink('Predni_listy.pdf', 'Pøední listy publikace').'<br>'.
    36 IconedLink('Vyhodnocovani_polohy_ocni_zornice.pdf', 'Bakaláøská práce').'<br>'.
     35IconedLink('Predni_listy.pdf', 'Přední listy publikace').'<br>'.
     36IconedLink('Vyhodnocovani_polohy_ocni_zornice.pdf', 'Bakalářská práce').'<br>'.
    3737IconedLink('Testovaci_aplikace.zip', 'Testovací aplikace').'<br>'.
    38 IconedLink('Prezentace_vysledku_bakalarske_prace.pdf', 'Prezentace výsledkù bakaláøské práce').'<br>'.
     38IconedLink('Prezentace_vysledku_bakalarske_prace.pdf', 'Prezentace výsledků bakalářské práce').'<br>'.
    3939IconedLink('Materials/MP2001.AVI', 'Ukázkové video - Zdrojový záznam pohybu oka').'<br>');
    4040
    4141?>
    4242<h3>Odkazy</h3>
    43 <?php echo(IconedLink('http://www.feec.vutbr.cz/', 'www.feec.vutbr.cz')); ?> - Fakulta Elektrotechniky a komunikaèních technologií VUT v Brnì<br>
     43<?php echo(IconedLink('http://www.feec.vutbr.cz/', 'www.feec.vutbr.cz')); ?> - Fakulta Elektrotechniky a komunikačních technologií VUT v Brně<br>
    4444<?php echo(IconedLink('http://www.orpheus-project.cz/', 'www.orpheus-project.cz')); ?> - Robotický systém Orpheus<br>
    4545 
     
    4747Poslední aktualizace: 27.4.2006<br>
    4848<br>
    49 <a href="..">Zpìt na hlavní stránku</a>
     49<a href="..">Zpět na hlavní stránku</a>
    5050</body></html>
  • trunk/config.sample.php

    r1 r3  
    88  'RootPath' => 'http://www.zdechov.net/jirihajda/',
    99  'ShowErrors' => 0,
    10   'Title' => 'Osobní stránky Jiøího Hajdy',
     10  'Title' => 'Osobní stránky Jiřího Hajdy',
    1111);
    1212$DB_Prefix = 'jirihajda_';
    13 
    14 ?>
  • trunk/error.php

    r1 r3  
    1 <php?
     1<?php
    22
    3 include('db.php');
     3include('global.php');
    44
    5 DB_Insert('app_errors', array('time' => $_GET['Èas'], 'message' => $_GET['Text_chyby'], 'exception' => $_GET['Tøída_vyjímky'],
     5$Database->insert($DB_Prefix.'app_errors', array('time' => $_GET['Čas'], 'message' => $_GET['Text_chyby'], 'exception' => $_GET['Třída_vyjímky'],
    66'address' => $_GET['Adresa'], 'application' => $_GET['Aplikace'], 'state' => $_GET['Statové informace'],
    7 'version' => $_GET['Verze'], 'release_date' => $_GET['Datum_vydání'], 'unit' => $_GET['Jednotka'], 
    8 'line_number' => $_GET['Øádek'], 'method' => $_GET['Metoda'], 'remote_addr' => $_SERVER["REMOTE_ADDR"],
     7'version' => $_GET['Verze'], 'release_date' => $_GET['Datum_vydání'], 'unit' => $_GET['Jednotka'],
     8'line_number' => $_GET['Řádek'], 'method' => $_GET['Metoda'], 'remote_addr' => $_SERVER["REMOTE_ADDR"],
    99'remote_host' => gethostbyaddr($_SERVER["REMOTE_ADDR"]), 'url' => $_SERVER["REQUEST_URI"]));
    10 
    11 ?>
  • trunk/error_logging.php

    r1 r3  
    11<?php
    22
    3 include('db.php');
     3include('global.php');
    44
    5 DB_Insert('app_errors', array('time' => $_GET['Èas'], 'message' => $_GET['Text_chyby'], 'exception' => $_GET['Tøída_vyjímky'],
     5$Database->insert($DB_Prefix.'app_errors', array('time' => $_GET['Čas'], 'message' => $_GET['Text_chyby'], 'exception' => $_GET['Třída_vyjímky'],
    66'address' => $_GET['Adresa'], 'application' => $_GET['Aplikace'], 'state' => $_GET['Statové informace'],
    7 'version' => $_GET['Verze'], 'release_date' => $_GET['Datum_vydání'], 'unit' => $_GET['Jednotka'], 
    8 'line_number' => $_GET['Øádek'], 'method' => $_GET['Metoda'], 'remote_addr' => $_SERVER["REMOTE_ADDR"],
     7'version' => $_GET['Verze'], 'release_date' => $_GET['Datum_vydání'], 'unit' => $_GET['Jednotka'],
     8'line_number' => $_GET['Řádek'], 'method' => $_GET['Metoda'], 'remote_addr' => $_SERVER["REMOTE_ADDR"],
    99'remote_host' => gethostbyaddr($_SERVER["REMOTE_ADDR"]), 'url' => $_SERVER["REQUEST_URI"]));
    1010
    11 ?>
  • trunk/format_html.php

    r1 r3  
    11<?php
     2
    23include('global.php');
    3 ShowHeader(array('Formátovaè HTML' => '/format_html.php'), 'Formátovaè HTML kódu');
     4
     5ShowHeader(array('Formátovač HTML' => '/format_html.php'), 'Formátovač HTML kódu');
    46
    57if(array_key_exists('code', $_POST))
     
    79  $Output .= '<pre>'.htmlspecialchars(FormatOutput($_POST['code'])).'</pre>';
    810} else
    9 $Output .= '<strong>Vlo¾te kód, který chcete zformátovat</strong><br>'.
     11$Output .= '<strong>Vložte kód, který chcete zformátovat</strong><br>'.
    1012'<form method="post" action="format_html.php">
    1113<textarea name="code" cols="80" rows="30"></textarea><br>
     
    1416
    1517ShowFooter();
    16 ?>
     18
  • trunk/global.php

    r1 r3  
    11<?php
    22
    3 $Version = '0.1';
     3$Version = '0.2';
    44//include_once('error.php');
    55include_once('config.php');
    6 include_once('db.php');
    7 DB_Init($Options['DB_Host'],$Options['DB_User'],$Options['DB_Password'], $Options['DB_Database']);
     6include_once('Packages/Common/Common.php');
     7$Database = new Database();
     8$Database->Connect($Options['DB_Host'], $Options['DB_User'], $Options['DB_Password'], $Options['DB_Database']);
    89
    910function IconedLink($Link, $Text)
    1011{
    1112  global $Options;
    12   $Extension = strtolower(substr($Link, strrpos($Link, '.')+1));
     13
     14  $Extension = strtolower(substr($Link, strrpos($Link, '.') + 1));
    1315  $IconFile = 'images/icons/'.$Extension.'.gif';
    1416  //echo($IconFile."<br>\n");
    15   if(!file_exists($IconFile)) 
     17  if(!file_exists($IconFile))
    1618  {
    1719    $Extension = 'blank';
    18     $IconFile = 'images/icons/'.$Extension.'.gif'; 
     20    $IconFile = 'images/icons/'.$Extension.'.gif';
    1921  }
    2022  $Icon = '<img src="'.$Options['RootPath'].$IconFile.'" alt="'.$Extension.'"> ';
     
    3133function GetMicrotime()
    3234{
    33     list($Usec, $Sec) = explode(" ",microtime());
    34     return ((float)$Usec + (float)$Sec);
     35  list($Usec, $Sec) = explode(" ",microtime());
     36  return ((float)$Usec + (float)$Sec);
    3537}
    3638
     
    3840{
    3941  global $Time_Start, $refresh, $Charset, $Options, $Output;
    40   $Time_Start = GetMicrotime();         // Zjisti poèáteèní èas
     42
     43  $Time_Start = GetMicrotime();// Zjisti počáteční čas
    4144  $Cesty = array(
    4245  );
     
    4548  <meta http-equiv="Content-Language" content="cs">
    4649  <meta http-equiv="Content-Type" content="text/html; charset=';
    47   if(isset($Charset)) $Output .= 'windows-1250'; 
     50  if(isset($Charset)) $Output .= 'windows-1250';
    4851  else $Output .= 'iso-8859-2';
    4952  $Output .= '">';
     
    7174  global $Time_Start, $Version, $Output;
    7275  $Time = floor((GetMicrotime() - $Time_Start)*100)/100;
    73   $Output .= '<div id="AdminInfo">| Web mistr: Jiøí Hajda | e-mail: robie@centrum.cz | ICQ: 277158770 | Vygenerováno za '.$Time.' s | Verze: '.$Version.' | Naposledy aktualizováno: '.date('j.n.Y',filemtime($_SERVER['SCRIPT_FILENAME'])).' |</div>';
     76  $Output .= '<div id="AdminInfo">| Web mistr: Jiří Hajda | e-mail: robie@centrum.cz | ICQ: 277158770 | Vygenerováno za '.$Time.' s | Verze: '.$Version.' | Naposledy aktualizováno: '.date('j.n.Y',filemtime($_SERVER['SCRIPT_FILENAME'])).' |</div>';
    7477  //ShowArray($GLOBALS);
    7578  $Output .= '</body></html>';
     
    7982
    8083
    81 $MonthNames = array('','Leden','Únor','Bøezen','Duben','Kvìten','Èerven','Èervenec','Srpen','Záøí','Øíjen','Listopad','Prosinec');
    82  
     84$MonthNames = array('','Leden','Únor','Březen','Duben','Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec');
     85
    8386function HumanDate($Date)
    8487{
     
    8891}
    8992
    90 // Zobrazení èíselný seznamu stránek
     93// Zobrazení číselný seznamu stránek
    9194function PagesList($URL, $Page, $TotalCount, $CountPerPage)
    9295{
     
    9699  if($Count>1)
    97100  {
    98     if($Page>0) 
     101    if($Page>0)
    99102    {
    100103      $Result.= '<a href="'.$URL.'0">&lt;&lt;</a> ';
     
    114117      $Result.= '<a href="'.$URL.$i.'">'.($i+1).'</a> ';
    115118      if($i==$Page) $Result.= '</strong>';
    116     } 
     119    }
    117120    if($PagesMax<($Count-1)) $Result .= ' .. ';
    118     if($Page<($Count-1)) 
     121    if($Page<($Count-1))
    119122    {
    120123      $Result.= '<a href="'.$URL.($Page+1).'">&gt;</a> ';
     
    123126  }
    124127  return($Result);
    125 } 
     128}
    126129
    127130function GetRemoteAddress()
     
    142145      $start = strpos($s,'<');
    143146          $end = strpos($s,'>');
    144         if($start != 0) 
     147        if($start != 0)
    145148        {
    146149              $end = $start-1;
     
    148151            }
    149152            $line = trim(substr($s,$start,$end+1));
    150             if(strlen($line)>0) 
     153            if(strlen($line)>0)
    151154            if($line[0] == '<')
    152155            {
    153             if($s[$start+1] == '/') 
     156            if($s[$start+1] == '/')
    154157              {
    155158              $n = $n - 2;
    156159                      $nn = $n;
    157               } else 
     160              } else
    158161              {
    159162            if(strpos($line,' ')) $cmd = substr($line,1,strpos($line,' ')-1);
     
    161164          //echo('['.$cmd.']');
    162165                      if(strpos($s,'</'.$cmd.'>')) $n = $n + 2;
    163               }   
     166              }
    164167            }// else $line = '['.$line.']';
    165168      //if($line != '') echo(htmlspecialchars(str_repeat(' ',$nn).$line."\n"));
     
    171174  }
    172175
    173 //phpinfo();
    174 
    175 ?>
  • trunk/index.php

    r1 r3  
    1 <?php
    2 include_once('db.php');
     1<?php
    32
    4 function IconedLink($Link, $Text)
    5 {
    6   $Extension = substr($Link, strrpos($Link, '.')+1);
    7   //echo($Extension);
    8   $Icon = '<img src="../images/icons/'.$Extension.'.gif" alt="'.$Extension.'"> ';
    9   return($Icon.'<a href="'.$Link.'">'.$Text.'</a>');
    10 }
    11  
    12 ?>
     3include_once('global.php');
    134
    14 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     5$Output = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    156<html>
    167<head>
    17 <title>Osobní stránky Jiøího Hajdy</title>
     8<title>Osobní stránky Jiřího Hajdy</title>
    189<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
    1910</head>
    2011<body style="font-family: Arial;">
    2112
    22 <h3>Seznam aktuálních projektù a aktivit:</h3><hr>
    23 <table>
    24 <?php
    25 DB_Select('projekty', '*', 'finished = 0');
    26 while($Row = DB_Row())
     13<h3>Seznam aktuálních projektů a aktivit:</h3><hr>
     14<table>';
     15
     16$DbResult = $Database->select($DB_Prefix.'projekty', '*', 'finished = 0');
     17while($Row = $DbResult->fetch_assoc())
    2718{
    28   echo('<tr><td>'.
     19  $Output .= '<tr><td>'.
    2920  '<a href="'.$Row['link'].'"><img src="images/nahledy/'.$Row['image'].'_mini.png" alt="Náhled"></a>'.
    3021  '</td><td valign="top">'.
    3122  '<a href="'.$Row['link'].'">'.$Row['title'].'</a><br>'.$Row['description'].
    32   '</td></tr>');
     23  '</td></tr>';
    3324}
    34 echo('</table>');
     25$Output .= '</table>';
    3526
    3627
    37 echo('<h3>Seznam ukonèených projektù a aktivit:</h3><hr>
    38 <table>');
    39  
    40 DB_Select('projekty', '*', 'finished = 1');
    41 while($Row = DB_Row())
     28$Output .= '<h3>Seznam ukončených projektů a aktivit:</h3><hr>
     29<table>';
     30
     31$DbResult = $Database->select($DB_Prefix.'projekty', '*', 'finished = 1');
     32while($Row = $DbResult->fetch_assoc())
    4233{
    43   echo('<tr><td>'.
     34  $Output .= '<tr><td>'.
    4435  '<a href="'.$Row['link'].'"><img src="images/nahledy/'.$Row['image'].'_mini.png" alt="Náhled"></a>'.
    4536  '</td><td valign="top">'.
    4637  '<a href="'.$Row['link'].'">'.$Row['title'].'</a><br>'.$Row['description'].
    47   '</td></tr>');
     38  '</td></tr>';
    4839}
    49 echo('</table>');
    50 //echo('<a href="bc_prace">Bakaláøská práce - Vyhodnocování polohy oèní zornice</a>');
    51 ?>
    52  
    53 </body></html>
     40$Output .= '</table>';
     41
     42$Output .= '</body></html>';
     43
     44echo($Output);
  • trunk/mikropocitac/index.php

    r1 r3  
    22<html><head>
    33  <meta http-equiv="Content-Language" content="cs">
    4   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
    5   <meta name="keywords" content="mikropoèítaè, osmibit, procesor, z80, zilog, schéma, dokumentace, pcb, maturita, výrobek">
    6   <meta name="description" content="Amatérský mikropoèítaè s procesorem Z80">
     4  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     5  <meta name="keywords" content="mikropočítač, osmibit, procesor, z80, zilog, schéma, dokumentace, pcb, maturita, výrobek">
     6  <meta name="description" content="Amatérský mikropočítač s procesorem Z80">
    77  <link rel="stylesheet" type="text/css" href="style.css">
    8   <title>Mikropoèítaè</title>
     8  <title>Mikropočítač</title>
    99</head>
    1010<body style="font-family: Arial;">
     
    3535} else {
    3636?>
    37 <h2>Amatérský mikropoèítaè s procesorem Z80</h2>
     37<h2>Amatérský mikropočítač s procesorem Z80</h2>
    3838<h3>Úvod</h3>
    39 <img src="fotos/foto_top_mainpage.jpg" alt="Fotka mikropoèítaèe" align="right">
    40 Toto zaøízení jsem sestrojil v roce 2002 jako maturitní práci. Maturita v¹ak byla pouze pomocná motivace, jeliko¾ o osmibitových mikropoèítaèích jsem èetl ji¾ døíve a docela mì nadchly. U¾ proto, ¾e mùj první poèítaè byl kvalitní osmibit SHARP MZ-800, který je osazen právì procesorem Z80-A a byl taktovaný na 3,5 MHz. Mnoho jeho u¾ivatelù mìlo jistì potøebu roz¹íøít jej o dal¹í periferie pomocí slotu systémové sbìrnice. Stavìt v¹ak periferie k historickému poèítaèi nemá valný smysl. Tento starý poèítaè mìl 64 kB operaèní pamìti s mo¾ností pøipojení roz¹iøujícího 256 kB RAMDISKU. Programy se ukládaly na kazetu nebo v lep¹ím pøípadì na disketovou mechaniku. Pøipojení vìt¹í pamìti a pevného disku a dal¹ích roz¹iøujících zaøízení v¹ak z tohoto poèítaèe dìlá jiný poèítaè. K osmibitu prostì patøí malá pamì» a kazety.<br>
    41 Proto jsem se rozhodl udìlat jiný poèítaè, který bych mohl navrhnou a roz¹iøovat podle svých pøedstav. Proto¾e pou¾itý procesor Zilog Z80 je tehdej¹í ¹pièka mezi osmibitovými procesory a pøitom je mnohem jednoduch¹í ne¾ 16-bitové procesory, rozhodl jsem se ho pou¾ít i zde. V poèítaèi je zapojena statická zálohovaná RWM pamì» 256 kB, 16 kB pamìti EPROM (krizové øe¹ení, pùvodní zámìr 256 kB FLASH), zvukový èip SN76489AN (umístìný také v SHARPovi), hodiny reálného èasu DS1203, paralelní port 8255 PIO, LCD inteligentní znakový displej 20x4 a klávesnice TESLA. Mikropoèítaè je napájen ze sí»ového adaptéru nebo z vnitøní baterie. Zálohovaná pamì» má vlastní napájení z dal¹í baterie. Pùvodní zámìr vytvoøit jednoduchý operaèní systém a textový editor se z èasových dùvodù nezdaøil. Ukázkový software umo¾òuje psát znaky na dispej a pøehrává krátkou písnièku.<br><br>
    42 Podaøilo se mi tedy splnit svùj dìtský sen a postavit si vlastní mikropoèítaè na bázi procesoru Z80.     
     39<img src="fotos/foto_top_mainpage.jpg" alt="Fotka mikropočítače" align="right">
     40Toto zařízení jsem sestrojil v roce 2002 jako maturitní práci. Maturita však byla pouze pomocná motivace, jelikož o osmibitových mikropočítačích jsem četl již dříve a docela mě nadchly. Už proto, že můj první počítač byl kvalitní osmibit SHARP MZ-800, který je osazen právě procesorem Z80-A a byl taktovaný na 3,5 MHz. Mnoho jeho uživatelů mělo jistě potřebu rozšířít jej o další periferie pomocí slotu systémové sběrnice. Stavět však periferie k historickému počítači nemá valný smysl. Tento starý počítač měl 64 kB operační paměti s možností připojení rozšiřujícího 256 kB RAMDISKU. Programy se ukládaly na kazetu nebo v lepším případě na disketovou mechaniku. Připojení větší paměti a pevného disku a dalších rozšiřujících zařízení však z tohoto počítače dělá jiný počítač. K osmibitu prostě patří malá paměť a kazety.<br>
     41Proto jsem se rozhodl udělat jiný počítač, který bych mohl navrhnou a rozšiřovat podle svých představ. Protože použitý procesor Zilog Z80 je tehdejší špička mezi osmibitovými procesory a přitom je mnohem jednoduchší než 16-bitové procesory, rozhodl jsem se ho použít i zde. V počítači je zapojena statická zálohovaná RWM paměť 256 kB, 16 kB paměti EPROM (krizové řešení, původní záměr 256 kB FLASH), zvukový čip SN76489AN (umístěný také v SHARPovi), hodiny reálného času DS1203, paralelní port 8255 PIO, LCD inteligentní znakový displej 20x4 a klávesnice TESLA. Mikropočítač je napájen ze síťového adaptéru nebo z vnitřní baterie. Zálohovaná paměť má vlastní napájení z další baterie. Původní záměr vytvořit jednoduchý operační systém a textový editor se z časových důvodů nezdařil. Ukázkový software umožňuje psát znaky na dispej a přehrává krátkou písničku.<br><br>
     42Podařilo se mi tedy splnit svůj dětský sen a postavit si vlastní mikropočítač na bázi procesoru Z80.     
    4343<br>
    4444<h3>Materiály</h3>
     
    4949echo(
    5050IconedLink('Mikropocitac_dokumentace.pdf', 'Dokumentace').'<br>'.
    51 IconedLink('Mikropocitac.brd', 'Deska plo¹ného spoje EAGLE').'<br>'.
     51IconedLink('Mikropocitac.brd', 'Deska plošného spoje EAGLE').'<br>'.
    5252IconedLink('Mikropocitac.sch', 'Schéma EAGLE').'<br>'.
    53 IconedLink('Mikropocitac_brd.png', 'Deska plo¹ného spoje').'<br>'.
     53IconedLink('Mikropocitac_brd.png', 'Deska plošného spoje').'<br>'.
    5454IconedLink('Mikropocitac_sch.png', 'Schéma').'<br>'.
    5555IconedLink('Software.zip', 'Ukázkový software').'<br>'.
    56 IconedLink('AS51.ZIP', 'AS51 - Vývojové prostøedí pro procesory øady 8051').'<br>'.
    57 IconedLink('as80.zip', 'AS80 - Pøekladaè assembleru pro procesor Zilog Z80').'<br>'.
    58 //IconedLink('Eagle_4.01.zip', 'EAGLE 4.01 - Editor pro návrh desek plo¹ných spojù').' ('.IconedLink('http://www.cadsoft.de/', 'www.cadsoft.de').')<br>'.
     56IconedLink('AS51.ZIP', 'AS51 - Vývojové prostředí pro procesory řady 8051').'<br>'.
     57IconedLink('as80.zip', 'AS80 - Překladač assembleru pro procesor Zilog Z80').'<br>'.
     58//IconedLink('Eagle_4.01.zip', 'EAGLE 4.01 - Editor pro návrh desek plošných spojů').' ('.IconedLink('http://www.cadsoft.de/', 'www.cadsoft.de').')<br>'.
    5959IconedLink('z80cpu_um.pdf', 'Zilog Z80 - CPU User Manual').'<br>');
    6060
     
    6363<?php echo(IconedLink('http://www.cadsoft.de/', 'www.cadsoft.de')); ?> - Výrobce návrhového systému EAGLE<br>
    6464<?php echo(IconedLink('http://www.zilog.com/', 'www.zilog.com')); ?> - Výrobce legendárního procesoru Z80<br>
    65 <?php echo(IconedLink('http://www.gme.cz/', 'www.gme.cz')); ?> - Nejvìt¹í maloobchodní prodejce souèástek v ÈR<br>
    66 <?php echo(IconedLink('http://www.spseroznov.cz/', 'www.spseroznov.cz')); ?> - Støední Prùmyslová ©kola Elektrotechnická v Roznovì pod Radho¹tìm<br>
     65<?php echo(IconedLink('http://www.gme.cz/', 'www.gme.cz')); ?> - Největší maloobchodní prodejce součástek v ČR<br>
     66<?php echo(IconedLink('http://www.spseroznov.cz/', 'www.spseroznov.cz')); ?> - Střední Průmyslová Škola Elektrotechnická v Roznově pod Radhoštěm<br>
    6767 
    6868<h3>Fotogalerie</h3>
     
    7878
    7979?>
    80 <strong>Komentáø k obrázkùm:</strong><br>
     80<strong>Komentář k obrázkům:</strong><br>
    8181<ul>
    82 <li>Deska plo¹ného spoje je zhotovena fotocestou. Obì strany byly vytisknuty na laserové tiskárnì na fólii a slepeny tak, aby nedo¹lo k vzájemnému posunutí.</li>
    83 <li>Miniaturní reproduktor je vzat z poèítaèe Didaktik gama.</li>
    84 <li>9 Voltová Baterie je pouze zinko-uhlíková a je nevhodnì zapojena pøes stabilizátor, na kterém se zbyteènì ztrácí energie.</li>
    85 <li>256 kB FLASH pamì» bohu¾el krátce pøed termínem odevzdání umøela, proto je zde pøes redukci z patice pou¾ita EPROM pamì» 16 kB.</li>
    86 <li>Kabely klávesnice a displeje se bohu¾el vlivem ¹patného návrhu malinko køí¾í.</li>
    87 <li>TESLA klávesnici jsem získal ze starého výprodeje. Není moc kvalitní, pøívodní vodièe se brzy po¹kodily a nìkteré pøestali fungovat.</li>
    88 <li>Plastová krabièka je slepená ze dvou men¹ích zakoupených v GM Electronic, proto¾e ¾ádná z prodávaných po¾adovaným rozmìrùm nevyhovìla. Oba kusy byly slepeny do jednoho speciálním lepidlem a zdá se, ¾e docela dobøe.</li>
    89 <li>Ani bych neøekl jak obtí¾né je sehnat èerné vruty potøebných rozmìrù. Nakonec jsem naèernil hlavièky obyèejných vrutù èerným lihovým fixem.</li>
    90 <li>Z boku jsou navrtány otvory. Na levé stranì odvádìjí teplo ze stabilizátoru, na pravé také umo¾òují prùchod zvuku od reproduktoru ven.</li>
    91 <li>Bohù¾el obvody Z80 CPU a 8255 PIO jsou staré a mají pro pøenosný poèítaè pøíli¹ velkou spotøebu. Ostatní logické obvody jsou povìt¹inou nízkospotøebové 74HCTxxx.</li>
    92 <li>V dne¹ní dobì by bylo mnohem výhodnìj¹í pou¾ít nìkterý z dostupných mikrokontrolérù. Mají nizkou spotøebu, jsou rychlej¹í, výkonìj¹í a mají integrovány dal¹í funkce. Zde v¹ak ¹lo tak nìjak o nostalgii :).</li>
    93 <li>V desce je okolo 500 ruènì vrtaných dìr a okolo 300 ruènì drátkem propojených a zapájených prùchodek. Docela makaèka.</li>
    94 <li>Na obrázku nejsou pøipojené tøi tu¾kové baterie urèené pro stále napájení dvou èipù pamìtí RWM.</li>
    95 <li>Zapojení displeje bohu¾el nerespektuje vy¹¹í rychlost sbìrnice 4 MHz. Pøi této rychlosti bohu¾el nefunguje komunikace s displejem. Bylo nutno sní¾it rychlost CPU na polovinu "taktovacím" juperem :).</li>
    96 <li>Vzhledem k tomu, ¾e se mi z èasových dùvodù nepovedlo zprovoznit tisk na tiskárnì a hodiny reálného èasu, hlavnì nepodaøilo sestavit jednoduchý operaèní systém s pøíkazovou øádkou a jednoduchým textovým editorem, rozhodl jsem se nepøihlásit do oblastního kola, pøesto¾e jsem mohl.</li>
     82<li>Deska plošného spoje je zhotovena fotocestou. Obě strany byly vytisknuty na laserové tiskárně na fólii a slepeny tak, aby nedošlo k vzájemnému posunutí.</li>
     83<li>Miniaturní reproduktor je vzat z počítače Didaktik gama.</li>
     84<li>9 Voltová Baterie je pouze zinko-uhlíková a je nevhodně zapojena přes stabilizátor, na kterém se zbytečně ztrácí energie.</li>
     85<li>256 kB FLASH paměť bohužel krátce před termínem odevzdání umřela, proto je zde přes redukci z patice použita EPROM paměť 16 kB.</li>
     86<li>Kabely klávesnice a displeje se bohužel vlivem špatného návrhu malinko kříží.</li>
     87<li>TESLA klávesnici jsem získal ze starého výprodeje. Není moc kvalitní, přívodní vodiče se brzy poškodily a některé přestali fungovat.</li>
     88<li>Plastová krabička je slepená ze dvou menších zakoupených v GM Electronic, protože žádná z prodávaných požadovaným rozměrům nevyhověla. Oba kusy byly slepeny do jednoho speciálním lepidlem a zdá se, že docela dobře.</li>
     89<li>Ani bych neřekl jak obtížné je sehnat černé vruty potřebných rozměrů. Nakonec jsem načernil hlavičky obyčejných vrutů černým lihovým fixem.</li>
     90<li>Z boku jsou navrtány otvory. Na levé straně odvádějí teplo ze stabilizátoru, na pravé také umožňují průchod zvuku od reproduktoru ven.</li>
     91<li>Bohůžel obvody Z80 CPU a 8255 PIO jsou staré a mají pro přenosný počítač příliš velkou spotřebu. Ostatní logické obvody jsou povětšinou nízkospotřebové 74HCTxxx.</li>
     92<li>V dnešní době by bylo mnohem výhodnější použít některý z dostupných mikrokontrolérů. Mají nizkou spotřebu, jsou rychlejší, výkonější a mají integrovány další funkce. Zde však šlo tak nějak o nostalgii :).</li>
     93<li>V desce je okolo 500 ručně vrtaných děr a okolo 300 ručně drátkem propojených a zapájených průchodek. Docela makačka.</li>
     94<li>Na obrázku nejsou připojené tři tužkové baterie určené pro stále napájení dvou čipů pamětí RWM.</li>
     95<li>Zapojení displeje bohužel nerespektuje vyšší rychlost sběrnice 4 MHz. Při této rychlosti bohužel nefunguje komunikace s displejem. Bylo nutno snížit rychlost CPU na polovinu "taktovacím" juperem :).</li>
     96<li>Vzhledem k tomu, že se mi z časových důvodů nepovedlo zprovoznit tisk na tiskárně a hodiny reálného času, hlavně nepodařilo sestavit jednoduchý operační systém s příkazovou řádkou a jednoduchým textovým editorem, rozhodl jsem se nepřihlásit do oblastního kola, přestože jsem mohl.</li>
    9797</ul>
    98 <h3>Podìkování</h3>
    99 Pavlovi Kunetkovi jako vedoucímu práce, uèiteli pøedmìtu EPO (Elektronické Poèítaèe) a vedoucímu mikroprocesorového krou¾ku.<br>
    100 Vedoucím dílen panu Michlíèkovi a panu Bolckovi za výpomoc pøi mechanickému opracování krabièky.<br>
     98<h3>Poděkování</h3>
     99Pavlovi Kunetkovi jako vedoucímu práce, učiteli předmětu EPO (Elektronické Počítače) a vedoucímu mikroprocesorového kroužku.<br>
     100Vedoucím dílen panu Michlíčkovi a panu Bolckovi za výpomoc při mechanickému opracování krabičky.<br>
    101101<br>
    102102Poslední aktualizace: 16.2.2006<br>
    103103<br>
    104 <a href="..">Zpìt na hlavní stránku</a>
     104<a href="..">Zpět na hlavní stránku</a>
    105105<?php
    106106}
  • trunk/show_errors.php

    r1 r3  
    11<?php
     2
    23include_once('global.php');
     4
    35ShowHeader(array('Výpis chyb' => '/errors.php'), 'Výpis chyb aplikací');
    46
     
    68$PageItems = 20;
    79
    8 $Cols = array('time' => 'Èas', 'application' => 'Aplikace', 'version' => 'Verze', 'release_date' => 'Datum vydání', 'unit' => 'Jednotka', 'method' => 'Metoda', 'line_number' => 'Øádek', 'message' => 'Zpráva', 'exception' => 'Vyjímka', 'address' => 'Adresa', 'state' => 'Stav', 'remote_addr' => 'IP adresa', 'remote_host' => 'Poèítaè');
     10$Cols = array('time' => 'Čas', 'application' => 'Aplikace', 'version' => 'Verze', 'release_date' => 'Datum vydání', 'unit' => 'Jednotka', 'method' => 'Metoda', 'line_number' => 'Řádek', 'message' => 'Zpráva', 'exception' => 'Vyjímka', 'address' => 'Adresa', 'state' => 'Stav', 'remote_addr' => 'IP adresa', 'remote_host' => 'Počítač');
    911$Output .= '<table style="font-size: 9px;" border="1" cellspacing="0" cellpadiing="3"><tr>';
    10 foreach($Cols as $Index => $Item) $Output .= '<th>'.$Item.'</td>'; 
     12foreach($Cols as $Index => $Item) $Output .= '<th>'.$Item.'</td>';
    1113$Output .= '</tr>';
    12 DB_Select('app_errors', '*', '1 ORDER BY id DESC LIMIT '.$Page*$PageItems.','.$PageItems);
    13 while($Row = DB_Row())
     14$DbResult = $Database->select($DB_Prefix.'app_errors', '*', '1 ORDER BY id DESC LIMIT '.$Page*$PageItems.','.$PageItems);
     15while($Row = $DbResult->fetch_assoc())
    1416{
    1517  $Output .= '<tr>';
    16   foreach($Cols as $Index => $Item) 
     18  foreach($Cols as $Index => $Item)
    1719  {
    18     if($Row[$Index]=='') $Output .= '<td>&nbsp;</td>'; 
     20    if($Row[$Index]=='') $Output .= '<td>&nbsp;</td>';
    1921    else $Output .= '<td>'.$Row[$Index].'</td>';
    2022  }
     
    2224}
    2325$Output .= '</table>';
    24 DB_Select('app_errors', 'COUNT(*)');
    25 $Count = DB_Row();
     26$DbResult = $Database->select($DB_Prefix.'app_errors', 'COUNT(*)');
     27$Count = $DbResult->fetch_assoc();
    2628$Output .= PagesList('show_errors.php?page=', $_GET['page'], $Count[0], $PageItems);
     29
    2730ShowFooter();
    28 
    29 ?>
  • trunk/skolni_robot/desky.php

    r1 r3  
    22<html><head>
    33  <meta http-equiv="Content-Language" content="cs">
    4   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
    5   <meta name="keywords" content="robot, elektronika, krokový motor, krokové motory, mikrokontrolér, poèítaè, ¹kolní pomùcka">
    6   <meta name="description" content="Diplomová práce - Elektronika ¹kolního robotu">
     4  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     5  <meta name="keywords" content="robot, elektronika, krokový motor, krokové motory, mikrokontrolér, počítač, školní pomůcka">
     6  <meta name="description" content="Diplomová práce - Elektronika školního robotu">
    77  <link rel="stylesheet" type="text/css" href="style.css">
    8   <title>Elektronika malého ¹kolního robotu</title>
     8  <title>Elektronika malého školního robotu</title>
    99</head>
    1010<body style="font-family: Arial;">
     
    1818}
    1919
    20 Picture('budic_motoru', 'Deska budièe motoru', 'Budiè motoru je postavena na integrovaných obvodech L298 a L297.');
    21 Picture('mikropocitac', 'Deska mikropoèítaèe', 'Jako mikrokontrolér byl zvolen obvod ATmega16, který má 40 vývodù a ètyøi osmibitové porty');
    22 Picture('power_supply', 'Deska napájení', 'Deska slou¾í k propojení napájení jednotlivých komponent. K propojení jsou pou¾ity vodièe s konektory typu faston.');
    23 Picture('programator', 'Programátor', 'Programátor umo¾òuje nahrávat program do mikroèipu pomocí paralelního portu poèítaèe a sbìrnice SPI.');
    24 Picture('serial', 'Deska sériové komunikace', 'Jako komunikaèní rozhranní mezi poèítaèem a mikrokontrolérem byla zvolena pro svou jednoduchost sériová linka RS-232. Na této desce je pou¾it pøevodník úrovní MAX232.');
     20Picture('budic_motoru', 'Deska budiče motoru', 'Budič motoru je postavena na integrovaných obvodech L298 a L297.');
     21Picture('mikropocitac', 'Deska mikropočítače', 'Jako mikrokontrolér byl zvolen obvod ATmega16, který má 40 vývodů a čtyři osmibitové porty');
     22Picture('power_supply', 'Deska napájení', 'Deska slouží k propojení napájení jednotlivých komponent. K propojení jsou použity vodiče s konektory typu faston.');
     23Picture('programator', 'Programátor', 'Programátor umožňuje nahrávat program do mikročipu pomocí paralelního portu počítače a sběrnice SPI.');
     24Picture('serial', 'Deska sériové komunikace', 'Jako komunikační rozhranní mezi počítačem a mikrokontrolérem byla zvolena pro svou jednoduchost sériová linka RS-232. Na této desce je použit převodník úrovní MAX232.');
    2525
    2626
  • trunk/skolni_robot/index.php

    r1 r3  
    22<html><head>
    33  <meta http-equiv="Content-Language" content="cs">
    4   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
    5   <meta name="keywords" content="robot, elektronika, krokový motor, krokové motory, mikrokontrolér, poèítaè, ¹kolní pomùcka">
    6   <meta name="description" content="Diplomová práce - Elektronika ¹kolního robotu">
     4  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     5  <meta name="keywords" content="robot, elektronika, krokový motor, krokové motory, mikrokontrolér, počítač, školní pomůcka">
     6  <meta name="description" content="Diplomová práce - Elektronika školního robotu">
    77  <link rel="stylesheet" type="text/css" href="style.css">
    8   <title>Elektronika malého ¹kolního robotu</title>
     8  <title>Elektronika malého školního robotu</title>
    99</head>
    1010<body style="font-family: Arial;">
     
    2525} else {
    2626?>
    27 <h2>Diplomová práce - Elektronika ¹kolního robotu</h2>
     27<h2>Diplomová práce - Elektronika školního robotu</h2>
    2828<h3>Úvod</h3>
    2929<img src="images/nahled.jpg" alt="Náhled na robot" align="right">
    30 Návrh tohoto robotu byl rozdìlen na dvì èásti, a to elektronickou a konstrukèní. Zde jsou uvedeny informace související pøedev¹ím s návrhem elektronické èásti, nebo» to bylo zamìøením diplomové práce.<br>
    31 Robot byl zamý¹len jako pomùcka pro výuku a výzkum na vysoké ¹kole, ale také na støedních ¹kolách. Mìlo by se jednat o základní platformu, na kterou by mohly být pøipevnìny dal¹í senzory, a na které by mohly být provádìny dal¹í výzkumné práce. Tìchto robotù by mìlo být vyrobeno více, a pak by bylo mo¾né také provádìt testování jejich vzájemné spolupráce.
     30Návrh tohoto robotu byl rozdělen na dvě části, a to elektronickou a konstrukční. Zde jsou uvedeny informace související především s návrhem elektronické části, neboť to bylo zaměřením diplomové práce.<br>
     31Robot byl zamýšlen jako pomůcka pro výuku a výzkum na vysoké škole, ale také na středních školách. Mělo by se jednat o základní platformu, na kterou by mohly být připevněny další senzory, a na které by mohly být prováděny další výzkumné práce. Těchto robotů by mělo být vyrobeno více, a pak by bylo možné také provádět testování jejich vzájemné spolupráce.
    3232<br>
    3333<br>
    34 <strong>Po¾adavky:</strong>
     34<strong>Požadavky:</strong>
    3535<ul>
    36 <li>Nízká spotøeba</li>
    37 <li>Malé rozmìry a váha</li>
    38 <li>Vysoký výpoèetní výkon</li>
     36<li>Nízká spotřeba</li>
     37<li>Malé rozměry a váha</li>
     38<li>Vysoký výpočetní výkon</li>
    3939<li>Nízká cena</li>
    4040<li>Modularita</li>
    41 <li>Dostupnost dílù v obchodech</li>
     41<li>Dostupnost dílů v obchodech</li>
    4242</ul>
    43 Konstrukce robotu je tvoøena kostrou sestavenou z hliníkových profilù doplnìnou o plechovými deskami. Horní kryt je otvírací a je na nìj pøipevnìn ze spodu poèítaè se základní deskou microATX, stejnosmìrnì napájeným ATX zdrojem a 2,5'' palcovým diskem. Na dolním plechu jsou umístìny dva olovìné gelové akumulátory a desky elektroniky. Ze spodu jsou vzadu pøipevnìny dva krokové motory a vpøedu dvì otoèné koleèka. Na boèním panelu je umístìn hlavní vypínaè, dvì tlaèítka ATX zdroje a konektor pro nabíjení. Elektronika je rozdìlena modulárnì na nìkolik desek. Jedná se o desku s mikrokontrolérem ATmega16, dvì desky budièù krokových motorù, jednu desku napájení a desku sériové komunikace.
     43Konstrukce robotu je tvořena kostrou sestavenou z hliníkových profilů doplněnou o plechovými deskami. Horní kryt je otvírací a je na něj připevněn ze spodu počítač se základní deskou microATX, stejnosměrně napájeným ATX zdrojem a 2,5'' palcovým diskem. Na dolním plechu jsou umístěny dva olověné gelové akumulátory a desky elektroniky. Ze spodu jsou vzadu připevněny dva krokové motory a vpředu dvě otočné kolečka. Na bočním panelu je umístěn hlavní vypínač, dvě tlačítka ATX zdroje a konektor pro nabíjení. Elektronika je rozdělena modulárně na několik desek. Jedná se o desku s mikrokontrolérem ATmega16, dvě desky budičů krokových motorů, jednu desku napájení a desku sériové komunikace.
    4444
    4545<h3>Materiály</h3>
     
    5252IconedLink('resources/elektronika_skolního_robotu.pdf', 'Diplomová práce').'<br>'.
    5353IconedLink('resources/demonstracni_aplikace.zip', 'Demonstracní aplikace').'<br>'.
    54 IconedLink('resources/ridici_program_mikrokontroleru.zip', 'Øídicí program mikrokontroléru').'<br>'.
    55 IconedLink('resources/navrhova_schemata_elektroniky.zip', 'Schémata a desky plo¹ných spojù').'<br>'.
     54IconedLink('resources/ridici_program_mikrokontroleru.zip', 'Řídicí program mikrokontroléru').'<br>'.
     55IconedLink('resources/navrhova_schemata_elektroniky.zip', 'Schémata a desky plošných spojů').'<br>'.
    5656IconedLink('resources/TA8435.pdf', 'Katalogový list obvodu TA8435').'<br>'.
    5757IconedLink('resources/L297.pdf', 'Katalogový list obvodu L297').'<br>'.
     
    6464?>
    6565<h3>Odkazy</h3>
    66 <?php echo(IconedLink('http://www.feec.vutbr.cz/', 'www.feec.vutbr.cz')); ?> - Fakulta Elektrotechniky a komunikaèních technologií VUT v Brnì<br>
    67 <?php echo(IconedLink('http://www.gme.cz/', 'www.gme.cz')); ?> - Nejvìt¹í maloobchodní prodejce souèástek v ÈR<br>
     66<?php echo(IconedLink('http://www.feec.vutbr.cz/', 'www.feec.vutbr.cz')); ?> - Fakulta Elektrotechniky a komunikačních technologií VUT v Brně<br>
     67<?php echo(IconedLink('http://www.gme.cz/', 'www.gme.cz')); ?> - Největší maloobchodní prodejce součástek v ČR<br>
    6868 
    6969 <h3>Fotogalerie</h3>
     
    8484Kontakt: robie@centrum.cz<br>
    8585<br>
    86 <a href="..">Zpìt na hlavní stránku</a>
     86<a href="..">Zpět na hlavní stránku</a>
    8787
    8888<?php
Note: See TracChangeset for help on using the changeset viewer.