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?
Raspberry je počítač o velikosti platební karty s architekturou
procesoru ARM a rozhraním GPIO. Zařízení je napájeno napětím 5V a
minimálním proudem 1A. Vyrábí se více modelů a řad s rozdílným
vybavením, aby si každý našel „to pravé“. Raspberry bylo vyrobeno
pro výukové účely a později nachází i širší využití. Softwarová
výbava je totožná s platformou stolních počítačů. Jako operační
systém jsou dostupné jak distribuce Linux, tak systém Windows a
uživateli nic nechybí. Konektivita se liší podle modelů, základ
je GPIO rozhraní a napájecí konektor. Modely 1 a více mají USB porty,
HDMi výstup pro výstup do monitoru, kamerový vstup a LCD výstup, USB
pro zapojení klávesnice, myši, externího disku a dalších periferií.
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í:
Teploty a vlhkosti
Vzdálenosti
Překážky
Hlučnosti
Osvětlení
Vodní hladiny
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
Funkcionalita je OK.
Zařízení není moc rychlé.
OS je přehlcený bloatware.
Raspbian + Pi-top
Odlehčený OS verze Lite je vcelku rychlý.
Nainstaloval jsem klasický Raspbian Lite (bullseye) v 64bitové verzi.
Standardně funguje:
Hlasitost
Jas
Modul Pi-top nekomunikuje kompletně s Raspberry.
Vypínání se musí provádět jak softwarově, tak po vypnutí Raspberry i pomocí stisku tlačítka.
Pro repozitář Pi-top je nutné nainstalovat zdroj pi-top-os-apt-source.
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:
Teplota 0 až 50 °C ± 4%
Vlhkost 20 až 90 % ± 4%
DHT12 rozsahy a přesnost:
Teplota -40 až 80 °C ± 0,5 °C
Vlhkost 0 až 100 % ± 2 %
Na desce jsou následující vodiče:
GND -> GND
VCC -> 3V3
DATA -> GPIO17
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:
Oxidy dusíku
Oxid uhličitý
Benzen
Amoniak
Kouř
Na desce jsou následující vodiče:
GND
VCC
D0
A0
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:
GND -> GND
VCC -> 5 – 12 V
OUT -> Data – 3,3 V
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.
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:
Po přihlášení následuje změna hesla uživatelů pi a root:
sudo passwd pi
sudo passwd root
Update systému
sudo apt-get update
sudo apt-get upgrade
Spustím raspi-config:
sudo raspi-config
Vypnu overscan
Nastavím lokalizaci
Awesome wm:
Nainstaluji Awesome a X:
sudo apt-get install xorg awesome xinit lxdm
Jako uživatel jsem vytvořil soubor .xsession v domovském adresáři:
nano .xsession
setxkbmap cz &
awesome
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.
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:
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
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 instalaci obrazu disku je potřeba jiný počítač, obraz Retropie a
minimálně 4GB úložiště pro Raspberry, v tomto případě jde o SD kartu.
Retropie se instaluje z předinstalovaného obrazu úložiště. Tento obraz
se pak jen „naklonuje“ do cílového úložiště pro Raspberry PI.
Instalace pomocí nástroje dd:
Pomocí Linuxového nástroje dd naklonujeme data ze staženého předinstalovaného
obrazu na nové úložiště Raspberry. Je nutné spustit s právy superuživatele příkazem su
a nikoli sudo.
su
dd bs=4M if=retropie.iso of=/dev/sdb conv=fsync
Poznámka: parametr if znamená zdroj, zadává se přesný název
souboru. Of znamená cíl, zadáváme cestu k zařízení.
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í konzole
Adresář
Atari800
atari800
Atari2600
atari2600
Atari5200
atari5200
Atari7800
atari7800
Atari Lynx
atari
DOS
pc
Gameboy
gb
Gameboy color
gbc
Gameboy advance
gba
NES
nes
Playstation 1
ps1
Playstation 2
ps2
Sega 32x
sega32x
Sega CD
segacd
Sega Megadrive
megadrive
SNES
snes
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:
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:
Raspberry Pi OS (předchozí Debian)
Lite – bez grafického prostředí
Full – s desktopovými aplikacemi
LibreELEC – obsahuje Kodi
Ubuntu
RetroPie
RISC OS Pi
TLXOS
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
Připravíme si totožný funkční systém na SD kartu.
Extrahujeme obraz disku operačního systému také na nové USB úložiště.
Na SD kartě doplníme do /boot v souboru config.txt:
program_usb_mode=1
program_usb_timeout=1
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(/).
root=/dev/sda2
Na novém USB úložišti doplníme do /boot v souboru config.txt:
program_usb_mode=1
program_usb_timeout=1
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.
Extrahujte data obrazu operačního systému na USB úložiště.
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.
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í.
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.
Pomalá a limitující úložiště pro OS.
1GB RAM u Raspberry PI 3 někdy nestačí.
Zapínací tlačítko se musí dodatečně připájet, chybí.