Raspberry PI

Raspberry PI je jednodeskový počítač se zajímavými funkcemi a možnostmi. Je velmi úsporný a dostupný, ale má své mouchy.

Co je Raspberry PI?

Rasp­berry je počí­tač o veli­kos­ti pla­tební kar­ty s ar­chi­tek­turou proce­soru ARM a roz­hra­ním GPIO. Za­ří­ze­ní je napá­jeno na­pě­tím 5V a mini­mál­ním prou­dem 1A. Vyrá­bí se ví­ce mode­lů a řad s roz­díl­ným vyba­ve­ním, aby si kaž­dý na­šel „to pra­vé“. Rasp­berry by­lo vy­ro­beno pro výu­kové úče­ly a poz­ději na­chází i šir­ší vyu­žití. Softwaro­vá vý­ba­va je to­tož­ná s plat­for­mou stol­ních po­čí­tačů. Ja­ko ope­rač­ní sys­tém jsou dos­tup­né jak dis­tri­buce Li­nux, tak sys­tém Win­dows a uži­vate­li nic nechybí. Konek­tivi­ta se li­ší podle mo­de­lů, zá­klad je GPIO roz­hra­ní a na­pá­je­cí ko­nek­tor. Mo­de­ly 1 a ví­ce ma­jí USB por­ty, HD­Mi výs­tup pro výstup do mo­ni­to­ru, ka­me­ro­vý vstup a LCD výs­tup, USB pro za­po­je­ní klá­ves­ni­ce, my­ši, externího dis­ku a dal­ších pe­ri­fe­rií.

Proč jsem si pořídil Raspberry PI?

Je tomu už hezkých pár let, kdy jsem si ze zvědavosti pořídil ten nejmenší počítač s operačním systémem Linux. Chtěl jsem experimentovat a pro mladého digitálního kutila nemůže být nic lepšího. Zařízení mělo slibnou paměť 1GB RAM a nabízelo nenáročné řešení stolního počítače s výhledem na programování vstupů, výstupů a modulů.

K Raspberry PI existuje hromada modulů s různými funkcemi jako jsou měření:

K programování GPIO poslouží programovací jazyk Python.

Na Raspberry lze dokoupit různé kity a stavebnice, které z něho udělají speciální zařízení.

Pi-top

Pi-top OS

Raspbian + Pi-top

Moduly

Moduly jsou zapojitelné do GPIO rozhraní a určené pro podobná zařízení jako jsou Raspberry, Arduino a další. Fungují převážně na jmenovitém napětí 5 a 3,3 V. Některé 5 V moduly a relé fungují i na 3,3 V, ale obráceně to rozhodně nezkoušet!

El. schémata tvořím v programu KiCad.

DHT11 a DHT12

Snímá teplotu a vlhkost ovzduší v bezprostřední blízkosti modulu. Tento modul je ideální pro tvorbu domácí meteostanice. Rozdíl mezi DHT11 a DHT12 je v rozsahu a citlivosti měření.

DHT11 rozsahy a přesnost:

DHT12 rozsahy a přesnost:

Na desce jsou následující vodiče:

MQ-135

Senzor MQ-135 dokáže detekovat plyny ovlivňující kvalitu ovzduší. Jádrem tohoto senzoru je slabá vrstva oxidu cíničitého, jehož odpor se mění v závislosti na složení níže zmíněných plynů v ovzduší. Napájecí napětí modulu je 5V a proudový odběr se pohybuje okolo 120 mA.

Ovlivňující plyny:

Na desce jsou následující vodiče:

HC-SR501

HC-SR501 je senzor pro rozpoznání pohybu. U modulu lze nastavit časování a citlivost. Úhel senzoru činí 100° a je ve tvaru kužele.

Na desce jsou následující vodiče:

Proud 65 mA
Výstupní logika 3,3 / 0 V
Průměr snímače 23 mm
Rozměry 32 x 24
Doba reakce 0,2 s
Úhel senzoru 100°
Provozní teplota -15 až +70 °C
Dosah snímání 7 m

Operační systémy

Na Raspberry provozuji jen unixové systémy Linux. Rychlost je s odlehčenými programy dostačující pro běžné operace jako surfování, média, programování a i jednoduchá grafika.

Četl jsem také o tom, že je možné bootovat i Windows, ale nemám s tím žádné zkušenosti. Víte jako na to? Kontaktujte mne.

Přišel jsem do styku s následujícími systémy:

Arch Linux ARM

Arch Linux ARM je operační systém Arch Linux přetvořený pro zařízení s architekturou ARM jako kupříkladu Raspberry PI. Základním stavebním kamenem je Linuxová distribuce Arch Linux, které zůstala většina charakteristických vlastností. Klasicky se instaluje již z předinstalovaného obrazu disku, jehož obsah se jen přenese na úložiště Raspberry.

Podpora je horší oproti rozšířenějšímu Raspbianu a v repozitářích je obsažena většina balíků totožná funkcí i výsledky s verzí pro stolní počítače. Jedná se o plnohodnotnou náhradu operačního systému stolního počítače.

LibreELEC a Kodi

Multimediální stanice Kodi nabízí potenciál plnohodnotného multimediálního zařízení, kdy se z Raspberry stane přehrávač a prohlížeč multimediálního obsahu třeba i v obýváku. Srdcem je operační systém LibreELEC.

Instalace probíhá snadno pomocí Raspberry Pi Imager a poté je k dispozici již funkční systém bez nutnosti dalších zásahů. Instalace na SD kartu je tedy velmi jednoduchá, spustíme Raspberry Pi Imager a zvolíme operační systém LibreELEC, vybereme médium pro instalaci a počkáme na úspěšné dokončení. Poté můžeme vyjmout SD kartu a vložit do Raspberry Pi. Podporované jsou všechny verze začínající od první generace.

První spuštění roztáhne diskové oddíly a provede několik nezbytných skriptů pro první spuštění, poté se provede restart a naběhne systém Kodi. Připojení do sítě může být metalickými kabely anebo pomocí Wi-Fi. Funkce programu lze rozšířit díky různým modulům (Addons).

  • Hry
  • Hudba
  • Obrázky
  • Rádio
  • TV
  • Video
  • A další…

Pro rozšíření knihovny médií lze samozřejmě připojit USB periferie anebo také využít síťových serverů. Kodi zvládne standardy sdílení systémů Windows , FTP a jiné. Jestliže definujeme například přístup k FTP serveru s filmy, zobrazí se ono spojení v knihovně a tváří se jako místní soubory. Pro tento model používání je potřeba zajistit rychlý síťový datový tok, aby přehrávač mohl rychle načítat a bufferovat. V opačném případě, kdy bude pomalé spojení, bude zdlouhavé přetáčení filmů, listování a také nebude plynulé přehrávání a to zejména filmů s vysokým rozlišením.

Pro přizpůsobení multimediálního centra Kodi je možné využít nastavení, které můžeme rozšířit o nastavení pro experty. Vzhled programu můžeme díky skinům pozměnit, jsou k dispozici ke stažení z repozitáře, ostatně jako všechny další addons.

Systém nabízí i některé služby jako je SSH server, Samba, Avahi, Cron a jiné.

Přehrává velké množství formátů, ztrátové i bezeztrátové, hudbu i video a zobrazuje obrázky. O svižné vykreslení videa se u zařízení Raspberry Pi stará hardwarový dekodér. Neměl jsem problém s přehráváním 15GB mkv H.264 filmu.

Podporované formáty lze najít na stránce kodi.wiki.

Výchozí přihlašovací údaje:

Uživatelské jméno root
Heslo libreelec

Pro vytvoření snímku obrazovky stačí zadat na klávesnici tlačítko print screen (prt scr). Veškeré snímky se pak ukládají do umístění /storage/screenshots.

Tento multimediální systém užívám na zařízení Raspberry Pi 3 a to v domácnosti s připojením k TV o rozlišení 1080 řádků přes HDMi kabel. Zařízení je připojeno v místní síti metalickým kabelem. Vnitřní paměť nevyužívám, místo ni je připojený NFS svazek ze síťového úložiště a ten obsahuje knihovnu médií. Díky domácí centralizaci dat pak odpadá věčné kopírování nových filmů do zařízení. V knihovně mám například formáty mkv, avi a mp4. Kodeky jsou často H.264, mpeg, DiVX. Mimo předchozích funguje i řada dalších viz. formáty výše.

Aplikace, hudbu, obrázky, Youtube a ani jiné zásuvné moduly nepoužívám, sleduji jen filmy. Se vzhledy jsem chvíli experimentoval, ale základní se mi zdál v skutku ideální. Hlavní obrazovku a její obsah mám vymezený pouze na filmy, protože mne pojezd na příslušné políčko velmi zdržoval.

HW podpora kodeku H.265 u Raspberry Pi 4 mě zřejmě donutí přejít na onu vyšší 4. řadu.

Testoval jsem na zařízeních Raspberry PI 2/3 s verzí LibreELEC 9.2.6. Přehrávání videa ve vysokém rozlišení 1080 řádků běží plynule, HW dekodér zajišťuje velké množství snímků za sekundu a při pohledu na obraz a fps videa je jasné, že je to mnohem lepší podívaná, než například na stolním počítači. Mediální soubor byl přitom umístěný na FTP serveru vedený metalickými kabely a rychlostí 100Mbit/s.

Zatím jediný problém jsem měl s přehrávání H.265 na RPI 3, kdy se video spustí zhruba na pár sekund a poté zamrzne, ve výsledku je nutné zrestartovat celé zařízení. Kodi udává podporu H.265, ale RPI 3 nikoli. Až RPI 4 má mít HW dekodér H.265.

Ideální pro tento případ by se jevilo nějaké datové úložiště jako například server NAS. Vlastní paměť zařízení v podobě SD karty neumožňuje takový komfort, kapacitu a životnost, jako mají běžné pevné disky.

Raspbian

Je operační systém vycházející z distribuce Debian.

www.raspberrypi.com

Raspbian je operační systém vytvořený pro Raspberry PI. Základním stavebním kamenem je Linuxová distribuce Debian, které zůstala většina charakteristických vlastností. Klasicky se instaluje již z předinstalovaného obrazu disku, jehož obsah se jen přenese na úložiště Raspberry.

Podpora je mimořádná a v repozitářích je obsažena většina balíků totožná funkcí i výsledky s verzí pro stolní počítače. Jedná se o plnohodnotnou náhradu operačního systému stolního počítače.

Nastavení zavádění souborem config.txt: Při zavádění systému je třeba dodatečné moduly, rozhraní a nastavení zapínat i vypínat ručně. V tomto případě se bude hodit soubor /boot/config.txt, který obsahuje i nápovědu.

sudo nano /boot/config.txt
  • dtparam=audio=on vynutí zvuk přes jack 3,5 mm
  • dtparam=i2s=on rozhraní I2S
  • dtparam=spi=on sériové periferní rozhraní
  • gpu_mem=128 velikost grafické paměti v MB
  • program_usb_mode=1 podpora usb bootování

Výchozí přihlašovací údaje:

pi raspberry

apt-get Slouží pro správu SW na daném OS.

  • aktualizace repozitářů
  • apt-get update
  • povýšení(upgrade) balíčků
  • apt-get upgrade
  • povýšení distribuce
  • apt-get dist-upgrade
  • instalace balíčků
  • apt-get install
  • instalace balíčků bez doporučených závislostí
  • apt-get install --no-install-recommends

Raspbian Lite:

  1. Po přihlášení následuje změna hesla uživatelů pi a root:
  2. sudo passwd pi
    sudo passwd root
  3. Update systému
  4. sudo apt-get update
    sudo apt-get upgrade
  5. Spustím raspi-config:
  6. sudo raspi-config
    • Vypnu overscan
    • Nastavím lokalizaci

Awesome wm:

  1. Nainstaluji Awesome a X:
  2. sudo apt-get install xorg awesome xinit lxdm
  3. Jako uživatel jsem vytvořil soubor .xsession v domovském adresáři:
  4. nano .xsession
    
    setxkbmap cz &
    awesome
  5. V umístěni /etc/X11 jsem přejmenoval soubor Xsession, aby bylo možné využít ten, co mám v domovském adresáři.
  6. V umístěni /etc/X11/xinit jsem upravil v souboru xinitrc cestu k používanému zavádění xsession v domovském adresáři:
  7. . ~/.xsession

LXDE:

  • Instalace grafického prostředí LXDE a X serveru:
  • sudo apt-get install xorg xinit lxde lxde-common lxde-core lxde-icon-theme
  • V raspi-config spustím automatické přihlášení na plochu.

Nastavení pomocí raspi-config: Nástroj raspi-config provede obecná nastavení v příjemném prostředí CLI. K dispozici jsou nastavení uživatele, přihlášení, sítě, lokalizace, rozhraní, taktování, rozšířená nastavení Raspberry PI a aktualizace. Pro udělení potřebných pravomocí je třeba jej spustit jako superuživatel.

raspi-config
Úvodní menu raspi-config
Advanced settings menu raspi-config

Retropie

Je operační systém Retropie-Raspbian přetvořený speciálně pro Raspberry PI a herní emulace. Je k dispozici také k nainstalování na již stávající operační systém Debian a možná i jiné.

Distribuce Retropie je určená pro herní emulaci a je založená na Emulation Station(více o Emulation Station na emulationstation.org). Raspberry PI 3 dovede spustit všechny známe kompatibilní hry ve velmi hratelném framerate. Projekt má své uznání nejen pro zařízení Raspberry a architekturu ARM, ale také pro x86.

Retropie spojuje staré, klasické a nostalgické herní konzole do jedné krabičky. Dovolí Vám zahrát si hry i 30 let staré a i po všech těch letech některé neztratily ani kapku z atmosféry a hratelnosti. Je to emulátor Amiga, DOS, Atari, Nintendo, Commodore 64 a spoutu dalších na které se dostaneme později. Stačí jen sehnat ROM se hrou a můžete si doma udělat televizní hry.

Zkrátka víc než 50 herních systémů v jednom. Připojit můžete usb ovladač, kompatibilní jsou i bezdrátové ovladače včetně Playstation 3 ovladače. Wifi funguje po prvním spuštění bez problémů a to samé se dá říct i o bluetooth. Součástí může být i KODI, to je multimediální centrum, pokud by Vás omrzelo hrát, přepnete na multimediální centrum.

Instalace:

Pro in­sta­la­ci o­bra­zu dis­ku je po­tře­ba ji­ný po­čí­tač, obraz Retropie a mi­ni­mál­ně 4GB ú­lo­žiš­tě pro Raspberry, v tomto případě jde o SD kartu. Retropie se in­sta­lu­je z před­ins­ta­lo­vaného o­bra­zu ú­lo­žiště. Tento o­bra­z se pak jen „na­klo­nu­je“ do cí­lo­vé­ho ú­lo­žiš­tě pro Rasp­berry PI.

Instalace pomocí nástroje dd:

Pomo­cí Li­nu­xo­vé­ho nás­tro­je dd na­klo­nu­jeme da­ta ze staženého před­ins­ta­lo­va­ného o­bra­zu na no­vé ú­lo­žiš­tě Rasp­berry. Je nutné spustit s právy super­uživatele příkazem su a nikoli sudo.

su
dd bs=4M if=retropie.iso of=/dev/sdb conv=fsync

Poznámka: pa­ra­me­tr if zna­me­ná zdroj, za­dá­vá se přes­ný ná­zev sou­bo­ru. Of zna­me­ná cíl, za­dá­vá­me ces­tu k za­ří­ze­ní.

Instalace pomocí Raspberry PI Imager:

Raspberry PI Imager je nově vytvořený nástroj, kterým lze efektivně přenést operační systém na SD kartu pro Raspberry. Je ke stažení na domovských stránkách projektu Raspberry.

Raspberry Pi Imager dokáže stáhnout libovolný oficiálně dostupný OS pro Rasberry, vybereme si Retropie.

Přihlašovací údaje:

Standardní údaje k přihlášení jsem nedohledal, nicméně pokud vyjedu ze systému Emulationstation, můžu pomocí příkazu sudo passwd změnit heslo. Standardně je nastavené anglické rozložení klávesnice, pozor na prohozené y/z.

Nastavení po instalaci:

Grafické prostředí X a běžné nástroje můžeme nainstalovat dle běžných standardů Raspbianu/Debianu pomocí nástroje apt. Stačí vypnout systém Retropie a vyskočit do příkazové řádky.

Hry a jejich umístění:

Hry vkládáme do domovského adresáře, kde je složka RetroPie, uvnitř které je adresář roms, ve kterém jsou do jednotlivých složek rozdělené emulátory.

/home/pi/RetroPie/roms
Herní konzoleAdresář
Atari800atari800
Atari2600atari2600
Atari5200atari5200
Atari7800atari7800
Atari Lynxatari
DOSpc
Gameboygb
Gameboy colorgbc
Gameboy advancegba
NESnes
Playstation 1ps1
Playstation 2ps2
Sega 32xsega32x
Sega CDsegacd
Sega Megadrivemegadrive
SNESsnes

Ze starých konzolí do roku 1995 běží všechny hry bez problému na konzole jako Atari, Sega, Nintendo. Dokonce i hry na Playstation 1 a DOS chodí skvěle a mají hratelný framerate. Pro podporu DOSu je nutné nainstalovat emulátor v retropie-setup.

Screenshoty:

Quake II
Quake II
Asteroids

Instalace Raspberry PI pomocí Raspberry PI Imager

Raspberry PI Imager je nově vytvořený nástroj, kterým lze efektivně přenést operační systém na SD kartu pro Raspberry. Je ke stažení na domovských stránkách projektu Raspberry.

Raspberry Pi Imager dokáže stáhnout libovolný oficiálně dostupný OS pro Rasberry, stačí jen spustit program a vybrat si z nabídky OS. K dispozici jsou například systémy:

Bootování z USB

Operační systém lze celkem v pohodě nainstalovat i na externí úložné zařízení. Je možná instalace operačního systému na USB SSD.

SSD disk a jeho přínos:

Mít operační systém na SSD disku má značné výhody. Mají velmi nízkou spotřebu oproti klasickým pevným diskům, lze je tedy bez problémů připojit k Raspberry zapojeném s adaptérem o maximálním proudu 2 A. Zařízení pracuje s diskem SSD rychleji a poskytuje větší kapacitu. Stačí jen koupit USB rámeček na SATA 2.5 disk v hodnotě 250Kč, k tomu SSD disk 120GB v hodnotě 500Kč.

Kompatibilita:

Od verze Raspberry PI 2 funguje podpora bootování z USB(u PI 2 stále s háčkem). Raspberry 3 dovede bootovat z USB bez nutnosti dalších úprav oproti klasické instalaci na kartu. To samé platí také pro nejnovější model Raspberry PI 4.

Instalace na externí úložiště:

Instalace probíhá ve všech případech stejně, jako dle manuálů na SD kartu. Pouze model PI 2 vyžaduje zvláštní úpravu nastavení souborů config.txt a cmdline.txt v adresáři /boot a současně vyžaduje číst úvodní startovací data stále z SD karty. Je zapotřebí tedy jak funkční SD karta, tak nové USB úložiště.

Raspberry PI 2

Raspberry PI 2 ještě nepočítalo až tak s možnostmi bootu z externích zařízení. Řešení je trochu kostrbaté a nepředvídatelné.

Instalace z Linuxu

  1. Připravíme si totožný funkční systém na SD kartu.
  2. Extrahujeme obraz disku operačního systému také na nové USB úložiště.
  3. Na SD kartě doplníme do /boot v souboru config.txt:
  4. program_usb_mode=1
    program_usb_timeout=1
  5. Opět na SD kartě v adresáři /boot, ale tentokrát upravíme soubor cmdline. Hledejte slovo root=, za ním totiž přepíšeme název zařízení na požadovanou cestu k USB úložišti s kořenem(/).
  6. root=/dev/sda2
  7. Na novém USB úložišti doplníme do /boot v souboru config.txt:
  8. program_usb_mode=1
    program_usb_timeout=1
  9. Hotovo! Jako první by mělo Raspberry PI 2 načíst data z SD karty a až později po přečtení parametrů pro start bude fungovat bootování z USB.

Instalace z Windows:

Postup instalace na windows je stejný, obraz disku akorát extrahujeme pomocí Win32 Disk Imager.

Pokud Raspberry PI 2 neroztáhne automaticky oddíl disku na plnou velikost, musíte tak učinit ručně s nějakým správcem oddílů.

Raspberry PI 3 a 4

Instalace se provádí klasicky, nemusíme mít funkční SD kartu v Raspberry a stačí nám jen USB úložiště. Postupujeme dle klasického návodu k instalaci na SD kartu a pak jen připojte k Raspberry.

  1. Extrahujte data obrazu operačního systému na USB úložiště.
  2. Připojte k Raspberry.

Zkušenosti s USB rámečky:

Zatím jsem pracoval s rámečky od značky Delock a HDD pevnými disky Samsung, Western Digital anebo s SSD disky Patriot a Adata. Jestliže jsem používal rámeček s diskem, životnost samotného rámečku nebyla nijak dlouhá. Asi za rok až dva rámečky odchází.

Připojení pomocí SSH

K Raspberry PI se dá ve výchozím stavu připojit pomocí protokolu SSH, který je spuštěný - nemusí být ale pravidlo. Jedná se zejména o operační systémy Linux Raspbian a Retropie. V Raspbianu lze pomocí nástroje raspi-config spustit SSH server. Po čerstvé instalaci SSH server většinou neběží a je potřeba jej zapnout. Pokud přistupujete z Windows, oceníte program PuTTY.

Doporučuje se provést zabezpečení a zakazovat přihlášení roota, přesměrovat port a nastavit firewall.

Protokol SSH a zařízení Raspberry jsem využil jako takový VPN server založený na tunelování.

GPIO

Raspberry je osazeno GPIO rozhraním s programovatelnými vstupy/výstupy.

GPIO (General-purpose input/output) rozhraní na Raspberry nabízí programování ovládání vstupů, výstupů a jejich reakcí. Díky GPIO si můžeme připojit k Raspberry příslušenství a udělat z něho parádní projekt. GPIO rozhraní obsahuje piny, které mají předurčený nebo volitelný účel. Několik pinů je se jmenovitým napětím 3,3 a 5 V (viz. obrázek), zatímco logické piny pojmou maximálně jednotných 3,3 V a velmi nízký odběr proudu.

Jednotlivé piny

Piny GPIO kromě daných 3,3 V, 5 V a GND mohou mít různé využití.

Pozor si musíme dát na zatížení, kterého Raspberry moc neunese. Pro připojování modulů a jiných udělátek se doporučuje napájet přídavným stejnosměrným zdrojem napětí. Logické piny mají limit 50mA.

Jak programovat s GPIO

GPIO rozhraním zadáváme instrukce díky skriptovacímu programovacímu jazyku Python. Vytvoříme tedy „skript“, ve kterém nahrajeme knihovnu Python, taková knihovna je souborem funkcí a úkonů k programování.

GPIO ZERO - gpio­zero.read­the­docs.io

sudo apt install python-gpiozero python3-gpiozero python-tk python3-tk

Postupy k programování se v jednotlivých systémech drobně liší. Mám odzkoušené pouze systémy Linux. Musí být nainstalovaný Python a knihovna gpio zero.

Problémy a nešvary

Zařízení funguje perfektně, ale má své mouchy. Záleží na účelu provozu.