Changeset 3
- Timestamp:
- Jul 27, 2016, 8:36:02 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 22 added
- 1 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bc_prace/index.php
r1 r3 4 4 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> 5 5 <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"> 7 7 <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> 9 9 </head> 10 10 <body style="font-family: Arial;"> 11 11 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> 13 13 <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"> 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> 18 18 <br> 19 19 <strong>Omezující vlivy:</strong> 20 20 <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> 23 23 <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> 28 28 </ul> 29 29 <h3>Materiály</h3> … … 33 33 34 34 echo( 35 IconedLink('Predni_listy.pdf', 'P øední listy publikace').'<br>'.36 IconedLink('Vyhodnocovani_polohy_ocni_zornice.pdf', 'Bakalá øská práce').'<br>'.35 IconedLink('Predni_listy.pdf', 'Přední listy publikace').'<br>'. 36 IconedLink('Vyhodnocovani_polohy_ocni_zornice.pdf', 'Bakalářská práce').'<br>'. 37 37 IconedLink('Testovaci_aplikace.zip', 'Testovací aplikace').'<br>'. 38 IconedLink('Prezentace_vysledku_bakalarske_prace.pdf', 'Prezentace výsledk ù bakaláøské práce').'<br>'.38 IconedLink('Prezentace_vysledku_bakalarske_prace.pdf', 'Prezentace výsledků bakalářské práce').'<br>'. 39 39 IconedLink('Materials/MP2001.AVI', 'Ukázkové video - Zdrojový záznam pohybu oka').'<br>'); 40 40 41 41 ?> 42 42 <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> 44 44 <?php echo(IconedLink('http://www.orpheus-project.cz/', 'www.orpheus-project.cz')); ?> - Robotický systém Orpheus<br> 45 45 … … 47 47 Poslední aktualizace: 27.4.2006<br> 48 48 <br> 49 <a href="..">Zp ìt na hlavní stránku</a>49 <a href="..">Zpět na hlavní stránku</a> 50 50 </body></html> -
trunk/config.sample.php
r1 r3 8 8 'RootPath' => 'http://www.zdechov.net/jirihajda/', 9 9 'ShowErrors' => 0, 10 'Title' => 'Osobní stránky Ji øího Hajdy',10 'Title' => 'Osobní stránky Jiřího Hajdy', 11 11 ); 12 12 $DB_Prefix = 'jirihajda_'; 13 14 ?> -
trunk/error.php
r1 r3 1 < php?1 <?php 2 2 3 include(' db.php');3 include('global.php'); 4 4 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'], 6 6 '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"], 9 9 'remote_host' => gethostbyaddr($_SERVER["REMOTE_ADDR"]), 'url' => $_SERVER["REQUEST_URI"])); 10 11 ?> -
trunk/error_logging.php
r1 r3 1 1 <?php 2 2 3 include(' db.php');3 include('global.php'); 4 4 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'], 6 6 '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"], 9 9 'remote_host' => gethostbyaddr($_SERVER["REMOTE_ADDR"]), 'url' => $_SERVER["REQUEST_URI"])); 10 10 11 ?> -
trunk/format_html.php
r1 r3 1 1 <?php 2 2 3 include('global.php'); 3 ShowHeader(array('Formátovaè HTML' => '/format_html.php'), 'Formátovaè HTML kódu'); 4 5 ShowHeader(array('Formátovač HTML' => '/format_html.php'), 'Formátovač HTML kódu'); 4 6 5 7 if(array_key_exists('code', $_POST)) … … 7 9 $Output .= '<pre>'.htmlspecialchars(FormatOutput($_POST['code'])).'</pre>'; 8 10 } 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>'. 10 12 '<form method="post" action="format_html.php"> 11 13 <textarea name="code" cols="80" rows="30"></textarea><br> … … 14 16 15 17 ShowFooter(); 16 ?> 18 -
trunk/global.php
r1 r3 1 1 <?php 2 2 3 $Version = '0. 1';3 $Version = '0.2'; 4 4 //include_once('error.php'); 5 5 include_once('config.php'); 6 include_once('db.php'); 7 DB_Init($Options['DB_Host'],$Options['DB_User'],$Options['DB_Password'], $Options['DB_Database']); 6 include_once('Packages/Common/Common.php'); 7 $Database = new Database(); 8 $Database->Connect($Options['DB_Host'], $Options['DB_User'], $Options['DB_Password'], $Options['DB_Database']); 8 9 9 10 function IconedLink($Link, $Text) 10 11 { 11 12 global $Options; 12 $Extension = strtolower(substr($Link, strrpos($Link, '.')+1)); 13 14 $Extension = strtolower(substr($Link, strrpos($Link, '.') + 1)); 13 15 $IconFile = 'images/icons/'.$Extension.'.gif'; 14 16 //echo($IconFile."<br>\n"); 15 if(!file_exists($IconFile)) 17 if(!file_exists($IconFile)) 16 18 { 17 19 $Extension = 'blank'; 18 $IconFile = 'images/icons/'.$Extension.'.gif'; 20 $IconFile = 'images/icons/'.$Extension.'.gif'; 19 21 } 20 22 $Icon = '<img src="'.$Options['RootPath'].$IconFile.'" alt="'.$Extension.'"> '; … … 31 33 function GetMicrotime() 32 34 { 33 34 35 list($Usec, $Sec) = explode(" ",microtime()); 36 return ((float)$Usec + (float)$Sec); 35 37 } 36 38 … … 38 40 { 39 41 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 41 44 $Cesty = array( 42 45 ); … … 45 48 <meta http-equiv="Content-Language" content="cs"> 46 49 <meta http-equiv="Content-Type" content="text/html; charset='; 47 if(isset($Charset)) $Output .= 'windows-1250'; 50 if(isset($Charset)) $Output .= 'windows-1250'; 48 51 else $Output .= 'iso-8859-2'; 49 52 $Output .= '">'; … … 71 74 global $Time_Start, $Version, $Output; 72 75 $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>'; 74 77 //ShowArray($GLOBALS); 75 78 $Output .= '</body></html>'; … … 79 82 80 83 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 83 86 function HumanDate($Date) 84 87 { … … 88 91 } 89 92 90 // Zobrazení èíselný seznamu stránek93 // Zobrazení číselný seznamu stránek 91 94 function PagesList($URL, $Page, $TotalCount, $CountPerPage) 92 95 { … … 96 99 if($Count>1) 97 100 { 98 if($Page>0) 101 if($Page>0) 99 102 { 100 103 $Result.= '<a href="'.$URL.'0"><<</a> '; … … 114 117 $Result.= '<a href="'.$URL.$i.'">'.($i+1).'</a> '; 115 118 if($i==$Page) $Result.= '</strong>'; 116 } 119 } 117 120 if($PagesMax<($Count-1)) $Result .= ' .. '; 118 if($Page<($Count-1)) 121 if($Page<($Count-1)) 119 122 { 120 123 $Result.= '<a href="'.$URL.($Page+1).'">></a> '; … … 123 126 } 124 127 return($Result); 125 } 128 } 126 129 127 130 function GetRemoteAddress() … … 142 145 $start = strpos($s,'<'); 143 146 $end = strpos($s,'>'); 144 if($start != 0) 147 if($start != 0) 145 148 { 146 149 $end = $start-1; … … 148 151 } 149 152 $line = trim(substr($s,$start,$end+1)); 150 if(strlen($line)>0) 153 if(strlen($line)>0) 151 154 if($line[0] == '<') 152 155 { 153 if($s[$start+1] == '/') 156 if($s[$start+1] == '/') 154 157 { 155 158 $n = $n - 2; 156 159 $nn = $n; 157 } else 160 } else 158 161 { 159 162 if(strpos($line,' ')) $cmd = substr($line,1,strpos($line,' ')-1); … … 161 164 //echo('['.$cmd.']'); 162 165 if(strpos($s,'</'.$cmd.'>')) $n = $n + 2; 163 } 166 } 164 167 }// else $line = '['.$line.']'; 165 168 //if($line != '') echo(htmlspecialchars(str_repeat(' ',$nn).$line."\n")); … … 171 174 } 172 175 173 //phpinfo();174 175 ?> -
trunk/index.php
r1 r3 1 <?php 2 include_once('db.php'); 1 <?php 3 2 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 ?> 3 include_once('global.php'); 13 4 14 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">5 $Output = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 15 6 <html> 16 7 <head> 17 <title>Osobní stránky Ji øího Hajdy</title>8 <title>Osobní stránky Jiřího Hajdy</title> 18 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> 19 10 </head> 20 11 <body style="font-family: Arial;"> 21 12 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'); 17 while($Row = $DbResult->fetch_assoc()) 27 18 { 28 echo('<tr><td>'.19 $Output .= '<tr><td>'. 29 20 '<a href="'.$Row['link'].'"><img src="images/nahledy/'.$Row['image'].'_mini.png" alt="Náhled"></a>'. 30 21 '</td><td valign="top">'. 31 22 '<a href="'.$Row['link'].'">'.$Row['title'].'</a><br>'.$Row['description']. 32 '</td></tr>' );23 '</td></tr>'; 33 24 } 34 echo('</table>');25 $Output .= '</table>'; 35 26 36 27 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'); 32 while($Row = $DbResult->fetch_assoc()) 42 33 { 43 echo('<tr><td>'.34 $Output .= '<tr><td>'. 44 35 '<a href="'.$Row['link'].'"><img src="images/nahledy/'.$Row['image'].'_mini.png" alt="Náhled"></a>'. 45 36 '</td><td valign="top">'. 46 37 '<a href="'.$Row['link'].'">'.$Row['title'].'</a><br>'.$Row['description']. 47 '</td></tr>' );38 '</td></tr>'; 48 39 } 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 44 echo($Output); -
trunk/mikropocitac/index.php
r1 r3 2 2 <html><head> 3 3 <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"> 7 7 <link rel="stylesheet" type="text/css" href="style.css"> 8 <title>Mikropo èítaè</title>8 <title>Mikropočítač</title> 9 9 </head> 10 10 <body style="font-family: Arial;"> … … 35 35 } else { 36 36 ?> 37 <h2>Amatérský mikropo èítaès procesorem Z80</h2>37 <h2>Amatérský mikropočítač s procesorem Z80</h2> 38 38 <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"> 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. 43 43 <br> 44 44 <h3>Materiály</h3> … … 49 49 echo( 50 50 IconedLink('Mikropocitac_dokumentace.pdf', 'Dokumentace').'<br>'. 51 IconedLink('Mikropocitac.brd', 'Deska plo ¹ného spoje EAGLE').'<br>'.51 IconedLink('Mikropocitac.brd', 'Deska plošného spoje EAGLE').'<br>'. 52 52 IconedLink('Mikropocitac.sch', 'Schéma EAGLE').'<br>'. 53 IconedLink('Mikropocitac_brd.png', 'Deska plo ¹ného spoje').'<br>'.53 IconedLink('Mikropocitac_brd.png', 'Deska plošného spoje').'<br>'. 54 54 IconedLink('Mikropocitac_sch.png', 'Schéma').'<br>'. 55 55 IconedLink('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>'.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>'. 59 59 IconedLink('z80cpu_um.pdf', 'Zilog Z80 - CPU User Manual').'<br>'); 60 60 … … 63 63 <?php echo(IconedLink('http://www.cadsoft.de/', 'www.cadsoft.de')); ?> - Výrobce návrhového systému EAGLE<br> 64 64 <?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> 67 67 68 68 <h3>Fotogalerie</h3> … … 78 78 79 79 ?> 80 <strong>Komentá ø k obrázkùm:</strong><br>80 <strong>Komentář k obrázkům:</strong><br> 81 81 <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> 97 97 </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> 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> 101 101 <br> 102 102 Poslední aktualizace: 16.2.2006<br> 103 103 <br> 104 <a href="..">Zp ìt na hlavní stránku</a>104 <a href="..">Zpět na hlavní stránku</a> 105 105 <?php 106 106 } -
trunk/show_errors.php
r1 r3 1 1 <?php 2 2 3 include_once('global.php'); 4 3 5 ShowHeader(array('Výpis chyb' => '/errors.php'), 'Výpis chyb aplikací'); 4 6 … … 6 8 $PageItems = 20; 7 9 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č'); 9 11 $Output .= '<table style="font-size: 9px;" border="1" cellspacing="0" cellpadiing="3"><tr>'; 10 foreach($Cols as $Index => $Item) $Output .= '<th>'.$Item.'</td>'; 12 foreach($Cols as $Index => $Item) $Output .= '<th>'.$Item.'</td>'; 11 13 $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); 15 while($Row = $DbResult->fetch_assoc()) 14 16 { 15 17 $Output .= '<tr>'; 16 foreach($Cols as $Index => $Item) 18 foreach($Cols as $Index => $Item) 17 19 { 18 if($Row[$Index]=='') $Output .= '<td> </td>'; 20 if($Row[$Index]=='') $Output .= '<td> </td>'; 19 21 else $Output .= '<td>'.$Row[$Index].'</td>'; 20 22 } … … 22 24 } 23 25 $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(); 26 28 $Output .= PagesList('show_errors.php?page=', $_GET['page'], $Count[0], $PageItems); 29 27 30 ShowFooter(); 28 29 ?> -
trunk/skolni_robot/desky.php
r1 r3 2 2 <html><head> 3 3 <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"> 7 7 <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> 9 9 </head> 10 10 <body style="font-family: Arial;"> … … 18 18 } 19 19 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.');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.'); 25 25 26 26 -
trunk/skolni_robot/index.php
r1 r3 2 2 <html><head> 3 3 <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"> 7 7 <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> 9 9 </head> 10 10 <body style="font-family: Arial;"> … … 25 25 } else { 26 26 ?> 27 <h2>Diplomová práce - Elektronika ¹kolního robotu</h2>27 <h2>Diplomová práce - Elektronika školního robotu</h2> 28 28 <h3>Úvod</h3> 29 29 <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.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. 32 32 <br> 33 33 <br> 34 <strong>Po ¾adavky:</strong>34 <strong>Požadavky:</strong> 35 35 <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> 39 39 <li>Nízká cena</li> 40 40 <li>Modularita</li> 41 <li>Dostupnost díl ùv obchodech</li>41 <li>Dostupnost dílů v obchodech</li> 42 42 </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.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. 44 44 45 45 <h3>Materiály</h3> … … 52 52 IconedLink('resources/elektronika_skolního_robotu.pdf', 'Diplomová práce').'<br>'. 53 53 IconedLink('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>'.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>'. 56 56 IconedLink('resources/TA8435.pdf', 'Katalogový list obvodu TA8435').'<br>'. 57 57 IconedLink('resources/L297.pdf', 'Katalogový list obvodu L297').'<br>'. … … 64 64 ?> 65 65 <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> 68 68 69 69 <h3>Fotogalerie</h3> … … 84 84 Kontakt: robie@centrum.cz<br> 85 85 <br> 86 <a href="..">Zp ìt na hlavní stránku</a>86 <a href="..">Zpět na hlavní stránku</a> 87 87 88 88 <?php
Note:
See TracChangeset
for help on using the changeset viewer.