1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
2 |
<html> |
2 |
<html> |
3 |
<head> |
3 |
<head> |
4 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
4 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
5 |
<title> Nástroje </title> |
5 |
<title> Průvodce začátečníka </title> |
6 |
<meta name="keywords" content="stavebnice MLAB používané nástroje"> |
6 |
<meta name="keywords" content="stavebnice MLAB používané nástroje"> |
7 |
<meta name="description" content="Projekt 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 --> |
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"> |
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"> |
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"> |
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> |
12 |
<script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script> |
13 |
<!-- AUTOINCLUDE END --> |
13 |
<!-- AUTOINCLUDE END --> |
14 |
</head> |
14 |
</head> |
15 |
|
15 |
|
16 |
<body lang="cs"> |
16 |
<body lang="cs"> |
17 |
|
17 |
|
18 |
<!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE --> |
18 |
<!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE --> |
19 |
<!-- ============== HLAVICKA ============== --> |
19 |
<!-- ============== HLAVICKA ============== --> |
20 |
<div class="Header"> |
20 |
<div class="Header"> |
21 |
<script type="text/javascript"> |
21 |
<script type="text/javascript"> |
22 |
<!-- |
22 |
<!-- |
23 |
SetRelativePath("../../../../../"); |
23 |
SetRelativePath("../../../../../"); |
24 |
DrawHeader(); |
24 |
DrawHeader(); |
25 |
// --> |
25 |
// --> |
26 |
</script> |
26 |
</script> |
27 |
<noscript> |
27 |
<noscript> |
28 |
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> |
28 |
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> |
29 |
</noscript> |
29 |
</noscript> |
30 |
</div> |
30 |
</div> |
31 |
<!-- AUTOINCLUDE END --> |
31 |
<!-- AUTOINCLUDE END --> |
32 |
|
32 |
|
33 |
<!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE --> |
33 |
<!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE --> |
34 |
<!-- ============== MENU ============== --> |
34 |
<!-- ============== MENU ============== --> |
35 |
<div class="Menu"> |
35 |
<div class="Menu"> |
36 |
<script type="text/javascript"> |
36 |
<script type="text/javascript"> |
37 |
<!-- |
37 |
<!-- |
38 |
SetRelativePath("../../../../../"); |
38 |
SetRelativePath("../../../../../"); |
39 |
DrawMenu(); |
39 |
DrawMenu(); |
40 |
// --> |
40 |
// --> |
41 |
</script> |
41 |
</script> |
42 |
<noscript> |
42 |
<noscript> |
43 |
<p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p> |
43 |
<p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p> |
44 |
</noscript> |
44 |
</noscript> |
45 |
</div> |
45 |
</div> |
46 |
<!-- AUTOINCLUDE END --> |
46 |
<!-- AUTOINCLUDE END --> |
47 |
|
47 |
|
48 |
<!-- ============== TEXT ============== --> |
48 |
<!-- ============== TEXT ============== --> |
49 |
<div class="Text"> |
49 |
<div class="Text"> |
50 |
<p class="Title"> |
50 |
<p class="Title"> |
51 |
Průvoce pro začátečníky - konstruktéry uživatele |
51 |
Průvoce pro začátečníky - konstruktéry uživatele |
52 |
</p> |
52 |
</p> |
53 |
<p class=Autor> |
53 |
<p class=Autor> |
54 |
Jakub Kákona |
54 |
Jakub Kákona |
55 |
</p> |
55 |
</p> |
56 |
<p class="Subtitle"> |
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 |
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ů. |
58 |
konstrukcí z jeho modulů. |
59 |
</p> |
59 |
</p> |
60 |
|
60 |
|
61 |
<h1> Účel systému </h1> |
61 |
<h1> Účel systému </h1> |
62 |
|
62 |
|
63 |
<p> |
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 |
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. |
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ň |
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ů. |
67 |
jeho design je takový, aby umožňoval využití co největšího množství jiných modulů. |
68 |
</p> |
68 |
</p> |
69 |
|
69 |
|
70 |
|
70 |
|
71 |
<h2> Konstrukce zařízení </h2> |
71 |
<h2> Konstrukce zařízení </h2> |
72 |
|
72 |
|
73 |
<h3> Koncept </h3> |
73 |
<h3> Koncept </h3> |
74 |
|
74 |
|
75 |
<p> |
75 |
<p> |
76 |
Pro použití stavebnice je tedy potřeba vědět, jaké moduly vybrat. Na to lze uplatnit poměrně jednoduchý |
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. |
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> |
78 |
</p> |
79 |
|
79 |
|
80 |
<p> |
80 |
<p> |
81 |
<i>Příklad</i> |
81 |
<i>Příklad</i> |
82 |
Mám úžasný nápad, udělat si vlastní elektronický teploměr. Vím, že chci: |
82 |
Potřebuji udělat vlastní elektronický teploměr. Vím, že chci: |
83 |
<> měři |
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> |
84 |
</p> |
88 |
</p> |
85 |
|
89 |
|
86 |
<p> |
90 |
<p> |
87 |
Když si budete jistí, že už máte všechny, pokračujte tak, že si od zařízení nakreslíte blokové schéma. |
91 |
Když si budete jistí, že už máte všechny, pokračujte tak, že si od zařízení nakreslíte blokové schéma. |
88 |
</p> |
92 |
</p> |
89 |
|
93 |
|
90 |
<h3> Výběr modulů </h3> |
94 |
<h3> Výběr modulů </h3> |
91 |
<p> |
95 |
<p> |
92 |
Z blokového schéma tedy vidím, že hledám modul mikroprocesoru, LCD, napájení a snímače teploty. Projdu tedy se |
96 |
Z blokového schéma tedy vidím, že hledám modul mikroprocesoru, LCD, napájení a snímače teploty. Projdu tedy |
93 |
<a href="/Server/GenIndex/GenIndex.php?lang=cs&path=/Modules" title="výpis modulů">seznam modulů</a> a podívám se, jestli již |
97 |
<a href="/Server/GenIndex/GenIndex.php?lang=cs&path=/Modules" title="výpis modulů">seznam modulů</a> a podívám se, jestli již |
94 |
neexistuje něco se mnou požadovanou funkcí. |
98 |
neexistuje něco se mnou požadovanou funkcí. |
95 |
</p> |
99 |
</p> |
96 |
|
100 |
|
- |
|
101 |
<p> |
- |
|
102 |
Vidím, že se zobrazením problém není. Mohu například použít <a href="/Modules/HumanInterfaces/LCD2L4P02A/DOC/HTML/LCD2L4P02A.cs.html" |
- |
|
103 |
title="výpis modulů">LCD2L4P02A</a>. Pro měření teploty mi sice žádný z modulů se senzory nevyhovuje, ale na |
- |
|
104 |
<a href="http://wiki.mlab.cz/" title="MLAB wiki">wiki</a> najdu, že měření teploty lze snadno realizovat připojením |
- |
|
105 |
<a href="http://wiki.mlab.cz/doku.php?id=cs:wire_sensors" title="MLAB wiki">vhodného čidla</a> přímo na modul mikroprocesoru. |
- |
|
106 |
Co se týká výběru samotného mikroprocesoru, je zde výběr již mnohem širší. |
- |
|
107 |
</p> |
- |
|
108 |
|
97 |
<h2> Mikroprocesory </h2> |
109 |
<h2> Mikroprocesory </h2> |
98 |
<p> |
110 |
<p> |
99 |
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 |
111 |
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 |
100 |
věnovat. |
112 |
věnovat. |
101 |
</p> |
113 |
</p> |
102 |
|
114 |
|
103 |
<p> |
115 |
<p> |
104 |
Momentálně ve stavebnici existují tři rodiny mikroprocesorů AVR (Atmel), PIC (Microchip) a ARM (ST). Tato situace je důsledkem prostého |
116 |
Momentálně ve stavebnici existují tři rodiny mikroprocesorů AVR (Atmel), PIC (Microchip) a ARM (ST). Tato situace je důsledkem prostého |
105 |
faktu, že tyto typy mikroprocesorů jsou jednoznačně nejpoužívanější. |
117 |
faktu, že tyto typy mikroprocesorů jsou jednoznačně nejpoužívanější. |
106 |
</p> |
118 |
</p> |
107 |
|
119 |
|
108 |
<h3> AVR </h3> |
120 |
<h3> AVR </h3> |
109 |
<p> |
121 |
<p> |
110 |
Jde o velmi rozšířenou platformu zvláště mezi klasickými bastlíři, jelikož její hlavní vývojové prostředí (AVRStudio) je |
122 |
Jde o velmi rozšířenou platformu zvláště mezi klasickými bastlíři, jelikož její hlavní vývojové prostředí (AVRStudio) je |
111 |
dostupné zdarma přímo na stránkách výrobce ATMEL. Jde o klasického zástupce mikroprocesorové architektury |
123 |
dostupné zdarma přímo na stránkách výrobce ATMEL. Jde o klasického zástupce mikroprocesorové architektury |
112 |
<a href="http://cs.wikipedia.org/wiki/RISC" title="Wiki RISC">RISC</a> Mezi obecné vlastnosti těchto mikroprocesorů patří schopnost |
124 |
<a href="http://cs.wikipedia.org/wiki/RISC" title="Wiki RISC">RISC</a> Mezi obecné vlastnosti těchto mikroprocesorů patří schopnost |
113 |
přímo řešit matematické |
125 |
přímo řešit matematické |
114 |
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 |
126 |
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 |
115 |
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 |
127 |
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 |
116 |
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 |
128 |
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 |
117 |
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. |
129 |
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. |
118 |
</p> |
130 |
</p> |
119 |
|
131 |
|
120 |
<h3> PIC </h3> |
132 |
<h3> PIC </h3> |
121 |
<p> |
133 |
<p> |
122 |
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ě |
134 |
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ě |
123 |
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í, |
135 |
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í, |
124 |
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 |
136 |
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 |
125 |
nástrojů, jakými je například CCS C compiler. Který má v sobě automaticky zabudovanou i širokou paletu knihoven pro nejrůznější |
137 |
nástrojů, jakými je například CCS C compiler. Který má v sobě automaticky zabudovanou i širokou paletu knihoven pro nejrůznější |
126 |
periferie. Volnou alternativou je prostředí MPLAB udržované přímo výrobcem Microchip. |
138 |
periferie. Volnou alternativou je prostředí MPLAB udržované přímo výrobcem Microchip. |
127 |
</p> |
139 |
</p> |
128 |
|
140 |
|
129 |
<h3> ARM </h3> |
141 |
<h3> ARM </h3> |
130 |
<p> |
142 |
<p> |
131 |
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 |
143 |
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 |
132 |
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). |
144 |
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). |
133 |
Jejich vývojové prostředí je tak na mezi úrovní AVR a PIC existují tedy relativně kvalitní knihovny, avšak programovací |
145 |
Jejich vývojové prostředí je tak na mezi úrovní AVR a PIC existují tedy relativně kvalitní knihovny, avšak programovací |
134 |
prostředí (i komerční) téměř výhradně používají volný kompilátor GNU gcc. |
146 |
prostředí (i komerční) téměř výhradně používají volný kompilátor GNU gcc. |
135 |
</p> |
147 |
</p> |
136 |
|
148 |
|
- |
|
149 |
<h2> Propojení a programování </h2> |
- |
|
150 |
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 |
- |
|
151 |
PIC16F87xTQ4401B. Firmware naprogramuji v prostředí CCS C, které jsem si jako student s nedostatkem času koupil za sníženou cenu. |
- |
|
152 |
|
137 |
|
153 |
|
138 |
</div> |
154 |
</div> |
139 |
|
155 |
|
140 |
<!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --> |
156 |
<!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --> |
141 |
<!-- ============== PATIČKA ============== --> |
157 |
<!-- ============== PATIČKA ============== --> |
142 |
<div class="Footer"> |
158 |
<div class="Footer"> |
143 |
<script type="text/javascript"> |
159 |
<script type="text/javascript"> |
144 |
<!-- |
160 |
<!-- |
145 |
SetRelativePath("../../../../../"); |
161 |
SetRelativePath("../../../../../"); |
146 |
DrawFooter(); |
162 |
DrawFooter(); |
147 |
// --> |
163 |
// --> |
148 |
</script> |
164 |
</script> |
149 |
<noscript> |
165 |
<noscript> |
150 |
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> |
166 |
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> |
151 |
</noscript> |
167 |
</noscript> |
152 |
</div> |
168 |
</div> |
153 |
<!-- AUTOINCLUDE END --> |
169 |
<!-- AUTOINCLUDE END --> |
154 |
|
170 |
|
155 |
</body> |
171 |
</body> |
156 |
</html> |
172 |
</html> |