Raspberry Pi – seznamte se

Dnes vám chci představit světově nejznámější jednodeskový počítač založený na architektuře ARM. V krátkosti si ukážeme instalaci operačního systému raspbian a povíme si něco o GPIO rozhraní, pro které si napíšeme první program pomocí shellového skriptu. Raspberry se mi poprvé dostala do ruky před třemi lety. Od té doby jsem s ní ušel poměrně dlouhou cestu při budování DIY inteligentní domácnosti a dalších projektů.

V současné době můj raspberry park čítá model B, který používám jako server pro shromažďování dat, řízení a zobrazování. Model 3, ze kterého jsem si vyrobil all-in-one PC do dílny. Běží na něm arduino IDE, fritzing, audacity (provizorní osciloskop), prohlížeč a hudební přehrávač. Rád bych na něm rozjel ještě sketchup a nějaký slicer pro práci s 3D tiskárnkou, ale to se mi zatím nepodvedlo. Posledním přírůstkem do flotily je model Zero. Na něm je Retro pie pro emulaci starých herních konzolí. Mám k němu i 3,5″ display na gpio a usb gamepad. Ke stavbě handheldu jsem se však zatím nedostal, a tak mám tento kousek pro experimentování.

Na obrázku výše vidíte všechny doposud vydané modely raspberry Pi (2012 únor – 2017 leden). Jejich základní parametry se pohybují v hodnotách CPU 700-1200MHz, 1-4 jádra, 128 -1024MB RAM. Operační systém běží z SD karty. Na výběr je jsou nejrůznější linuxové distribuce, ale i windows 10 pro IoT a risc OS. Nejpopulárnější a nejvíce rozšířený je raspbian, který vychází z debianu.

Instalace raspbianu

Instalace je velice jednoduchá a zvládne ji i průměrně inteligentní bernardýn. Pojďme se na ni tedy podívat.

  1. Stažení obrazu operačního systémuhttps://www.raspberrypi.org/downloads/raspbian/ – na výběr máte dvě verze (2017 leden) – Raspbian jessie with pixel a Raspbian jessie lite. Když to zjednoduším, první verze je s grafickým prostředím, druhá je pouze s konzolí. Je tedy nutné zvážit, jak chcete vaše raspberry používat. Pro stanici bych doporučil první verzi, pro server druhou. Po instalaci však můžete vždy některé komponenty přidat, či odebrat a díky tomu lze plynule přecházet z jedné verze do druhé. Pokud máte rychlý internet stahujte přes torrent – je to mnohem rychlejší.
  2. Nahrání obrazu na SD kartu – obraz je zabalený v zipu, prvním krokem je jeho rozbalení. Následně si stáhněte z webu https://etcher.io/ program pro nahrání obrazu na SD kartu. Přes etcher to zvládnete na pár kliknutí. Vybereme iso soubor, vybereme jednotku, kde je vložená SD karta a klikneme na „Flash!“.  Karta by měla mít alespoň 4GB.
  3. Příprava pro první spuštění – SD kartu vložíme do raspberry. Připojíme klávesnici, myš, monitor, síť (v případě, že máme verzi bez RJ45 konektoru, připojíme USB WiFi dongle, nebo USB síťový adaptér) a nakonec i napájecí kabel a necháme raspberry nastartovat.
  4. První start – po spuštění se nám automaticky zvětší disk přes celou paměťovou kartu a podle volby instalačního obrazu nám naběhne buď příkazová řádka nebo grafické prostředí PIXEL. Pokud máme v domácí síti zapnuté DHCP, měli bychom od něj dostat IP adresu a raspberry by mělo být připojené na internet. Když použijeme WiFi adaptér, je nutné ho připojit ručně, vizte zde. V případě, že nám naběhlo grafické prostředí spustíme si terminál. Ten nalezneme v „nabídce start“ (ikona maliny vpravo nahoře) v sekci Accessories.

    V terminálu pak spustíme příkazy sudo apt-get update a sudo apt-get upgrade pro aktualizaci repozitářů a následnou aktualizaci systému a aplikací. Druhý příkaz může vyžadovat souhlas s danou akcí. Akci potvrdíme písmenem Y a entrem. Můžou se zobrazit i případné licenční podmínky. Ty je nutné projet šipkou dolů „přečíst“ 🙂 a potvrdit písmenem Q. Instalace nových softwarových balíčků může trvat několik minut. Po úspěšné aktualizaci příkazem reboot raspberry restartujeme. Když naběhne spustíme v terminálu příkaz sudo raspi-config.

    Spustí se nám konzolová aplikace, kde se navigujeme pomocí šipek, enteru a esc. Nejdříve si změníme heslo pro našeho uživatele pi pomocí volby Change User Password. Dále nás bude zajímat volba Localisation Options. Zde bych doporučil změnit časové pásmo Change Timezone a pokud chcete používat znaky české klávesnice, tak ještě Change Keyboard Layout. Časovou zónu změňte na Europe/Prague. Klávesnici pak na Generic 101-key PC/Other/Czech/Czech/The default for the keyboard layout/No compose key/No. Pokud chcete mít lokalizované do ČJ i prostředí operačního systému, můžete tak učinit pomocí nabídky Change Locale a vybrat cs_CZ.UTF-8 UTF-8 (nebo ISO-8859-2) a následně ho zvolit jako výchozí. Osobně tuto volbu nepoužívám. Dále nás bude zajímat nabídka  Interfacing Options. Zde povolíme –  SSH, SPI, I2C a 1-Wire. SSH pro vzdálený přístup do konzole a zbylé pro načtení ovladačů do jádra pro komunikaci nejrůznějších zařízení přes GPIO port. Pokud se vám na obrazovce objevuje černý rámeček okolo okna OS, je možno povolit v Advanced Options volbu Overscan. Po úspěšné konfiguraci vybereme šipkou doprava Finish a potvrdíme enterem. Následně je nám nabídnut reboot (restart), který potvrdíme ještě jednou.

Hello world!

Raspberry máme aktualizovanou a nakonfigurovanou. Než se pustíme do skriptování, povíme si něco málo o GPIO rozhraní. Toto rozhraní nalezneme na desce v podobě 40 pinů (26 pinů u starších verzí). Na rozdíl od Arduina, jsou tyto piny výhradně digitální. Není tedy s nimi možné přímé snímání analogových veličin. Pokud podržíte destičku, tak aby piny směřovaly směrem k vám a byly v pravém horním rohu desky, vypadá jejich rozložení následovně.

K raspberry se nyní připojíme vzdáleně pomocí SSH z našeho PC.  Na raspberry musíme zjistit aktuální IP adresu pro připojení. Spustíme si terminál a zadáme příkaz ifconfig. V sekci eth0 případně wlan0 ji nalezneme jako inet addr. Moje je 192.168.139. Pokud bychom chtěli používat raspberry jako server je vhodné nastavit si IP adresu staticky, aby se nám po restartu nemohla změnit.

Pro připojení zvolte klienta dle libosti. V tomto případě použiji putty pro windows. V linuxech nebo na macu lze použít terminál a příkaz ssh pi@192.168.1.139.

V putty vyplníme IP, typ spojení zvolíme SSH a port 22. Po kliknutí na Open potvrdím „putty security alert“ tlačítkem Ano – tím se přidá dosud neznámý klíč raspberry pi s její IP do známých klíčů. Následně na nás vyskočí prompt se zadáním uživatelského jména pi (potvrdíme enterem) a hesla, které jsme si zvolili (potvrdíme enterem). Pokud se vám při psaní hesla nezobrazují žádné znaky, tak je to správně 🙂

Nyní si na GPIO připojíme diodu s odporem.

V příkazové řádce si načteme stav GPIO přes příkaz gpio readall, který patří do balíku wiringPi. Příkaz nám vypíše v textové podobě data shodná s obrázkem GPIO výše.

Pro náš účel použijeme pin s BCM 26 (grafická GPIO mapa), respektive 25 dle wiringPi.  Nejdříve nastavíme port jako výstupní příkazem gpio mode 25 out. Změnu můžeme ověřit přes gpio readall. Nyní můžeme zkusit poslat na pin jedničku pomocí gpio write 25 1. Dioda by se měla rozsvítit. Zhasnout ji můžeme přes gpio write 25 0. Pokud chceme blikat, použijeme jednoduchou smyčku pomocí nekonečného while cyklu while true; do gpio write 25 0; sleep 1; gpio write 25 1; sleep 1; done. Cyklus můžeme ukončit zkratkou Ctrl+C.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.