Cel
Ogólne zapoznanie z komputerem Raspberry Pi, a w szczególności z pracą pod kontrolą systemu operacyjnego Raspbian.
Wymagania
- Raspberry Pi 3 lub nowsze,
- zasilacz micro-USB 2,5 A,
- karta micro-SD co najmniej 8 GB klasy 10,
- kabel HDMI,
- klawiatura, mysz, monitor,
Wprowadzenie

Raspberry Pi (rysunek 1), w skrócie RPi, a po spolszczeniu Malinowe Pi lub krótko Malina, jest najpopularniejszym urządzeniem z bardzo bogatej grupy komputerów jednopłytkowych (z ang. SBC – Single-Board Computer). To, co odróżnia go od zwykłego desktopa, to dostęp do dodatkowych pinów, zaznaczonych na rysunku 1 czerwoną ramką, służących do interakcji z fizycznym światem. W poprzednich rozdziałach już korzystaliśmy z komputerów wyposażonych w dodatkowe wejścia i wyjścia, ale do ich użycia potrzebny był zewnętrzny komputer, na którym wykonywana była kompilacja skrośna. W przypadku RPi, jego wydajność jest na tyle duża, że pozwala na instalację desktopowego systemu operacyjnego. Po podłączeniu klawiatury i monitora (przez HDMI) można pisać i kompilować programy bezpośrednio na urządzeniu. Jest także możliwość zdalnego zalogowania się na RPi dzięki wyposażeniu go w port Ethernet oraz Wi-Fi. Model RPi, na którym będziemy pracować i którego dotyczy opis, to 3B, ale w sprzedaży w momencie pisania skryptu dostępna była już czwarta, nieco mocniejsza, wersja modelu. Nie należy się przejmować kupnem innego modelu, bo wszystkie wiadomości zawarte w tym skrypcie będą aktualne.
Na komputerze wielkości karty kredytowej zmieszczono czterordzeniowy procesor Broadcom taktowany zegarem 1,4 GHz z 1 GB pamięci RAM (współdzielonej z GPU) oraz interfejsy:
- HDMI,
- 4 × USB 2.0,
- Ethernet,
- Wi-Fi i Bluetooth,
- analogowe audio i wideo (czteropolowy Jack),
- gniazdo karty micro-SD,
- złącze kamery CSI,
- złącze wyświetlacza DSI,
- gniazdo zasilania micro-USB,
- złącze 2 × 20 goldpin dające użytkownikowi możliwość sterowania różnymi urządzeniami.
Kupując Raspberry Pi, należy mieć świadomość, że sama płytka to za mało, aby rozpocząć pracę. Z pewnością będziemy potrzebowali karty micro-SD i zasilacza. Tutaj znowu będzie konieczne rozważenie zakupu w zestawie, który przeważnie jest korzystniejszy cenowo, ale też dostaniemy sprzęt dopasowany do mikrokomputera, bo nie wszystko się nadaje.
Pojemność karty uzależniona jest od zastosowanego systemu operacyjnego i ilości zainstalowanego oprogramowania i zgromadzonych danych. Dla systemu Raspbian minimalna, zalecana pojemność to 8 GB, ale 16 GB, przy dzisiejszych cenach kart, będzie znacznie lepszym wyborem. Istotny wpływ na wydajność pracy będzie miała szybkość karty – oczywiście im szybsza, tym lepsza. W grę wchodzą jedynie karty klasy 10.
Również nie każdy zasilacz będzie współpracował z RPi pomimo uniwersalności złącza micro-USB. Raspberry Pi jest bardzo prądożerne (2,5 A przy 5 V). Zastosowanie niewłaściwego zasilacza, o ile pozwoli na uruchomienie, będzie zakomunikowane na ekranie monitora. Projektując urządzenia zarządzane przez klasyczne Raspberry Pi, powinniśmy zrezygnować z zasilania akumulatorowego, bo może się okazać, że robot będzie musiał ciągnąć przyczepkę z bateriami.
Warto też, co nie jest dużym kosztem w porównaniu z ceną modułu i reszty akcesoriów, zainwestować w estetyczną obudowę. Można też rozważyć wyposażenie Raspberry w radiator procesora, najlepiej dedykowany z taśmą do przyklejenia. Nie jest konieczny, ale może być przydatny przy dużym obciążeniu procesora.
Do uruchomienia potrzebne będą także: kabel HDMI, monitor, klawiatura i mysz. Jeżeli później będziemy pracowali zdalnie, te akcesoria będą potrzebne tylko na chwilę, jeżeli zaś chcemy pracować na RPi, to dostęp do tych urządzeń wejścia/wyjścia będzie konieczny stale. W sprzedaży są bezprzewodowe miniklawiatury z padami dotykowymi. Ułatwia to znacząco pracę dorywczą, bo za monitor może posłużyć dowolny telewizor. Trzeba mieć tylko świadomość, że obsługa takiej klawiatury jest dosyć niewygodna.
Zasadniczo praca bez internetu jest możliwa, ale RPi nie posiada nawet wbudowanego zegara czasu rzeczywistego. Przynajmniej do uruchomienia i aktualizacji będziemy potrzebowali podłączyć się do sieci. Jeżeli nie mamy Wi-Fi potrzebny będzie kabel Ethernet.
Wybór i instalacja systemu operacyjnego
W tym skrypcie, jak i w większości projektów sterowania procesami i internetu rzeczy (ang. IoT – Internet of Things), wykorzystywana jest dystrybucja Linuxa o nazwie Raspbian. Jednakże lista dostępnych systemów operacyjnych, z czego większość oparta jest na Linuxie, jest ogromna. Dla internetu rzeczy jest nawet produkt Microsoftu – Windows 10 IoT, jednak nie jest to rozwiązanie popularne, a wręcz można powiedzieć marginalne.
Oprócz systemów operacyjnych IoT lub ogólnego przeznaczenia istnieje bardzo dużo specjalizowanych OS-ów: obsługi kina domowego, obróbki dźwięku, routerów, kiosków internetowych czy bardzo popularnych ostatnio emulatorów starych komputerów i konsoli gier. Ciekawą lekturą na wiele wieczorów może być strona elinux.org/RPi_Distributions.
Za urządzenie pamięci masowej (dysk twardy) służy w RPi karta SD. Instalacja systemu operacyjnego przebiega inaczej niż na zwykłym komputerze biurkowym. Instalacja najczęściej polega na nagraniu obrazu systemu na karcie micro-SD przy pomocy osobnego komputera wyposażonego w czytnik takich kart. Obraz, czyli plik z rozszerzeniem *.img można pobrać ze strony www.raspberrypi.org/downloads/, jednak nagranie obrazu nie jest rzeczą banalną. Nie wystarczy przekopiować go na kartę, ale konieczne jest specjalne kopiowanie w trybie 1:1. W Linuxie służy do tego narzędzie dd, a w systemach Windows program Win32 Disk Imager.
Jeżeli nie potrafisz posługiwać się tymi programami, to najlepszym wyjściem będzie skorzystanie z narzędzia NOOBS (New Out Of the Box Software). Pozwoli ono przy pierwszym uruchomieniu Raspberry Pi na wybór systemu operacyjnego z listy, na której znajdziemy także inne systemy linuksowe, Win10IoT, RISC OS oraz systemy kina domowego. Proces instalacji po wyborze odbędzie się automatycznie, przy czym podczas korzystania z NOOBS network only musimy mieć możliwość skonfigurowania sieci w trakcie instalacji. NOOBS pobieramy jako archiwum skompresowane z tej samej co obraz Rasbiana strony. Po rozpakowaniu całą strukturę plików i katalogów przekopiowujemy na świeżo sformatowaną w systemie FAT kartę SD. Wystarczy tylko włożyć ją do RPi i podłączyć zasilanie.

Dalej zakładam, że przy instalacji NOOBS został wybrany Raspbian. Po uruchomieniu dostaniemy dostęp do w pełni wyposażonego biurka, w na przykład: przeglądarkę internetową, pakiet Libre Office, kilka prostych gier i wiele narzędzi programistycznych (rysunek 2).
Korzystanie z linii poleceń

Bardzo ważną umiejętnością, konieczną do obsługi i programowania Raspberry Pi, jest chociażby minimalna znajomość Linuxa z poziomu linii poleceń. Mamy do niej dostęp po uruchomieniu tak zwanego terminala (właściwie graficznego emulatora konsoli). Włączamy go z głównego menu, oznaczonego w lewym górnym rogu symbolem maliny, z podgrupy akcesoriów. Program nazywa się LXTerminal (rysunek 3) i można go uruchomić także z podręcznej palety narzędzi na górnym pasku. W terminalu Linux komunikuje się z użytkownikiem poprzez tekstowo zorientowaną powłokę systemową (shell). Jest wiele odmian powłoki, ale najpopularniejszą i domyślną jest powłoka Bourna bash (Bourne Again Shell).
Po włączeniu terminala przywita nas znak zachęty w postaci symbolu dolara $ oznaczającego zwykłego użytkownika. Administratora, nazywanego w Linuxie root, przywita symbol #.
Przede wszystkim konieczna jest orientacja w strukturze katalogów i plików. Szczegóły organizacji katalogów mogą być inne w różnych dystrybucjach, ale ogólny zarys i podstawowe katalogi są we wszystkich odmianach Linuxa takie same. Wyczerpującą informację o hierarchii plików i katalogów w danym systemie można uzyskać, wpisując z linii poleceń:
$ man hier
Jest to ciekawa lektura na dłuższy wieczór. Wszystkie katalogi są podkatalogami katalogu głównego / zwanego root, chociaż sam administrator ma osobny katalog domowy /root.
UWAGA, Użytkownicy Windows! Ważną rzeczą dla użytkowników Windows jest zaakceptowanie rozdzielania katalogów zwykłym ukośnikiem, a nie ukośnikiem wstecz \, bo ten ma wyjątkowe znaczenie w powłoce i może poprzedzać znaki specjalne, w tym space i \. Dlatego windowsowe ścieżki w Linuxie mają zdwojony backslash \\. Nie szukajmy także dysku C:. Wszystko musi zaczynać się od /, na co nie ma wyjątku. Fizyczne partycje lub dyski muszą być „podmontowane” w tej strukturze, najczęściej w katalogu /mnt lub /media lub jeszcze innym, zależnym od dystrybucji, znaczenia partycji, rodzaju pamięci masowej (pendrive, CD-ROM) lub decyzji użytkownika. Należy także zwrócić uwagę na rozszerzenia nazw plików. W Linuxie mają one znaczenie umowne, bo kropka jest jedynie składnikiem nazwy – takim samym znakiem jak inne. Nie można w Linuxie „oszukać” poprzez zmianę rozszerzenia. System i tak prawidłowo otworzy plik zgodnie z jego typem zapisanym w metadanych.
Własną, obecną lokalizację można otrzymać przez wydanie polecenia:
$ pwd
W taki sposób otrzymamy informację o ścieżce prowadzącej do aktualnej lokalizacji. W większości dystrybucji po włączeniu terminala, znajdować się będziemy w katalogu domowym zalogowanego użytkownika. W przypadku mojej instalacji Fedory otrzymałem:
/home/marcin
W przypadku Maliny:
/home/pi
Kilka wierszy powyżej użyto polecenia man. Jest to podręczna pomoc konsoli. Wpisanie man wraz z nazwą polecenia spowoduje wyświetlenie pełnej pomocy na temat jego użycia. Strony podręcznika man są w większości spolszczone. Jeżeli jednak używając man, napotkasz wersję angielską, to albo nie posiadasz zainstalowanych polskich stron podręcznika, albo zaczynasz być użytkownikiem zaawansowanym basha. Spróbuj wydać polecenie:
$ man pwd
Czytania tego typu pomocy trzeba się niestety nauczyć, szczególnie gdy polecenie ma mnóstwo opcji, bo nie będą one uszeregowane od najbardziej potrzebnych, tylko alfabetycznie.
Następnym krokiem jest umiejętność wyświetlenia zawartości katalogu. Służy do tego polecenie ls, które podane bez opcji, filtrów i ścieżki spowoduje wyświetlenie w skróconej formie zawartości bieżącego katalogu, bez plików ukrytych. Dwie najważniejsze krótkie opcje to -a, pozwalająca na wyświetlenie także plików ukrytych, oraz -l umożliwiająca otrzymanie listy szczegółowej. Krótkie opcje można łączyć. Wynik działania polecenia:
$ ls -al
daje:
razem 132
drwxr-xr-x 26 pi pi 4096 lut 20 15:21 .
drwxr-xr-x 3 root root 4096 lis 29 2017 ..
-rw------- 1 pi pi 3277 lut 20 15:21 .bash_history
-rw-r--r-- 1 pi pi 220 lis 29 2017 .bash_logout
-rw-r--r-- 1 pi pi 3520 lut 19 22:23 .bashrc
drwxr-xr-x 10 pi pi 4096 lut 4 2019 .cache
drwx------ 22 pi pi 4096 lut 19 20:32 .config
drwx------ 3 pi pi 4096 lut 20 2018 .dbus
drwxr-xr-x 2 pi pi 4096 maj 31 2019 Desktop
drwxr-xr-x 6 pi pi 4096 lut 19 21:50 Documents
...
Pliki i katalogi z kropką, zazwyczaj ukryte to pliki konfiguracyjne różnych aplikacji. Na przykład domyślna sesja basha jest określona ustawieniami w pliku .bashrc. Inne pliki z kropką przykładowo mogą zawierać informacje o stanie gry lub startowych parametrach programów użytkownika.
Pierwszych dziesięć znaków na szczegółowym listingu katalogu określa: typ pliku (pierwszy znak) oraz uprawnienia (trzy razy po trzy znaki rwx lub –). Pierwszy znak jest najczęściej minusem dla zwykłego pliku lub literą d dla katalogu, który w Linuxie jest specjalnym plikiem „porządkującym”. Dziewięć następnych znaków oznacza uprawnienia dla użytkownika, grupy i innych. Mogą one przyjmować wartości: – brak uprawnień, r (read) odczyt, w (write) zapis, x (execute) wykonanie. Manipulowanie uprawnieniami umożliwia polecenie chmod.
Pojedyncza kropka . oznacza katalog bieżący, a podwójna .. nadrzędny.
Do zmiany bieżącego katalogu służy polecenie cd. Po nim podajemy albo bezwzględną ścieżkę do katalogu rozpoczynającą się /, albo względną do aktualnego katalogu, którą opcjonalnie możemy poprzedzić ./, albo względem domowego katalogu ~/, którego skrótem jest tylda. Wydanie samego polecenia cd jest równoważne z napisaniem:
$ cd ~
Jeżeli chcemy zmienić katalog na Documents, można napisać:
$ cd Doc <TAB>
Przykład ten prezentuje niesamowitą możliwość powłoki, jaką jest dokańczanie nazw poleceń, plików i katalogów pasujących do początkowych liter. Służy do tego klawisz Tab. Jeżeli pasujących dokończeń jest więcej, można je wyświetlić, wciskając przycisk Tab dwukrotnie. Pomocna też może być funkcja podręcznej historii, po której przemieszczać się można przy pomocy strzałek w górę i w dół.
Kopiowanie plików odbywa się przy pomocy polecenia cp:
$ cp ścieżka_do_pliku_źródłowego ścieżka_do_katalogu_docelowego
Jeżeli konieczne jest przekopiowanie wielu plików naraz, można wykorzystać nazwy wieloznaczne. * oznacza dowolny ciąg znaków, a ? dowolny pojedynczy znak. Wszystkie pliki to po prostu *, a nie jak w Windows *.*, bo w Linuxie kropka, jak już było powiedziane wcześniej, jest tylko składnikiem nazwy. Przekopiowanie katalogu będzie wymagało użycia opcji -r, powodującej rekursywne (katalogi razem z plikami i podkatalogami) kopiowanie.
Bardzo podobną składnię ma polecenie przenoszenia mv, z tym, że przenosząc w miejscu, spowodujemy jedynie zmianę nazwy.
Utworzyć katalog można poleceniem mkdir nazwa, zaś usunąć rmdir nazwa. Użycie tego drugiego polecenia jest rzadkością, bo nie ma opcji rekursywnej, a zatem usuwany katalog musi być pusty. Natomiast usunięcie całego katalogu z zawartością jest możliwe za pomocą polecenia rm usuwającego plik, tylko z opcją -r. Polecenie rm, podobnie jak każde inne, przyjmuje nazwy wieloznaczne.
$ rm plik
$ rm -r katalog
Usunąć plik jest prosto, ale jak go utworzyć? Tworzenie nowych plików wymaga odpowiednich aplikacji je obsługujących. Specjalną grupę plików stanowią jednakże pliki tekstowe. Taką formę przybierają pliki konfiguracyjne, kody źródłowe, różnego rodzaju skrypty itp.
Można utworzyć plik tekstowy, korzystając z edytora tekstowego, o czym dalej. Pozwalają na to, oraz na modyfikacje, także pewne operacje konsolowe. Polecenie touch, które zmienia znaczniki czasu plików najczęściej jest wykorzystywane do innego celu – utworzenia nowego pustego pliku.
$ touch nazwa_nowego_pliku
Do tworzenia plików tekstowych można także wykorzystać znak >, służący do przekierowania standardowego wyjścia, jakim jest ekran, do pliku. Na przykład zamiast listować zawartość katalogu na ekran możemy go zapisać do pliku tekstowego poleceniem:
$ ls -l > moj_katalog.txt
Nieistniejący plik zostanie utworzony. Użycie znaku > wskazującego na istniejący plik spowoduje jego nadpisanie i utratę zawartości. Jeżeli chcemy dopisać coś do pliku, powinniśmy użyć operatora >>.
$ echo „jakiś napis” >> juz_istniejacy_plik.txt
W tym wypadku polecenie echo służy tylko do wyświetlenia napisu na ekranie, z tym że znowu użyliśmy przekierowania do pliku. Wyświetlenie na ekranie zawartości pliku tekstowego, bez uruchamiania edytora, jest możliwe przy zastosowaniu polecenia cat.
$ cat plik_tekstowy.txt
Na wyjście z konsoli pozwala polecenie exit.
Praca zdalna
Skonfigurowane RPi do pracy nie wymaga podłączenia myszy, klawiatury ani monitora. Można na urządzeniu dostać dostęp do powłoki zdalnie z innych komputerów. Zanim zalogujemy się na Malinie, należy wykonać dwa kroki:
- zmienić domyślne hasło użytkownika pi,
- uruchomić serwer SSH.
Obie czynności wykonamy w jednym oknie konfiguracyjnym, tylko na różnych zakładkach. Dostęp do najważniejszych opcji konfiguracyjnych uzyskamy, uruchamiając z głównego menu z grupy Preferencje: Raspberry Pi Configuration.
Hasło domyślne jedynego na początku użytkownika pi to raspberry. Pozostawienie go może być uzasadnione jedynie w pracy lokalnej, ale przy podłączeniu do sieci, a już szczególnie z pozwoleniem na pracę zdalną jest bardzo nierozsądne. Hasło można zmienić poleceniem passwd, albo z wykorzystaniem wyżej wymienionego programu konfiguracyjnego. Rysunek 2 prezentuje zmianę hasła na zakładce System.

Możliwość zdalnego zalogowania uzyskamy po włączeniu Enabled przy SSH na zakładce Interfaces w oknie Raspberry Pi Configuration (rysunek 4).
Następnie powinniśmy skonfigurować sieć na RPi, co jest możliwe także z pomocą graficznych konfiguratorów dostępnych w lewym górnym rogu ekranu. Użycie DHCP będzie sprowadzało się do wybrania sieci z listy, a w przypadku Wi-Fi także hasła szyfrowania. Mam nadzieję, że nikt nie używa niezabezpieczonych połączeń bezprzewodowych. Następnie trzeba ustalić adres Maliny. Sposobów na jego uzyskanie jest wiele i są zależne od konfiguracji i sprzętowych rozwiązań danej sieci. Jeżeli korzystamy z automatyki adresowania DHCP, to najwygodniej będzie uzyskać dostęp do panelu konfiguracyjnego routera online, gdzie możemy odczytać nieroutowalne adresy IP urządzeń sieci lokalnej. Podobnie korzystając z hotspota na telefonie komórkowym z systemem Android, adresy podłączonych urządzeń odczytamy z ekranu ustawień sieciowych.
Zalogowanie zdalne w komputerach z systemem Windows umożliwia program PuTTY. W tym rozdziale logować się będziemy z innego komputera z Linuxem, ale korzystanie z PuTTY nie powinno sprawić problemu. W linii poleceń wpisujemy:
$ ssh pi@192.168.1.154
Oczywiście adres 192.168.1.154 nie jest uniwersalny, ale dotyczy konkretnego podłączenia. Nie podając przed małpą nazwy użytkownika, a jedynie sam adres IP urządzenia, zostaniemy o nią zapytani podczas logowania. Przed pierwszym logowaniem zostaniemy poproszeni o zaakceptowanie cyfrowego odcisku palca (SSH jest bezpiecznym połączeniem szyfrowanym):
ECDSA key fingerprint is SHA256:SZnFau7gP+vG8ew88oFcPjCPZEkNDut07b/n5E1HtJI.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Gdy udzielimy odpowiedzi yes, zostaniemy poinformowani o stałym dopisaniu danego adresu do listy znanych hostów.
Warning: Permanently added ‘192.168.1.154’ (ECDSA) to the list of known hosts
Należy przy tym pamiętać, że nie mając na stałe przypisanych adresów, przy każdym uruchomieniu Raspberry Pi będzie się on zmieniał. Wszystko zależy od konfiguracji czasu dzierżawy adresów w sieci lokalnej.
Teraz wystarczy wpisać hasło, którego nie zapomnieliśmy od ostatniej zmiany, i już możemy korzystać z powłoki Maliny
pi@raspberrypi:~ $
Informuje nas o tym zmieniony znak zachęty oraz możliwe opóźnienia podczas wykonywania niektórych operacji, a nawet pisania z klawiatury.
Edytor tekstu

Wybór edytora tekstowego jest sprawą preferencji. Mowa, rzecz jasna, o edytorach czystego tekstu, a nie o edytorach pakietów biurowych. W systemach Windows domyślnym programem edycji nieformatowanego tekstu jest Notatnik, ale dużo większe możliwości, w tym rozpoznawanie składni języka, ma darmowy Notepad++. Gama linuksowych edytorów jest tak bogata, a wielu użytkowników ma do tej sprawy podejście bardzo nieobiektywne, że nie sposób opisać tu choć częściowo tego zagadnienia, nie narażając się nikomu.
Pracując lokalnie na Raspberry Pi, możemy dowolnie wybrać edytor tekstowy działający w konsoli lub w graficznym oknie. Domyślnym, aczkolwiek bardzo skromnym edytorem Raspbiana, jest dostępny w Akcesoriach Leafpad. Dodatkowo w menu Programowanie mamy edytor/środowisko programistyczne Geany. Jednakże pracując zdalnie, musimy oprócz opanowania podstaw basha, znać także obsługę jakiegoś edytora tekstowego pracującego w terminalu. Najbardziej powszechnym, dostępnym w każdym systemie uniksowym, do których należy także Linux, jest vim. Jego obsługa jest jednak na tyle trudna, że kto nie korzystał z niego nigdy, może bardzo szybko się zniechęcić. Popularne w wielu książkach porównywanie jego obsługi do gier wideo kłóci się z moim pojęciem o takich grach, a może korzystam nie z tych gier, co trzeba. Z uwagi jednak na powszechność tego edytora warto znać choć zarys obsługi, aby móc przeedytować dokument, gdy brak jest alternatywy. Najważniejszą koncepcją tego edytora, którą należy zrozumieć, są dwa główne tryby pracy: tryb wstawiania tekstu i tryb wydawania poleceń, także tych nawigujących po dokumencie. Gdyby jednak przez przypadek udało Ci się włączyć vima, to zanim staniesz się bohaterem memów internetowych, wciśnij <ESC> i napisz :q! i <ENTER>.
Dla osób, które nie lubią epatować profesjonalizmem, wystarczający będzie, bardzo prosty w obsłudze, a równie powszechny obecnie jak vim, edytor nano. (rysunek 5). Nie będę opisywał dosyć intuicyjnej obsługi, z podpowiedzią w postaci paska na dole ekranu. Wszystkie polecenia dostępne są z klawiszem <CTRL> oznaczanym skrótowo jako ^ oraz lewym <ALT> oznaczanym jako M. Więcej opcji można uzyskać naciskając ^G.
Zarządzanie oprogramowaniem
Do zarządzania oprogramowaniem służy polecenie apt-get, ale żeby z niego skorzystać, koniecznie trzeba być administratorem. Użytkownik pi jest użytkownikiem mogącym, dzięki odpowiednim wpisom w pliku sudoers, uzyskać dostęp do poleceń administracyjnych poprzez poprzedzenie ich słowem sudo. Dlatego tak ważne jest, aby w pierwszej kolejności zmienić domyślne hasło raspberry. Instalacja programów w Raspbianie jest bardzo prosta, o ile jesteśmy podłączeni do internetu.
$ sudo apt-get install nawa_pakietu
Program zarządzający oprogramowaniem zadba o instalację najnowszej wersji, pasującej do naszego systemu, ale także o zainstalowanie brakujących pakietów, które są niezbędne do działania nowego programu (tak zwane sprawdzanie zależności). Podobnie jest z usuwaniem, gdzie to, co już nie jest wymagane przez żaden inny program, pozostanie automatycznie usunięte.
$ sudo apt-get remove nawa_pakietu
Zamiast nazwy pojedynczego programu można podać rozdzielone spacjami nazwy wielu programów do zainstalowania.
Jeżeli mamy do wykonania wiele czynności administracyjnych, możemy uzyskać uprawnienia root na stałe i uniknąć ciągłego wpisywania sudo.
$ sudo su
Aby się ich pozbyć, używamy znanego już polecenia exit.
# exit
Do typowych zadań administracyjnych należy utrzymywanie swojego urządzenia w pełni zaktualizowanego. Systematycznie wypada wydawać polecenia:
$ sudo apt-get update
Działanie update nie spowoduje jeszcze aktualizacji oprogramowania, a jedynie synchronizację baz danych informacji o wersjach oprogramowania. Dopiero działanie upgrade wywoła pobranie i zainstalowanie aktualizacji.
$ sudo apt-get upgrade
Wyłączenie
Wyłączenie Raspberry Pi jest możliwe z poziomu GUI poprzez odpowiednie okienko dialogowe wywoływane z menu głównego – Shutdown. Zdalnie musimy napisać:
$ sudo shutdown -h now
lub krócej:
$ sudo poweroff
Modyfikacje
Ćwiczenia tego rozdziału powinny ograniczyć się do nauki posługiwania się konsolą. Powłoka jest bardzo rozbudowanym narzędziem i nie sposób poznać jej tajników po przeczytaniu kilku stron wprowadzenia. Biegłe posługiwanie się konsolą wymaga czasu i treningu.
Spróbuj wpisać z konsoli df oraz mount bez żadnych parametrów. Sprawdź przy pomocy man, do czego służą. Takie informacje mogą być bardzo użyteczne.
Do zarządzania procesami i zadaniami jest bardzo dużo różnych poleceń. Wypróbuj działania programu top jako managera zadań.
Do czego służy ln? Stwórz link symboliczny do jakiegoś własnego pliku. Spraw przy pomocy chmod, by plik ten był tylko do odczytu. Jeżeli nie wiesz jak, czytaj strony man.
W edytorze nano włącz numerację linii i automatyczne wcięcia. Jak to zrobić, znajdź w pomocy ^G.
Literatura
Powtórzenie zaprezentowanych projektów nie wymaga studiowania dodatkowej literatury. Dopiero wprowadzenie modyfikacji może wiązać się z koniecznością uzupełnienia wiedzy. Najlepszym źródłem informacji w przypadku jakiegoś konkretnego problemu jest internet. Książka pisana swoją wyższość ukazuje dopiero jako podręcznik czy przewodnik.
Informacje bibliograficzne dotyczące źródeł internetowych zamieściłem bezpośrednio w tekście, przy zagadnieniach, których dotyczą.
Do zapisu linków, tylko w tym spisie, wykorzystywana jest metoda skracania adresów (URL shortening). W tym skrypcie wybrano serwis TinyURL. Dostęp do wszystkich internetowych zasobów został przetestowany 27.02.2020.
Bibliografia zawiera tylko materiały pomocnicze do projektów, których dotyczą, a pominięto literaturę o charakterze ogólnoinformatycznym. Dobór materiałów do nauki kodowania, czy obsługi programów narzędziowych, pozostaje po stronie nauczyciela.
Dla Arduino i Raspberry jest po prostu ogrom literatury i różnych zasobów internetowych – także w polskim języku. Jest na rynku bardzo ciekawa książka wspólna dla obu platform, prezentująca rozwiązania problemów równocześnie dla obu modułów:
- Monk Simon, Zrób to sam. Generowanie ruchu, światła i dźwięku za pomocą Arduino i Raspberry Pi [e-book], tłum. Konrad Matuk, Helion, 2018.
Także Raspberry Pi nie należy do urządzeń, dla których trudno o dokumentację.
- RasperryPi.org [https://tinyurl.com/p6ogh6j].
Z książkowych przewodników polecam:
- Richardson Matt, Wallace Shawn, Wprowadzenie do Raspberry Pi [e-book], tłum. Maria Chaniewska, wyd. 2, Helion, 2016.
- Upton Eben, Halfacree Gareth, Raspberry Pi. Przewodnik użytkownika. Wydanie III [e-book], tłum. Konrad Matuk, Helion, 2015. ale gama dobrych podręczników jest naprawdę szeroka.
Literatura uzupełniająca
W niektórych projektach nie wszystko da się podłączyć za pomocą pasujących do siebie wtyków i złącz. Należy wówczas wykonać takie podłączenia samodzielnie. Wymaga to nieco umiejętności majsterkowania i elektroniki. Bardzo ciekawą książką dla początkujących majsterkowiczów jest:
- Roberts Dustyn, Wpraw to w ruch. Proste mechanizmy dla wynalazców, majsterkowiczów i artystów [e-book], tłum. Krzysztof Sawka, Helion, 2015.
Znajdziemy w niej oprócz podstaw elektroniki także dużo elementarnej mechaniki i materiałoznawstwa.
Majsterkowanie z użyciem systemów wbudowanych, tam gdzie nie wszystko pasuje do siebie za pomocą dedykowanych styków, wymaga elementarnej wiedzy z elektroniki. Niezmiennie najważniejszą książką na półce elektronika jest:
- Horowitz Paul, Hill Winfield, Sztuka elektroniki, tłum. Bogusław Kalinowski, Grażyna Kalinowska, t. 1–2, wyd. 12 zmienione, WKŁ, Warszawa 2018.
Jednakże jest to pozycja dla wymagającego czytelnika. Podobnym standardem, ale skierowanym do początkujących jest:
- Platt Charles, Elektronika. Od praktyki do teorii. Wydanie II [e-book], tłum. Konrad Matuk, Helion, 2016.
Na uwagę zasługuje ponadto, w moim przekonaniu bardzo dobra, książka polskiego autora:
- Górecki Piotr, Wyprawy w świat elektroniki, t. 1, WKŁ, Warszawa 2006.
- Górecki Piotr, Wyprawy w świat elektroniki. Wyższy stopień wtajemniczenia, t. 2, WKŁ, Warszawa 2011.
