raspberry pi jako pomůcka ve výuce odborných předmětů · berryio, webiopi abstract this...
TRANSCRIPT
Jihočeská univerzita v Českých Budějovicích
Pedagogická fakulta
Oddělení celoživotního vzdělávání
Závěrečná práce
Raspberry PI jako pomůcka ve výuce
odborných předmětů
Vypracoval: Mgr. Tomáš Svatek
Vedoucí práce: Ing. Michal Šerý, Ph.D.
České Budějovice 2016
Prohlášení
Prohlašuji, že svoji závěrečnou práci jsem vypracoval samostatně pouze s použitím
pramenů a literatury uvedených v seznamu citované literatury.
Prohlašuji, že v souladu s § 47b zákona č. 111/1998 Sb. v platném znění souhlasím se
zveřejněním své závěrečné práce, a to v nezkrácené podobě elektronickou cestou ve
veřejně přístupné části databáze STAG provozované Jihočeskou univerzitou v Českých
Budějovicích na jejích internetových stránkách, a to se zachováním mého autorského
práva k odevzdanému textu této kvalifikační práce. Souhlasím dále s tím, aby toutéž
elektronickou cestou byly v souladu s uvedeným ustanovením zákona č. 111/1998 Sb.
zveřejněny posudky školitele a oponentů práce i záznam o průběhu a výsledku obhajoby
kvalifikační práce. Rovněž souhlasím s porovnáním textu mé kvalifikační práce s databází
kvalifikačních prací Theses.cz provozovanou Národním registrem vysokoškolských
kvalifikačních prací a systémem na odhalování plagiátů.
V Českých Budějovicích dne 10. června 2016 Tomáš Svatek
Anotace
Tato práce se zabývá popisem a základním využitím mini počítače Raspberry Pi, konkrétně
jeho třetí verze. Práce obsahuje popis rozdílů jednotlivých modelů, druhy operačních
systémů a možnosti komunikace periférií. Praktická část se pak zaměří na instalaci
operačního systému s popisem řešení možných problémů. Součástí je i naprogramování
jednoduché aplikace pro síťovou komunikaci (Wi-Fi modul).
Klíčová slova:
Raspberry Pi, Noobs, Raspbian, Windows 10 IoT Core, Ubuntu Mate, Risc OS, ARM, Pinet,
BerryIO, WebIOPi
Abstract
This thesis deals with the description and basic usage of the mini computer Raspberry Pi,
specifically its third version. The thesis includes the description of individual models,
types of operating systems and the possibilities of peripheral communication. The
practical part is focused on installation of the operational system with a guide to the
solution of potential problems. Programming of an application for simple network (Wi-Fi
modul) communication is also included.
Key words:
Raspberry Pi, Noobs, Raspbian, Windows 10 IoT Core, Ubuntu Mate, Risc OS, ARM, Pinet,
BerryIO, WebIOPi
Poděkování
Chtěl bych tímto poděkovat svému vedoucímu práce Ing. Michalu Šerému, Ph. D. za
cenné rady, připomínky a doporučení. Dále bych chtěl poděkovat svému kamarádovi
Mgr. Dis. Vítu Barabášovi za poskytnutí některých informací.
Obsah
1 Úvod ............................................................................................................................... 7
1.1 Cíle práce ................................................................................................................. 7
2 Raspberry Pi ................................................................................................................... 8
2.1 Dostupné modely a technické specifikace .............................................................. 9
2.1.1 GPIO ................................................................................................................. 9
2.1.2 Raspberry Pi 1. generace ............................................................................... 11
2.1.3 Raspberry Pi 2. generace ............................................................................... 12
2.1.4 Raspberry Pi 3. generace ............................................................................... 13
2.2 Dostupné moduly .................................................................................................. 14
2.2.1 Sense HAT ...................................................................................................... 14
2.2.2 Výpočetní modul ............................................................................................ 15
2.2.3 UniPi ............................................................................................................... 15
2.2.4 Rozpočet ........................................................................................................ 16
2.3 Operační systémy pro Raspberry Pi ...................................................................... 17
2.3.1 Noobs ............................................................................................................. 18
2.3.2 Raspbian ......................................................................................................... 19
2.3.3 Ubuntu Mate .................................................................................................. 21
2.3.4 Windows 10 IoT CORE ................................................................................... 23
2.3.5 OSMC ............................................................................................................. 28
2.3.6 LibreELEC ........................................................................................................ 29
2.3.7 Risc OS ............................................................................................................ 30
2.3.8 PINET .............................................................................................................. 31
3 Praktická část ............................................................................................................... 33
3.1 Vzdálené ovládání Raspberry Pi ............................................................................ 33
3.1.1 BerryIO ........................................................................................................... 33
3.1.2 WebIOPI ......................................................................................................... 35
3.2 Obsluha komunikace ............................................................................................. 43
4 Využití Raspberry Pi ve výuce ...................................................................................... 46
4.1 Výhody podle předmětů ....................................................................................... 46
4.2 Možné využití a nápady na projekty ..................................................................... 48
5 Závěr ............................................................................................................................ 51
6 Seznam použité literatury a online zdrojů ................................................................... 52
7 Seznam obrázků ........................................................................................................... 55
7
1 Úvod
V dnešní době přemíry elektroniky se snažíme studentům nejen technických oborů co
nejvíce přiblížit fungování a řízení jednotlivého hardwaru, od procesoru přes různé
periférie. S tímto trendem vznikají malé jednodeskové počítače, které jsou modulární
a nechají se snadno upravovat.
Studenti si tyto technologie sami hledají a zajímají se o to, jak určité věci fungují.
Vzhledem k tomu, že jsem již měl několik dotazů ohledně tohoto zařízení, stala se tato
práce příležitostí popsat základní prvky jednoho z nejrozšířenějších zařízení, a to
Raspberry Pi1.
1.1 Cíle práce
Cílem práce v teoretické části je vytvořit jednoduchého průvodce pro úplné začátečníky,
který se bude dotýkat dostupných modelů Raspberry Pi s popisem rozdílů a podá výčet
některých dostupných modulů od senzorů a čidel až po servo motory a LCD displeje.
Další částí bude popis operačních systémů dostupných pro Raspberry Pi, postup jejich
instalace, základní práce a popis možných problémů, které jsou již známé, či se s nimi
setkám teprve v průběhu práce.
Hlavní náplní praktické části bude nainstalovat různé operační systémy, vyzkoušet je
a poté popsat v teoretické části.
Dalším úkolem bude napsat v některém programovacím jazyce napsat program, který
bude snímat komunikaci po Wi-Fi modulu a data bude vypisovat do konsole a ukládat do
souboru.
1 https://www.raspberrypi.org/
8
2 Raspberry Pi
Raspberry Pi® je malý jednodeskový počítač velikosti platební karty, který byl vyvinut
britskou nadací Raspberry Pi Foundation [1.], a to za účelem podpory výuky informatiky
na školách za pomoci řešení různých problémů, které s výukou souvisí, za pomoci modulů
a měřicích zařízení, jichž je pro tento počítač k dispozici již několik desítek.
obrázek 1 – Logo Raspberry Pi [1.]
Obrovskou výhodu vidím ve velké uživatelské podpoře. Na oficiálních stránkách jsou
dostupné různé projekty rozdělené do několika kategorií:
pro učitele
pro studenty
samostatné projekty pro Raspberry Pi
Raspberry Pi Foundation se snaží dodat potřebné znalosti a schopnosti všem bez ohledu
na jejich zkušenosti. K tomu slouží tzv. PICADEMY. Jedná se o úvodní dvoudenní učitelský
kurz. První den se zaměřuje na to, jak ovládat jednotlivé prvky, jako jsou LED diody
a tlačítka, věnuje se programování v prostředí Sonic Pi a úpravě světa Minecraft.
Druhý den se pak účastníci mají učit vymýšlením vlastních projektů za pomoci komunikace
s ostatními.
Další výhodou je vlastní komunita. Existuje řada neoficiálních webů s návody, nápady,
projekty a radami pro Raspberry (viz 4.2).
9
2.1 Dostupné modely a technické specifikace
Mini počítač Raspberry Pi prošel od svého vzniku několika verzemi a úpravami a zatím se
zdá, že vždy jen k lepšímu. Pro zkoušení obvodů a programování doporučuji použít
nepájivou propojovací desku na zkoušení obvodů. Pro základní zkoušení si vystačíme
s rezistory, LEDkami, spínačem atp. Pro propojení stačí tzv. ribbon kabely.
obrázek 2 - Raspberry Pi 3 Model B2
Všechny modely jsou osazeny procesory značky ARM3 od ARM Holdings4, která je na trhu
již od roku 1985. Grafický procesor s podporou OpenGL ES 2.05 a fullHD, tedy s rozlišením
1920x1080, je ve všech modelech od firmy Broadcom6, a to model VideoCore IV, u
kterého se v průběhu času měnila taktovací frekvence. Ta se u procesorů ARMv7
pohybovala na 250 MHz. U procesorů ARMv8 je to potom 300MHz. Jedná se o grafické
čipy, kterými jsou osazeny i mobilní telefony.
2.1.1 GPIO
Jedná se dvouřad pinů, které slouží ke komunikaci s hardwarem. Můžeme například
zobrazit čísla na display, rozpohybovat servo motůrek či rozsvítit LED diodu a to vše
pomocí libovolného programovacího prostředí, jako Python, Visual Studio či Ruby.
2 http://www.auseparts.com.au/index.php?route=product/product&product_id=188 3 Advanced RISC Machine (Reduced Instruction Set Computing) 4 http://www.arm.com/ 5 OpenGL for Embedded Systems – počítačové vykreslování 2D a 3D grafiky ve videohrách pro malé systémy (tablety, smartphony, ...) 6 https://www.broadcom.com/
10
Zkratka vychází z anglického General Purpose Input/Output. Signál lze jak přijímat, tak
odesílat, a to na nízké úrovni komunikace s hardwarem. Raspberry má takovýchto pinů
čtyřicet, ne všechny však mají obecné použití. Některé se musí používat výlučně na to,
k čemu byly vyrobeny. Při používání GPIO se musí dávat pozor, protože piny jsou
připojeny bez ochrany přímo na čip a ten zvládá nejvýše 3,3 V [3.].
obrázek 3 - Raspberry Pi GPIO7
Můžeme si povšimnout dvou pinů pro napájení 3,3 V, dvou pinů pro napájení 5 V a osmi
pinů pro uzemnění. Pokud budeme například chtít rozsvítit diodu, stačí ji připojit katodou
na napájení 3,3 V a anodou uzemnit. V programovacím jazyku pak například můžeme
vypnout přívod elektrické energie k diodě.
Pro práci s dostupnými perifériemi a moduly je důležitá znalost GPIO pro Raspberry Pi.
Samozřejmě moduly nejsou podmínkou a mini počítač je možno používat pouze
s operačním systémem, a to například jako multimediální centrum, WEB server nebo FTP
server.
7 http://pinout.xyz/pinout/pin5_gpio3
11
2.1.2 Raspberry Pi 1. generace
První generace Raspberry Pi bylo vyráběno v modelech A, A+, B, B+. Modely A, A+, B se již
nevyrábí. Model B+ je možno dostat na speciální objednávku.
Typ A A+ B B+
Datum vydání Únor 2013 Listopad
2014 Duben - květen
2012 Červenec 2014
SoC8 Broadcom BVM2835
CPU 700 MHz jedno-jádro ARM1176JZF-S; 32-bit
GPU Broadcom VideoCore IV 250 MHz
Paměť 256 MB SDRAM @ 400 MHz 512 MB SDRAM @ 400 MHz
USB 2.0 1x 2x 4x
Video Vstup 15-pinové MIPI9 kamerové rozhraní (CSI)
Video výstup HDMI
Audio výstup 3,5 mm jack
Úložiště na desce
SD / MMC / SDIO MicroSDHC SD / MMC / SDIO MicroSDHC
Síťové rozhraní Žádné 10/100 Mbit/s Ethernet
Zdroj 5V; 2A
tabulka 1 - Technické specifikace modelů 1. generace [2.]
obrázek 4 - z leva: A+; B 1. generace rev. 1.2 [2.]
8 System on Chip – Systém na čipu – integrovaný obvod, který obsahuje všechny součásti počítače v jediném čipu 9 https://en.wikipedia.org/wiki/MIPI_Alliance
12
2.1.3 Raspberry Pi 2. generace
Tento model nahradil model Raspberry Pi 1 model B+. Oproti svému předchůdci má vyšší
takt procesoru a dvojnásobnou operační paměť. Díky ARMv7 procesoru umožnuje plnou
podporu běhu ARM GNU/Linux distribucí, stejně jako MS Windows 10 Core.
Typ B
Datum vydání Únor 2015
SoC Broadcom BCM 2836
CPU 900 MHz; 32-bit; 4-jádro; ARM Cortex-A7
GPU Broadcom VideoCore IV 250 MHz
Paměť 1GB SDRAM @ 400 MHz
USB 2.0 4x
Video Vstup 15-pinové MIPI kamerové rozhraní (CSI)
Video výstup HDMI
Audio výstup 3,5 mm jack
Úložiště na desce MicroSDHC
Síťové rozhraní 10/100 Mbit/s Ethernet
Zdroj 5V; 2A
tabulka 2 - Technické specifikace modelu 2. generace [2.], [11.]
obrázek 5 - model B 2. generace [2.], [11.]
13
2.1.4 Raspberry Pi 3. generace
Vzhledově se neliší od svého staršího předchůdce (viz obrázek 5), ale na rozdíl od něj je
tento osazen čtyřjádrovým 64bitovým procesorem ARMv8. Zvýšilo se také taktování
grafického čipu. Dále přibyla síťová rozhraní, a to Wi-Fi modul podle standardu 802.11n
a rozhraní Bluetooth 4.1.
Typ B
Datum vydání Únor 2016
SoC Broadcom BCM 2837
CPU 1.2 GHz; 64-bit; 4-jádro; ARM Cortex-A53
GPU Broadcom VideoCore IV 300 MHz
Paměť 1GB SDRAM @ 400 MHz
USB 2.0 4x
Video Vstup 15-pinové MIPI kamerové rozhraní (CSI)
Video výstup HDMI
Audio výstup 3,5 mm jack
Úložiště na desce MicroSDHC
Síťové rozhraní 10/100 Mbit/s Ethernet
802.11n Wi-Fi Bluetooth 4.1
Zdroj 5V; 2A
tabulka 3 - Technické specifikace modelu 3. generace [2.], [11.]
obrázek 6 - Raspberry Pi 3 model B [11.]
14
2.2 Dostupné moduly
Na základě použití určitých modulů se nechá vytvořit „derivát“ z Raspberry Pi. Například
použitím modulu Sense HAT, kamerového modulu, infra kamery a leteckého pouzdra
dostaneme Astro Pi [14.].
Možné dostupné moduly:
kamera
infračervená kamera
Sense HAT – senzorová karta
PiGlow – malá destička s 18 LED, které se nechají ovládat nezávisle na sobě [13.]
deska UniPi – rozšiřující deska pro automatizaci [12.]
Wolfson Cirrus audio karta – rozšiřující zvuková karta [12.]
PiFace relé
PiFace digital – rozšiřující modul pro kontrolu světel, motorů, monitorování
digitálních vstupů
LCD display10
HiFiBerry AMP+ – zesilovač
RasPiComm RS485/RS232
SHIM RTC realtime clock – zajištění nastavení času při výpadku
Raspberry Pi výpočetní modul
Seriál I/O expander – modul pro rozšíření sériových vstupů
RasPiO11 – sada modulů pro Raspberry Pi
Level Converter – dokáže zkonvertovat 3,3 V na 5 V a naopak
2.2.1 Sense HAT
Jedná se o senzorovou kartu, která je navržena pro Astro Pi. Obsahuje:
matici 8x8 RGB LED
malý pětitlačítkový joystick
Senzory:
o Akcelerometr
o Gyroskop
o Magnetometr
o Teploměr
o Tlakoměr
o Vlhkoměr
Astro Pi, s tímto modulem, bylo reálně použito na vesmírné stanici ISS.
10 http://heikki.virekunnas.fi/2015/raspberry-pi-tft/ 11 http://rasp.io/
15
obrázek 7 - Raspberry Pi s modulem Sense HAT
2.2.2 Výpočetní modul
Jedná se modul vzhledově připomínající paměti SODIMM. K dostání je balíček, který
obsahuje výpočetní modul (CM – Compute Module) a vstupně výstupní výpočetní desku
(CMIO). Cena tohoto „kitu“ se pohybuje kolem 2700 Kč.
obrázek 8 - výpočetní modul – kit [11.]
2.2.3 UniPi
Jedná se o řídicí jednotku, která má za úkol sbírat vstupní informace a řídit zařízení třetích
stran pomocí výstupů, a to na základě naprogramovaných algoritmů. Použití je například
v ovládání chytrých budov [15.]:
Přístupové systémy
Bezpečnostní systémy
Topné a chladicí prvky
Větrání a rekuperace
16
Solární systémy
Ovládání světelných prvků
…
obrázek 9 – UniPi [15.]
Zkratka je odvozena od slova univerzální. Cena této řídicí jednotky se pohybuje kolem
120 €, tedy zhruba 3200 Kč. Programování probíhá pomocí Python knihovny, nicméně
jsou vyvinuty i jiné programovací systémy, např. EVOK12 či REX13.
2.2.4 Rozpočet
(ceny jsou orientační):
Raspberry Pi 3 sada (výhodnější cena): 1700 Kč
o Raspberry Pi 3: 1200 Kč
o microSDHC karta: 300 Kč
o adaptér: 200 Kč
o oficiální krabička: 200 Kč
USB klávesnice: 200 Kč
USB myš: 200 Kč
nevýsledná cena samozřejmě záleží na modulech, které chceme používat. Například:
PiGlow: 250 Kč
Sense HAT: 1050 Kč
LED: 15 – 30 Kč
Nepájivé kontaktní pole: 150 Kč
Sada 600 rezistorů: 308 Kč
Sada ribbon kabelů: 150 Kč
Sada drátkových propojek: 330 Kč
12 http://elektro.tzb-info.cz/merici-a-regulacni-technika/11391-vyuziti-odpadniho-tepla-z-pocitacu-pro-vytapeni-budovy 13 https://www.rexcontrols.cz/rex
17
2.3 Operační systémy pro Raspberry Pi
Pro Raspberry Pi existuje několik operačních systémů [1.] a uživatelům nic nebrání v tom,
udělat si například vlastní distribuci Linuxu.
NOOBS
Raspbian
Ubuntu Mate
Windows 10 IoT Core
OSMC
LibreELEC
Risc OS
Pinet
Co budeme potřebovat:
Internet
microSDHC kartu (min. 8 GB třídy 10 – osobně doporučuji SanDisk nebo Kingston)
trpělivost
Win32 Disk Imager14
čtečka karet
Konkrétní software popíši u jednotlivých systémů.
14 https://sourceforge.net/projects/win32diskimager/
18
2.3.1 Noobs
Technicky se nejedná přímo o plnohodnotný operační systém, ale jakousi utilitu, pomocí
které můžeme nainstalovat námi vybraný operační systém.
obrázek 10 - NOOBS 1.9 rozhraní (autor: Tomáš Svatek)
Na obrázku si můžeme povšimnout, že na výběr máme ze čtyř operačních systémů, které
můžeme nainstalovat pomocí rozhraní NOOBS. To má v sobě i internetový prohlížeč, který
můžeme využít. Nicméně jiné funkce bohužel nenabízí.
19
2.3.2 Raspbian
obrázek 11 - Logo Raspbian [1.]
Jedná se o Linuxovou distribuci pro Raspberry Pi, která je odvozená od oblíbené linuxové
distribuce Debianu. Není vytvářen pod hlavičkou Raspberry Pi Foundation, ale je oficiálně
podporován a je k získání z oficiálních stránek Raspberry. První verze tohoto systému
vyšla v roce 2012 a je stále vyvíjena.
Instalace
Co budeme potřebovat:
ISO Raspbianu [1.]
Win32 Disk Imager (v případě Linuxu ImageWriter)
Min. 8 GB MicroSD kartu (třída 10+)
Stáhneme a rozbalíme ISO soubor s imagem Raspbianu. Stáhneme, nainstalujeme
a spustíme Win32 Disk Imager. Najdeme naše ISO a klikneme na write. Proces zabere pár
minut. Po jeho dokončení bychom si měli všimnout, že se nám SD karta rozdělila na
několik oddílů. V případě updatu by na daném oddílu nebyl dostatek místa.
Naštěstí tohle řeší Raspbian sám. Po spuštění systému je možné spustit konfiguraci
Raspberry Pi. Lze nastavit například [19.]:
1. Expand Filesystem – Po nakopírování na SD kartu využívá Raspbian pouze malou část celkové kapacity, necelé 3 GB. Touto volbou bude využívat celou kapacitu karty.
2. Change User Password – Změna hesla k účtu. Výchozí jméno je "pi" a heslo "raspberry". Doporučuje se změna hesla hned při prvním spuštění.
3. Enable Boot to Desktop/Scratch – Nastavení, jestli se má Raspbian spouštět v grafickém režimu, textovém režimu nebo v režimu aplikace Scratch.
4. Internationalisation Options – změna jazyka, časového pásma a rozložení klávesnice.
5. …
20
obrázek 12 - Raspbian: nastavení a přehled programů
Raspbian systém je připraven pro výuku. Má již v sobě nainstalována různá vývojová
prostředí pro výuku programování od jazyku JAVA přes Python, Scratch, Sonic Pi po
Wolfram.
Výchozí uživatelské jméno a heslo jsou:
pi
raspberry
21
2.3.3 Ubuntu Mate
obrázek 13 - Logo Ubuntu Mate [18.]
Jedná se další distribuci odvozenou od známých Ubuntu. Tento systém je stejný jako
klasický desktop s desktopovým manažerem Mate. Je vhodný pro začátečníky. Mate je
intuitivní a toho, kdo se běžně pohyboval ve Windows nebo MacOS, ničím úplně
nepřekvapí.
Instalace
Instalace je trochu složitější, nicméně daleko jednodušší než u Windows 10 IoT (viz 2.3.4).
Co tedy budeme potřebovat:
ISO Ubuntu Mate [18.]
Win32 Disk Imager
Min. 8 GB MicroSD kartu (třída 10+)
doporučuji ještě Live Linux libovolnou distribuci s gparted.
Postup je stejný jako u Raspbianu (viz Instalace - Raspbian), jen s jednou změnou a tou je
změna velikosti systémového oddílu.
Řešením je změnit jeho velikost, nicméně to se z MS Windows udělat nedá, byť ho v Disk
Manageru můžeme vidět. Neprošel mi ani Paragon Partition Manager Free 1415. Proto je
možností spustit Live Linux (např. Mint16), který v sobě má program gparted, používaný
právě pro práci s oddíly na disku.
Odpojíme (unmountnem) 4 GB oddíl s názvem PI_ROOT
Vybereme cca 4 GB oddíl s názvem PI_ROOT
Vybereme z menu Resize a roztáhneme na požadovanou velikost (necháme nějaký
prázdný prostor pro swap)
Aplikujeme změny
Vyjmeme kartu a vložíme do Raspberry Pi
15 http://www.paragon-software.com/home/pm-express/ 16 https://www.linuxmint.com/
22
Teď už zbývá jen projít klasickým přednastavením systému, jako je nastavení jazyka,
klávesnice, administrátorského hesla apod., a instalací, která trvá pár minut. Poté dojde
k restartování a naběhnutí plnohodnotného systému, který podporuje Wi-Fi modul.
V systému je již nainstalován Python IDLE, LibreOffice, Scratch, Sonic Pi, tedy základní
systémové vybavení. Další software lze samozřejmě doinstalovat přes centrum softwaru.
obrázek 14 - Ubuntu Mate
23
2.3.4 Windows 10 IoT CORE
obrázek 15 - MS Windows 10 IoT Core [1.]
Na úvod musím říci, že se nejedná o systém určený začátečníkům. Nejde totiž o klasický
desktopový systém. Práce s ním navíc vyžaduje velkou trpělivost. V době psaní této práce
je pro Raspberry Pi 3 model B dostupná pouze Insider Preview verze [16.].
Bohužel, tento OS se ovládá vzdáleně přes webové rozhraní nebo PowerShell. Pokud
připojíme nejprve ethernet kabel, nelze očekávat, že nám bude fungovat Wi-Fi modul.
Instalace
Co budeme potřebovat:
1. NOOBS nebo Image IoT, který je dostupný na stránkách Microsoftu17
Nutnost mít účet Microsoft a být v programu Insider
16 GB MicroSDHC kartu, pokud použijeme NOOBS (doporučuji použít)
2. Windows 10 IoT Core Dashboard18
3. SDFormatter19 – pouze pro formát SD karty na FAT32 (lze použít i jiný software)
Bez NOOBS
Zformátujeme SD kartu, nainstalujeme a spustíme Dashboard. Rozklikneme nebo
připojíme stažený ISO soubor a spustíme instalaci. Po skončení se přepneme do
Dashboardu a zvolíme možnost Set up a new device. I kdyby se nám líbilo si jako zařízení
vybrat Raspberry Pi, musíme v tuto chvíli vybrat Custom. Poté budeme muset najít
soubor, který se nainstaloval ze souboru v ISO souboru, a najdeme ho následujícím
způsobem:
"C:\Program Files (x86)\Microsoft IoT\FFU\DeviceType"
a vybereme Flash.ffu a zmáčkneme Install.
17 https://developer.microsoft.com/cs-cz/windows/iot/Downloads.htm 18 http://go.microsoft.com/fwlink/?LinkID=708576 19 https://www.sdcard.org/downloads/formatter_4/
24
obrázek 16 - Nastavení nového zařízení
Po proběhnutém nainstalování nás program vyzve, abychom vyjmuli SD kartu a vložili ji do
našeho zařízení a to připojili k internetu. Uvidíme načítací obrazovku. Tento proces trvá
několik minut a má dva možné výsledky:
1. Vše proběhlo, jak mělo, a po několika minutách (cca 5 – 10) uvidíme nastavovací
obrazovku a můžeme pokračovat dále
2. Po cca 15 minutách dostaneme chybu CRITICAL_PROCESS_DIED a dojde
k automatickému restartu (opět 2 možnosti)
a. Po restartu naběhne systém do nastavovací obrazovky
b. Neustále se restartuje a nenabíhá (vypadá na problém s SD kartou)
Tady jsem použil 8 GB SD kartu, bohužel jsem na ni nemohl dát
NOOBS
Pokud jste použili 16 GB kartu, pak celý proces udělejte přes NOOB
Po naběhnutí se nám ukáže rádoby plocha, kde uvidíme informace o přístroji a připojení.
Jediná funkční nabídka je nastavení a tři položky v pravém horním menu (viz obrázek 17).
V tutoriálu moc věcí nenalezneme a z příkazové řádky toho v tuto chvíli taky moc
neuděláme20.
20 https://developer.microsoft.com/en-us/windows/iot/win10/tools/commandlineutils
25
obrázek 17 - Úvodní obrazovka Windows 10 IoT (autor Tomáš Svatek)
Ovládání
Celý mini PC se ovládá pomocí vzdálené správy. Zde přichází opět na řadu náš Dashboard.
Nejen že pomocí něj instalujeme OS na SD kartu, ale taky se pomocí něj připojujeme na
náš počítač.
obrázek 18 - Přehled zařízení (autor Tomáš Svatek)
26
Jak můžeme vidět na obrázku výše, je možné si přes nabídku vybrat, jak budeme
Raspberry Pi ovládat.
PowerShell
- otevře webové rozhraní
V obou případech budeme potřebovat přihlašovací údaje. Výchozí jsou:
Uživatelské jméno: Administrator
Heslo: p@ssw0rd
obrázek 19 - Webové rozhraní Windows IoT (autor Tomáš Svatek)
Hned na úvodní obrazovce můžeme změnit název zařízení a administrátorské heslo. Dále
doporučuji změnit rozlišení, pokud si zařízení nenašlo správné nastavení.
Důležitá položka v menu je Apps21 (viz obrázek 20), přes kterou se instalují aplikace
určené pro mini PC s příponou .appx a .appxbundle. Dále zde vidíme i nainstalované
aplikace, které můžeme spouštět stisknutím tlačítka play.
Co se programování ve Visual Studiu týče, opět jedeme přes vzdálený PC a pomocí IDE
poté nahráváme náš program přímo na Raspberry22,23.
21 https://www.hackster.io/AnuragVasanwala/windows-10-iot-core-setting-startup-app-887ed0 22 https://developer.microsoft.com/en-us/windows/iot/win10/setuppcrpi 23 https://developer.microsoft.com/en-us/windows/iot/win10/samples/HelloWorld.htm
27
obrázek 20 - Windows 10 IoT - Apps menu (autor Tomáš Svatek)
Další možností, jak ovládat Raspberry Pi, je přes PowerShell24, což je klasický příkazový
řádek, jak ho známe z desktopových Windows.
obrázek 21 - PowerShell (autor tomáš Svatek)
24 https://developer.microsoft.com/en-us/windows/iot/win10/samples/powershell
28
2.3.5 OSMC
obrázek 22 - Logo OSMC [1.]
OSMC neboli Open Source Media Center je volně šiřitelný open source multimediální
přehrávač založený na bázi Linuxu. Jeho první verze vyšla v roce 2014 a umožňuje
přehrávat média z lokální sítě, připojených zařízení nebo z internetu a dále je streamovat
do dalších zařízení. Je založen na projektu Kodi25. I když vývojáři tvrdí, že je intuitivní na
ovládání, mně osobně přišlo trochu zmatené a nepřehledné.
Instalace
Celá instalace je jednoduchá a intuitivní. Provede nás jí průvodce a my jenom vybíráme,
jakou verzi chceme na SD kartu nahrát.
Poté se stáhnou potřebné soubory a po vložení do Raspberry Pi se systém sám
doinstaluje. Nás pak už jen čeká základní nastavení včetně vzhledu.
obrázek 23 - OSMC vzhled26
25 https://kodi.tv/ 26 http://distrowatch.com/table.php?distribution=osmc
29
2.3.6 LibreELEC
obrázek 24 - Logo LibreELEC
Jedná se operační systém opět vystavený na projektu Kodi a OpenELEC. To znamená, že
se jedná o další multimediální centrum. Instalace je dostupná i z prostředí NOOBS.
obrázek 25 - vzhled LibreELEC27
Tento systém podporuje nejen Raspberry Pi 0/1/2/3, ale i další mini PC, jako je WeTek,
Odroid C2 či iMX6, stejně jako na Intelu postavené počítače používající grafické adaptéry
od Nvidie, AMD a Intelu [22.].
Osobně se mi líbí o něco více než OSMC zmíněný v předchozí kapitole. Ovládání mi přišlo
jednodušší a mnohem intuitivnější.
27 http://www.cnx-software.com/2016/04/27/libreelec-openelec-fork-v7-0-0-released-with-kodi-16-1/
30
2.3.7 Risc OS
obrázek 26 - Logo RiscOS [1.]
Jedná se o plně desktopový systém, který nevychází ani z Linuxu, ani z Unixu, a ani z MS
Windows. Jedná se o vlastní specializovaný systém založený na ARM technologii. Z toho
důvodu se může chovat mírně nestandardně na rozdíl od klasických desktopových
operačních systémů.
Instalace
Image systému RiscOS [23.]
Win32 Disk Imager
MicroSD kartu (min. 2GB)
Postup instalace je stejný jako u systému Raspbian (viz 2.3.2) či Ubuntu (viz 2.3.3). Při
prvním spuštění se zobrazí uvítací obrazovka s informacemi, jakým způsobem stáhnout
další RISC software, ať už z obchodu (!Store) nebo přes PackMan utilitu.
obrázek 27 - prostředí RiscOS 28
28 http://domoticx.com/raspberry-pi-sd-image-risc-os-operating-system/
31
2.3.8 PINET
obrázek 28 - Logo PiNet [20.]
Jedná se o volně šiřitelný open source projekt [20.], který si klade za cíl pomoci školám
nastavit a spravovat učebnu složenou z Raspberry Pi zařízení. Vznikl za podpory učitelů
z více než 15 zemí světa. Mezi jeho přednosti patří například:
Síťová správa uživatelských účtů – všichni mohou být všude
Síťový operační systém
Sdílené složky
Možnost spolupráce
Automatické zálohy
Uživatelské importy
Hromadná správa softwaru pro učebnu
…
Bohužel v tuto chvíli nepodporuje připojení přes Wi-Fi. Celý software běží potom na
Ubuntu Linux.
obrázek 29 - pracovní plocha PiNetu [20.]
32
Celý postup zprovoznění učebny trvá podle tvůrců zhruba 2 – 3 hodiny. Základem je mít
síťové prvky a volný počítač. Pro nahrání PiNetu na SD kartu jako součásti síťového OS
stačí mít MicroSD kartu o minimální kapacitě 128 MB.
Celá instalace probíhá v několika krocích a jako administrátor provádíme:
1. Instalace Ubuntu Linux
2. Stažení PiNet skriptu a jeho následné spuštění
3. Vyžádá se heslo a zvolí se úplná instalace
4. PiNet je kompatibilní se staršími verzemi sebe sama
5. Můžeme vybrat stabilní nebo experimentální verzi
6. Instalace trvá asi 1 - 2 hodiny
7. Nastaví se IP adresa
8. Vytvoří se spouštěcí MikroSD karty
33
3 Praktická část
Vzhledem k potenciálu, který Raspberry Pi představuje, vznikají utility, jež mají za úkol
zjednodušit práci všem, kteří chtějí s tímto mini PC pracovat. Nesoustřeďují se pouze na
uživatele, kteří u něj budou přímo fyzicky sedět, ale zaměřují se hlavně na možnost
ovládat připojená zařízeně vzdáleně, a to několika způsoby:
přes webové rozhraní
mobilní aplikací
desktopovou aplikací stylem server-klient
3.1 Vzdálené ovládání Raspberry Pi
Existuje několik možných softwarových řešení, jak dosáhnout nejen vzdáleného ovládání,
ale i tvorby aplikací pomocí těchto softwarů.
BerryIO [25.]
WebIOPI [26.]
3.1.1 BerryIO
Jedná se o systém, který je v době psaní práce ve ver. V1.12.5 z 27. 11. 2015. Vzhledem
k datu vydání Raspberry Pi 3 zatím nemá podporu 40 pinů, ale pouze 26. Připojení
k webovému rozhraní je přes zadání IP adresy zařízení do webového prohlížeče (Internet
Explorer 8 a nižší nejsou podporovány).
obrázek 30 - prostředí BerryIO [25.]
34
Vzhledem k typu rozhraní a technologii php je možnost si zbytek pinů rozšířit úpravou
souboru: /etc/berryio/gpio.php.
V nastavení lze nastavit odesílání e-mailů přes SMTP29. Na jaký e-mail mají zprávy chodit,
se BerryIO zeptá při instalaci. Zde stojí za zmínku problém se službou Google, pokud se
používá dvoufázové ověřování. Je nutné nechat si od Googlu vygenerovat pin30 místo
hesla, který zadáme v nastavení /etc/msmtprc a jež vypadá následovně:
defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account default
host smtp.gmail.com
port 587
auth on
user [email protected]
password mypass
from [email protected]
logfile /var/log/msmtp.log
Místo username zadáme náš email a namísto mypass vygenerovaný kód.
Instalace
//stáhnutí a spuštění poslední verze skriptu
wget
https://github.com/NeonHorizon/berryio/raw/master/scripts/ber
ryio_install.sh
chmod +x berryio_instal.sh
sudo ./berryio_install.sh
//nastavení msmtp
sudo nano /etc/msmtprc
//Test, jestli BerryIO běží
berryio help
//test emailu
Berryio email_ip
29 https://cs.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol 30 https://support.google.com/accounts/answer/185833
35
3.1.2 WebIOPI
Tento systém je oproti BerryIO více propracovaný, a proto mu bude věnována větší část
práce.
Jedná se o systém, který umožnuje ovládat Raspberry Pi přes webové rozhraní s podporou
převážně Python knihoven. Umožňuje vytvářet konkrétní webové aplikace, a dokonce je
i propojit s WebView31 a udělat z ní mobilní aplikaci pro Android.
obrázek 31 – WebIOPI [26.]
Mezi funkce patří například:
Ovládání portů:
o sériový port
o SPI
o I2C
Ovládání více než 30 zařízení
o analogové konvertory
o I/O expandery
o senzory
Použití Javascriptu32/HTML pro tvorbu uživatelského rozhraní aplikací
Python/Java pro tvorbu Pi-to-Pi systému nebo aplikace pro Android
CoAP protokol pro vzdálené ovládání
Obsahuje jednoduché webové aplikace, debuging GPIO
Na oficiálních stránkách nalezneme úvodní tutoriály a kurzy. Celý „kit“ se jednoduše
instaluje a ovládá.
V době psaní práce je WebIOPi33 ve verzi 0.7.1 s patchem pro Raspberry Pi 3, který je
nezbytný z důvodu rozšířených pinů GPIO.
31 https://developer.android.com/guide/webapps/webview.html 32 http://webiopi.trouch.com/JAVASCRIPT.html 33 https://github.com/doublebind/raspi
36
Instalace
Instalace probíhá pomocí terminálových příkazů:
$ wget http://sourceforge.net/projects/webiopi/files/WebIOPi-
0.7.1.tar.gz
$ tar xvzf WebIOPi-0.7.1.tar.gz
$ cd WebIOPi-0.7.1
$ wget
https://raw.githubusercontent.com/doublebind/raspi/master/web
iopi-pi2bplus.patch
$ patch -p1 -i webiopi-pi2bplus.patch
$ sudo ./setup.sh
Po instalaci musíme službu spustit. To provedeme příkazem:
$ sudo /etc/init.d/webiopi start
Popřípadě stop, pokud chceme službu zastavit. Pokud chceme spustit službu
automaticky při startu systému, použijeme příkaz:
$ sudo update-rc.d webiopi defaults
Pokud chceme službu odstranit:
$ sudo update-rc.d webiopi remove
Pokud vše proběhlo, jak mělo, můžeme si ověřit spuštění služby:
http://raspberrypi:8000 – v prohlížeči na samotném Raspberry Pi
IP_ADRESA_RASPBERRY_PI:8000 – pokud se chceme připojit z jiného PC ve stejné
síti
obrázek 32 - Základní webové rozhraní WebIOPi (autor Tomáš Svatek)
37
Pod nabídkou GPIO Header se nachází ovládání GPIO, a to jednoduchým klikáním.
obrázek 33 – GPIO Header (autor Tomáš Svatek)
Přístup k WebIOPi přes internet
Existují v podstatě dvě možnosti připojení z internetu k našemu PC.
veřejná IP + přesměrování portů
VPN
o Weaved [28.] – jedná se o webovou službu, nutnost vytvoření účtu
SSH (port 22)
VNC (port 5901)
WEB (http) (port 80)
Vlastní TCP nastavení
Porty v aplikaci lze libovolně měnit při vytváření služby.
38
Instalace a nastavení Weaved
sudo apt-get install weavedconnectd
sudo weavedinstaller
Po spuštění instalátoru34 po nás bude nejprve vyžadováno přihlášení do systému Weaved.
Poté bude zobrazena další nabídka. Vzhledem k tomu, že chceme službu vytvořit,
vybereme první volbu.
obrázek 34 - Weaved - nastavení služeb [28.]
Nyní můžeme vybrat, kterou službu chceme využít pro připojení k Raspberry Pi.
obrázek 35 - vybrání služby [28.]
Vybereme Web
Nastavíme port (8000 pro WebIOPi)
Napíšeme jméno relace (např. Raspberry_Pi_WebIOPi)
Zda vše proběhlo v pořádku, se dozvíme tak, že se nám v tabulce ukáže naše
nainstalovaná služba. Další způsob je přihlásit se na web Weaved a otevřít připojení
z jejich webového rozhraní35.
34 http://webiopi.trouch.com/INSTALL.html 35 https://www.hackster.io/idreams/access-your-raspberry-pi-over-the-internet-157ad1
39
obrázek 36 - Webové rozhraní pro výběr služby Weaved (autor Tomáš Svatek)
Výchozí hodnoty pro přihlášení jsou:
Přihlašovací jméno: webiopi
Heslo: raspberry
Ukázka vytvoření webové aplikace
Návod vychází z oficiálního tutoriálu36 pro ovládání LED s automatickým vypnutím.
Vytvoříme si složky pro náš projekt například na ploše nebo v domovském adresáři:
home
- pi
- myproject
- python
- html
Kód HTML a skripty jazyka Python oddělíme do dvou adresářů a v adresáři Python
vytvoříme krátký skript, který nazveme script.py
import webiopi
import datetime
GPIO = webiopi.GPIO
LIGHT = 17 # GPIO pin použífvající BCM číslování
HOUR_ON = 8 # Turn Light ON at 08:00
HOUR_OFF = 18 # Turn Light OFF at 18:00
36 http://webiopi.trouch.com/Tutorial_Basis.html
40
# funkce setup() se automaticky volá při startu WebIOPi
def setup():
# nastavení GPIO používaného světlem
GPIO.setFunction(LIGHT, GPIO.OUT)
# získání informací, kolik je hodin
now = datetime.datetime.now()
# podmínka testující, jestli jsme v čase, kdy má světlo svítit
if ((now.hour >= HOUR_ON) and (now.hour < HOUR_OFF)):
GPIO.digitalWrite(LIGHT, GPIO.HIGH)
# funkce loop() je volána dokola WebIOPi
def loop():
# získání času
now = datetime.datetime.now()
# zapnutí světel v závislosti na čase
if ((now.hour == HOUR_ON) and (now.minute == 0) and (now.second ==
0)):
if (GPIO.digitalRead(LIGHT) == GPIO.LOW):
GPIO.digitalWrite(LIGHT, GPIO.HIGH)
# vypnutí světel
if ((now.hour == HOUR_OFF) and (now.minute == 0) and (now.second ==
0)):
if (GPIO.digitalRead(LIGHT) == GPIO.HIGH):
GPIO.digitalWrite(LIGHT, GPIO.LOW)
# čekej 1s než provedeš další loop()
webiopi.sleep(1)
# destroy() je volána při ukončení WebIOPI
def destroy():
GPIO.digitalWrite(LIGHT, GPIO.LOW)
Teď musíme vytvořit ve složce html soubor index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>WebIOPi | Light Control</title>
<script type="text/javascript" src="/webiopi.js"></script>
<script type="text/javascript">
webiopi().ready(function() {
// Create a "Light" labeled button for GPIO 17
var button = webiopi().createGPIOButton(17, "Light");
// Append button to HTML element with ID="controls" using jQuery
$("#controls").append(button);
// Refresh GPIO buttons
// pass true to refresh repeatedly of false to refresh once
webiopi().refreshGPIO(true);
});
</script>
<style type="text/css">
41
button {
display: block;
margin: 5px 5px 5px 5px;
width: 160px;
height: 45px;
font-size: 24pt;
font-weight: bold;
color: white;
}
#gpio17.LOW {
background-color: Black;
}
#gpio17.HIGH {
background-color: Blue;
}
</style>
</head>
<body>
<div id="controls" align="center"></div>
</body>
</html>
Přichází na řadu konfigurace pro spuštění skriptu. Musíme se dostat do složky
/etc/webiopi/config a vložíme následující řádky do daných sekcí (jako root).
...
[SCRIPTS]
myproject = /home/pi/myproject/python/script.py
...
[HTTP]
doc-root = /home/pi/myproject/html
...
[REST]
gpio-export = 17
gpio-post-value = true
gpio-post-function = false
...
[REST]nám umožňuje omezit použití GPIO.
gpio-export: omezí export na dané GPIO
gpio-post-value: povolí/zakáže vzdáleně měnit GPIO hodnoty (LOW/HIGH)
gpio-post-function povolí/zakáže vzdáleně měnit GPIO funkci (IN/OUT)
Příkazem sudo webiopi -d -c /etc/webiopi/config zrestartujeme službu WebIOPi
a načteme nový konfigurační soubor. Pak již stačí zadat:
http://rasberrypi:8000
poté bychom měli vidět náš projekt. Pokud se nic nezměnilo, restartujeme Raspberry Pi.
42
obrázek 37 - Výsledný webový projekt z jiného PC (autor Tomáš Svatek)
Pár zajímavých projektů
http://www.ikanbilis.com/64.php
http://www.coderewind.com/2015/10/build-a-raspberry-pi-wifi-rc-car/
https://coderwall.com/p/jsd5mw/raspberry-pi-garage-door-opener-with-garagepi
http://custom-build-robots.com/raspberry-pi-car-junior/raspberry-pi-robot-
steering-internet-smartphone/6961
http://trouch.com/2013/03/04/webiopi-in-the-magpi-cambot-tutorial/
http://webiopi.trouch.com/JAVASCRIPT.html
43
3.2 Obsluha komunikace
Spíše než „dolování“ dat a psaní softwaru přímo pro Wi-Fi modul se vyplatí použít již něco,
co funguje. Tím je propojení klient-server v prostředí Python [29.].
Vše vychází z vytvoření soketu a připojení na cílovou stanici. Poté se přijme odpověď
serveru a vypíše na obrazovku.
obrázek 38 - Python - strana klienta (autor Tomáš Svatek)
# client.py
import socket
# vytvoření objektu socketu
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# adresa a port zařízení, kde běží server
host = '192.168.1.10'
port = 7777
# navázání připojení
s.connect((host, port))
# Přijmutí ne více než 1024 bytů
tm = s.recv(1024)
44
gpio = s.recv(1024)
s.close()
print("The time got from the server is %s" %
tm.decode('ascii'))
print("")
print("GPIO verze: "+ str(gpio))
Ze strany serveru je postup podobný. Vytvoří se soket na portu, který naslouchá
komunikaci. Podmínka while se opakuje pro poslouchání komunikace.
obrázek 39 - Python – strana serveru (autor Tomáš Svatek)
while True:
# vytvoření připojení
clientsocket,addr = serversocket.accept()
print("Got a connection from %s" % str(addr))
currentTime = time.ctime(time.time()) + "\r\n"
clientsocket.send(currentTime.encode('ascii'))
clientsocket.close()
45
socket.socket(): vytvoří nový soket podle adresy a portu
socket.bind(address): připojí soket k adrese
socket.listen(backlog): poslouchá, jestli se připojí klient. Atribut
backlog říká maximální počet připojení
socket.accept(): vrací dvě hodnoty (conn, address), kde conn je
nový objekt soketu používaný k přijímání a odesílání dat, adress je adresa, ke
které je soket připojen (klient)
socket.send(bytes[, flags]): odešle data na soket. Aplikace by si měla
ohlídat, zda došla všechna podle počtu bajtů
socket.close(): uzavře soket. Od té chvíle ho nikdo nemůže používat
obrázek 40 - Python - Komunikace server-klient [29.]
46
4 Využití Raspberry Pi ve výuce
Vzhledem k dostupnosti velikého množství modulů a senzorů je Raspberry Pi jako dělané
pro výuku odborných předmětů.
Výhody:
modely reálných situací
řešení problémů
samostatnost studentů
ovládání dalšího OS (Linux, RISC OS)
dostupnost velkého množství modulů a doplňků
výhodná cena oproti jiným zařízením
Nevýhody:
Nechráněné vstupy a výstupy na přetížení (možnost odpálení elektronických
součástek)
4.1 Výhody podle předmětů
Využití mini PC Raspberry Pi má velký potenciál a to napříč spousty předměty. Já se
zaměřím převážně na technické a přírodovědné, které mi jsou bližší.
Fyzika
náhrada drahých zařízení (Pasco37, Vernier38)
spousta dostupných měřících modulů (teploměr, barometrický tlakoměr,
akcelerometr, gyroskop, vlhkoměr, …)
využití spektrometru39
využití analogově digitálních a digitálně analogových převodníků
využití digitálních vah s USB pro záznamy hmotností
možnost ukládání a vizualizace dat
37 http://www.pasco.cz/ 38 http://www.vernier.cz 39 https://www.raspberrypi.org/blog/ramanpi/
47
Informatika
výroba „superpočítače“ (možnost propojení několika zařízení do jednoho)
programování s okamžitou odezvou na zařízení (vidím, co jsem udělal)
vzdálené ovládání přístrojů (modulů)
možnost vymýšlet vlastní návrhy a rozvíjet tvořivost
řešení problémových úloh
Operační systémy
použití alternativních OS jako Linux, Risc OS
možnost experimentování beze strachu zničení systému
nastavování OS pro síťové služby (server)
Počítačové sítě
ozkoušení síťové komunikace
programování vlastních aplikací pro různé vrstvy TCP/IP
Technické vybavení
sledování chování hardwaru a dalších modulů
sledování rozdílů mezi jednotlivými PC a nutnosti výpočetního systému
Praktické činnosti
rozvíjení manuální zručnosti při sestavování a zapojování modulů
zodpovědnost při zacházení s HW
Biologie a zeměpis
využití infra kamery pro sledování noční přírody40
zaznamenávání pozice a převýšení pomocí GPS modulu
40 https://publiclab.org/notes/khufkens/05-10-2015/multispectral-raspberry-pi-first-light-ndvi-images
48
4.2 Možné využití a nápady na projekty
Všechno se odvíjí od toho, jaké moduly má škola dostupné, nicméně i s relativním málem
se nechají dělat větší projekty:
Tvorba vlastní hudby
Díky softwarovému prostředí Sonic Pi [30.] je možno vytvářet vlastní hudbu pomocí
syntetizátorů, a to napříč širokou škálou žánrů. Na stránkách projektu je dostupná
i elektronická kniha41 v anglickém jazyce a tutoriály.
obrázek 41 - kniha Sonic Pi [30.]
Přínosem je porozumění tvorbě hudby pomocí syntetizátorů a dalšímu programovacímu
jazyku.
Ukázka kódu:
with_fx :reverb, mix: 0.2 do
loop do
play scale(:Eb2, :major_pentatonic, num_octaves: 3).choose, release:
0.1, amp: rand
sleep 0.1
end
end
41 https://www.raspberrypi.org/magpi-issues/Essentials_Sonic_Pi-v1.pdf
49
Programování
Operační systém Raspbian je vybaven několika programovými prostředími, jako jsou:
Scratch
Python
JAVA
Wolfram
…
Hlavně jazyk Python, JAVA i Scratch se potom využívají dále pro komunikaci s GPIO piny.
Jednoduchá simulace křižovatky
Díky použití nepájivých obvodů je možné vytvořit simulaci v podstatě čehokoli. Křižovatka
je jedna ze standardních situací, se kterou se studenti setkávají dnes a denně, ale ve
skutečnosti nemají moc představu, co stojí za jejím fungováním.
obrázek 42 - schéma zapojení dvou semaforů na GPIO42
Ovládání chytrého domu
Pomocí modulů jsme schopni snímat pohyb, teplotu, zapínání a vypínání světel, ovládání
topení, automatické zavlažování, protipožární senzory, zatahování rolet, zavírání
a otevírání dveří, kamerový systém, alarm, ovládání výtahu, odemykání dveří přes čipy,
zvedání závory, …
Jeden pěkný projekt za pomoci Lega®, prostředí Scratch a Raspberry Pi:
https://www.youtube.com/watch?v=WKMiWDeqm2E
42 https://github.com/Utodev/rpiGPIO
50
Závodní auto
Pomocí servo motorů a přenosného zdroje můžeme ovládat otáčení kol a rychlost. Auto
může být klidně postavené z Lego® Technik. Jako přenosný zdroj můžeme použít
jakoukoliv Power Banku, která dává alespoň 2 A43, nebo si můžeme vyrobit vlastní44.
Meteorologická stanice
Vzhledem k rozmanitému množství senzorů můžeme vytvořit malou meteorologickou
stanici45 s velkým potenciálem zaznamenávání a exportu dat, vytváření grafů a to vše, díky
přístupu přes internet, i v reálném čase. Zde by bylo výhodou použití napájení přes
kroucenou dvoulinku (ethernetový kabel)46,47.
Vizualizace a řazení dat
V programování se dost často setkáváme s řazením dat v poli. Pro studenty je dost velký
problém si toto představit. Proto existuje knihovna Matplotlib, se kterou umí pracovat
Pyhton48.
Síťová komunikace
Pochopení komunikace po počítačové síti s Raspberry Pi s dalším počítačem. Možnost
ovládání hardwaru přes síť a nastavení serveru a základní nastavení klienta49.
Další náměty a projekty:
http://pingbin.com/2012/12/30-cool-ideas-raspberry-pi-project/
http://www.pcadvisor.co.uk/how-to/desktop-pc/10-great-raspberry-pi-projects-
for-kids-3589952/
43 http://www.zdnet.com/product/eachine-mini-y5-6000mah-power-bank/ 44 http://www.makeuseof.com/tag/pi-go-x-ways-powering-raspberry-pi-portable-projects/ 45 https://www.raspberrypi.org/blog/school-weather-station-project/ 46 http://www.instructables.com/id/PiPoE-powering-a-Raspberry-Pi-over-Ethernet/ 47 https://www.pi-supply.com/product/pi-poe-switch-hat-power-over-ethernet-for-raspberry-pi/ 48 https://www.raspberrypi.org/learning/visualising-sorting-with-python/ 49 https://newsroom.cisco.com/feature-content?type=webcontent&articleId=1208342
51
5 Závěr
Tato práce mi přinesla mnoho nových zkušeností. Se zařízením Raspberry Pi jsem pracoval
poprvé a bylo zajímavé objevovat, co vše dokáže.
Stanovené cíle práce byly splněny. Bylo popsáno zařízení Raspberry Pi, technologie, jeho
modely a byly zdůrazněny některé dostupné moduly s popisem. Byly nainstalovány
některé operační systémy a ozkoušena jejich funkčnost.
Nejvíce práce si vyžádala instalace těchto systémů, a to z důvodu použití nekvalitní
microSDHC karty. Raspbian mi padal okamžitě poté, co provedl spojení oddílů na kartě.
Nakonec se ale ukázal jako nejlepší systém pro Raspberry Pi a v těsném závěsu za ním
RISC OS. Z multimediálních operačních systémů mě více zaujal LibreELEC. Zdá se mi
intuitivnější a jednodušší na ovládání.
V další složce praktické části práce bylo zajímavé zkoumat možnou komunikaci pro
vzdálenou správu GPIO pinů s možností ovládání přes několik možných médií (web,
mobilní aplikace). Co se těchto systémů týče, WebIOPi u mě vyhrál nejen díky
dalekosáhlým možnostem využití, ale i přehlednými tutoriály a ukázkami kódu.
V neposlední řadě byla podle tutoriálu naprogramována aplikace pro komunikaci po síti
stylem klient-server. Tato část byla dost náročná, protože se jedná o práci se sokety,
a tedy o nízko-úrovňové síťové rozhraní, se kterým jsem neměl žádné zkušenosti.
Největší potenciál vidím v dostupnosti modulů a stále se rozvíjející podpoře toho zařízení.
Navíc je Raspberry Pi cenově dostupnější a méně školu zabolí, pokud se studentovi
povede toto zařízení „odpálit“. Dokáže plnohodnotně nahradit leckteré speciální systémy,
například ve výuce fyziky, jakou jsou Vernier nebo Pasco a to za zlomek jejich pořizovací
ceny.
Řešení modelových situací u studentů rozvíjí logické myšlení a představivost a nutí
k vymýšlení nových postupů. Možnost vyzkoušet si vypínání a zapínání světel, spínání
relátek nebo ovládání dveří umožňuje vidět okamžité výsledky studentovi práce a není to
jen o „mělo by to dělat …“.
Raspberry Pi je všeobecně použitelné zařízení, které se školám určitě vyplatí a lze ho
modifikovat pro každou příležitost.
52
6 Seznam použité literatury a online zdrojů
[1.] Raspberry Pi. Raspberry Pi. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné z:
https://www.raspberrypi.org/
[2.] Raspberry Pi. Wikipedia – The free encyklopedia. [online]. 04.06.2016
[cit. 2016-06-04]. Dostupné z: https://en.wikipedia.org/wiki/Raspberry_Pi
[3.] HORÁČEK, Petr. Raspberry π VIII. – Úvod do GPIO. Linuxsoft.cz. [online].
04.06.2016 [cit. 2016-06-04]. Dostupné z:
http://www.linuxsoft.cz/article.php?id_article=1953
[4.] MATOUŠEK, David. Práce s mikrokontroléry ATMEL. 2. vyd. Praha: BEN - technická
literatura, 2006. µC & praxe. ISBN 80-7300-209-4.
[5.] NORRIS, Donald. Raspberry Pi: projekty. 1. vyd. Brno: Computer Press, 2015, 264 s.
ISBN 978-80-251-4346-9.
[6.] VODA, Zbyšek. Průvodce světem Arduina. Vydání první. Bučovice: Martin Stříž,
2015, 239 stran. ISBN 978-80-87106-90-7
[7.] Deep in IT. Diit.cz. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné z:
http://diit.cz/tagy/raspberry-pi
[8.] Root.cz – Raspberry Pi. Root.cz. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné z:
http://www.root.cz/n/raspberry-pi/
[9.] UniPi Technology. UniPi Technology. [online]. 04.06.2016 [cit. 2016-06-04].
Dostupné z: http://unipi.technology/
[10.] Charlie. BitScope – osciloskop, logický analyzátor a generátor nejen pro
Raspberry Pi. Elektronovinky.cz. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné z:
http://www.elektronovinky.cz/zarizeni/bitscope-osciloskop-logicky-analyzator-
generator-nejen-pro-raspberry-pi
[11.] Raspberry Pi 3, Pi 2, B+, A+, Compute Module Dev Kit Comparison Chart.
element14 Community. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné z:
https://www.element14.com/community/docs/DOC-68090?ICID=rpi-comparechart-
link#
[12.] Raspberry Pi – rozšiřující moduly. Minidroid.cz. [online]. 04.06.2016 [cit. 2016-06-
04]. Dostupné z: https://eshop.minidroid.cz/21-rozsirujici-moduly#/page-3
[13.] Pimoroni – Piglow. Pimoroni.com. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné
z: https://shop.pimoroni.com/products/piglow
53
[14.] Astro Pi. Astro-pi.org. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné z:
https://astro-pi.org/about/hardware
[15.] Představení UniPi. Tzb-info.cz. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné z:
http://elektro.tzb-info.cz/inteligentni-budovy/12038-predstaveni-unipi-nejlevnejsi-a-
nejjednodussi-reseni-pro-inteligentni-budovy-a-iot
[16.] IoT – Get Started. Microsoft.com. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné
z: https://developer.microsoft.com/cs-cz/windows/iot/GetStarted.htm
[17.] Jeremy Lindsay . Windows 10 IoT and the Raspberry Pi 3. Jeremy Lindsay . [online].
04.06.2016 [cit. 2016-06-04]. Dostupné z:
https://jeremylindsayni.wordpress.com/2016/05/02/
[18.] Ubuntu Mate. Ubuntu-mate.org. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné
z: https://ubuntu-mate.org/
[19.] Pavel Rampas. Raspberry Pi návody – raspbian. pavelrampas.cz. [online].
04.06.2016 [cit. 2016-06-04]. Dostupné z: http://raspberry.pavelrampas.cz/raspbian
[20.] PiNet. PiNet.org. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné z:
http://pinet.org.uk/
[21.] OSMC. OSMC. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné z:
https://osmc.tv/about/
[22.] LibreElec. wiki.libreelec.tv. [online]. 06.06.2016 [cit. 2016-06-06]. Dostupné z:
https://wiki.libreelec.tv/index.php?title=Main_Page
[23.] Raspberry Pi. RISC OS Open. [online]. 06.06.2016 [cit. 2016-06-06]. Dostupné z:
https://www.riscosopen.org/content/downloads/raspberry-pi
[24.] Raspberry Pi – Software information. RISC OS Open. [online]. 06.06.2016 [cit.
2016-06-06]. Dostupné z:
https://www.riscosopen.org/wiki/documentation/pages/Software+information:+Raspb
erryPi:+RC14%20SD%20image
[25.] BerryIO. GitHub.com – BerryIO. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné
z: https://github.com/NeonHorizon/berryio
[26.] WebIOPi – The Raspberry Pi Internet of Things Framework. WebIOPI. [online].
04.06.2016 [cit. 2016-06-04]. Dostupné z: http://webiopi.trouch.com/
[27.] Hackster.io – Access your raspberry pi over the Internet. Hackster.io. [online].
04.06.2016 [cit. 2016-06-04]. Dostupné z: https://www.hackster.io/idreams/access-your-
raspberry-pi-over-the-internet-157ad1
54
[28.] Weaved – Remote Raspberry Pi. Weaved.com – Remote SSH, VNC and
HTTP. [online]. 04.06.2016 [cit. 2016-06-04]. Dostupné z:
https://www.weaved.com/installing-weaved-raspberry-pi-raspbian-os/
[29.] Network Programming – Server & Client A. bogotobogo. [online]. 04.06.2016 [cit.
2016-06-04]. Dostupné z:
http://www.bogotobogo.com/python/python_network_programming_server_client.php
[30.] Sonic Pi – The Live Coding Synth for Everyone. Sonic Pi. [online]. 4.6.2016 [cit. 2016-
06-04]. Dostupné z: http://sonic-pi.net/
55
7 Seznam obrázků
obrázek 1 – Logo Raspberry Pi [1.] ........................................................................................ 8
obrázek 2 - Raspberry Pi 3 Model B ....................................................................................... 9
obrázek 3 - Raspberry Pi GPIO ............................................................................................. 10
obrázek 4 - z leva: A+; B 1. generace rev. 1.2 [2.] ................................................................ 11
obrázek 5 - model B 2. generace [2.], [11.] .......................................................................... 12
obrázek 6 - Raspberry Pi 3 model B [11.] ............................................................................. 13
obrázek 7 - Raspberry Pi s modulem Sense HAT ................................................................. 15
obrázek 8 - výpočetní modul – kit [11.] ............................................................................... 15
obrázek 9 – UniPi [15.] ......................................................................................................... 16
obrázek 10 - NOOBS 1.9 rozhraní (autor: Tomáš Svatek) .................................................... 18
obrázek 11 - Logo Raspbian [1.] ........................................................................................... 19
obrázek 12 - Raspbian: nastavení a přehled programů ....................................................... 20
obrázek 13 - Logo Ubuntu Mate [18.] .................................................................................. 21
obrázek 14 - Ubuntu Mate ................................................................................................... 22
obrázek 15 - MS Windows 10 IoT Core [1.] ......................................................................... 23
obrázek 16 - Nastavení nového zařízení .............................................................................. 24
obrázek 17 - Úvodní obrazovka Windows 10 IoT (autor Tomáš Svatek) ............................. 25
obrázek 18 - Přehled zařízení (autor Tomáš Svatek) ........................................................... 25
obrázek 19 - Webové rozhraní Windows IoT (autor Tomáš Svatek) ................................... 26
obrázek 20 - Windows 10 IoT - Apps menu (autor Tomáš Svatek)...................................... 27
obrázek 21 - PowerShell (autor tomáš Svatek).................................................................... 27
obrázek 22 - Logo OSMC [1.] ............................................................................................... 28
obrázek 23 - OSMC vzhled ................................................................................................... 28
obrázek 24 - Logo LibreELEC ................................................................................................ 29
56
obrázek 25 - vzhled LibreELEC ............................................................................................. 29
obrázek 26 - Logo RiscOS [1.] ............................................................................................... 30
obrázek 27 - prostředí RiscOS ............................................................................................. 30
obrázek 28 - Logo PiNet [20.]............................................................................................... 31
obrázek 29 - pracovní plocha PiNetu [20.] .......................................................................... 31
obrázek 30 - prostředí BerryIO [25.] .................................................................................... 33
obrázek 31 – WebIOPI [26.] ................................................................................................. 35
obrázek 32 - Základní webové rozhraní WebIOPi (autor Tomáš Svatek) ............................ 36
obrázek 33 – GPIO Header (autor Tomáš Svatek) ............................................................... 37
obrázek 34 - Weaved - nastavení služeb [28.] ..................................................................... 38
obrázek 35 - vybrání služby [28.] ......................................................................................... 38
obrázek 36 - Webové rozhraní pro výběr služby Weaved (autor Tomáš Svatek) ............... 39
obrázek 37 - Výsledný webový projekt z jiného PC (autor Tomáš Svatek) .......................... 42
obrázek 38 - Python - strana klienta (autor Tomáš Svatek) ................................................ 43
obrázek 39 - Python – strana serveru (autor Tomáš Svatek) .............................................. 44
obrázek 40 - Python - Komunikace server-klient [29.] ........................................................ 45
obrázek 41 - kniha Sonic Pi [30.] .......................................................................................... 48
obrázek 42 - schéma zapojení dvou semaforů na GPIO ...................................................... 49