<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title> Průvodce začátečníka </title>
    <meta name="keywords" content="stavebnice MLAB používané nástroje">
    <meta name="description" content="Projekt MLAB, Používané nástroje">
    <!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
    <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
    <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
    <link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
    <script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
    <!-- AUTOINCLUDE END -->
  </head>

  <body lang="cs">

    <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
    <!-- ============== HLAVICKA ============== -->
    <div class="Header">
      <script type="text/javascript">
      <!--
        SetRelativePath("../../../../../");
        DrawHeader();
      // -->
      </script>
      <noscript>
        <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
      </noscript>
    </div>
    <!-- AUTOINCLUDE END -->

    <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
    <!-- ============== MENU ============== -->
    <div class="Menu">
      <script type="text/javascript">
      <!--
        SetRelativePath("../../../../../");
        DrawMenu();
      // -->
      </script>
      <noscript>
        <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
      </noscript>
    </div>
    <!-- AUTOINCLUDE END -->

    <!-- ============== TEXT ============== -->
    <div class="Text">
      <p class="Title">
        Průvoce pro začátečníky - konstruktéry uživatele
      </p>
      <p class=Autor>
        Jakub Kákona
      </p>
      <p class="Subtitle">
        Na tomto místě najdete základní informace potřebné pro používání systému MLAB ve smyslu vytváření nových 
        konstrukcí z jeho modulů.
      </p>

      <h1> Účel systému </h1>

      <p>
        MLAB byl vymyšlen proto, aby svým uživatelům ušetřil práci s návrhem elektroniky pro jejich 
        vlastní projekty. Vznikal tak, že opakující se části zařízení byly pečlivě transformovány na moduly.
        Od toho se odvíjí i způsob jakým je dokumentován. Neboť každý modul má svojí vlastní dokumentaci a zároveň 
        jeho design je takový, aby umožňoval využití co největšího množství jiných modulů.  
      </p>


      <h2> Konstrukce zařízení </h2>

      <h3> Koncept </h3>

      <p>
        Pro použití stavebnice je tedy potřeba vědět, jaké moduly vybrat. Na to lze uplatnit poměrně jednoduchý 
        postup. Nejdříve je třeba si ujasnit, jaké funkce má vaše zařízení mít - sepište si je na papír.    
      </p>

      <p>
        <i>Příklad</i>
        Potřebuji udělat vlastní elektronický teploměr. Vím, že chci:
      <ul>
          <li>Měřit teplotu vzduchu v místnosti - v laboratoři</li>
          <li>Naměřenou teplotu budu zobrazovat na display</li>
          <li>Zařízení budu napájet z baterií</li>
      </ul>
      </p>

      <p>
        Když si budete jistí, že už máte všechny, pokračujte tak, že si od zařízení nakreslíte blokové schéma.
      </p>
      <p>
        <a href="thermometer.cs.png"
          title="Blokové schéma příkladu teploměru">
        <img width="687" height="163" src="thermometer.cs.png"
         alt="Vyrobený plošný spoj"></a>
      </p>


      <h3> Výběr modulů </h3>
      <p>
        Z blokového schéma tedy vidím, že hledám modul mikroprocesoru, LCD, napájení a snímače teploty. Projdu tedy
        <a href="/Server/GenIndex/GenIndex.php?lang=cs&path=/Modules" title="výpis modulů">seznam modulů</a> a  podívám se, jestli již            
        neexistuje něco se mnou požadovanou funkcí.      
      </p>

      <p>
        Vidím, že se zobrazením problém není. Mohu například použít  <a href="/Modules/HumanInterfaces/LCD2L4P02A/DOC/HTML/LCD2L4P02A.cs.html" 
        title="výpis modulů">LCD2L4P02A</a>. Pro měření teploty mi sice žádný z modulů se senzory nevyhovuje, ale na
         <a href="http://wiki.mlab.cz/" title="MLAB wiki">wiki</a> najdu, že měření teploty lze snadno realizovat připojením
         <a href="http://wiki.mlab.cz/doku.php?id=cs:wire_sensors" title="MLAB wiki">vhodného čidla</a> přímo na modul mikroprocesoru.
         Co se týká výběru samotného mikroprocesoru, je zde výběr již mnohem širší.  
      </p>

      <h2> Mikroprocesory </h2>
      <p>
        Vzhledem k tomu, že dnes již téměř každé elektronické zařízení obsahuje v nějaké formě zabudovaný mikroprocesor, je vhodné se jim více 
        věnovat.
      </p>

      <p>
        Momentálně ve stavebnici existují tři rodiny mikroprocesorů AVR (Atmel), PIC (Microchip) a ARM (ST). Tato situace je důsledkem prostého
        faktu, že tyto typy mikroprocesorů jsou jednoznačně nejpoužívanější.
      </p>

      <h3> AVR </h3>
      <p>
        Jde o velmi rozšířenou platformu zvláště mezi klasickými bastlíři, jelikož její hlavní vývojové prostředí (AVRStudio) je
        dostupné zdarma přímo na stránkách výrobce ATMEL. Jde o klasického zástupce mikroprocesorové architektury
         <a href="http://cs.wikipedia.org/wiki/RISC" title="Wiki RISC">RISC</a> Mezi obecné vlastnosti těchto mikroprocesorů patří schopnost 
        přímo řešit matematické 
        operace jako násobení, dělení, mocnění. Za to je zaplaceno poněkud vyšší spotřebou. Velkou nevýhodou AVR je ale skutečnost, že 
        jelikož k nim existuje právě pouze volné vývojové prostředí o které se Atmel nijak výrazněji nestará a neudržuje databázi         
        knihoven, tak na internetu vznikají tisíce různých projektů, které jsou navzájem vývojově nekompatibilní právě díky použitým 
        knihovnám. Pro začátečníka tak může být velmi těžké udělat si pořádek v používaných nástrojích. 
      </p>

      <h3> PIC </h3>
      <p>
        Tento typ má proti AVR ještě více redukovanou instrukční sadu, která je u každého konkrétního typu jiná a často proto neumí hardwarově 
        násobit a dělit. Ale na druhou stranu to umožňuje velmi výrazně snížit spotřebu mikroprocesoru. A jsou tak velmi vhodné pro zařízení, 
        kde je kritická vlastní spotřeba. PIC mezi běžnými typy mikroprocesorů vyniká hlavně existencí velmi kvalitních komerčních vývojových 
        nástrojů, jakými je například CCS C compiler. Který má v sobě automaticky zabudovanou i širokou paletu knihoven pro nejrůznější 
        periferie. Volnou alternativou je prostředí MPLAB udržované přímo výrobcem Microchip.            
      </p>

      <h3> ARM </h3>
      <p>
        Jde o velmi výkonné mikroprocesory pracující řádově na desítkách MHz a jejich spotřeba je vyšší než u předchozích dvou. Jejich 
        hlavní výhodou je vysoký výpočetní výkon, který umožňuje zpracovávat relativně velké toky dat (například obraz z malé kamery).          
        Jejich vývojové prostředí je tak na mezi úrovní AVR a PIC existují tedy relativně kvalitní knihovny, avšak programovací 
        prostředí (i komerční) téměř výhradně používají volný kompilátor GNU gcc.          
      </p>

      <h2> Propojení a programování </h2>
        Díky tomu, že moje zařízení má být napájeno z baterií a nepotřebuje téměř žádný výpočetní výkon vyberu mikroprocesor PIC16F877 v modulu 
        PIC16F87xTQ4401B. Firmware naprogramuji v prostředí CCS C, které jsem si jako student s nedostatkem času pro dokončení projektu koupil (škola mi koupila) za     
        sníženou cenu.  

      <h2> Publikujte </h2>
      <p>
                  
      </p>


    </div>

    <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
    <!-- ============== PATIČKA ============== -->
    <div class="Footer">
      <script type="text/javascript">
      <!--
        SetRelativePath("../../../../../");
        DrawFooter();
      // -->
      </script>
      <noscript>
        <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
      </noscript>
    </div>
    <!-- AUTOINCLUDE END -->

  </body>
</html>