Příprava Raspberry Pi pro SW 1.x.x
Veškerou přípravnou a programátorskou práci dělám na pracovním počítači s Win7 64-bit. Pro komunikaci s Raspberry Pi používám terminál a ftp. Jaké programy jsou tedy v mém případě zapotřebí:
1) Příprava linuxu.
Jako operační systém pro Raspberry Pi používám oficiální Raspbian. Ten se stahuje na oficiálních stránkách zde. Pro účely ovládání pozicionéru stačí nejmenší varianta Lite. Stažený archiv *.zip rozbalím programem WinRAR a pomocí programu Disk Imager nahraji na SD kartu. Další možností je použít místo SD karty rychlejší a spolehlivější SSD disk připojený přes redukci do USB portu. Ale pro tohle jednoúčelové zařízení to není nezbytně nutné. Stačí dobrá SD karta.
Po nahrání linuxu je na kartě spouštěcí oddíl naformátovaný na FAT32. V tomto oddílu jsem udělal dvě úpravy. Vytvořil jsem zde textový soubor s názvem ssh. Tím se při startu Raspberry Pi povolí komunikace z terminálu protokolem SSH. Dále jsem do souboru config.txt dopsal
# muj komentar, nastaveni Pullup odporu na vybranych GPIO pinech
gpio=12,16,19,20,21,26=ip,pu
Tím se při startu Raspberry Pi vybrané porty nastaví jako vstupy a aktivují se pullup odpory na +3.3V. Tyto odpory jsou nutné pro správnou činnost navrženého HW, ale dále použitá SW knihovna onoff je aktivovat neumí.
Další nastavení se už provádí z terminálu programem PuTTY protokolem SSH na portu 22. Při prvním připojení z terminálu je defaultní jméno / heslo nastavené na pi / raspberry. Hned po připojení doporučuji provést základní konfiguraci.
sudo raspi-config
Zde nastavuji minimálně tyto položky:
- Change user password
- Boot Options: B1 Desktop/CLI, B1 Console
- Localization: I2 Change Timezone, Europe, Prague
- Localization: I4 Change Wi-fi Country, CZ Czech Republic
- Advanced Option: A1 Expand Filesystem
Na závěr těchto úprav je potřeba potvrdit restart. Při dalších připojeních z terminálu, teď už pod novým heslem, provedu aktualizace.
sudo apt-get update
sudo apt-get upgrade -y
sudo reboot
sudo rpi-update
sudo reboot
2) Instalace node.js, npm
Program, který píšu pro Raspberry Pi, se spouští pomocí webového serveru Node.js. Ten je už součástí repozitářů Raspbianu a měl by jít nainstalovat standardním postupem společně s podpůrným programem npm.
sudo apt-get install nodejs npm -y
V době, kdy jsem začínal, byla ale v repozitáři stará verze, která hlásila chyby. Musel jsem tedy aktuální verzi nainstalovat ručně podle následujícího postupu.
- stáhnout aktuální archiv pro Raspberry Pi 3 - ARMv7 (node-v12.16.3-linux-armv7l.tar.xz). Tento archiv obsahuje i program npm
- archiv nakopírovat pomocí ftp klienta do Raspberry Pi, adresáře /home/pi
- vytvořit adresář pro Node.js
sudo mkdir -p /usr/local/lib/nodejs
- rozbalit archiv do tohoto adresáře
sudo tar -xJvf node-v12.16.3-linux-armv7l.tar.xz -C /usr/local/lib/nodejs
- nastavit proměnné prostředí textovým editorem nano
nano ~/.profile
doplněním následujících řádků na konec# Nodejs
VERSION=v12.16.3
DISTRO=linux-x64
export PATH=/usr/local/lib/nodejs/node-v12.16.3-linux-armv7l/bin:$PATH
- pak upravený a uložený soubor aktivovat
. ~/.profile
- a nakonec vytvořit simlinky:
sudo ln -s /usr/local/lib/nodejs/node-v12.16.3-linux-armv7l/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/nodejs/node-v12.16.3-linux-armv7l/bin/npm /usr/bin/npm
sudo ln -s /usr/local/lib/nodejs/node-v12.16.3-linux-armv7l/bin/npx /usr/bin/npx
Ať už budete Node.js a npm instalovat jakýmkoliv způsobem, je dobré na závěr zkontrolovat, jestli je vše funkční. Třeba pomocí výpisu verzí.
node -v
npm version
npx -v
3) Instalace pomocných knihoven
Základní program Node.js lze doplňovat knihovnami funkcí v javascriptu. Správcem těchto knihoven je program npm, pomocí kterého se instalují. Pro základní komunikaci s piny GPIO portu bude potřeba knihovna onoff. Další knihovnou pro webovou komunikaci je socket.io. Tyto a další potřebné knihovny lze nainstalovat takto:
npm install onoff
npm install socket.io
4) Spuštění uživatelského programu pomocí Node.js
Princip spouštění programů v Node.js je následující. V adresáři /home/pi/ vytvořit adresář pro aplikaci.
mkdir -p SatProwler
Do tohoto adresáře nakopírovat všechny soubory napsaného programu. Může jich být i větší množství, mohou být roztříděny do dalších podadresářů, vždy ale musí obsahovat dva výchozí soubory index.html a satprowler.js. Pak se do tohoto adresáře přesunout v terminálu.
cd SatProwler
a spustit webový server
node satprowler.js
Takto spuštěný program je závislý na terminálu, ze kterého je spuštěn. To se hodí při testování programu, kdy se do okna terminálu vypisují provozní nebo chybová hlášení. Spuštěný program se ukončí kombinací kláves Ctrl + C. Vypnutím terminálu se program také ukončí.
Tím je Raspberry Pi připravené ke zkušebnímu provozu. Od této chvíle je možné psát a testovat vlastní uživatelský program.