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> Průvodce začátečníka </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 |
Potřebuji udělat vlastní elektronický teploměr. Vím, že chci: |
82 |
Potřebuji udělat vlastní elektronický teploměr. Vím, že chci: |
83 |
<ul> |
83 |
<ul> |
84 |
<li>Měřit teplotu vzduchu v místnosti - v laboratoři</li> |
84 |
<li>Měřit teplotu vzduchu v místnosti - v laboratoři</li> |
85 |
<li>Naměřenou teplotu budu zobrazovat na display</li> |
85 |
<li>Naměřenou teplotu budu zobrazovat na display</li> |
86 |
<li>Zařízení budu napájet z baterií</li> |
86 |
<li>Zařízení budu napájet z baterií</li> |
87 |
</ul> |
87 |
</ul> |
88 |
</p> |
88 |
</p> |
89 |
|
89 |
|
90 |
<p> |
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. |
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> |
92 |
</p> |
93 |
<p> |
93 |
<p> |
94 |
<a href="thermometer.cs.png" |
94 |
<a href="thermometer.cs.png" |
95 |
title="Blokové schéma příkladu teploměru"> |
95 |
title="Blokové schéma příkladu teploměru"> |
96 |
<img width="687" height="163" src="thermometer.cs.png" |
96 |
<img width="687" height="163" src="thermometer.cs.png" |
97 |
alt="Vyrobený plošný spoj"></a> |
97 |
alt="Vyrobený plošný spoj"></a> |
98 |
</p> |
98 |
</p> |
99 |
|
99 |
|
100 |
|
100 |
|
101 |
<h3> Výběr modulů </h3> |
101 |
<h3> Výběr modulů </h3> |
102 |
<p> |
102 |
<p> |
103 |
Z blokového schéma tedy vidím, že hledám modul mikroprocesoru, LCD, napájení a snímače teploty. Projdu tedy |
103 |
Z blokového schéma tedy vidím, že hledám modul mikroprocesoru, LCD, napájení a snímače teploty. Projdu tedy |
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ž |
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í. |
105 |
neexistuje něco se mnou požadovanou funkcí. |
106 |
</p> |
106 |
</p> |
107 |
|
107 |
|
108 |
<p> |
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" |
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 |
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 |
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. |
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ší. |
113 |
Co se týká výběru samotného mikroprocesoru, je zde výběr již mnohem širší. |
114 |
</p> |
114 |
</p> |
115 |
|
115 |
|
116 |
<h2> Mikroprocesory </h2> |
116 |
<h2> Mikroprocesory </h2> |
117 |
<p> |
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 |
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. |
119 |
věnovat. |
120 |
</p> |
120 |
</p> |
121 |
|
121 |
|
122 |
<p> |
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 |
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ší. |
124 |
faktu, že tyto typy mikroprocesorů jsou jednoznačně nejpoužívanější. |
125 |
</p> |
125 |
</p> |
126 |
|
126 |
|
127 |
<h3> AVR </h3> |
127 |
<h3> AVR </h3> |
128 |
<p> |
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 |
129 |
Jde o velmi rozšířenou platformu zvláště mezi klasickými bastlíři, jelikož její hlavní vývojové prostředí (AVRStudio) je |
130 |
dostupné zdarma přímo na stránkách výrobce ATMEL. Jde o klasického zástupce mikroprocesorové architektury |
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 |
131 |
<a href="http://cs.wikipedia.org/wiki/RISC" title="Wiki RISC">RISC</a> Mezi obecné vlastnosti těchto mikroprocesorů patří schopnost |
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é |
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 |
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 |
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 |
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. |
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> |
137 |
</p> |
138 |
|
138 |
|
139 |
<h3> PIC </h3> |
139 |
<h3> PIC </h3> |
140 |
<p> |
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ě |
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í, |
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 |
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ší |
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. |
145 |
periferie. Volnou alternativou je prostředí MPLAB udržované přímo výrobcem Microchip. |
146 |
</p> |
146 |
</p> |
147 |
|
147 |
|
148 |
<h3> ARM </h3> |
148 |
<h3> ARM </h3> |
149 |
<p> |
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 |
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). |
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í |
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. |
153 |
prostředí (i komerční) téměř výhradně používají volný kompilátor GNU gcc. |
154 |
</p> |
154 |
</p> |
155 |
|
155 |
|
156 |
<h2> Propojení a programování </h2> |
156 |
<h2> Propojení a programování </h2> |
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 PIC16F877 v modulu |
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 PIC16F877 v modulu |
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 |
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. |
159 |
sníženou cenu. |
160 |
|
160 |
|
161 |
<h2> Publikujte </h2> |
161 |
<h2> Publikujte </h2> |
162 |
<p> |
162 |
<p> |
163 |
Posledním důležitým krokem je se o novou konstrukci podělit s ostatními. |
163 |
Posledním důležitým krokem je se o novou konstrukci podělit s ostatními. |
164 |
</p> |
164 |
</p> |
165 |
|
165 |
|
166 |
|
166 |
|
167 |
</div> |
167 |
</div> |
168 |
|
168 |
|
169 |
<!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --> |
169 |
<!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --> |
170 |
<!-- ============== PATIČKA ============== --> |
170 |
<!-- ============== PATIČKA ============== --> |
171 |
<div class="Footer"> |
171 |
<div class="Footer"> |
172 |
<script type="text/javascript"> |
172 |
<script type="text/javascript"> |
173 |
<!-- |
173 |
<!-- |
174 |
SetRelativePath("../../../../../"); |
174 |
SetRelativePath("../../../../../"); |
175 |
DrawFooter(); |
175 |
DrawFooter(); |
176 |
// --> |
176 |
// --> |
177 |
</script> |
177 |
</script> |
178 |
<noscript> |
178 |
<noscript> |
179 |
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> |
179 |
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> |
180 |
</noscript> |
180 |
</noscript> |
181 |
</div> |
181 |
</div> |
182 |
<!-- AUTOINCLUDE END --> |
182 |
<!-- AUTOINCLUDE END --> |
183 |
|
183 |
|
184 |
</body> |
184 |
</body> |
185 |
</html> |
185 |
</html> |