Rev Author Line No. Line
1920 kaklik 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
1921 kaklik 5 <title> Průvodce začátečníka </title>
1920 kaklik 6 <meta name="keywords" content="stavebnice MLAB používané nástroje">
7 <meta name="description" content="Projekt MLAB, Používané nástroje">
8 <!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
9 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
10 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
11 <link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
12 <script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
13 <!-- AUTOINCLUDE END -->
14 </head>
15  
16 <body lang="cs">
17  
18 <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
19 <!-- ============== HLAVICKA ============== -->
20 <div class="Header">
21 <script type="text/javascript">
22 <!--
23 SetRelativePath("../../../../../");
24 DrawHeader();
25 // -->
26 </script>
27 <noscript>
28 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
29 </noscript>
30 </div>
31 <!-- AUTOINCLUDE END -->
32  
33 <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
34 <!-- ============== MENU ============== -->
35 <div class="Menu">
36 <script type="text/javascript">
37 <!--
38 SetRelativePath("../../../../../");
39 DrawMenu();
40 // -->
41 </script>
42 <noscript>
43 <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
44 </noscript>
45 </div>
46 <!-- AUTOINCLUDE END -->
47  
48 <!-- ============== TEXT ============== -->
49 <div class="Text">
50 <p class="Title">
51 Průvoce pro začátečníky - konstruktéry uživatele
52 </p>
53 <p class=Autor>
54 Jakub Kákona
55 </p>
56 <p class="Subtitle">
57 Na tomto místě najdete základní informace potřebné pro používání systému MLAB ve smyslu vytváření nových
58 konstrukcí z jeho modulů.
59 </p>
60  
61 <h1> Účel systému </h1>
62  
63 <p>
64 MLAB byl vymyšlen proto, aby svým uživatelům ušetřil práci s návrhem elektroniky pro jejich
65 vlastní projekty. Vznikal tak, že opakující se části zařízení byly pečlivě transformovány na moduly.
66 Od toho se odvíjí i způsob jakým je dokumentován. Neboť každý modul má svojí vlastní dokumentaci a zároveň
67 jeho design je takový, aby umožňoval využití co největšího množství jiných modulů.
68 </p>
69  
70  
71 <h2> Konstrukce zařízení </h2>
72  
73 <h3> Koncept </h3>
74  
75 <p>
76 Pro použití stavebnice je tedy potřeba vědět, jaké moduly vybrat. Na to lze uplatnit poměrně jednoduchý
77 postup. Nejdříve je třeba si ujasnit, jaké funkce má vaše zařízení mít - sepište si je na papír.
78 </p>
79  
80 <p>
81 <i>Příklad</i>
1921 kaklik 82 Potřebuji udělat vlastní elektronický teploměr. Vím, že chci:
83 <ul>
84 <li>Měřit teplotu vzduchu v místnosti - v laboratoři</li>
85 <li>Naměřenou teplotu budu zobrazovat na display</li>
86 <li>Zařízení budu napájet z baterií</li>
87 </ul>
1920 kaklik 88 </p>
89  
90 <p>
91 Když si budete jistí, že už máte všechny, pokračujte tak, že si od zařízení nakreslíte blokové schéma.
92 </p>
1922 kaklik 93 <p>
94 <a href="thermometer.cs.png"
95 title="Blokové schéma příkladu teploměru">
96 <img width="687" height="163" src="thermometer.cs.png"
97 alt="Vyrobený plošný spoj"></a>
98 </p>
1920 kaklik 99  
1922 kaklik 100  
1920 kaklik 101 <h3> Výběr modulů </h3>
102 <p>
1921 kaklik 103 Z blokového schéma tedy vidím, že hledám modul mikroprocesoru, LCD, napájení a snímače teploty. Projdu tedy
1920 kaklik 104 <a href="/Server/GenIndex/GenIndex.php?lang=cs&path=/Modules" title="výpis modulů">seznam modulů</a> a podívám se, jestli již
105 neexistuje něco se mnou požadovanou funkcí.
106 </p>
107  
1921 kaklik 108 <p>
109 Vidím, že se zobrazením problém není. Mohu například použít <a href="/Modules/HumanInterfaces/LCD2L4P02A/DOC/HTML/LCD2L4P02A.cs.html"
110 title="výpis modulů">LCD2L4P02A</a>. Pro měření teploty mi sice žádný z modulů se senzory nevyhovuje, ale na
111 <a href="http://wiki.mlab.cz/" title="MLAB wiki">wiki</a> najdu, že měření teploty lze snadno realizovat připojením
112 <a href="http://wiki.mlab.cz/doku.php?id=cs:wire_sensors" title="MLAB wiki">vhodného čidla</a> přímo na modul mikroprocesoru.
113 Co se týká výběru samotného mikroprocesoru, je zde výběr již mnohem širší.
114 </p>
115  
1920 kaklik 116 <h2> Mikroprocesory </h2>
117 <p>
118 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
119 věnovat.
120 </p>
121  
122 <p>
123 Momentálně ve stavebnici existují tři rodiny mikroprocesorů AVR (Atmel), PIC (Microchip) a ARM (ST). Tato situace je důsledkem prostého
124 faktu, že tyto typy mikroprocesorů jsou jednoznačně nejpoužívanější.
125 </p>
126  
1927 kaklik 127 <h3> AVR </h3>
1920 kaklik 128 <p>
129 Jde o velmi rozšířenou platformu zvláště mezi klasickými bastlíři, jelikož její hlavní vývojové prostředí (AVRStudio) je
1927 kaklik 130 dostupné zdarma přímo na stránkách výrobce <a href="http://www.atmel.com/" title="Web Atmelu">ATMEL</a>. Jde o klasického zástupce mikroprocesorové architektury
1920 kaklik 131 <a href="http://cs.wikipedia.org/wiki/RISC" title="Wiki RISC">RISC</a> Mezi obecné vlastnosti těchto mikroprocesorů patří schopnost
132 přímo řešit matematické
133 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
134 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
135 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
136 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.
137 </p>
138  
139 <h3> PIC </h3>
140 <p>
141 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ě
142 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í,
143 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
144 nástrojů, jakými je například CCS C compiler. Který má v sobě automaticky zabudovanou i širokou paletu knihoven pro nejrůznější
145 periferie. Volnou alternativou je prostředí MPLAB udržované přímo výrobcem Microchip.
146 </p>
147  
148 <h3> ARM </h3>
149 <p>
150 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
151 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).
152 Jejich vývojové prostředí je tak na mezi úrovní AVR a PIC existují tedy relativně kvalitní knihovny, avšak programovací
153 prostředí (i komerční) téměř výhradně používají volný kompilátor GNU gcc.
154 </p>
155  
1921 kaklik 156 <h2> Propojení a programování </h2>
1929 kaklik 157 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 PIC16F887 v modulu
1922 kaklik 158 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
159 sníženou cenu.
1920 kaklik 160  
1922 kaklik 161 <h2> Publikujte </h2>
162 <p>
1926 kaklik 163 Posledním důležitým krokem je se o novou konstrukci podělit s ostatními.
1922 kaklik 164 </p>
1921 kaklik 165  
1922 kaklik 166  
1920 kaklik 167 </div>
168  
169 <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
170 <!-- ============== PATIČKA ============== -->
171 <div class="Footer">
172 <script type="text/javascript">
173 <!--
174 SetRelativePath("../../../../../");
175 DrawFooter();
176 // -->
177 </script>
178 <noscript>
179 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
180 </noscript>
181 </div>
182 <!-- AUTOINCLUDE END -->
183  
184 </body>
185 </html>