Přejít k navigační liště

Zdroják » Různé » Raspberry Pi: hračka neobmedzených možností

Raspberry Pi: hračka neobmedzených možností

Články Různé

Keď v Raspberry Pi Foundation navrhovali minipočítač Raspberry Pi primárne ako lacný nástroj na výuku programovania do škol, určite ani netušili, aké rôznorodé využitie pre neho nadšenci nájdu. Tento článok prináša niekoľko využití pre tento minipočítač a možno inšpiruje aj vás kúpiť si svoje vlastné Raspberry Pi.

Nálepky:

Raspberry Pi je minipočítač (8x5x2cm) za 25 dolárov (32€ pri objednaní z UK) s ARM procesorom, 256 alebo 512 MB RAM, ethernetom, 2 USB portmi, HDMI a audio výstupom. Namiesto disku obsahuje čítačku na SD karty, operačný systém na báze Linuxu sa zavádza práve z SD karty. Napájanie je realizované cez MicroUSB port. Okrem zdroja môžete Raspberry Pi napájať aj z iného zariadenia, napríklad USB portu TV. Raspberry Pi sa vám tak bude spolu s TV zapínať aj vypínať.

Raspberry Pi ďalej obsahuje GPIO porty, pomocou ktorých je k nemu možné pripojiť rôzne hadrvérové zariadenia, od čidla na meranie teploty až po Arduino dosky.

pi

Majitelia Raspberry PI už našli pre svoj minipočítač viacero kreatívnych využití, ja ho využívam hlavne ako NAS a multimediálne centrum.

Multimediálne centrum

Pre Raspberry PI existujú dve linuxové distribúcie optimalizované pre úlohu multimediálneho centra, a to OpenELEC a Raspbmc. Obe tieto distribúcie obsahujú XBMC, o ktorom som už dávnejšie písal a používal ho na desktope. Namiesto desktopu mám teda teraz na TV cez HDMI pripojený Raspberry PI. OpenELEC funguje lepšie, nedá sa však do neho zasahovať a doinštalovávať ďalšie balíčky, zvolil som preto Raspbmc.

Raspbmc naštartuje priamo do XBMC, nie je ho možné používať ako klasický Linux s okenným manažérom. Samozrejmosťou je však vzdialený prístup cez SSH. Do XBMC je možné pridať multimediálny obsah z diskov pripojených cez USB porty ale aj zo sieťových diskov. Ja som pridal niekoľko adresárov zdieľaných na desktope s Windows 7 (Samba). Prehrávanie cez lokálnu sieť funguje bez problémov, Raspberry Pi dokáže bez problémov prehrať aj film v 720p.

Celkom ma prekvapilo, že s Raspbmc funguje diaľkový ovládač od mojej TV bez akejkoľvek konfigurácie. Nefunguje na ňom však zásadná vec, a to návrat o úroveň vyššie pri navigácií. Takže ak sa zanorím do nejakých menu, už sa z nich bez pomoci pripojenej bezdrôtovej klávesnice nedostanem.

XBMC podporuje UPnP (potrebné zapnúť v nastavení), vďaka ktorému ho vidia všetky počítače v sieti a sú na ňom schopné prehrávať multimediálny obsah. V praxi to funguje tak, že v akomkoľvek počítači v sieti vyberiete video súbor, zvolíte prehrať cez XBMC na Raspberry Pi a video sa vám skoro ihneď začne prehrávať na pripojenej TV. Ak vlastníte zariadenia od firmy Apple, je možné v XBMC zapnúť podporu AirPlay.

Sťahovanie torrentov

Keďže Raspbmc podporuje inštaláciu softvéru vo forme Debian balíčkov (apt-get), môžete si doinštalovať torrent klient Transmission (sudo apt-get install transmission). Transmission obsahuje aj webové rozhranie, takže torrenty na stiahnutie v Raspberry Pi môžete pridávať z akéhokoľvek počítača v sieti cez prehliadač. Aj samotné XBMC obsahuje plugin na ovládanie Transmission.

Stiahnuté torrenty môžete nechať ihneď zaindexovať v XBMC, mať ich prístupné na sieťovom disku, ak používate Raspberry Pi aj ako NAS, alebo ich priamo z Raspberry Pi streamovať do mobilných zariadení

NAS

Každý disk, ktorý k Raspberry Pi pripojíte cez USB port, je automaticky dostupný ako sieťový disk cez Sambu, ktorá v Raspbmc štandardne beží. Raspberry Pi tak môžete jednoducho použiť ako lacnú alternatívu k NAS.

Pri disku, ktorý chcete použiť s Raspberry Pi si však dajte pozor na použitý súborový systém. Nepoužívajte NTFS, pretože NTFS ovládač je dosť pomalý a výrazne vyťažuje procesor. Disk si radšej naformátujte na Ext3 alebo nejaký iný linuxový súborový systém.

Vzdialený prístup

Na vzdialený prístup je možné použiť SSH bežiace na porte 22, na porte 9091 beží webové rozhranie k Transmission, v prípade potreby je možné doinštalovať napríklad FTP server. Nutnosťou je samozrejme nastaviť presmerovanie portov na routeri. Aby ste si pri pripájaní nemuseli pamätať vašu IP adresu (ktorá sa naviac môže meniť), je na Raspberry Pi možné jednoducho rozbehnúť Dynamic DNS a pristupovať k nemu pomocou vami zvolenej ľahko zapamätateľnej adresy.

Streamovanie filmov a hudby

Aj keď Raspberry Pi používam primárne na sťahovanie filmov a seriálov a ich prehrávanie na pripojenej televízii, napadlo ma vyskúšať, či je možný a trochu odlišný spôsob prehrávania stiahnutého obsahu, a to streamovanie na mobilné zariadenia (telefóny, tablety).

MiniDLNA je jednoduchý media server, ktorý je na dané použitie vhodný. Jeho inštalácia je na Raspberry Pi (RaspBMC) naozaj jednoduchá

sudo apt-get install minidlna

Po nainštalovaní je nutné MiniDLNA nakonfigurovať. Konfigurácia sa nachádza v súbore /etc/minidlna.conf

sudo vim /etc/minidlna.conf

Najdôležitejšia je položka media_dir, ktorú je možné nastaviť osobitne pre audio, video a fotky. Vhod príde aj povolenie automatickej detekcie zmien v sledovaných adresároch. U mňa je to

media_dir=V,/media/mybook/downloads
media_dir=A,/media/mybook/Music
media_dir=P,/media/mybook/Photos

inotify=yes
notify_interval=300

Následne je nutné ešte znovunačítanie konfigurácie

sudo service minidlna force-reload

a na adrese vašeho Raspberry Pi a porte 8200 môžete cez webové rozhranie sledovať postupnú indexáciu súborov.

Po dokončení indexovania je všetko pripravené, môžete začať streamovať. Na iOS sa mi osvedčilo použiť VLC, DLNA klienti však existujú pre všetky platformy, stačí si len vybrať.

Záloha Git repozitárov

Všetky svoje projekty mám na Bitbuckete, ktorý ponúka neobmedzený počet verejných a súkromných Git repozitárov úplne zadarmo. Za Bitbucketom stojí Atlassian, takže mu celkom verím, zálohovanie na lokálny disk však určite nie je na škodu.

Na zálohovanie repozitárov som využil veľmi jednoduchý princíp. Na externý disk pripojený k Raspberry Pi som vy vyklonoval všetky repozitáre a vytvoril jednoduchý skript, ktorý na všetkých vykoná git pull:

#!/bin/bash 
for x in `ls /media/mybook/_backup/projects` 
do 
echo "processing $x" 
cd $x 
git pull 
cd .. 
Done

Git sa v Raspbmc štandardne nenachádza, je potrebné ho nainštalovať (sudo apt-get install git).

Záloha databáz

Okrem Git repozitárov zálohujem aj databázy mojich webov, ktoré bežia na hostingu Inet.sk. Tento hosting vykonáva každý deň dumpy databáz, ktoré sú prístupné cez ftp.

Vytvoril som si preto jednoduchý bash skript, ktorý dané dumpy stiahne a následne zmaže všetky zálohy staršie ako 10 dní

#!/bin/bash
cd /media/mybook/_backup/db/
echo "connecting to ftp"
ftp -in ftp.exmaple.com << SCRIPTEND
user login heslo
binary
cd backup
cd mysql
mget *
cd ..
cd pgsql
mget *
SCRIPTEND

echo "deleting old backups"
find /media/mybook/_backup/db* -mtime +10 -exec rm {} \;

Meranie teploty v miestnosti

K zostrojeniu teplomera pre Raspberry PI som použil teplotný senzor DS18B20 a rezistor RRU 4K7. Problémom je, že si tieto dve súčiastky musíte zospájkovať. Ja som na to použil ochotného kolegu, ktorý sa vyzná v elektronike a spravil to za mňa. Výsledkom bol teplomer s 3 výstupmi (mínus = GND, plus = +3,3V, data = GPIO4).

rpitemp

Teplomer je nutné pripojiť do GPIO na Raspberry Pi. Pomocou schémy jednoducho zistíte, že +3,3V je prvý pin v druhom riadku, GPIO4 je štvrtý pin v prvom riadku a GND je tretí pin v prvom riadku (schéma je otočená o 90 stupňov oproti „skutočnosti“).

Distrubúcie RaspBMC a Raspbian v sebe obsahujú potrebné ovládače, takže ich stačí zaviesť

sudo modprobe w1-gpio
sudo modprobe w1-therm

a teplomer sa následne objaví v zozname zariadení

ls /sys/bus/w1/devices/

u mňa je identifikovaný ako zariadenie 28-000004e23e98, u vás sa to môže líšiť. Aktuálnu teplotu potom získate pomocou

cat /sys/bus/w1/devices/28-000004e23e98/w1_slave

ako posledné číslo v druhom riadku výstupu, ktorý má tvar na štýl

bc 01 4b 46 7f ff 04 10 d2 : crc=d2 YES
bc 01 4b 46 7f ff 04 10 d2 t=20865

Teplotu predstavuje údaj t=20865, ktorý znamená 20,865 stupňa.

Zisťovanie teploty priamo z konzoly nie je veľmi pohodlné, vytvoril som si preto jednoduché webové rozhranie v Node.js. Kompletný kód nájdete na mojom GitHube, stačí v súbore server.js zmeniť id zariadenia a aplikáciu spustiť.

node server.js

Záver

Rapsberry Pi je malé lacná zariadenie s obrovským potenciálom, ktorý záleží len a len na vás. Keďže ide o plnohodnotný počítač s operačným systémom, možnosti jeho využitia sú naozaj rozsiahle.

Komentáře

Subscribe
Upozornit na
guest
13 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
JirkaV

Pokud jde opravdu jen o zalohovani repozitaru, nestacilo by „git fetch“ misto „git pull“?

Jinak diky za pekny clanek – na moje RPi se doma prasi a ceka, az si na nej udelam cas :(

tomasfejfar

Přesně – řikal jsem si, že ten pull je náchylný na konfliktování (stačí jeden rebase)

Madmucho

Provozuji na RPi svuj osobní owncloud, web je sice pomalý, pro mé účely ale stačí klient v pc pro sync souborů a to funguje bez problémů.

Hever

Na RPi se mi nelíbí nutnost používat SD kartu – tj. zařízení s omezenou životností. Mám namysli nízký limit přepisování bitů úložiště. Mám z toho pocit, že nějaké serverové aplikace na něm musí brzy kartu zničit.

Raspberry má asi dobrý marketing, nebo nějakou auru, díky níž jde o něm hodně slyšet. Ale já bych raději doporučil např. Cubieboard mini, SD karty jako úložiště systému prostě u mě nemají důvěru.

igorkulman

SD kartu používať nemusíte, môžete bootovať z flash disku cez usb. Dáta je samozrejme možné ukladať na disk pripojený cez usb.

Sob

SD karta v Raspi serveru se mi odebrala do vecnych lovist o vanocich, po necelym roce provozu. Pritom zatez mela minimalni, nedelo se tam skoro nic. A nebyl to prvni problem. Uz nekolikrat predtim se stalo, ze po restartu to odmitalo najet kvuli udajnym problemum se ctenim karty. Nekdy stacilo vytahnout napajeni a zkusit to znovu. Jednou nebo dvakrat bylo nutny prehrat firmware (kernel a dalsi soubory na FAT oddilu) a potom to zazracne ozilo, tzn. ty chyby cteni predtim byly nesmysl. Raspi to ma celkove s SD kartama nejaky divny, hromada jinak normalnich znackovych karet tam ruzne blbne, autori to ladi nejak softwarove, … no nevim. Ja kazdopadne predelam servrik (web, posta, Jabber, …) na neco duveryhodnejsiho. A aby to Raspi nebylo lito, bude z nej asi IP kamera. :)

Roman Bílek

Bohužel přesně tak, máme zkušenost s 20 zařízeními, na kterých beží 24/7 serverové aplikace a životnost karet (různí výrobci) je zatím 14 dnů – až měsíc. Použití usb disku zvýší cenu i velikost řešení x-krát.

Rasp. bych doporučil spíše jako zábavný doplněk než na seriózní práci. Osobně se mi ale líbí.

igorkulman

Preto ho v článku nazývam hračkou. Nikde netvrdím, že sa hodí na použitie ako server.

Roman Bílek

Já jsem to psal jako varování, aby to někoho nenapadlo :-). Stejně tak je nevhodný i na cokoliv, kde zařízení používá časté zápisy na kartu. A pokud bych na kartu měl ukládat zálohy, části z torrentů a vůbec jakákoliv důležitá data, tak bych brzo zaplakal.

Problém je jen v tom ukládání na SD , pokud připojíte přes usb disk je to o něčem jiném, ale to nebyl původní záměr.

Rhomedan

Příklady užití v článku mi přijdou docela „na zemi“. Využití Raspberry jde mnohem dále:

Příklad quadcoptéry s Raspberry: http://www.youtube.com/watch?v=TjXvzMdf8Nk
Domácí automatizace: http://youtu.be/70-OmHZe6tY?t=2m21s
Ovládání garážových vrat přes prohlížeč: http://www.youtube.com/watch?v=p2abZ90-eU0

Na malině je nejlepší asi to, že každý si na ní najde nějaké využití. V článku je spoustu projektů, které zvládne kterýkoliv desktop -> malina ale má také ovladatelné piny, což ji odlišuje od desktopu.

Martin Hassman

To bez pochyby, cílem článku ale nebylo ukázat hranice možností, ale běžná využití pro čtenáře vývojáře. 8-)

lukas.zelenik

Zatial iba zistujem info o RPi. Uvazujem nad kupou novej TV a potom RPi s tym, ze by som chcel vyuzivat vsetky funcinality XBMC cez mobil pomocou YATSE. Tzn., ze budem potrebovat wifi modul, co ale RPi podla vsetkeho nema. Moja otazka teda znie, ako rozbehat YATSE na mobile cez RPi?

igorkulman

Pre Raspberry Pi existujú rôzne USB WiFI moduly, nie je to problém. Na váš use-case ani WiFi modul nie je potrebný, stačí mať Raspberry Pi pripojené káblom v rovnakej siete.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.

Pocta C64

Za prvopočátek své programátorské kariéry vděčím počítači Commodore 64. Tehdy jsem genialitu návrhu nemohl docenit. Dnes dokážu lehce nahlédnout pod pokličku. Chtěl bych se o to s vámi podělit a vzdát mu hold.