Systémy řízení v průmyslu. Study Support. Jiří David, Pavel Švec
|
|
- Vít Zeman
- před 6 lety
- Počet zobrazení:
Transkript
1 VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA METALURGIE A MATERIÁLOVÉHO INŽENÝRSTVÍ Systémy řízení v průmyslu Study Support Jiří David, Pavel Švec Ostrava 2015
2 Title:Systémy řízení v průmyslu Code: Author: Jiří David, Pavel Švec Edition: first, 2015 Number of pages: 67 Academic materials for the Economics and Management of Industrial Systems study programme at the Faculty of Metallurgy and Materials Engineering. Proofreading has not been performed. Execution: VŠB - Technical University of Ostrava
3 OBSAH STRUKTURA KAPITOL ÚVOD DO ALGORITMIZACE A ZÁKLADNÍ STRUKTURY Úvod Vlastnosti algoritmů Metody návrhu algoritmu Dělení programovacích jazyků Algoritmizace Vývojové diagramy Základní algoritmické konstrukce JEDNODESKOVÉ POČÍTAČE ARDUINO Charakteristika Hardware STRUKTURA PROGRAMU RASPBERRY PI Základní popis Základní parametry Raspberry Pi Rozhraní GPIO Příslušenství - minimum potřebné ke spuštění OPERAČNÍ SOFTWARE PRO RASPBERRY PI Operační systémy a programovací prostředí Raspberry Pi Raspbian PERIFERIE RASPBERRY PI Raspberry Pi Camera Board PiFace Control & Display Raspberry Wi-Pi ZAČLENĚNÍ RASPBERRY PI DO PRŮMYSLU Regulace teploty FTP server napájený solární energií Otevírání elektronických dveří Kamerový systém Bezdrátové ovládání Měření počasí a kvality ovzduší Měření charakteristik...64
4 POKYNY KE STUDIU Pro předmět Systémy řízení v průmyslu ve 4. semestru navazujícího magisterského studijního oboru Automatizace a počítačová technika v průmyslových technologiích jste obdrželi studijní materiály pro kombinované studium. PREREKVIZITY bez prerekvizit. CÍL PŘEDMĚTU A VÝSTUPY Z UČENÍ Cílem předmětu je seznámit posluchače se základy algoritmizace, programování a aplikace jednodeskových počítačů Arduino a Raspberry Pi v oblasti řízení a regulace průmyslových procesů. PO PROSTUDOVÁNÍ PŘEDMĚTU BY MĚL STUDENT BÝT SCHOPEN: Výstupy znalostí: Student bude umět charakterizovat algoritmus a jeho vlastnosti a struktury. Student se bude schopen orientovat v jednodeskových počítačích. Student získá ucelený přehled o jednodeskovém počítači Arduino a Raspberry Pi. Výstupy dovedností: Student bude umět analyzovat vývojové diagramy a základní programové struktury. Student bude schopen využít jednodeskové počítače pro řízení aplikací. Student bude umět aplikovat jednodeskové počítače v oblasti řízení. Student se bude orientovat v aplikacích s jednodeskovými počítači. PŘI STUDIU KAŽDÉ KAPITOLY DOPORUČUJEME NÁSLEDUJÍCÍ POSTUP: Přečíst porozumět umět vysvětlit aplikovat na oblast studijního oboru. ZPŮSOB KOMUNIKACE S VYUČUJÍCÍMI: Na společných tutoriálech nebo individuální konzultace po předchozí domluvě em či telefonicky. V rámci předmětu bude řešen semestrální projekt na zadané téma. KONZULTACE BUDOU PROBÍHAT S GARANTEM PŘEDMĚTU ČI PŘEDNÁŠEJÍCÍM: na společných tutoriálech, individuální konzultace po předchozí domluvě em či telefonicky. Garant předmětu: doc. Ing. Jiří David, Ph.D. Přednášející: doc. Ing. Jiří David, Ph.D., Ing. Pavel Švec, Ph.D. Kontakty: tel.: , j.david@vsb.cz, pavel.svec@vsb.cz
5 STRUKTURA KAPITOL Čas ke studiu Cíl Výklad Příklad z praxe, Řešený příklad Animace, Video Shrnutí pojmů Otázky Použitá literatura Klíč k řešení
6 1 Úvod do algoritmizace a základní struktury 6 hodin Čas ke studiu Cíl Základní pojmy v oblasti algoritmizace, vlastnosti algoritmů, vývojové diagramy, programování a programovací jazyky. Výklad 1.1 Úvod Počítačové programy (neboli software) umožňují počítačům, aby přestaly být pouhou stavebnicí elektronických a jiných součástek a staly se pomocníkem v mnoha lidských činnostech. Uživatelé počítače obvykle neovládají počítač přímo, ale využívají k tomu různé programy. Tento software musí být vytvořen jinými lidmi, ale ačkoli jsou programy určeny pro různé oblasti, existují společné základy, které se při tvorbě programů obvykle využívají. Právě na tyto základy je zaměřen tento kurz. Tvorba programů je činností, které se většinou věnují vysoce specializovaní jednotlivci v rámci různých softwarových společností. Po absolvování výuky základů algoritmizace se proto pravděpodobně nestanete skvělými tvůrci programů, pokud však pochopíte principy, bude cíl výuky naplněn. V tom případě totiž budete mít předpoklady pro případné další studium této oblasti a ani základní pojmy programování vám již nebudou cizí. Dnes již počítače pronikly téměř do všech oblastí lidské činnosti, používají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá algoritmus (program) a jeho tvorba algoritmizace (programování). Algoritmus je přesný popis, popisující určitý proces, který vede od měnitelných vstupních údajů k požadovaným výsledkům. Jinými slovy algoritmus je jednoznačný a přesný popis řešení problému, kterým lze vyřešit daný typ úlohy. Pojem algoritmu se nejčastěji objevuje při programování, kdy se jím myslí teoretický princip řešení problému (oproti přesnému zápisu v konkrétním programovacím jazyce). Obecně se ale algoritmus může objevit v jakémkoli jiném vědeckém odvětví. Jako jistý druh algoritmu se může chápat i např. kuchařský recept. Historie Algoritmy vznikaly už dávno před zkonstruováním prvních počítačů. Slovo algoritmus vzniklo ze jména perského matematika, který žil v 9. století a jmenoval se Mohammed al-
7 Khowarizmí (v latinském přepise Algoritmus). Zabýval se především pravidly pro aritmetické operace s čísly. Například Eukleidův algoritmus pro výpočet největšího společného dělitele dvou přirozených čísel pochází už z 4. až 3. století před naším letopočtem. 1.2 Vlastnosti algoritmů Každý algoritmus musí mít tyto vlastnosti: Konečnost (finitonost) - Každý algoritmus musí skončit v konečném počtu kroků. Tento počet kroků může být libovolně velký (podle rozsahu a hodnot vstupních údajů), ale pro každý jednotlivý vstup musí být konečný. Postupy, které tuto podmínku nesplňují, se mohou nazývat výpočetní metody. Speciálním příkladem nekonečné výpočetní metody je reaktivní proces, který průběžně reaguje s okolním prostředím. Někteří autoři však mezi algoritmy zahrnují i takovéto postupy. Obecnost (hromadnost, masovost, univerzálnost) - Algoritmus neřeší jeden konkrétní problém, ale obecnou třídu obdobných problémů, má širokou množinu možných vstupů. Determinovanost - Každý krok algoritmu musí být jednoznačně a přesně definován; v každé situaci musí být naprosto zřejmé, co a jak se má provést, jak má provádění algoritmu pokračovat, takže pro stejné vstupy dostaneme pokaždé stejné výsledky. Protože běžný jazyk obvykle neposkytuje naprostou přesnost a jednoznačnost vyjadřování, byly pro zápis algoritmů navrženy programovací jazyky, ve kterých má každý příkaz jasně definovaný význam. Vyjádření výpočetní metody v programovacím jazyce se nazývá program. Některé algoritmy ale determinované nejsou, pravděpodobnostní algoritmy v sobě mají zahrnutu náhodu. Výstup (resultativnost) - po konečném počtu kroků dospěje k řešení (vrátí třeba jen chybové hlášení), algoritmus má alespoň jeden výstup, veličinu, která je v požadovaném vztahu k zadaným vstupům, a tím tvoří odpověď na problém, který algoritmus řeší (algoritmus vede od zpracování hodnot k výstupu) Elementárnost - Algoritmus se skládá z konečného počtu jednoduchých (elementárních) kroků. Opakovatelnost: algoritmus vede vždy ke stejným výsledkům, jsou-li zadána stejná data Správnost: výsledek, který vznikne použitím algoritmu, musí být správný Algoritmus nemusí nutně vyžadovat vstupní údaje a vracet výstupní. Některé problémy lze řešit více způsoby různými algoritmy, které se mohou svým postupem značně lišit, ale vždy musí vést ke stejným výsledkům. Naší snahou je vybrat pro řešení problému co nejefektivnější algoritmus, který řeší problém v co nejkratším čase, je přehledný a srozumitelný. V praxi jsou proto předmětem zájmu hlavně takové algoritmy, které jsou v nějakém smyslu kvalitní. Takové algoritmy splňují různá kritéria, měřená např. počtem kroků potřebných pro běh algoritmu, jednoduchost, efektivitu či eleganci. Problematikou efektivity algoritmů, tzn. metodami, jak z několika známých algoritmů řešících konkrétní problém vybrat ten vhodný, se zabývají odvětví informatiky nazývané algoritmická analýza a teorie složitosti. Použití:
8 Účel: při konstrukci či analýze algoritmů pro dokumentaci, pro zachycení myšlenky názornost a přehlednost pro pochopení při algoritmizaci jednoznačný převod z textu programu do vývojového diagramu a naopak spíše nevhodné při návrhu celého (složitějšího) programu Vstupní údaje informace, ze kterých při řešení úlohy vycházíme, musí splňovat vstupní podmínku Výstupní údaje nově získané informace, které jsou výsledkem realizace algoritmu, musí splňovat výstupní podmínku 1.3 Metody návrhu algoritmu Algoritmus se navrhuje několika možnými způsoby: Shora dolů postup řešení rozkládáme na jednodušší operace, až dospějeme k elementárním krokům. Zdola nahoru z elementárních kroků vytváříme prostředky, které nakonec umožní zvládnout požadovaný problém. Kombinace obou obvyklý postup shora dolů doplníme "částečným krokem" zdola nahoru tím, že se například použijí knihovny funkcí, vyšší programovací jazyk nebo systém pro vytváření programů (CASE). Algoritmus lze vyjádřit: slovně: jednotlivé kroky postupu jsou vyjádřeny větami v přirozeném jazyce graficky: jednotlivé kroky jsou popsány grafickými značkami se slovním popisem, například pomocí tzv. vývojových diagramů matematicky: soustavou rovnic, vztahem mezi veličinami programem: jednotlivé kroky jsou popsány instrukcemi určitého procesoru Programování = zakódování algoritmu do zvoleného programovacího jazyka Algoritmizace = proces vytváření a sestavování algoritmů Efektivnost algoritmu - danou úlohu řeší více algoritmů, vybíráme efektivnějsší podle určitých kritérií: časové: úloha vyřešena v kratším čase (uvažujeme strojový čas tj. počet instrukcí procesoru) paměťové: spotřeba paměti přehlednost, srozumitelnost: (důležité pro další vývoj a úpravy)
9 Programovací jazyk = umělý jazyk jenž se používá pro definování sekvence programových příkazů, které lze zpracovat na počítači. Algoritmus má obecnou povahu, zatímco implementace algoritmu v určitém programovacím jazyku je ryze konkrétní. Počítačový program (dále jen program) je z hlediska informatiky popis postupu operací, které realizují zadanou úlohu. Zápis algoritmu v některém z programovacích jazyků nazýváme program. Program zpravidla vytváří (zapisuje) programátor. 1.4 Dělení programovacích jazyků Nižší programovací jazyky jsou jazyky primitivní, jejichž instrukce odpovídají příkazům procesoru. To znamená, že procesor bude vykonávat ty instrukce, které programátor napíše. Jsou závislé na svém procesoru a nepřenositelné na jiný procesor. V praxi to vypadá tak, že programátor musí vypisovat vše. Pak i jednoduchý program má neúměrně složitý zdrojový kód. Výhodou je, že programátor má takto přístup i k funkcím počítače, které by měl ve vyšším programovacím jazyce nedosažitelné. Lépe tedy využije jeho schopnosti. Patří sem: strojový kód (to, co uvidíte, když otevřete obsah exe souboru v textovém editoru). Strojový kód = Soubor číslicových instrukcí, které je procesor počítače schopen rozpoznat a uskutečnit. jazyk symbolických adres (Assembler) je velice blízký strojovému kódu Vyšší programovací jazyky jsou podstatně srozumitelnější, jejich struktura je logická, nejsou závislé na strojových principech počítače. Do strojového kódu se převádějí kompilátorem (případně se rovnou spouštějí interpretrem). V praxi je vyšší programovací jazyk vše, co není Assembler (například jazyk C++, Pascal, Basic, Delphi..) Programovací jazyky dále dělíme na : kompilované interpretované Kompilované jazyky
10 jsou nejdříve celé přeloženy a až potom mohou být spuštěny. Jsou rychlejší, mají vyšší nároky na formální správnost kódu. Překládají se kompilátorem, výsledkem překladu je (většinou).exe soubor. Patří sem většina klasických programovacích jazyků. Teoreticky může mít jeden programovací jazyk verzi jak kompilovanou. interpretovanou, tak i Interpretované jazyky jsou překládány až za běhu programu. Jsou pomalejší, ale nemají tak velké požadavky. Překládají se interpretem, ten instrukce zároveň při překladu provádí. Hlavní nevýhodou těchto jazyků je, že se musejí vždy spouštět v interpretu. Do této skupiny patří například Basic, skriptovací jazyky (PHP, Python, Perl ). Další způsoby dělení programovacích jazyků Programovací jazyky můžeme dále dělit na jazyky, které podporují: programování strukturované (např. Pascal) objektově orientované programování (OOP) např. Visual Basic, Delphi 1.5 Algoritmizace Algoritmizace je postup při tvorbě programu pro počítač, kterým lze prostřednictvím algoritmu řešit nějaký problém. Algoritmizaci lze rozdělit do několika etap: 1. Formulace problému 2. Analýza úlohy 3. Vytvoření algoritmu 4. Sestavení programu 5. Odladění programu Formulace problému V této etapě je třeba přesně formulovat požadavky, určit výchozí hodnoty, požadované výsledky, jejich formu a přesnost řešení. Analýza úlohy Při analýze úlohy si ověříme, zda je úloha řešitelná a uděláme si první představu o jejím řešení. Dále zjistíme, zda výchozí hodnoty jsou k řešení postačující a zda má úloha více řešení. Podle charakteru úlohy vybereme nejvhodnější řešení. Vytvoření algoritmu úlohy
11 Sestavíme jednoznačný sled jednotlivých operací, které je třeba provést, aby byla úloha správně vyřešena. Algoritmus přesně popisuje postup zpracování daného úkolu, nedává však odpověď na daný problém, ale pouze postup, jak ji získat. Sestavení programu Na základě algoritmu řešené úlohy sestavíme program (zdrojový text) v konkrétním programovacím jazyce. Ze zdrojového textu se pomocí překladače do strojového kódu vytvoří spustitelný program. Dá se tedy říci, že dobře provedená analýza úlohy a algoritmizace daného problému je základním předpokladem sestavení programu pro počítač. Odladění programu Cílem odladění je odstranění chyb z programu. Nejčastější chyby jsou chyby v zápise, tzv. syntaktické - ty odhalí překladač. Závažnější jsou logické chyby, vyplývající z nesprávně navrženého algoritmu, nebo chyby, vzniklé špatným předpokladem v etapě formulace nebo analýzy úlohy - ty se projeví nesprávnou činností programu nebo špatnými výsledky - při odstraňování těchto chyb může pomoci ladící program (debugger) umožňující sledování aktuálního stavu proměnných a krokování.teprve po odstranění všech druhů chyb můžeme program použít k praktickému řešení úloh. Skutečný postup při algoritmizaci v praxi Proces psaní příkazů v programovacím jazyce se nazývá programování. Aby programování skutečně vedlo k požadovanému výsledku, podílí se na vytvoření programu obvykle více osob. V prvé řadě je třeba přesně určit, co bude program umět o tuto činnost se obvykle stará analytik. Analytik poté vypracuje určité zadání (nejprve zjistí a popíše řešený problém a poté naznačí jeho řešení), které předá vývojáři (označovanému také jako programátor). Vývojář podle popisu vytvoří program (přepíše řešení do programovacího jazyka). Zápis programu v programovacím jazyce se nazývá zdrojový kód. Poté je spuštěn program, který dokáže přeložit tento zdrojový kód do jazyka počítače, a vznikne tak spustitelný program. Prvotní otestování programu se nazývá jeho ladění. Vytvořením spustitelného programu práce ani zdaleka nekončí. Tento program dostane tester, který mu zadává různá data a zkoumá chování programu. Pokud objeví chybu, pak ji předá zpět programátorovi k dořešení. Poté je program předán uživatelům. V průběhu práce s programem může docházet k určitým požadavkům na změny například v důsledku nakoupení nového počítače nebo pro vytvoření další funkce, kterou původní program neobsahoval. Stejně tak mohou uživatelé chtít, aby jim bylo vysvětleno, jak mají software používat. Této části života programu se říká údržba a podpora. 1.6 Vývojové diagramy Jedním z mnoha způsobů znázornění algoritmů jsou vývojové diagramy. Je to grafické znázornění logické struktury řešeného úkolu.
12 Ve vývojových diagramech se používá několik typů značek, z nichž každé je přiřazen určitý význam. Do těchto značek se vpisují operace nebo skupiny operací, které se mají provést. Používané značky: začátek algoritmu konec algoritmu blok zpracování (do bloku zapisujeme akce, které se mají provést) blok rozhodování (do bloku zapisujeme podmínku) blok vstupu nebo výstupu
13 blok pro cyklus se známým počtem průchodů Spojka (pro rozsáhlé diagramy, rozdělené do několika částí) Pomocí těchto značek se kreslí základní algoritmické konstrukce. 1.7 Základní algoritmické konstrukce Algoritmy lze teoreticky sestavovat libovolně, ale vzhledem k přehlednosti a úmyslně omezeným možnostem programovacích jazyků se musí dodržovat několik zásad: Algoritmus má mít jeden začátek a jeden konec musí být složen pouze ze základních algoritmických konstrukcí Název popis Diagram Slovní vyjádření Zápis v Pascalu Sekvence je posloupnost příkazů, které se postupně provedou Proveď příkazy P1, P2, P3. begin P1; P2; P3; end;
14 Větvení umožňuje rozdělit program do 2 větví podle toho, zda je nebo není splněna podmínka Jestliže platí podmínka P, proveď příkaz P1, jinak proveď příkaz P2. if P then P1 else P2; Větvení s prázdnou akcí umožňuje provést příkaz jenom tehdy, když je splněna podmínka Jestliže platí podmínka P, proveď příkaz P1. if P then P1; Cyklus s podmínkou na začátku Když podmínka není na počátku splněna, cyklus nemusí proběhnout ani jednou. Dokud platí podmínka P, prováděj příkaz P1. while P do P1; Cyklus s podmínkou na konci Tento cyklus musí proběhnout aspoň jednou. Opakuj příkaz P1, až do splnění podmínky P. repeat P1; until P;
15 Cyklus se známým počtem průchodů Cyklus proběhne n krát v obecném případě (pro i od m do n) proběhne (n-m+1) krát pokud m>n tak neproběhne ani jednou. Pro i od 1 do n prováděj příkaz P1. během provádění cyklu řídící proměnná cyklu i postupně nabývá hodnot 1, 2, 3,...,n. for i:=1 to n do P1; Pozn.: Vývojové diagramy cyklů mají jako jediné zpětnou větev. Standartní chybou u opakování s podmínkou bývá cyklus "s podmínkou uprostřed". Zpětná větev musí buď začínat hned za podmínkou, nebo se musí vracet těsně před podmínku. Složené algoritmické konstrukce Jednotlivé základní algoritmické konstrukce lze do sebe vnořovat. Místo jednotlivých příkazů v konstrukcích mohou být celé sekvence příkazů. Begin while P do begin P1; if Q then begin P2; P3; end. end; end; Pozn.: Příkaz cyklu s podmínkou na konci (repeat... until P) má v jazyce Pascal jako jediný výjimku: pokud má provádět sekvenci příkazů, tato nemusí být uzavřena v programových závorkách begin... end.
16 Příklad 1: Řešený příklad Příklad slovního vyjádření algoritmu Algoritmus přechodu křižovatky, řízené semaforem Formulace problému Přejdi na druhou stranu ulice. Analýza úlohy Vstupní údaje: přechod, semafor Výstupní údaje: pozice na druhé straně ulice Analýza: přes přechod se nechodí na červenou Sestavení algoritmu Slovní popis: 1. Dojdi až k semaforu 2. Svítí na semaforu červená? ANO - čekej, vrať se na bod 2 NE - pokračuj bodem 3 3. Přejdi přes přechod Příklad 2. Formulace problému Sestavte algoritmus na součet čísel A,B,C,D a vytisknutí jejich součtu. Analýza úlohy Vstupní údaje: čísla A, B, C, D Výstupní údaje: SOUČET Analýza: SOUČET= A+B+C+D Sestavení algoritmu Slovní popis: 1. Čti A,B,C,D 2. SOUČET= A+B+C+D 3. Piš SOUČET 4. Konec Vývojový diagram:
17 Zápis programu var A,B,C,D,S : integer; begin readln(a,b,c,d); S:=A+B+C+D; writeln(s); end. Příklad 3. Formulace problému Sestavte algoritmus pro výpočet obsahu kruhu. Analýza úlohy Vstupní údaje: poloměr R Výstupní údaje: obsah S Analýza: S= R 2 Sestavení algoritmu Slovní popis: 1. Čti R 2. Je R >0? ANO - jdi na 3. NE - jdi na S= pi*r*r 4. Piš S a jdi na 6 5. Piš Poloměr musí být kladný 6. Konec Vývojový diagram:
18 Zápis programu var R,S : real; begin readln(r); if R>0 then begin S:=pi*R*R; writeln('obsah kruhu je : ',S); end else writeln('poloměr musí být kladný'); end. Příklad 4. Formulace problému Sestavte algoritmus, který určí, kolik ze tří čísel A, B, C je kladných. Analýza úlohy Vstupní údaje: čísla A, B,C Výstupní údaje: počet kladných čísel P_KL Analýza: výchozí počet kladných čísel je nula, je-li kterékoliv z čísel kladné, zvyš počet kladných čísel o jedna Sestavení algoritmu Vývojový diagram:
19 Zápis programu var A,B,C,P_KL : integer; begin readln(a, B, C); P_KL:=0; if A>0 then P_KL:=P_KL+1; if B>0 then P_KL :=P_KL+1; if C>0 then P_KL :=P_KL+1; writeln('počet kladných čísel je : ',P_KL ); end. Příklad 5. Formulace problému Sestavte algoritmus, který určí, kolik z daného počtu čísel je kladných. Analýza úlohy Vstupní údaje: počet čísel POCET, jedno z čísel C Výstupní údaje: počet kladných čísel P_KL Analýza: výchozí počet kladných čísel je nula, je-li kterékoliv z čísel kladné, zvyš počet kladných čísel o jedna Sestavení algoritmu Vývojový diagram:
20 Zápis programu var C,POCET,P_KL,I : integer; begin readln(pocet); P_KL:=0; for I:=1 to POCET do begin readln(c); if C > 0 then P_KL:=P_KL+1; end; writeln('počet kladných čísel je : ',P_KL ); end. Příklad 6. Formulace problému Sestavte algoritmus, který vypočítá aritmetický průměr z posloupnosti celých kladných čísel končící nulou, která do posloupnosti nepatří. a) předpokládejte, že posloupnost není prázdná b) posloupnost může být prázdná (hned první přečtené číslo je 0). Analýza úlohy Vstupní údaje: jedno z čísel posloupnosti C Výstupní údaje: aritmetický průměr PRUMER (počet čísel POCET, součet čísel SUMA) Analýza: aritmetický průměr se počítá podělením součtu členů posloupnosti jejich počtem. a) Protože nevíme, kolik čísel bude posloupnost obsahovat (víme jen, že minimálně jedno), budeme průběžně během čtení jednotlivých členů posloupnosti aktualizovat počet a součet čísel. Pro čtení zvolíme cyklus s podmínkou na konci, protože první číslo je určitě členem posloupnosti a bude se tedy zpracovávat. b) V případě, že posloupnost bude prázdná, nelze počítat průměr, protože počet čísel je nula a nulou nelze dělit. Pro čtení posloupnosti zvolíme cyklus s podmínkou na začátku, abychom nezpracovávali nulu, pokud by byla hned první. Sestavení algoritmu a) Vývojový diagram:
21 Zápis programu var C,POCET,SUMA : integer; PRUMER : REAL; begin POCET:=0; SUMA:=0; readln(c); repeat POCET:=POCET+1; SUMA:=SUMA+C; readln(c); until C=0; PRUMER:=SUMA/POCET; writeln('průměr : ',PRUMER); end. Sestavení algoritmu b) Vývojový diagram: Zápis programu var C,POCET,SUMA : integer; PRUMER : REAL; begin POCET:=0; SUMA:=0; readln(c); while c<>0 do begin POCET:=POCET+1; SUMA:=SUMA+C; readln(c); end; if POCET>0 then begin
22 PRUMER:=SUMA/POCET ; writeln('průměr : ',PRUMER); end else writeln('prázdná posloupnost'); end. Příklad 7. Formulace problému Sestavte algoritmus, který určí největší prvek posloupnosti celých čísel s předem známým počtem prvků. Analýza úlohy Vstupní údaje: počet čísel POCET, jedno z čísel posloupnosti C Výstupní údaje: maximální hodnota MAX Analýza: Maximum nalezneme tak, že postupně porovnáme každý prvek posloupnosti s hodnotou, která byla zatím největší. Problém je u první hodnoty posloupnosti. Řeší se dvěma způsoby: 1. první prvek posloupnosti se uloží jako maximum a s ním se pak porovnávají zbývající prvky posloupnosti 2. jako maximum se uloží nejmenší možné číslo, se kterým se porovnávají všechny prvky posloupnosti Zvolíme druhý způsob. (Běžnou chybou je uložit jako výchozí maximum nulu. V případě posloupnosti obsahující pouze záporná čísla, by takový program nenalezl skutečné maximum.) Sestavení algoritmu Vývojový diagram:
23 Zápis programu var C,POCET,MAX : integer; begin readln(pocet); MAX:=-MAXINT; for I:=1 to POCET do begin readln(c); if C>MAX then MAX:=C; end; writeln('maximum : ',MAX); end. Příklad 8. Formulace problému Sestavte algoritmus, který určí nejmenší prvek a počet jeho výskytů v posloupnosti kladných celých čísel ukončené nulou, která do posloupnosti nepatří. Analýza úlohy Vstupní údaje: jedno z čísel posloupnosti C Výstupní údaje: minimální hodnota MIN, počet jejích výskytů PMIN, celkový počet čísel POCET Analýza: Minimum nalezneme tak obdobně jako maximum v předchozím příkladu, jen musíme vhodně vyřešit výchozí hodnotu minima. Zvolíme si první způsob, kdy uložíme do minima první hodnotu posloupnosti. Protože posloupnost může být prázdná, musíme ošetřit i tento případ. Sestavení algoritmu Vývojový diagram:
24 Zápis programu var C,MIN,PMIN,POCET : integer; begin POCET:=0; readln(c); while C<>0 do begin inc(pocet);
25 if POCET=1 then begin MIN:=C PMIN:=1; end else if MIN<C then begin MIN:=C; PMIN:=1; end else if C=MIN then inc(pmin); readln(c); end; if pocet>0 then writeln('minimum : ',MIN, ' vyskytující se ',PMIN, 'x z celkového počtu ',POCET) else writeln('prázdná posloupnost'); end. Shrnutí pojmů Algoritmus, algoritmizace, vlastnosti algoritmů, základní konstrukce algoritmů, metody návrh algoritmů, vývojové diagramy, programování a programovací jazyky. Otázky Co to je algoritmus a jak jej můžeme vyjádřit. Jaké základní vlastnosti má algoritmus. Jaké jsou fáze tvorby algoritmu. Jaké známe základní algoritmické struktury a jak je vyjádříme vývojovým diagramem. Jak dělíme programovací jazyky. Jak zapisujeme základní algoritmické struktury v programovacím jazyce.
26 2 Jednodeskové počítače 1 hodina Čas ke studiu Cíl Jednodeskový počítač, druhy a užití jednodeskových počítačů. Výklad Jednodeskový počítač (z angličtiny též SBC single-board computer) je malý počítač s jednou deskou plošných spojů, jako je například Raspberry Pi, Arduino, Intel Edison, nebo 64bitový AMD Gizmo Board. Tyto počítače však mívají bohaté možnosti rozšíření o další hardware, zejména vstupně/výstupní moduly. Často se programují pomocí osobního počítače, který ve většině případů poskytuje lepší podmínky pro běh vývojářského software než jednodeskový počítač. Po naprogramování jsou však tyto počítače samostatné a dokáží řídit například domácí multimediální přehrávač, kamerový systém atp. Tyto počítače obvykle neobsahují rozhraní pro pevný disk a pro trvalé uchování dat se používá SD karta nebo flash disk. Jako hlavní procesor se obvykle používají RISC procesory v kombinaci s Linuxem. Novější přístroje mají kolem 1 GB paměti RAM a několik GB paměti flash (jako náhrada pevného disku), dále jsou přítomny jeden až dva USB porty, obrazový výstup a další vstupně výstupní zařízení. Výrobce obvykle nabízí k počítači některou z distribucí operačního systému Linux. K některým přístrojům je k dispozici software pro zpracování a rozpoznávání obrazu. Příklad z praxe Arduino IDE Vývojové prostředí Arduina ukazující jednoduchý program na blikání LED
27 Shrnutí pojmů Jednodeskový počítač, druhy jednodeskových počítačů. Otázky Definujete jednodeskový počítač. Jakými procesory jsou nejčastěji jednodeskové počítače vybaveny. Jaké znáte jednodeskové počítače. K jakým účelům jsou jednodeskové počítače používány.
28 3 Arduino 3 hodiny Čas ke studiu Cíl Charakteristika jednodeskového počítače Arduino, základní hardware a druhy jednodeskových počítačů Arduino, programování a struktura programu pro Arduino. Výklad 3.1 Charakteristika Arduino [čti Arduíno] je v informatice název malého jednodeskového počítače založeného na mikrokontrolerech ATMega od firmy Atmel. Svým návrhem se snaží podpořit výuku informatiky ve školách a seznámit studenty s tím, jak jsou pomocí počítačů řízena různá zařízení (např. mikrovlnná trouba, automatická pračka a jiné stroje). Nejedná se tedy o počítač ve smyslu stolního počítače nebo chytrého telefonu. Nelze proto k němu snadno přímo připojit monitor ani klávesnici či myš, ale je připraven na připojení LED diod, displeje z tekutých krystalů, servomotorů, senzorů teploty, osvětlení atp. Arduino je otevřená platforma a grafickém vývojovém prostředí, které vychází z prostředí Wiring (podobný projekt jako Arduino, tedy deska s mikrokontrolerem a IDE) a Processing (prostředí pro výuku programování). Arduino bylo poprvé představeno v roce Může být použito k vytváření samostatných interaktivních zapojení nebo může být připojeno k software na počítači (např. Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider). Momentálně lze koupit verze, které jsou už zkompletované; schéma a návrh plošného spoje je dostupný pro ty, kteří si chtějí postavit Arduino sami. Na rozdíl od Raspberry Pi není Arduino zamýšleno jako plnohodnotný stolní počítač. Řídící program je vyvíjen zvlášť (na stolním počítači) a do Arduina je posléze nahrán a spuštěn. Uvnitř Arduina je pak spuštěn jen tento program, který typicky obsahuje smyčku, která se
29 neustále opakuje (Arduino neustále zjišťuje stav svého okolí a na změny reaguje). Díky tomu má nízkou spotřebu (je možné napájení malou baterií) a hodí se například pro řízení dronů, robotů a podobně. Projekt Arduino je již od svého počátku volně dostupný (open-source) všem uživatelům, kteří jej chtějí používat a/nebo vylepšovat. Dokumentace a referenční příručka jazyka a externích knihoven je pak většinou vydávána pod licencí Creative Commons. Díky tomu jsou k dispozici všechny zdrojové soubory a je dodržována určitá kompatibilita (ať už pomocí jazyka Java, ve kterém je napsáno vývojové prostředí (IDE) nebo díky použití USB-to-RS- 232 převodníkového čipu, který zajišťuje virtuální sériovou linku a pro který jsou běžně dostupné ovladače na většinu platforem). Arduino se také snaží být dostupné i cenově, toho dosahuje použitím levné pracovní síly v Itálii. Pro své univerzální uplatnění je Arduino vyhledáváno především domácími kutily. Možnosti jeho využití jsou rozsáhlé. V České republice se začíná postupně rozšiřovat. Existuje několik elektronických obchodů, které dováží již hotovou desku, a vznikají i weby a články věnované právě Arduinu. 3.2 Hardware První verze desky Arduino Uno. Čip FTDI byl nahrazen ATMega8U2 (vlevo za USB konektorem). Oproti novější verzi rev2 chybí ICSP konektor pro ATMega8U2. Desky arduino obsahují 8bitové mikrokontrolery z rodiny AVR od firmy Atmel a množství dalších podpůrných obvodů. Oficiální vydání Arduina, které vyrábí a prodává Italská firma Smart Projects, používají čipy ATMega8, ATMega168, ATMega328, ATMega1280 a ATMega2560. Arduino Due obsahuje 32--bitový ARM procesor Atmel SAM3X8E. Každá deska má většinu I/O pinů přístupných přes standardizované patice, do kterých se jednoduše připojují další obvody, kterým ve světě Arduina říká Shieldy. Na deskách bývá několik diod, resetovací tlačítko, konektory pro ICSP programování, napájecí konektor, oscilátor a obvod zprostředkovávající komunikaci po USB. Základní verze Arduina, Arduino Uno, poskytuje celkem 14 I/O digitálních pinů a 6 pinů analogových. Šest digitálních pinů je také možné použít na softwarově řízený PWM výstup. Hlavní mikrokontroler, který je uživatelsky programovatelný, již má bootloader (kód, který se po spuštění postará o základní nastavení mikrokontroleru, jako jsou interní časovače, nastavení rozhraní USART a další) a nastavené potřebné fuses bajty (těmi se nízkoúrovňově
30 nastavují některé vlastnosti čipu). Díky tomu se uživatel nemusí starat o detaily a své programy píše v jazyce podobném C/C++. Ačkoliv je Arduino připojeno k počítači pomocí rozhraní USB, je softwarově simulována sériová komunikace přes linku RS-232. Ve starších deskách, jako je například Duemilanove nebo Diecimila, se pro tyto účely používaly FTDI čipy, v desce Uno toto obstarává ATMega8U2 s předprogramovaným firmware (ten je, jako vše ostatní, volně dostupný v podobě zdrojových kódů). Díky otevřenosti celého projektu vzniká množství klonů od dalších firem i jednotlivců. Samotné Arduino lze jednoduše poskládat i z jednotlivých součástek na nepájivém kontaktním poli. Z klonů, které jsou s původním Arduino kompatibilní, jsou například: "FreeDuino" Free klon Arduina v současnosti v1.16, klon Diecimila "LABduino" Český klon Arduina vytvořený z otevřené elektronické stavebnice MLAB "Bare Bones Board" Arduino kompatibilní, vyráběné a prodávané jako kit firmou Modern Device Company. "Runtime" Arduino-kompatibilní deska, vyráběná a prodávaná jako kit firmou NKC Electronics. "Boarduino" levnější klon Arduina Diecimila s piny pro zapojení rovnou do nepájivého pole. "Arduelo Libero" trochu vylepšený český Free klon Arduino Diecimila. "Seeeduino" smd verze 1.0b kompatibilní s Arduino Diecimila. Typy Arduino desek Označení modulu Mikrokontrolér Flash KiB EEPROM KiB SRAM KiB Digitální I/O piny PWM Analogové kanály vstupy Typ USB rozhraní Diecimila ATmega FTDI Duemilanove ATmega168/328P 16/32 0.5/1 1/ FTDI Uno ATmega328P ATmega8U2 Due ATMEL SAM3U Mega ATmega FTDI Mega2560 ATmega ATmega8U2 Leonardo ATmega32u Atmega32u4 Fio ATmega328P Žádné Nano LilyPad Yún ATmega168 or ATmega328 ATmega168V or ATmega328V Atheros AR MHz (ATmega32u4) 16/32 0.5/1 1/ FTDI Rozměry [mm] 68.6mm x 53.3mm 68.6mm x 53.3mm 68.6mm x 53.3mm 101.6mm x 53.3mm 101.6mm x 53.3mm 68.6mm 53.3mm 40.6mm x 27.9mm 43mm x 18mm Žádné 50mm ø 16 MiB (32KiB) 1 64 MiB DDR2 (1KiB) 20 (ATmega32u4) 7 12 ATmega32u4 68.6mm x 53.3mm FreeDuino je jeden z alternativních projektů postavených na Arduinu. Od Arduina se liší především názvem, na který mají výrobci Arduina právo. Naproti tomu může kdokoli svůj
31 projekt nazvat FreeDuino. Ačkoli se FreeDuino, které v otevřenosti zachází mnohem dál než Arduino dá koupit, stále si ho může každý libovolně upravit (nebo od základů předělat), nazvat FreeDuinem a třeba i prezentovat nebo prodávat. Tudíž FreeDuino zbaví své fanoušky obchodní známky na název a nutnosti podřídit se centrální výrobě v případě, že chcete "originál". K dostání jsou také kity obsahující potřebné součástky a podobně. Arduelo Libero je český klon, který vychází z projektu Arduino Diecimila. Arduelo je klonem open source produktu Arduino Diecimila a je s ním obvodově kompatibilní. Od Arduina se liší především názvem a několika drobnými úpravami, které však nemají na funkčnost žádný vliv. Jde především o trochu jiné rozmístění součástek, při zachování původních rozměrů desky. Patice nejsou dělené a jsou umístěny symetricky v palcovém rastru. Je to jednodušší a usnadní to návrh přídavných modulů. Přibyly i dva nové piny, na které je vyveden vstup pro externí oscilátor. Další drobnou změnou je přesunutí všech LED diod a resetovacího tlačítka mimo prostor mezi konektory, aby byly viditelné a dostupné i při použití nasazeného modulu. Arduelo je volně k dispozici včetně výrobních podkladů. Arduino Diecimila spodní strana Deska Arduela Deska FreeDuina v1.16 LilyPad s připojenými diodami 3.3 STRUKTURA PROGRAMU Základní struktura programovacího jazyka Arduino je poměrně jednoduchá a skládá se nejméně ze dvou částí, přesněji funkcí. Bloky příkazů v těle těchto dvou funkcí jsou ohraničeny složenými závorkami. void setup( ) { příkazy; }
32 void loop( ) { příkazy; } Funkce setup() je přípravná a provádí se jen jednou na začátku programu, funkce loop() je výkonná a provádí se neustále dokola. Pro správnou činnost programu je vždy nutné použít obě tyto funkce. Funkce setup() by měla být volána až po deklaraci všech proměnných na začátku programu. Tato funkce se používá například k nastavení pinů Arduina na vstup nebo výstup, nastavení parametrů sériové komunikace a podobných jednorázových akcí. Po funkci setup() následuje funkce loop(). Tělo této funkce obsahuje programový kód, který bude opakovaně prováděn v nekonečné smyčce, například čtení vstupů, nastavování výstupů, výpočty, atd. Tato funkce je jádrem všech programů Arduina a vykonává většinu činností. _ setup() Funkce setup(), jak již bylo řečeno výše, se volá pouze jednou při spuštění programu. Používá se k inicializaci režimu jednotlivých pinů, k nastavení sériové komunikace apod. Tato funkce musí být v programu obsažena vždy, i když žádné inicializační příkazy neobsahuje. void setup( ) { pinmode(pin, OUTPUT) ; // nastav 'pin' na výstup } _ loop() Po dokončení funkce setup(), se začne neustále dokola provádět funkce loop(), jak její název (loop = smyčka) ostatně napovídá. Příkazy, obsažené v těle této funkce, jsou určeny k provádění veškeré činnosti Arduina. void loop( ) { digi talwr ite(pin, HIGH) ; // nastav 'pin' na log. 1 delay(1000) ; // čekej jednu sekundu digi talwr ite(pin, LOW); // nastav 'pin' na log. 0
33 delay(1000) ; // čekej jednu sekundu } Syntaxe _ {} složené závorky Složené závorky definují začátek a konec bloku kódu. Používají se ve funkcích i ve smyčkách. type function( ) { příkazy; } Za úvodní složenou závorkou [ { ] musí vždy následovat závorka uzavírací [ } ]. Proto se často uvádí, že složené závorky musí být párovány. Samostatně umístěné závorky (úvodní bez uzavírací a naopak) mohou často vést k záhadným, špatně dohledatelným chybám kompilátoru. Programové prostředí Arduino obsahuje praktickou funkci pro kontrolu párování složených závorek. Stačí vybrat závorku, nebo kliknout myší bezprostředně pod závorku a související závorka bude zvýrazněna. _ ; středník Středníkem musí být ukončena deklarace i jednotlivé prvky programu. Středník je také používán k oddělení prvků ve smyčce. int x = 13; // deklaruje proměnnou 'x' jako datový typ integer s hodnotou 13 Poznámka: Pokud zapomenete řádek programu středníkem ukončit, dojde k chybě kompilátoru. Z chybového hlášení může být zřejmé, že se jedná o zapomenutý středník, ovšem také nemusí. Pokud se objeví hlášení o záhadné nebo zdánlivě nelogické chybě kompilátoru, zkontrolujte nejprve, zda v zápisu programu nechybí středník v blízkosti místa, kde kompilátor chybu ohlásil. Shrnutí pojmů Charakteristika jednodeskového počítače Arduino, základní hardware a druhy jednodeskových počítačů Arduino, programování a struktura programu pro Arduino.
34 Otázky Charakterizujte jednodeskový počítač Arduino. Vysvětlete co znamená pojem "open-source". Jak se Arduino liší od 4 Raspberry Pi. Jaký je základní hardware Arduina a jaké jsou druhy Arduina. V jakém jazyce programujeme Arduino. Jaká je základní struktura programu pro Arduino.
35 4 Raspberry Pi 4 hodiny Čas ke studiu Cíl Základní charakteristika Raspberry Pi, základní části a charakteristiky, rozhraní GPIO, příslušenství k Raspberry Pi. Výklad 4.1 Základní popis Raspberry Pi je miniaturní počítač o velikosti dlouhém 86 mm, širokém 54 mm a vysokém 17 mm. Vyvíjí ho britská nadace Raspberry Pi foundation s cílem podpořit výuku informatiky na školách. Vyrábí se ve dvou základních modelech, Model A a Model B, který je vidět na obrázku 4.1. Tento minipočítač se dá snadno ovládat pomocí klávesnice a myši připojených do USB portů a jako výstup může sloužit televize, protože hlavním výstupem pro video je HDMI. Díky jeho nízké ceně se začíná používat ve školách k programování a k řešení různých projektů v oboru automatizace. Obr. 4.1 Raspberry Pi model B Nápad vytvořit minipočítač Raspberry Pi vznikl v roce 2005 na univerzitě Cambridge v počítačové laboratoři, kde hlavním strůjcem byl Eben Upton, který si všiml poklesu znalostí informatiky u studentů. Základem vytvoření této platformy bylo, aby se mladší studenti naučili blíže s počítačem, kde vidí, jak co funguje a naučí se pracovat se vstupně-výstupními zařízeními. V roce 2006 začal Eben Upton pracovat ve firmě Broadcom, ale stále spolupracoval s univerzitou
36 na vývoji levného počítače pro studenty. Do roku 2008 vzniklo několik prototypů, avšak vznik aktuálního Raspberry Pi dovolili až procesory, které se začali vyrábět v roce 2008 pro mobilní telefony. O rok později byl dokončen vývoj a byla založena organizace Raspberry Pi Foundation. V roce 2011 byla vytvořena základní deska plošných spojů, a o rok později se začal hromadně vyrábět Raspberry Pi model B a dnes má již firma na kontě přes 2 milióny prodaných kusů [8]. 4.2 Základní parametry Raspberry Pi Platforma používá metodu System on a chip, což znamená, že všechna potřebná elektronika funguje na jednom čipu. Raspberry Pi pohání procesor BCM2835 od Broadcom s frekvencí 700 MHz označený jako ARM1176JZ-F. Díky HDMI a RCA výstupu se dá Raspberry Pi připojit k televizi nebo monitoru a zvuk se přenáší přes 3.5 mm jack. Pomocí USB portů se dá zapojit klávesnice, myš, a také pro připojení k internetu ethernet kabel nebo Wifi adaptér. Operační systém a data jsou uloženy na SD kartě. Deska dále obsahuje GPIO piny, které slouží pro připojení různých rozšíření, lze zde najít piny pro napájení 3V3 a 5V, dále PWM, SPI, I2C, UART apod. Minipočítač se nyní prodává ve dvou modelech, model A je vidět na obrázku 4.2 a model B na obrázku 4.3 [9]: Model A: 256 MB SDRAM jeden USB2.0 konektor nemá ethernet připojení operační systém Linux rozměry 86x54x15 mm Obr. 4.2Raspberry Pi model A [10] Model B: 512 MB SDRAM dva USB2.0 konektory má ethernet připojení operační systém Linux rozměry 86x54x17 mm
37 Obr. 4.3 Raspberry Pi model B [10] Srovnání těchto dvou modelů je znázorněno v tabulce 4.1: Tab. 4.1 Parametry modelů Raspberry Pi Existují také rozšířené modely A+ a B+. Tyto modely mají stejné parametry jako model A i B, mají pouze malé vylepšení. U modelu A+ je místo slotu pro SD nebo MMC kartu slot pro micro SD kartu. Model B+ má více GPIO pinů a navíc dva sloty pro USB. 4.3 Rozhraní GPIO GPIO (general purpose input/output) piny se nacházejí podél hrany desky vedle žlutého video slotu, jak je vidět na obrázku 4.4.
38 Obr. 4.4 GPIO piny na desce Tyto piny jsou fyzické rozhraní mezi Raspberry Pi a vnějším světem. Z 26 pinů je 17 pinů vstupně-výstupních. Rozhraní má dále dva výstupy s napětím 3V3 a dva výstupy s napětím 5V. Posledních 5 pinů je zem. Rozložení pinů je ilustrováno na obrázku 4.5. Obr. 4.5 Rozhraní GPIO Vstupy nemusí být pouze z fyzického přepínače, může to být vstup ze snímače nebo signál z jiného počítače nebo zařízení. Výstup může také dělat cokoliv, od zapnutí LED diody, až po vyslání signálu nebo dat do jiného zařízení. Nevýhodou tohoto rozhraní je, že se musí hlídat připojení jakéhokoliv pinu, protože jsou připojeny bez ochrany přímo na čip a ten pracuje s napětím nepřesahující 3,3 V. V případě zapojení na pin vyššího napětí než 3,3 V, by mohlo dojít ke zničení polovodičových součástek a procesoru samotného Raspberry Pi [11].
39 4.4 Příslušenství - minimum potřebné ke spuštění SD karta Základní věcí je paměťová karta na kterou budeme nahrávat operační systém. Doporučené minimum je velikost 4 GB s rychlostí class 4. Podle mě je optimální zvolit velikost 8 GB s rychlostí class 10. Při výběru karty je potřeba dávat pozor na to aby s Raspberry Pi spolupracovala. To se dá ověřit pomocí seznamu na stránce RPi SD cards. Já používám kartu SanDisk Secure Digital Ultra 8GB. Její rychlost se pohybuje kolem 20MB/s, jak můžete vidět na obrázku. Klávesnice Bez klávesnice se také neobejdeme. V podstatě lze využít jakoukoliv klávesnici do USB. Také se často k Raspberry Pi používají menší bezdrátové klávesnice jejichž součástí je touchpad. Podrobnosti ke klávesnicím jsou na RPi USB Keyboards. Napájení Napájení se dá řešit různými způsoby. Monitor Různých monitorů, televizí a displejů se dá k Raspberry Pi připojit spoustu. K dispozici jsou tři video výstupy. Kompozitní video (cinch) pomocí kterého můžeme připojit starší televizi nebo různé malé monitory do aut, k bezpečnostním kamerám a další. Druhý výstupem je HDMI přes které můžeme připojovat novější zařízení. V případě že nemáte k dispozici žádný monitor s HDMI vstupem lze použít kabel, který má na jednom konci HDMI a na druhém DVI. A pokud máte stejně jako já monitor pouze s VGA vstupem budete potřebovat adaptér pro převod z HDMI na VGA. Pro kutily má Raspberry Pi ještě DSI konektor pro připojení LCD displejů.
40 Další užitečné věci Myš Myš je zapotřebí pouze pokud chceme pracovat v grafické rozhraní a stejně jako u klávesnice lze použít jakoukoliv myš do USB. Podrobnosti k myším jsou na RPi USB Mouse devices. Wi-Fi karta a síťový kabel Nejjednodušší způsob jak připojit Raspberry Pi do sítě je použít klasický síťový kabel. V případě že se vám nechce tahat dráty budete si muset dokoupit USB Wi-Fi kartu. Stejně jako u jiného příslušenství je třeba dávat pozor na kompatibilitu a řídit se informacemi na Raspberry Pi Wiki v sekci RPi USB Wi-Fi Adapters. Já používám kartu TP-LINK TL-WN725N a její instalaci se budu podrobněji věnovat v kapitole Wi-Fi. USB hub K dispozici jsou pouze dva USB porty, které zvládnou jenom energeticky méně náročná zařízení jako je klávesnice nebo myš. Na jeden port připadá přibližně 140 ma. Proto je potřeba pro náročnější příslušenství používat samostatně napájený USB hub. Obvykle se dělají 4-portové nebo 7-portové. Opět je k dispozici přehledná tabulka RPi Powered USB Hubs. Především je třeba koukat na hodnoty napájecího adaptéru. Přesto že by každý USB port měl umožňovat odběr až 500 ma. Výrobci často používají pouze 1 A zdroje pro 4-portový hub a 2 A zdroje pro 7-portový hub. Takže při větším množství připojených zařízení s velkým odběrem to nemusí stačit. Proto jsem si vybral D-Link Hi-Speed USB Port Hub (DUB-H7), který má 3 A adaptér. Reproduktory a sluchátka Zvuk je možné z Raspberry Pi přenášet přes HDMI kabel. Pokud má monitor nebo televize vestavěné reproduktory. V případě použití kabelu HDMI/DVI se zvuk nepřenáší. Jinak je k dispozici klasický 3,5 mm jack pro připojení libovolných sluchátek nebo reproduktorů a pokud nemáte volnou zásuvky pro reproduktory dají se pořídit i s napájením z USB. Shrnutí pojmů Základní charakteristika Raspberry Pi, základní části a charakteristiky, rozhraní GPIO, příslušenství k Raspberry Pi. Otázky Charakterizujte Raspberry Pi a uveďte rozdíly mezi Raspberry Pi a Arduinem. Jaké jsou základní komponenty Raspberry Pi. Charakterizujte rozhraní GPIO. Jaké znáte příslušenství k Raspberry Pi a k čemu slouží.
41 5 Operační software pro Raspberry Pi 4 hodiny Čas ke studiu Cíl Operační systémy pro Raspberry Pi, Raspbian a základní operace. Výklad Raspberry Pi byl vytvořen s cílem učit programovat a vyvíjet své znalosti v oblasti počítačové techniky. Programovat lze v mnoha programovacích jazycích ale jako výchozí předinstalované baličky jsou pro Python, C, C++, Java a Scratch. Pro začátečníky se doporučuje začít s Pythonem a scratchem. Jak bylo výše zmíněno SD karta slouží pro ukládání veškerých dat, a to platí i pro operační systém. Jestliže chceme více operačních systémů, stačí pouze vyměnit SD kartu s nahraným operačním systémem. Je třeba zvolit optimalizovaný operační systém pro hardware Raspberry Pi, jako například Raspbian, Pidora, Raspbmc, Arch Linux a další podobné systémy z distribucí Linuxu. Systém Linux se používá, protože je nenáročný na hardware, tedy alespoň méně než Windows, který by na Raspberry Pi fungoval, avšak instalace je složitější a nevýhodná. Jen načítání systému Windows může trvat 30 minut. 5.1 Operační systémy a programovací prostředí Raspberry Pi Operačních systémů, které lze nainstalovat a využívat na platformě Raspberry Pi, existuje hned několik. Z oficiálních stránek jsou volně k dispozici buď instalační balíky s konkrétním systémem, nebo tzv. NOOBS software (New Out Of the Box Software). Jedná se o univerzální balíček se všemi systémy, z kterých si uživatel později zvolí ten, který mu vyhovuje. Hlavní operační systémy pro Raspberry Pi: Raspbian - operační systém na bázi Debianu (Linuxové jádro), optimalizovaný pro hardware Raspberry Pi. Obsahuje sadu základních programů a utilit, které výrazně zjednodušují práci s platformou. Poskytuje uživateli více než balíků pro lepší výkon a získání více funkcí, které jsou předem zkompilovány do optimálního formátu, díky čemuž je instalace velmi jednoduchá. [11] Pidora - vychází z operačního systému Fedora, což je jedna z mnoha distribucí Linuxu. Jedná se o tzv. Fedora Remix, tj. kombinace softwaru Fedory s nebo bez rozšiřujících prvků, které jsou vytvářeny komunitou uživatelů k vytvoření zajímavých a užitečných produktů.
42 OpenELEC (Open Embedded Linux Entertainment Center) - Linuxová distribuce, která má za účel vytvořit z počítače (popř. jiných platforem jako Raspberry Pi) mediální centrum. Systém je navržen tak, aby byl jednoduchý na instalaci, správu a používání. Programovací jazyky Raspberry Pi Programovacích jazyků, se kterými lze na Raspberry Pi pracovat, je několik. Jelikož je většina operačních systémů této platformy jen upravená verze Linuxu, je možné pracovat se všemi jazyky, které jsou podporovány právě Linuxem. Primárními jazyky Raspberry Pi jsou Python, Wolfram a Scratch. Není však problém programovat například v klasickém C pomocí dostupných kompilátorů. Hlavní programovací jazyky: Python - dynamický, objektově orientovaný skriptovací jazyk, vyvíjen jako open - source projekt. To znamená, že při dodržení určitých podmínek (různých licencí) můžou uživatelé zdrojový kód využívat, prohlížet a upravovat. Pro většinu distribucí systému Linux je Python součástí základní instalace. Python byl navržen tak, aby umožňoval tvorbu rozsáhlých, plnohodnotných aplikací včetně grafického uživatelského rozhraní. Jedná se o hybridní jazyk, to znamená, že umožňuje při psaní programů používat nejen objektově orientované paradigma, ale i procedurální a v omezené míře i funkcionální, podle toho, komu co vyhovuje nebo co se pro danou úlohu hodí nejlépe. [10] Wolfram - multi - paradigmatický programovací jazyk, který slouží jako hlavní rozhraní jazyka pro projekt Mathematica a cloudové Wolfram aplikace. Je navržen tak, aby byl co nejobecnější, s důrazem na symbolické výpočty a funkcionální programování. Jazyk je velmi obsáhlý a zasahuje do mnoha oblastí, např. dokáže vytvářet grafiku a audio, analyzovat 3D modely nebo řešit diferenciální rovnice. Scratch - programovací jazyk založen na klíčových programátorských principech, které zpřístupňuje všem zájemcům. Místo psaní dlouhých řetězců se využívá jednoduché prostředí, v němž lze skládat stavební kameny přetažením myší. Přesto však rozvíjí programátorské myšlení a uvádí základní koncepce, které se používají ve všech programovacích jazycích. [12] Programovací prostředí Qt Creator Qt Creator běží nejen na unixových operačních systémech (Linux, BSD), Windows nebo Mac OS X, ale i na nejrůznějších mobilních zařízeních. Alespoň co se týče Linuxu, spustit lze na všech možných platformách, včetně x86, x86-64, IA64, SPARC, MIPS, Alpha, HPPA a PPC. Qt Creator je multiplatformní vývojové prostředí (IDE - Integrated Development Environment), které umožňuje vývojářům vytvářet desktopové a mobilní aplikace. Je k dispozici jako samostatný balíček nebo v kombinaci s knihovnami Qt a vývojovými nástroji jako kompletní SDK (Software Development Kit). [13] Nástroje prostředí Qt Creator Qt Creator obsahuje: editor kódu pro C++ a JavaScript prostředí pro návrh UI (User Interface - uživatelské rozhraní) GDB a CDB debuggery (nástroje, které se používají pro hledání chyb v navrhovaném softwaru ve fázi ladění) podporu pro správu verzí simulátor pro uživatelská rozhraní mobilních aplikací
43 Velkou předností Qt Creatoru je precizně zpracovaná dokumentace včetně ukázek aplikací i se zdrojovými kódy. Tvorba projektu Při zakládání projektu uživatel projde jednoduchým průvodcem, kde si vybere, jaký typ projektu chce vytvářet, zvolí debugger, vzhled grafických prvků v UI a zadá název projektu. Po potvrzení se vytvoří 5 různých souborů: jméno_projektu.pro - spouští aplikaci, vytvoří a zobrazí hlavní widget (základní element pro interakci programu s uživatelem, v tomto případě soubor.ui) main.cpp - v tomto souboru se vytváří instance tříd, deklarace apod. mainwindow.cpp - soubor pro vlastní programování kódu a propojení s UI mainwindow.h - klasický hlavičkový soubor projektu mainwindow.ui - soubor obsahující XML kód, který v sobě nese informace o grafickém návrhu aplikace, jeho vlastnostech a propojení signálu se sloty, ty vytváří komunikaci mezi objekty Editor kódu Editor kódu Qt Creatoru je vybaven sémantickým zvýrazňováním, kontrolou syntaxe, doplňováním kódu (viz obr. 5.1), nápovědou a indikátorem chyb. Všechny tyto funkce jsou aktivní přímo při psaní kódu, takže je uživatel ihned upozorněn na napsání chybné syntaxe apod. Obr. 5.1 Ukázka doplňování kódu v programu Qt Creator 4 Prostředí pro návrh UI Qt Creator nabízí dva integrované editory na vytváření UI: Rychlá Qt aplikace Aplikace na principu widgetu U rychlé Qt aplikace má uživatel možnost vytvářet projekty od začátku nebo importovat již existující. K tvoření aplikace využívá jak editor kódu, tak vizuální editor. U aplikace na principu widgetu jsou formuláře vytvořené ve vizuálním editoru integrovány s naprogramovaným kódem pomocí Qt signálů a slotů, které umožní snadno přiřadit chování ke grafickým prvkům. Všechny vlastnosti nastavené ve vizuálním editoru je možné dynamicky měnit v kódu. Qt Creator také umí optimalizovat aplikace pro mobilní zařízení, například upravením rozlišení pro mobilní telefony atp. Prostředí pro grafický návrh aplikace s popisem je zobrazen na obr. 5.2.
44 Obr. 5.2 Grafický návrh aplikace s popisem 5.2 Raspbian Raspbian je volně stažitelný a nejpoužívanější operační systém založený v Debianu, optimalizovaný pro hardware Raspberry Pi. Projekt Debian je sdružení jednotlivců, jehož hlavním účelem je vytvořit svobodný operační systém.debian v současné době používá jádro Linux. Linux je softwarový produkt, který založil Linus Torvalds a vyvíjí jej tisíce programátorů po celém světě. Raspbian byl vydán v červnu roku Systém lze ovládat přímo z příkazové řádky nebo přes spuštěné grafické rozhraní. V operačním systému lze najít předinstalované programy pro výuku programování, a také nabízí možnosti konfigurace hned při prvním spuštění nebo posléze příkazem raspi-config. Operační systém Raspbianu lze vidět na obrázku 5.3 [12]. Obr. 5.3 OS Raspbian Základní příkazy
45 Protože Raspbian i většina dalších operačních systémů pro Raspberry Pi vychází z různých distribucí Linuxu, je dobré znát pár základních příkazů. Při vytváření seznamu jsem vycházel z toho jaké příkazy běžně používám. Manuál a nápověda $ man příkaz - Vypíše manuál k příkazu. $ příkaz --help - Vypíše nápovědu k příkazu, který obsahuje seznam volitelných parametrů. Práce s adresáři a soubory $ cd - Přechod do domovské adresáře. $ cd adresář - Přechod do adresáře. $ cd.. - Přechod do nadřazeného adresáře. $ pwd - Vypíše cestu k adresáři ve kterém se právě nacházíte. $ mkdir adresář - Vytvoří adresář. $ rmdir adresář - Smaže prázdný adresář. Informační příkazy a výpisy $ vmstat Využití systémových prostředků. První číslo udává rychlost opakování výpisu. Druhé číslo počet opakování. $ vcgencmd get_config int - Vypíše konfiguraci systému. $ vcgencmd measure_temp - Ukáže teplotu. $ df -h - Vypíše velikost a obsazení diskových jednotek. Spouštění a vypínání $ startx - Zapnutí grafického prostředí z textového režimu. $ sudo reboot - Restart systému. $ sudo shutdown -h now - Vypnutí systému. $ java -jar soubor - Spuštění souborů v Javě. Správa procesů $ ps - Výpis procesů. $ ps axu - Výpis procesů. a - všechny procesy, x - rozšířený výpis, u - všech uživatelů Instalace a správa balíčků/programů Pidora Verze Pidora je postavena na operačním systému Fedora. Kvůli uzavřeným ovladačům, které hardware v Raspberry Pi vyžaduje, pro něj nelze vytvářet verzi Fedory. Navíc je Raspberry založeno na staré generaci ARMv6, pro kterou už se Fedora ani standardně nevytváří. Proto vznikl remix Pidora, který má za cíl zkompilovat balíčky přímo pro architekturu ARMv6 a přidat potřebné ovladače tak, aby uživatel získal odladěnou Fedoru pro Raspberry. Fedora je kompletní operační systém Linux (tzv. distribuce), který vznikl jako nekomerční odnož
46 RedHat Linuxu. Nejnovější verze Pidory k současnému roku 2014 je Pidora 20 založená na Fedoře 20 [13]. Raspbmc Raspbmc je Linuxová distribuce založená na Debianu, která přináší XBMC, což je univerzální systém pro přehrávání hudby, videí a fotografií. Jak vypadá jeho operační systém je vidět na obrázku 5.4. Obr. 5.4 OS Raspbmc [14] OpenElec OpenElec(Open Embedded Linux Entertainment Center) je distribuce Linuxu vytvořena v programu Scratch a obsahuje mediální centrum Kodi, což je známo jako XBMC, tedy univerzální systém pro přehrávání hudby, videí a fotografií. Operační systém je znázorněn na obrázku 5.5.
47 Obr. 5.5 OS Openelec [15] RISC OS RISC OS je počítačový operační systém navržený v Anglii na univerzitě Cambridge. Tento systém není distribuci Linuxu ani jiného operačního systému. RISC OS je přímo navržen pro mikroprocesory ARM. Jeho první verze už vyšla v roce 1987 a jeho hlavní výhodou je rychlost. Operační systém je znázorněn na obrázku 5.6 [16]. Obr. 5.6 RISC OS [17] Arch Linux Tento operační systém je určen především pro zkušené uživatele. Už z názvu vyplývá, že systém je distribucí Linuxu vytvořená JuddemVinetem. Jádro i balíčky jsou optimalizovány pro procesory architektur i686 a x Operačních systémů pro Raspberry Pi je mnoho, toto jsou ovšem ty nejpoužívanější. Instalace OS Jsou dvě možnosti jak nainstalovat operační systém na Raspberry Pi, obě však zahrnují SD kartu. První možnost je koupit si SD kartu, na které již je předinstalovaný operační systém. Taková karta se dá sehnat v e-shopech specializovaných na Raspberry Pi. Druhá možnost je zakoupit si v obchodě SD kartu s minimální velikosti alespoň 4 GB a operační systém si sám na kartu nahrát. K vlastní instalaci je zapotřebí počítač nejlépe se systémem Windows a s čtečkou SD karty. Do počítače se stáhne zvolený operační systém, programwin32 Disk Imager a připojí SD karta. Program Win32 Disk Imager, se spustí a objeví se okno, které lze vidět na obrázku 5.7.
48 Obr. 5.7 Win32 Disk Imager Do Image File patří cesta k souboru.img systému. Pak již jen stačí v Device označit písmeno karty a stisknout Write. Systém se nyní nahrál na kartu. Systém je už nyní nainstalovaný na SD kartě a připraven k použití [18]. Spuštění systému SD karta je připravena, tak se vloží do Raspberry Pi. Dále se připojí HDMI kabel, USB myš s klávesnicí a nakonec napájení a čeká se než se systém spustí. Po rozběhnutí systému naběhne obrazovka, která slouží k prvotní konfiguraci systému, a lze jí vidět na obrázku 5.8. Obr. 5.8 Prvotní konfigurace systému První položka obsahuje základní informace o právě spuštěném konfiguračním toolu. Druhá položka "expand_rootfs" je už zajímavější. Po zvolení dojde k rozšíření oddílu SD karty na maximální velikost. To je dobré udělat k využití celé SD karty, a aby místa pro systém bylo dostatek. Lze to samozřejmě provést i dodatečně. Dále je možné nastavit klávesnici, změnit heslo pro uživatele Raspberry Pi, povolit ssh připojení atd. Pro dokončení se zvolí Finish a systém se restartuje. Po znovu naběhnutí se objeví příkazová řádka. Nyní je třeba se přihlásit jménem pi a heslem raspberry, pokud nebylo uživatelem změněno heslo, či přihlašovací jméno v předešlém kroku. Ke spuštění grafického rozhraní stačí zadat příkaz "startx" a objeví se grafické rozhraní daného systému, například Raspbianu, znázorněného na obrázku 5.9 [18].
49 Obr.5.9 Grafické rozhraní OS Raspbian Instalace programů Programy na distribuce pro Raspberry se instalují úplně stejně jako na běžný Linux. Programy se instalují přes terminál (viz Obr. 5.10), nebo se může instalovat přes Synaptic - software pro instalaci programů. Obr Řádek v terminálu Programy se instalují pomocí příkazu sudoapt-get install (program), například instalace programu Gimp je znázorněná na obrázku 3.9. Obr Příkaz k instalaci programu Gimp Shrnutí pojmů Operační systémy pro Raspberry Pi, Raspbian a základní operace. Otázky Jaké znáte operační systémy pro Raspberry Pi a stručně je charakterizujte. Charakterizujte operační systém Raspbian. Uveďte základní skupiny příkazů v Raspbianu a uveďte příklad příkazu z každé skupiny. základní operace.
50 6 Periferie Raspberry Pi 4 hodiny Čas ke studiu Cíl Seznámení s periferiemi Raspberry Pi. Výklad Periferie se obecně nazývá okrajová část nějakého většího celku. V našem případě je celek miniaturní počítač Raspberry Pi a okrajové části jsou ty, které lze k tomuto celku připojit. Periferie mají za úkol obohatit celek o další funkce. 6.1 Raspberry Pi Camera Board Prvním základním rozšířením je kamerový modul, který je určený pouze pro Raspberry Pi. Dokáže točit video i vytvářet jednotlivé snímky pomocí jednoduchých vestavěných funkcí. Kamera, kterou lze vidět na obrázku 6.1, se skládá z plošného spoje o rozměrech 25 mm 24 mm s CMOS senzorem Omni Vision OV5647 o velikosti 3.67 mm 2.74 mm, a ohebného 15 žilového kabelu s CSI (Camera Seriál Interface) rozhraním [19]. Obr. 6.1Raspberry Pi Camera Board Dokáže točit video o rozlišení pixelů s frekvencí 30 FPS (počet snímku za sekundu). Jedinou nevýhodou je, že kamera nedokáže zaznamenávat zvuk, na to je potřeba přidat například zvukovou kartu Wolfson Audio Card vyrobenou přímo pro Raspberry Pi [19].
51 Realizace připojení a spuštění kamery Raspberry kamera se prostřednictvím 15 žílového kabelu s CSI rozhraním připojuje do CSI konektoru na základní desce Raspberry Pi, který se nachází mezi ethernetovým a HDMI portem. CSI je sériové rozhraní sloužící k přenosu dat většinou mezi digitální kamerou a mobilním zařízením. Mobilním zařízením je myšleno software a hardware zajišťující telekomunikační funkce nebo aplikační úlohy. V našem případě je přijímačem Raspberry Pi. Obrázek 6.2 ilustruje připojení kamery k Raspberry Pi. Obr. 6.2 Port pro připojení kabelu kamery S kamerou se pracuje pouze v systémovém terminálu neboli příkazovém řádku, což má každý operační systém Raspberry Pi. Například v raspbianu je to LX Terminál (viz Obr. 6.3). Obr. 6.3 Terminál v OS Raspbian Po spuštění Raspberry Pi je zapotřebí připojenou kameru povolit v systému. a to tak, že v terminálu se napíše příkaz: sudoraspi-config -příkaz otevře konfigurační rozhraní systému
52 Po tomto příkazu se zobrazí konfigurační rozhraní, jak ukazuje obrázek 6.4. V tomto rozhraní se zvolí položka Enable Camera a po následném restartu je kamera připravena k použití. Obr.6.4 Konfigurační rozhraní Raspberry Pi Před spuštěním konfiguračního rozhraní je dobré provést aktualizaci systému a to pomocí příkazů. sudoapt-get update -příkaz stáhne dostupné aktualizace pro systém sudoapt-get upgrade - příkaz dostupné aktualizace nainstaluje Po nastartování systému lze pořizovat fotky, či nahrávat videa. K tomu slouží dva příkazy. Raspistillse postará o fotku a raspivid o video, například: raspistill-o image.jpg - vytvoří fotku s názvem image.jpg raspivid -o video.h264 - vytvoří video s názvem video.h264 Videa i obrázky se ukládají na SD kartu v Raspberry Pi a lze je najít ve složce Home, která se nachází v nabídce Start. Funkčnost kamery byla otestována, a to tak, že nejdříve bylo k zařízení Raspberry Pi připojeno vše co je zapotřebí, jako kamera, klávesnice, zdroj energie a HDMI výstup. Před kameru byl postaven předmět (v našem případě hodinky), jak ilustruje obrázek 6.5. Obr. 6.5 Kamera mířící na hodinky
53 Dále byla provedena aktualizace systému i povolení kamery v konfiguračním rozhraní, vše pomocí příkazů v terminálu, jak bylo zmíněno výše. V posledním kroku byla pořízena fotka z kamery, která je na obrázku 6.6. Obr. 6.6 fotka vyfocená kamerou Raspberry Pi 6.2 PiFace Control & Display PiFace Control and Display (viz. Obr. 6.7) je možné použít jako jednoduchý nástroj, který supluje klávesnici, myš nebo monitor. Je určený k nasazení na Raspberry Pia obsahuje znakový displej o možnosti napsat 16 znaků ve 2 řádcích, 5 tlačítek a ovladač. Obr. 6.7PiFaceControl& Display Realizace připojení a spuštění displeje Displej se připojuje přímo na výstupní GPIO piny a jelikož tyto piny jsou propojeny přímo s procesorem, je třeba tyto piny povolit v systému. Povolit tyto piny lze přes terminál, tak jako u kamery, aby se spustilo konfigurační rozhraní. sudoraspi-config - příkaz otevře konfigurační rozhraní systému Po zobrazení konfiguračního rozhraní (viz Obr. 6.8) je potřeba zvolit Advanced Options, a poté A5 SPI přepnout do Enable.
54 Obr. 6.8 Konfigurační rozhraní Raspberry Pi GPIO piny byly povoleny a před instalací základních knihoven pro displej se doporučuje aktualizovat systém příkazy: sudoapt-get update -příkaz stáhne dostupné aktualizace pro systém sudoapt-get upgrade - příkaz dostupné aktualizace nainstaluje Po aktualizaci musí přijít instalace, jíž zmíněných základních knihoven pro ovládání dipleje v jazyce python. Instalace knihoven se provede příkazem: sudoapt-getinstallpython{,3}-pifacecad - nainstaluje knihovny pro displej Instalace trvá několik minut, a po následném restartu systému může být proveden test, že displej správně funguje. Doposud byly všechny příkazy psány v terminálu systému. Po nainstalování knihoven a pro následné ovládání displeje je zapotřebí psát v jazyce Python. V systému Raspbian je pro tento jazyk vytvořené prostředí jménem IDLE (viz Obr.6.9) [20]. Obr 6.9 prostředí IDLE Funkčnost displeje lze provést příkazem ve výše zmíněném prostředí. Náš displej byl otestován na jednoduchém příkladu, a tím byla i prokázána jeho správná funkčnost. Jako příklad byl napsán program, který na displeji zobrazil Ahoj světe!.(obrázek 6.10.)
55 Obr Vizualizace na displeji 6.3 Raspberry Wi-Pi Wi-Pi (viz. Obr 6.11) je Wi-Fi určená pro Raspberry Pi. Wi-Fi je označení pro několik standardů IEEE popisujících bezdrátovou komunikaci v počítačových sítích. Obr. 6.11RaspberryWi-Pi Wi-Pi ovšem pracuje pouze na třech hlavních standardech a ty jsou: IEEE b IEEE n IEEE g Přehled standardů IEEE je znázorněn v následující tabulce.
56 Připojení a konfigurace Wi-Pi Obr Topologie připojení Wi-Pi je opatřen konektorem USB 2.0, ten se pouze připojí do příslušného portu na Raspberry Pi, a ten následně k routeru, jak je naznačeno v obrázku Po jeho následném spuštění jsou tři možnosti, jak nakonfigurovat Wi-Pi: 1. Použitím ikony Wi-fiConfig na ploše Rasbianu 2. Použitím příkazového řádku 3. Použitím programu wicd-curses Nejjednodušším způsobem z výše uvedených tří, je hned ten první, tedy použitím ikony Wi-Fi config na ploše operačního systému Rasbian. Tato aplikace uživatele provede krok po kroku, s cílem se připojit na síť. Kliknutím na ikonu Wi-Fi Config se spustí průvodce nastavení, což je zobrazeno na obrázku 6.13.
57 Obr Průvodce nastavení Wi-Fi Stisknutím tlačítka Scan se otevře druhé okno, kde je možné vybrat si síť, ke které se chce uživatel připojit, což je vidět na obrázku Obr Výběr sítě Dvojklikem na určitou síť se otevře další okno, kde je třeba zapsat heslo a zpětným kliknutím na tlačítko Connect se Raspberry Pi připojí k dané síti. Úspěšné připojení k síti je vidět na následujícím obrázku 6.15.
58 Obr Úspěšné připojení k síti Shrnutí pojmů Periferie Raspberry Pi. Otázky Charakterizujte periferie pro Raspberry Pi a jejich účel.
59 7 Začlenění Raspberry Pi do průmyslu 3 hodiny Čas ke studiu Cíl Seznámení s příklady aplikací Raspberry Pi. Výklad Využití Raspberry Pi je opravdu mnoho, jak v domácí či jiné automatizaci, tak i k výuce programování nebo jen k přehrávání filmů.. Projekty k začlenění Raspberry Pi do průmyslu: Regulace teploty FTP server napájený solární energií Otevírání elektronických dveří Kamerový systém Bezdrátové ovládání Měření počasí a kvality ovzduší Měření různých charakteristik 7.1 Regulace teploty Pro realizaci projektu regulace teploty na bázi Raspberry Pi je zapotřebí: Kompletní set Raspberry Pi a UniPi (univerzální deska pro raspberry) Přesný počet digitálních 1Wire teplotních senzorů pro danou instalaci Základní kabeláž Optimalizovaný software postavený na řídícím systému REX Zdroj elektrické energie Unipi(viz Obr. 7.1) je vytvořeno jako kompaktní praktické využití možností Raspberry Pi. Deska dělá z počítače výkonného pracovníka, posluchače a informátora na jednom místě. Jedná se o rozšiřující modul pro mini počítač Raspberry Pi. Deska využívá všechny důležité vlastnosti v rámci řízení a ovládání, které Raspberry Pi nabízí [21].
60 Obr. 7.1UniPi s (vlevo) a bez Raspberry [22] Řídící systém REX (Rapid development, EXcellent performance),je vyspělý nástroj pro návrh a realizaci komplexních algoritmů automatického řízení. Knihovna funkčních bloků RexLib, z nichž je výsledný algoritmus sestaven, pokrývá nejen všechny běžné oblasti automatizace, robotiky a regulace, ale nabízí navíc i řadu prvků pro tvorbu pokročilých algoritmů řízení. Runtime jádro řídicího systému REX promění minipočítač Raspberry Pi s distribucí Linuxu zvanou Raspbian ve volně programovatelné PLC, které se může stát centrální řídicí jednotkou projektu. Jakmile na Raspberry Pi běží jádro RexCore, je možné ho programovat a konfigurovat z běžného PC. Programování probíhá grafickou formou pomocí připravených funkčních bloků. Všechny funkční bloky i vstupní a výstupní signály je možno v reálném čase monitorovat a zaznamenávat. Jak probíhá konfigurace s komponenty je znázorněno na obrázku 7.2 [23]. Obr Názorná konfigurace REX s komponenty [23]
61 Díky možnosti připojení velkého množství digitálních 1Wire teploměrů lze takto získat plně funkční regulátor za cenu řádově nižší, než od renomovaných výrobců. Se základní deskou UniPi lze ovládat čtyři okruhy, v případě potřeby více okruhů lze připojit přídavný modul s možností ovládání dalších čtyř až dvaceti okruhů podle počtu připojených rozšiřujících relé modulů. V praxi lze dokupovat a instalovat teplotní čidla na okruhy podle potřeby. Teplotní čidlo venkovní teploty může být nahrazeno aktuální teplotou z webu např. Českého hydrometeorologického ústavu. Jako zdroje tepla uvažujeme vše to, co ovlivňuje energetickou bilanci na straně dodávky tepla. Mohou zde být tepelná čerpadla, kotle na tuhá paliva, plyn, solární kolektory, přímotopné soustavy,výměníky tepla s externí dodávkou a akumulační nádoby. Ovládání zdrojů může probíhat v rámci spínání ON-OFF nebo analogovým signálem pro plynulou regulaci výkonu. Práce s daty by probíhala pomocí přímého připojení na web instalovaného zařízení a sledováním aktuálních procesů. Pozorování grafického znázornění průběhu teploty v závislosti na čase, a praktickou realizaci je možno vidět na obrázku 7.3 [24]. Obr. 7.3 Praktická realizace a grafické znázornění průběhů teplot v závislosti na čase 7.2 FTP server napájený solární energií K tomuto projektu je zapotřebí menší solární panel, dobíjecí baterie, micro USB kabel a náš známý Raspberry Pi. Solární panel pomocí micro USB kabelu připojíme k napájení Raspberry Pi, které je taktéž propojeno s nabíjecími bateriemi. Solární panel dokáže při slunečném dni bez problému nabíjet Raspberry Pi a přebytečná energie nabíjí baterie. Jakmile nastane večer a solární panel nemá odkud brát energii, tak si Raspberry Pi vezme energií z nabitých baterií. Model tohoto zařízení je na obrázku 7.4 [25].
62 Obr. 7.4Raspberry Pi připojen k solárnímu panelu a bateriím [25] Posledním krokem, který je třeba udělat je instalace FTP (File Transfer Protocol) serveru na Raspberry Pi. Programů zajišťujících funkcionalitu je více, jeden z nejznámějších je znám pod zkratkou vsftpd (Very Secure FTP Deamon).Instalace se provede pomocí příkazového řádku příkazem sudoaptitudeinstallvsftpd Poté pomocí dalších příkazů se nakonfiguruje FTP server a popřípadě se nainstaluje grafické prostředí neboli databáze pro lepší přehlednost, přístup a správu dat, jako je například phpmyadmin. Raspberry Pi má výhodu, že má malou spotřebu energie, a dokáže zaujmout poměrně malé místo, a proto má tento projekt využití i tam, kde není přístup k energii. Nevýhoda tohoto projektu je, že pokud je zataženo nebude moci solární panel dodávat potřebnou energii k Raspberry Pi a baterie se mohou vybít [26]. 7.3 Otevírání elektronických dveří Nastavení otevírání elektronických dveří je poměrně levné a lehko realizovatelné. Je zapotřebí mít: 1. Raspberry Pi 2. Wifi adaptér nebo ethernet kabel 3. Micro USB s cestovní nabíječkou 4. 5V relé 5. SD karta Aby celý projekt fungoval je třeba zařízení připojit k internetu pomocí wifi, nebo ethernet kabelu, ale z hlediska použití je lepší přiklonit se k wifi. Po celou dobu musí být ošetřeno napájení Raspberry Pi, například nabíječkou s micro USB a nakonec připojit 5V relé ke spuštění otevření dveří. Pro otevření dveří může sloužit určitý kód, který se nahraje prostřednictvím SD karty o velikosti alespoň 2GB. Raspberry Pi bude muset fungovat jako webový server, ke kterému se lze připojit z kteréhokoliv zařízení, například z mobilního telefonu. Po vložení hesla nebo kliknutím na určitý odkaz se dveře otevřou. Celé připojení od zámku přes relé, až po Raspberry je vidět na obrázku 7.5 [27].
63 Obr Schéma otevírání dveří [27] Takový projekt, by se mohl uplatnit v otevírání garážových dveří pro velkosklady, bez kterých se v průmyslu nejde obejít. Například každý řidič přijíždějící k návěsu skladu by mohl dveře otevřít, a při odjíždění zavřít v kabině auta, za pomocí mobilního telefonu. 7.4 Kamerový systém V tomto projektu jde o kamerový systém, který dokáže detekovat pohyb. K tomu je opět nutné připojit Raspberry Pi k síti, a v případě pohybu nahraje a uloží několika minutové video dle nastavení. Výhodou tohoto projektu je především levná cena, přístup k videím ze sítě a změna parametrů videa, což u jiných kamerových systému je především dáno výrobcem. Nevýhodou je naopak SD karta, která má omezenou velikost, a proto je vhodnější ukládat videa do počítače v síti, který ovšem musí být nonstop v provozu. Tento levný kamerový systém může sloužit jako bezpečnostní kamera v průmyslových objektech. 7.5 Bezdrátové ovládání Bezdrátového ovládání pomocí Raspberry Pi se nejlépe docílí připojením modulu EnOceanPi (viz Obr. 7.6), což je zařízení, které transformuje Raspberry do bezdrátové komunikační brány a je pro tento účel vytvořen.
64 Obr. 7.6EnOceanPi [28] Modul EnOceanPi je dostupný ve třech verzích: 1. EnOceanPi 868 MHz (Evropa, Čína) 2. EnOceanPi 315 MHz (Japonsko, Indie, Severní Amerika) 3. EnOceanPi 902 MHz (Severní Amerika) Modul dokáže přijímat data ze snímačů, vypínačů a dalších prvků. K odeslání dat na Raspberry se využívá přeměny energie mechanické, světelné nebo rozdílu teplot od napájení snímačů. Tímto způsobem lze ovládat pomocí Raspberry Pi světla, regulace topení, zajistit chod dopravníku a mnoho jiných využití v průmyslu, kde je zapotřebí snímačů. 7.6 Měření počasí a kvality ovzduší AirPi dokáže měřit teplotu, vlhkost, tlak vzduchu, intenzitu světla, ale také dokáže rozpoznat ve vzduchu výskyt znečišťujících látek, jako jsou oxid uhelnatý a oxid dusičitý. Přístroj by se mohl uplatnit například ve společnostech vysokých pecí, ve výrobě oceli a celkově v metalurgických procesech, pro měření znečištění vzduchu. Výhodou je nízká cena a dostupnost. 7.7 Měření charakteristik Raspberry Pi může měřit a graficky znázornit různé charakteristiky, a tím pracovat jako osciloskop. Tohle všechno ovšem dokáže jen za pomocí přídavného zařízení BitScope Micro, který byl pro tento účel vytvořen. BitScope Micro (viz Obr. 7.7) dokáže přeměnit Raspberry Pi na digitální osciloskop, multikanálový logický analyzátor, hodinový generátor a spektrální analyzátor [29]. Obr. 7.7 BitScope Micro [29] Zapojení je triviální, přes USB se BitScope Micro připojí do Raspberry Pi, na druhou stranu lze na piny připojit sondy pro měření signálů. Díky optimalizovanému softwaru pro tento přístroj lze snadno vykreslit grafy (obrázek 7.8) [29].
65 Obr. 7.8 Vykreslování grafů v grafickém rozhraní Použití Raspberry Pi jako osciloskop je výhodné hlavně cenově. Je využitelný pro veškeré měření napěťových signálu, vykreslování kmitočtových závislostí na čase apod. Shrnutí pojmů Příklady aplikace Raspberry Pi. Otázky Popište regulaci teploty s Raspberry Pi. Charakterizujte FTP server napájený solární energií s Raspberry Pi. Charakterizujte otevírání elektronických dveří s Raspberry Pi. Charakterizujte kamerový systém s Raspberry Pi. Popište bezdrátové ovládání s Raspberry Pi. Popište měření počasí a kvality ovzduší s Raspberry Pi. Popište měření různých charakteristik s Raspberry Pi.
Algoritmy a algoritmizace
Otázka 21 Algoritmy a algoritmizace Počítačové programy (neboli software) umožňují počítačům, aby přestaly být pouhou stavebnicí elektronických a jiných součástek a staly se pomocníkem v mnoha lidských
Algoritmizace. 1. Úvod. Algoritmus
1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá
Algoritmizace- úvod. Ing. Tomáš Otáhal
Algoritmizace- úvod Ing. Tomáš táhal Historie 9. století perský matematik a astronom Mohammed Al-Chorezím v latinském přepise příjmení= algoritmus Nejstarší algoritmus Euklides řecký matematik, 4. století
Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus
Pracovní listy - programování (algoritmy v jazyce Visual Basic) Předmět: Seminář z informatiky a výpočetní techniky Třída: 3. a 4. ročník vyššího stupně gymnázia Algoritmus Zadání v jazyce českém: 1. Je
Výukový materiál zpracován v rámci projektu EU peníze školám
Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední
Arduino Martin Friedl
Arduino Martin Friedl 1 Obsah Materiály Vlastnosti Programování Aplikace 2 Co je to Arduino? Arduino je otevřená elektronická platforma, založená na uživatelsky jednoduchém hardware a software. Arduino
Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost
Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,
Martin Friedl. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky.
Martin Friedl 1 Obsah Materiály Vlastnosti Programování Aplikace 2 Co je to Arduino? Arduino je otevřená elektronická platforma, založená na uživatelsky jednoduchém hardware a software. Arduino je určeno
Pojem algoritmus a jeho základní vlastnosti
DUM Algoritmy DUM III/2-T1-1-1 PRG-01A-var1 Téma: Úvod do algoritmů - výklad Střední škola Rok: 2012 2013 Varianta: A Zpracoval: Mgr. Pavel Hrubý VÝKLAD Pojem algoritmus a jeho základní vlastnosti Obsah
Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.
Algoritmus Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Klíčové pojmy: Algoritmus, vlastnosti algoritmu, tvorba algoritmu, vývojový diagram, strukturogram Algoritmus
Matematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
Identifikátor materiálu: ICT-4-01
Identifikátor materiálu: ICT-4-01 Předmět Téma sady Informační a komunikační technologie Téma materiálu Počítačové algoritmy Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí Počítačové
Algoritmizace. Obrázek 1: Přeložení programu překladačem
Algoritmizace V každém okamžiku ví procesor počítače přesně, co má vykonat. Pojmem procesor se v souvislosti s algoritmy označuje objekt (např. stroj i člověk), který vykonává činnost popisovanou algoritmem.
Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
Obsah ZÁKLADNÍ DESKA. O autorech 11 Úvod 13
O autorech 11 Úvod 13 Programování je zábavné! 13 Trocha historie 15 K čemu je tedy počítač Raspberry Pi dobrý? 19 Zpětná vazba od čtenářů 21 Zdrojové kódy ke knize 21 Errata 21 ČÁST I ZÁKLADNÍ DESKA KAPITOLA
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace Číslo projektu Číslo materiálu Autor Průřezové téma Předmět CZ.1.07/1.5.00/34.0565 VY_32_INOVACE_284_Programovací_jazyky
Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.
Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou
6 Příkazy řízení toku
6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní
Základy algoritmizace
Algoritmus Toto je sice na první pohled pravdivá, ale při bližším prozkoumání nepřesná definice. Například některé matematické postupy by této definici vyhovovaly, ale nejsou algoritmy. Přesné znění definice
Lekce 01 Úvod do algoritmizace
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním
3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3
Obsah Obsah 1 Program přednášek 1 2 Podmínky zápočtu 2 3 Co je algoritmus? 2 3.1 Trocha historie............................ 2 3.2 Definice algoritmu.......................... 3 3.3 Vlastnosti algoritmu.........................
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013
Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521
Raspberry PI: Obr. 1 Raspberry PI
Raspberry PI Stručná charakteristika: Raspberry PI je základní stavební prvek systému SensorFor. Umožňuje přímou komunikaci jednotlivých modulů lokální sítě se vzdáleným cloud serverem. server je dostupný
Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
KAPITOLA 1 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ
KAPITOLA 1 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ KLÍČOVÉ POJMY technické vybavení počítače uchování dat vstupní a výstupní zařízení, paměti, data v počítači počítačové sítě sociální
ŠVP Gymnázium Ostrava-Zábřeh. 4.8.16. Úvod do programování
4.8.16. Úvod do programování Vyučovací předmět Úvod do programování je na naší škole nabízen v rámci volitelných předmětů v sextě, septimě nebo v oktávě jako jednoletý dvouhodinový kurz. V případě hlubšího
Program a životní cyklus programu
Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy
2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu
Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Ověřeno ve výuce dne, třída Střední průmyslová škola strojnická Vsetín
Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií
VY_32_INOVACE_31_04 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední
Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.
Základní pojmy IT, číselné soustavy, logické funkce Základní pojmy Počítač: Stroj na zpracování informací Informace: 1. data, která se strojově zpracovávají 2. vše co nám nebo něčemu podává (popř. předává)
PŘÍLOHY. PRESTO USB programátor
PŘÍLOHY PRESTO USB programátor 1. Příručka PRESTO USB programátor Popis indikátorů a ovládacích prvků Zelená LED (ON-LINE) - PRESTO úspěšně komunikuje s PC Žlutá LED (ACTIVE) - právě se komunikuje s uživatelskou
Základní pojmy informačních technologií
Základní pojmy informačních technologií Informační technologie (IT): technologie sloužící k práci s daty a informacemi počítače, programy, počítač. sítě Hardware (HW): jednoduše to, na co si můžeme sáhnout.
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: CZ.1.07/1.5.00/34.0410 Číslo šablony: 1 Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek:
Identifikátor materiálu: ICT-1-08
Identifikátor materiálu: ICT-1-08 Předmět Informační a komunikační technologie Téma materiálu Motherboard, CPU a RAM Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí základní desku počítače.
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
IB111 Úvod do programování skrze Python Přednáška 13
IB111 Úvod do programování skrze Python Přednáška 13 Programovací jazyky Nikola Beneš 14. prosinec 2016 IB111 přednáška 13: programovací jazyky 14. prosinec 2016 1 / 21 Osnova dnešní přednášky Programovací
Přídavné karty. Zvuková karta. Síťová karta
Přídavné karty - jsou samostatná hardwarová zařízení umožňující rozšířit možnosti počítače o nové funkce, které základní hardwarová sestava neumožňuje. - díky přídavným kartám se z počítače stává skutečně
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento
Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2
* násobení maticové Pro čísla platí: Pro matice - násobení inverzní maticí inv inverzní matice A -1 k dané matici A je taková matice, která po vynásobení s původní maticí dá jednotkovou matici. Inverzní
VYUŽITÍ PYTHONU PRO REALTIMOVÉ ŘÍZENÍ PERIFERIÍ
České vysoké učení technické v Praze Fakulta strojní Ústav přístrojové a řídicí techniky VYUŽITÍ PYTHONU PRO REALTIMOVÉ ŘÍZENÍ PERIFERIÍ v rámci předmětu Python pro vědecké výpočty Ladislav Sückr 16.12.2012
Profilová část maturitní zkoušky 2017/2018
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE
Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_13_HARDWARE_S1 Číslo projektu: CZ 1.07/1.5.00/34.1077
) informace o stavu řízené veličiny (předávaná řídícímu systému) - nahrazování člověka při řízení Příklad řízení CNC obráběcího stroje
zapis_rizeni_uvod - Strana 1 z 9 20. Úvod do řízení Řízení Zpětná vazba (angl. #1 je proces, kdy #2 část působí na základě vstupních informací a zpětné vazby na #3 část zařízení tak, aby se dosáhlo požadovaného
ALGORITMIZACE Příklady ze života, větvení, cykly
ALGORITMIZACE Příklady ze života, větvení, cykly Cíl kapitoly: Uvedení do problematiky algoritmizace Klíčové pojmy: Algoritmus, Vlastnosti správného algoritmu, Možnosti zápisu algoritmu, Vývojový diagram,
Středoškolská technika SCI-Lab
Středoškolská technika 2016 Setkání a prezentace prací středoškolských studentů na ČVUT SCI-Lab Kamil Mudruňka Gymnázium Dašická 1083 Dašická 1083, Pardubice O projektu SCI-Lab je program napsaný v jazyce
Obsah. O autorovi 11 Předmluva 13 Zpětná vazba od čtenářů 14 Errata 14
Obsah O autorovi 11 Předmluva 13 Zpětná vazba od čtenářů 14 Errata 14 KAPITOLA 1 Úvod k počítači Raspberry Pi 15 Hardware 16 Mikroprocesor Broadcom 2835 / grafický procesor 16 Paměť 18 Konektory počítače
INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE
Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_12_HARDWARE_S1 Číslo projektu: CZ 1.07/1.5.00/34.1077
1 Základy algoritmizace a programování. 1.1 Algoritmus. 1.1.1 Možnosti zápisu algoritmů. Základy algoritmizace a programování
1 Základy algoritmizace a programování 1.1 Algoritmus Algoritmus je posloupnost operací, která řeší daný úkol v konečném počtu kroků. Je to přesný postup, který je potřeba k vykonání určité činnosti. Jinak
Hardware Skladba počítače. Mgr. Lukáš Provazník ZŠ praktická a ZŠ speciální Lomnice nad Popelkou DUM č.: VY_3.2_INOVACE_1LP_35
Hardware Skladba počítače Mgr. Lukáš Provazník ZŠ praktická a ZŠ speciální Lomnice nad Popelkou DUM č.: VY_3.2_INOVACE_1LP_35 Počítač Zařízení pro zpracováni dat (v souborech text, hudba, video) Počítačová
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
Profilová část maturitní zkoušky 2013/2014
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
Překladač a jeho struktura
Překladač a jeho struktura Překladače, přednáška č. 1 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 23. září 2008 Definice
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 1.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 06 Ver.1.10 J. Zděnek,
Úvod. Programovací paradigmata
.. Úvod. Programovací paradigmata Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Cíl: programování efektivně a bezpečně Programovací techniky
Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
První kroky s METEL IEC IDE
První kroky s poskytuje programování v IEC 61131-3 jazycích, podporuje jak grafickou tak textovou podobu. Umožňuje vytvářet, upravovat a ladit IEC 61131-3 (ST, LD, IL, FBD) programy pro řídicí jednotky
Předmět: informační a komunikační technologie
Předmět: informační a komunikační technologie Výukový materiál Název projektu: Zkvalitnění výuky prostřednictvím ICT Číslo projektu: CZ.1.07/1.5.00/34.0799 Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím
Vývojové kity Mega48,
Vývojové kity Mega48, Mega48 Mega48X a Mega328 Ucelená řada ada vývojových kitů s obvody ATmega48 a ATmega328 je vhodná jak pro výukové účely ely a seznámení se s funkcemi mikrokontrolér mikrokontrolérů,
Jízda po čáře pro reklamní robot
Jízda po čáře pro reklamní robot Předmět: BROB Vypracoval: Michal Bílek ID:125369 Datum: 25.4.2012 Zadání: Implementujte modul do podvozku robotu, který umožňuje jízdu robotu po předem definované trase.
dodání během 2. pololetí 2013, objednáno bude s měsíčním předstihem
Max. cena za kus Max. cena za ks Max. celkem za č. Předmět Počet ks bez DPH vč. DPH položky vč. DPH Požadavky 1 počítače do učebny 13 12 500,00 15 125,00 196 625,00 Parametry: dodání během 2. pololetí
Minix NEO Z64 Windows 8.1
Minix NEO Z64 Windows 8.1 Uživatelská příručka CZ Děkujeme Vám za zakoupení Minix NEO Z64 s OS Windows 8.1 Minix NEO Z64 je revoluční kompaktní Mini PC s čtyřjádrovým procesorem Intel Atom. NEO Z64 nově
2. lekce Algoritmus, cyklus Miroslav Jílek
2. lekce Algoritmus, cyklus Miroslav Jílek 1/36 Algoritmus 2/36 Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů 3/36 Algoritmus je konečná posloupnost operací, která dává
3. Maturitní otázka PC komponenty 1. Počítačová skříň 2. Základní deska
3. Maturitní otázka Počítač, jeho komponenty a periferní zařízení (principy fungování, digitální záznam informací, propojení počítače s dalšími (digitálními) zařízeními) Počítač je elektronické zařízení,
Mikrokontroléry. Doplňující text pro POS K. D. 2001
Mikrokontroléry Doplňující text pro POS K. D. 2001 Úvod Mikrokontroléry, jinak též označované jako jednočipové mikropočítače, obsahují v jediném pouzdře všechny podstatné části mikropočítače: Řadič a aritmetickou
UniPi 1.1 Lite Technologická dokumentace
UniPi 1.1 Lite Technologická dokumentace Obsah 1 Úvodní představení produktu... 3 2 Popis produktu... 4 2.1 Využití GPIO pinů... 5 2.2 GPIO konektor... 5 2.3 Napájení... 6 2.4 Montáž Raspberry Pi k UniPi
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
Maturitní témata - PRT 4M
Maturitní témata - PRT 4M ústní zkouška profilové části Maturita - školní rok 2015/2016 1. Architektura mikrořadičů a PC 2. Popis mikrořadičů řady 51 3. Zobrazovací jednotky 4. Řadiče Atmel 5. Hradlová
1 Osobní počítač Obecně o počítačích Technické a programové vybavení... 4
1 Osobní počítač... 2 1.1 Architektura IBM PC... 2 2 Obecně o počítačích... 3 2.1 Co jsou počítače dnes... 3 3 Technické a programové vybavení... 4 3.1 Hardware... 4 3.1.1 Procesor... 4 3.1.2 Sběrnice...
Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií
VY_32_INOVACE_31_05 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední
ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14
ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 14 0:40 1.3. Vliv hardware počítače na programování Vliv
ALGORITMIZACE A PROGRAMOVÁNÍ
Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení
C2115 Praktický úvod do superpočítání
C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137
Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010
Přednášky o výpočetní technice Hardware teoreticky Adam Dominec 2010 Rozvržení Historie Procesor Paměť Základní deska přednášky o výpočetní technice Počítací stroje Mechanické počítačky se rozvíjely už
Uživatelská příručka
www.rexcontrols.cz www.contlab.eu www.pidlab.com Ovladač systému REX pro 1-Wire (modul OwsDrv) Uživatelská příručka REX Controls s.r.o. Verze 2.10.7 (revize 2) Plzeň 16.12.2015 Obsah 1 Ovladač OwsDrv a
11. Přehled prog. jazyků
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 11 1 Základy algoritmizace 11. Přehled prog. jazyků doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
Osobní počítač. Zpracoval: ict Aktualizace: 10. 11. 2011
Osobní počítač Zpracoval: ict Aktualizace: 10. 11. 2011 Charakteristika PC Osobní počítač (personal computer - PC) je nástroj člověka pro zpracovávání informací Vyznačuje se schopností samostatně pracovat
IB111 Programování a algoritmizace. Programovací jazyky
IB111 Programování a algoritmizace Programovací jazyky Programovací jazyky Programovací jazyk Prostředek pro zápis algoritmů, jež mohou být provedeny na počítači Program Zápis algoritmu v programovacím
architektura mostů severní / jižní most (angl. north / south bridge) 1. Čipové sady s architekturou severního / jižního mostu
Čipová sada Čipová sada (chipset) je hlavní logický integrovaný obvod základní desky. Jeho úkolem je řídit komunikaci mezi procesorem a ostatními zařízeními a obvody. V obvodech čipové sady jsou integrovány
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE
Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_17_HARDWARE_S1 Číslo projektu: CZ 1.07/1.5.00/34.1077
Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr
Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)
Profilová část maturitní zkoušky 2015/2016
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2015/2016 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika
pouˇzití USB nebo SPI
Připojení modulů IQRF k platformě Android za pouˇzití USB nebo SPI Bc. Josef Jebavý, http://xeres.cz 25. srpna 2015 Obsah 1 Operační systém Android 2 2 Moˇznosti řešení 2 2.1 USB........................................
2.7 Základní deska. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu
Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Ověřeno ve výuce dne, třída Střední průmyslová škola strojnická Vsetín
Software programové vybavení. 1. část
Software programové vybavení 1. část Software Vše co není HW je SW = pojem se někdy vztahuje jak na programy, tak na data Oživuje hardware (zdaleka ne jen počítače) Je-li přítomen procesor, musí být i
Základní deska (motherboard, mainboard)
Základní deska (motherboard, mainboard) Jedná se o desku velkou cca 30 x 25 cm s plošnými spoji s množstvím konektorů a slotů připravených pro vložení konkrétních komponent (operační paměť, procesor, grafická
www.zlinskedumy.cz Střední průmyslová škola Zlín
VY_32_INOVACE_31_12 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední
Systémy pro měření, diagnostiku a testování prototypů II. Odůvodnění vymezení technických podmínek podle 156 odst. 1 písm. c) ZVZ
Název veřejné zakázky: Systémy pro měření, diagnostiku a testování prototypů II. Odůvodnění vymezení technických podmínek podle 156 odst. 1 písm. c) ZVZ Technická podmínka: Odůvodnění Zaškolení obsluhy:
TC-502L. Tenký klient
TC-502L Tenký klient Popis přístroje Tenký klient s kompletní podporou pro připojení do systémů Windows 7, Vista, Windows 2008, Windows 2003, Windows XP Pro, Linux servery. Disponuje 1x rozhraním LAN 10/100,
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento
Pohled do nitra mikroprocesoru Josef Horálek
Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická
ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 2+2.1 3/14
ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2013 2+2.1 3/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 12 0:40 Programování na PC Při programování na PC musíme
Vestavné systémy BI-VES Přednáška 10
Vestavné systémy BI-VES Přednáška 10 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011 ZS2010/11 Evropský
TC-502L TC-60xL. Tenký klient
TC-502L TC-60xL Tenký klient Popis přístroje Tenký klient TC-502L s kompletní podporou pro připojení do systémů Windows 7, Vista, Windows 2008, Windows 2003, Windows XP Pro, Linux servery. TC-604 navíc
Mikropočítačová vstupně/výstupní jednotka pro řízení tepelných modelů. Zdeněk Oborný
Mikropočítačová vstupně/výstupní jednotka pro řízení tepelných modelů Zdeněk Oborný Freescale 2013 1. Obecné vlastnosti Cílem bylo vytvořit zařízení, které by sloužilo jako modernizovaná náhrada stávající
Profilová část maturitní zkoušky 2014/2015
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2014/2015 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika
Konektory a Kabely. Aneb zařízení integrovaná do základní desky a konektory a kabeláž pro připojení externích zařízení
Karel Johanovský Michal Bílek SPŠ-JIA Konektory a Kabely Aneb zařízení integrovaná do základní desky a konektory a kabeláž pro připojení externích zařízení 1 Zařízení integrovaná do MB Základní deska se
Zařízení pro měření teploty, atmosférického tlaku a nadmořské výšky
FREESCALE TECHNOLOGY APPLICATION 2012-2013 Zařízení pro měření teploty, atmosférického tlaku a nadmořské výšky Jméno: Libor Odstrčil Ročník: 3. Obor: IŘT Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované