Uruchamianie
Parę słów powtarza się w kółko, gdy ludzie mówią o Raspberry Pi: mały, tani, programowalny, edukacyjny. Jednak byłoby błędem określenie tego komputera jako plug and play, chociaż jest dość łatwo podłączyć go do telewizora i sprawić, że coś pojawi się na ekranie. Nie jest to urządzenie dla konsumentów. Zależnie od celu wykorzystania Raspberry Pi przed jego uruchomieniem musimy podjąć parę decyzji dotyczących urządzeń peryferyjnych i oprogramowania.
Oczywiście pierwszym krokiem jest zakup Raspberry Pi. Istnieją spore szanse, że Czytelnik już go ma, ale jeśli jeszcze nie, Raspberry Pi można nabyć od wielu dostawców online, w tym Maker Shed (makershed.com), Sparkfun (sparkfun.com), Adafruit (adafruit.com), Element14 (www.element14.com/community/welcome), RS Components (www.rs-online.com), DigiKey (digikey.com), a nawet poprzez (oczywiście) Amazon.
Niska cena Raspberry Pi jest oczywiście ważna. Pozwolenie wszystkim na zakupy bezpośrednio od dystrybutora i zamawianie małych ilości po cenie hurtowej było czymś niezwykłym. Wielu potencjalnych odsprzedawców było wprawionych w zakłopotanie pierwotnym ogłoszeniem ceny. Było im trudno zrozumieć, jak mogli zyskać jakikolwiek dochód. Dlatego odsprzedawcy dodają drobną marżę do ceny. Niektórzy z tych resellerów, jak Adafruit i Spark-fun, oferują bogaty zestaw akcesoriów współpracujących z Pi, w tym różne rozszerzenia HAT (płytki rozszerzeniowe, które natychmiast włączają pewne funkcjonalności), ekrany LCD i dotykowe oraz rozmaite obudowy. Choć ci resellerzy nieco zwiększają bazową cenę, często (moim zdaniem) warto zapłacić nieco więcej i mieć dostęp do dodatków, które udostępniają typowym hobbystom.
Tyle o mikroekonomii. Przyjrzyjmy się bliżej płytce Raspberry Pi.
Przewodnik po płytkach
Istnieje dość dużo różnych wersji płytki Raspberry Pi. Pierwsza wersja to Raspberry Pi 1 model B, a zaraz po niej powstał prostszy i tańszy model A. W roku 2014 Fundacja Raspberry Pi ogłosiła znaczną modyfikację (i udoskonalenie) projektu płytki: Raspberry Pi 1 model B+. Model B+ ustanowił format "głównej linii" płytek Raspberry Pi, który będzie obowiązywał w przewidywalnej przyszłości. Od tamtej pory Fundacja utworzyła także urządzenie do zagnieżdżania Pi w produktach, które zostało nazwane Compute Module. W roku 2015 został wydany także okrojony model za 5 dolarów o nazwie Raspberry Pi Zero, a zaraz po nim wersja bezprzewodowa o nazwie Raspberry Pi Zero W. Wreszcie w lutym 2016 roku pojawiło się wydanie Raspberry Pi 3 model B. W chwili pisania tych słów najnowsza wersja płytki to Raspberry Pi 4B, która stanowi wielki postęp, jeśli chodzi o możliwości Pi. Dostępne są trzy różne modele "czwórki", różniące się wielkością zainstalowanej pamięci RAM: model 2 GB kosztuje 35 dolarów (czyli tyle samo, co oryginalne Pi), model 4 GB kosztuje 55 dolarów, zaś za model 8 GB - najnowszy - trzeba zapłacić 75 dolarów. Wprawdzie to wydaje się dość wysoką ceną za Pi, jednak gdy uwzględnimy fakt, że jest to dostatecznie silny komputer, aby zastąpić typowy komputer biurkowy, 75 dolarów to pół darmo.
Przez lata powstało kilka różnych wersji głównej linii Raspberry Pi, czyli modelu za 35 dolarów z czterema portami USB, używanego przez większość osób. Te wersje nazywały się Raspberry Pi 1 model B+, Raspberry Pi 2 model B i Raspberry Pi 3 model B. W kolejnych modelach zwiększano wydajność procesora. W Raspberry Pi 2 dodano więcej pamięci RAM, w Raspberry Pi 3 dodano wbudowaną obsługę sieci WiFi i Bluetooth, zaś Pi 4 zawiera jeszcze więcej pamięci i większe możliwości wyświetlania, a także USB 3.0.
Podczas realizowania przykładów z tej książki można korzystać z dowolnej płytki z głównej linii Raspberry Pi.
Kilka różnych typów Raspberry Pi zostało przedstawionych na rysunku 1-1.
Rysunek 1-1. Raspberry Pi 2, 3 oraz 4 (Model B), od lewej u góry
Zacznijmy od krótkiego opisu tego, co widzimy po rozpakowaniu. Często można ulec pokusie, aby uznać Raspberry Pi za płytkę projektową z mikrokontrolerem, podobną do Arduino, lub za komputer zastępujący laptop. W rzeczywistości bardziej przypomina wyeksponowane wnętrzności telefonu komórkowego z wieloma przydatnymi dla majsterkowiczów złączami wielostykowymi dla różnych portów i funkcji. Na rysunku 1-2 widać wszystkie części płytki. Ich opis jest przedstawiony poniżej.
A. Procesor. W sercu komputera Raspberry Pi jest taki sam procesor, jaki możemy znaleźć w smartfonie. W przypadku Raspberry Pi 4 jest to 64-bitowy, czterordzeniowy układ o taktowaniu 1,5 GHz, zbudowanym w architekturze ARM A72. Układy scalone ARM mają różnorodne architektury z różnymi rdzeniami skonfigurowanymi do zapewniania różnych możliwości za różną cenę. Raspberry Pi 1 ma 512 MB pamięci RAM, a modele 2 i 3 miały po 1 GB. Pi 4, jak wspomniałem wcześniej, występuje w odmianach wyposażonych w 2, 4 lub 8 GB pamięci RAM.
Rysunek 1 - 2. Mapa Raspberry Pi
B. Kompozytowe analogowe wyjście wideo i audio. Analogowe wyjścia audio oraz wideo są dostępne w postaci standardowego 4-polowego złącza 3,5 mm. Potrzebny kabel można nabyć u wielu spośród dostawców wymienionych na stronie 1. Z jednej strony łączącego kabla znajduje się czteropolowe złącze mini jack (wygląda jak słuchawkowe złącze jack), a z drugiej - trzy wtyczki RCA, przenoszące sygnał audio stereo (czerwona i biała) oraz wideo NTSC lub PAL (żółta).
C. Diody stanu. Pi ma dwa wskaźniki LED, które zapewniają wizualne informacje zwrotne (patrz tabela 1-1). Dodatkowo na złączu Ethernet znajdują się wskaźniki LED aktywności sieciowej.
Tabela 1-1. Diody stanu
ACT
Zielona
Świeci w przypadku dostępu do karty SD (oznaczona jako OK na wcześniejszych płytkach)
PWR
Czerwona
Powiązana z zasilaniem 3,3 V
Poczynając od Raspberry Pi 3, diody statusu są umieszczone obok portu zasilania MicroUSB, co widać na rysunku 1-2. We wcześniejszych wersjach znajdowały się obok pinów GPIO.
D. Zewnętrzne porty USB 3.0. Nowością w Pi 4 są dwa porty USB 3.0, odróżniające się niebieskim kolorem (jeśli kogoś to interesuje, kolor ten nosi nazwę Pantone 300C). USB 3.0 nie tylko jest w stanie dostarczyć większą moc elektryczną zewnętrznym urządzeniom peryferyjnym (oczywiście pod warunkiem, że mamy dostatecznie mocne zasilanie samego Pi), ale zapewnia również dziesięciokrotnie szybszy transfer danych, niż USB 2.0.
E. Zewnętrzne porty USB 2.0. We wszystkich wersjach Raspberry Pi występują co najmniej dwa porty USB 2.0 służące do podłączania urządzeń peryferyjnych, takich jak klawiatury, myszy, napędy pendrive i drukarki. Chociaż wiele urządzeń USB może być zasilanych z tych portów, warto rozważyć użycie zewnętrznego zasilanego koncentratora, jeśli mamy urządzenia peryferyjne wymagające więcej energii, np. dyski twarde.
E. Port Ethernet. Jest to standardowy port RJ45 Ethernet działający z szybkością 1 gigabita danych na sekundę. Podłączamy go do routera w celu uzyskania łączności sieciowej. Zamiast niego można użyć WiFi - zamontowany na płytce dwukanałowy chip WiFi jest kompatybilny z pasmami b, g, n oraz ac standardu WiFi.
F. Złącza micro HDMI. Każdy z dwóch portów micro HDMI zapewnia obsługę wideo w jakości 4K z prędkością 60fps (ramek na sekundę). Jakość wideo może się zmieniać w zależności od obciążenia Pi. Samo to, że GPU jest w stanie obsłużyć takie wyjście, nie oznacza, że zawsze będzie to dobrze wyglądać.
G. Wejście zasilania. Jedną z pierwszych rzeczy, które zauważamy, jest to, że płytka Pi nie ma włącznika zasilania. Do zasilania służy złącze USB-C (nie jest to dodatkowy port USB; służy jedynie do zasilania). Złącze USB-C zostało wybrane, ponieważ jest tanie i można łatwo znaleźć odpowiednie do niego zasilacze USB. Fundacja Pi zdecydowanie zaleca użycie zasilacza, który jest w stanie dostarczyć prąd 3A (15W), szczególnie w przypadku, gdy planujemy zasilanie również urządzeń zewnętrznych.
H. Gniazdo karty micro SD. Pi nie ma dysku twardego. Wszystko, od systemu operacyjnego, poprzez programy, aż po dane jest przechowywane na karcie micro SD. Wersje Raspberry Pi 1 i 2 są wyposażone w złącza zatrzaskowe, więc naciskamy, aby włożyć kartę micro SD, i naciskamy ponownie, aby ją wyjąć. W wersji Raspberry Pi 3 zrezygnowano z elementu zatrzaskowego na rzecz złącza zaciskowego. W tym modelu naciskamy, aby włożyć kartę micro SD, i ciągniemy, aby ją wyjąć. Oczywiście należy to robić tylko przy wyłączonym zasilaniu płytki Raspberry Pi.
Rysunek 1-3 pokazuje wszystkie piny zasilania i wejścia/wyjścia (IO) na Raspberry Pi, które są objaśnione w dalszej części rozdziału.
Rysunek 1 - 3. Piny i złącza wielostykowe na Raspberry Pi
A. GPIO (General Purpose Input and Output) oraz inne piny. Aktualne modele Raspberry Pi mają złącze GPIO z 2×20 pinami. W rozdziale 6 i 7 pokażemy, jak używać tych pinów do czytania przycisków i przełączników oraz sterowania urządzeniami wykonawczymi, takimi jak diody, przekaźniki i silniki.
B. Złącze CSI (Camera Serial Interface). Ten port pozwala na bezpośrednie podłączenie modułu kamery do płytki.
C. Złącze DSI (Display Serial Interface). Do tego złącza możemy podłączyć płaski kabel taśmowy o 15 pinach, który może służyć do komunikacji z oficjalnym wyświetlaczem dotykowym Raspberry Pi.
Rysunek 1 -4. Moduł kamery Raspberry Pi łączy się bezpośrednio ze złączem CSI. Rozdział 9 zawiera pełen opis korzystania z kamer i płytki Pi.
Właściwe urządzenia peryferyjne
Teraz, kiedy znamy położenie wszystkich elementów na płytce, potrzebujemy dowiedzieć się paru spraw na temat właściwych urządzeń peryferyjnych, których można używać z komputerem Pi. Jest parę gotowych zestawów startowych, które zawierają dobrze dopasowane listy części. Dobór części do Raspberry Pi może sprawiać problemy. Obszerna lista obsługiwanych urządzeń peryferyjnych jest umieszczona na głównej stronie Wiki (http://elinux.org/RPi_VerifiedPeripherals).
Zasilacz. Jest to najważniejsze urządzenie peryferyjne do zdobycia. W przypadku Raspberry Pi 4 trzeba używać adaptera USB-C, który może dostarczyć prąd o napięciu 5 V i natężeniu przynajmniej 3 A. Przy używaniu Pi 3/B+ potrzebujemy zasilacza zapewniającego natężenie 1,5 A. Starszym modelom powinien wystarczyć 1 A. Większość ładowarek do telefonów komórkowych nie zapewni wystarczającego natężenia, nawet jeżeli ma odpowiednie złącze. Komputer Pi zasilany zbyt niskim prądem może sprawiać wrażenie, że działa, ale dziwnie funkcjonować, a nawet nieoczekiwanie ulec awarii. Nowsze wersje Pi będą również wyświetlać na pulpicie komunikat błędu "Under voltage detected!" (wykryto niewystarczające zasilanie). W razie wątpliwości lepiej użyć oficjalnego zasilacza Raspberry Pi, dostępnego w większości miejsc, w których sprzedawane są same Pi.
Istnieją także rozwiązania bateryjne pozwalające używać Raspberry Pi w ruchu. Muszą mieć te same parametry natężenia i napięcia prądu.
W nowszych wersjach Pi możliwe jest zasilanie z koncentratora USB wyposażonego we własny zasilacz sieciowy. Nie ma jednak wystarczającego zabezpieczenia obwodów elektrycznych, więc zasilanie przez porty USB nie jest najlepszym pomysłem. Szczególnie jest to istotne podczas prototypowania urządzeń elektronicznych, kiedy może przypadkowo nastąpić spięcie, które spowoduje zwiększony pobór prądu.
Karta microSD. Potrzebujemy karty Class 10 o pojemności przynajmniej 8 GB, aby osiągnąć najlepszą wydajność odczytów i zapisów. Istnieją systemy operacyjne mieszczące się na kartach mniejszych niż 8 GB, ale standardowa instalacja systemu Raspberry Pi OS wymaga karty microSD o pojemności przynajmniej 8 GB.
Klawiatura i mysz USB. Przydają się do sterowania komputerem. Te urządzenia peryferyjne są dość pospolite, więc nie trzeba używać nic wymyślnego.
Kabel HDMI. Jeżeli podłączamy monitor, potrzebujemy tego kabla albo odpowiedniego adaptera do monitora DVI. W przypadku Pi 4 potrzebny będzie kabel HDMI/HDMI micro albo odpowiedni adapter. Możemy także uruchomić Pi bez konsoli, zgodnie z dalszym opisem w tym rozdziale. Kable HDMI mogą się znaczne różnić ceną. Jeżeli kabel HDMI do monitora ma długość metra lub dwóch, nie ma potrzeby wydawania na niego więcej niż 3 dolarów. W przypadku większych odległości albo wyświetlania wideo w jakości 4K należy koniecznie poszukać wyższej jakości kabli i unikać tanich zamienników.
Kabel Ethernet. W domu możemy nie mieć tylu kablowych gniazdek Ethernet, co pięć lat temu. Ponieważ wszystko jest obecnie bezprzewodowe, możemy uważać, że port przewodowy jest odrobinę kłopotliwy. Podrozdział "Łączenie się z siecią" prezentuje inne możliwości, niż podłączanie kabla sieciowego bezpośrednio do gniazda w ścianie lub koncentratora.
Moduł WiFi USB. W przypadku używania którejś ze starszych wersji Pi warto dodać moduł WiFi w celu uzyskania bezprzewodowego dostępu do Internetu. Wiele modułów 802.11 Wi-Fi USB od razu działa z płytką Pi. Połączenie WiFi zużywa dużo energii, więc musimy zapewnić odpowiednie źródło zasilania. Zasilacz 2 A lub zasilany koncentrator USB są dobrym wyborem. Jeśli występują problemy z modułem WiFi, przyczyną jest zazwyczaj zasilanie.
Możemy także rozważyć kilka z następujących dodatków:
Zasilany koncentrator USB. Jeśli chcemy dodać więcej niż cztery urządzenia USB do głównej linii Raspberry Pi, potrzebujemy koncentratora USB. Zalecany jest zasilany koncentrator USB 2.0 (albo 3.0 w przypadku korzystania z Pi 4).
Radiator. Radiator to mały metalowy element (zwykle z żebrami) o dużej powierzchni, która może wydajnie rozpraszać ciepło. Radiatory mogą być przyłączane do układów scalonych, które nagrzewają się nadmiernie. Chipset Pi został zaprojektowany do zastosowań w telefonach komórkowych, więc radiator zwykle nie jest potrzebny. Jednak, jak zobaczymy później, są przypadki, kiedy chcemy, aby komputer Pi pracował z większymi prędkościami lub wykonywał obliczenia przez dłuższy czas. Wtedy układ może stać się trochę gorący. Niektórzy zgłaszali, że także chip sieci może się nagrzewać.
Zegar czasu rzeczywistego. Warto dodać układ scalony zegara czasu rzeczywistego (np. DS1307), jeżeli chcemy prowadzić dziennik lub zachować pomiar czasu, gdy komputer jest wyłączony. Zegar jest również niezbędny, jeśli zamierzamy eksperymentować z uruchamianiem systemu operacyjnego czasu rzeczywistego.
Moduł kamery. Dedykowany moduł kamery Raspberry Pi w cenie 25 dolarów jest dostępny jako oficjalny sprzęt peryferyjny. Możemy też używać dowolnej kamery internetowej USB (patrz pełen przykład w rozdziale 9). Wersja 2.0 kamery zawiera matrycę o wielkości 8MP i jest w stanie rejestrować wideo o jakości 1080p, natomiast najnowsza wersja ma matrycę 12MP. Dostępny jest również model kamery na podczerwień. Wykorzystując kilka podczerwonych diod LED do "oświetlenia" sceny możemy robić zdjęcia w całkowitej ciemności.
Wyświetlacz LCD. Większość wyświetlaczy LCD możemy używać przez kilka połączeń na złączu wielostykowym GPIO. Poszukaj wyświetlacza TFT (thin-film transistor), który może komunikować się z płytką Pi przy użyciu pinów SPI (Serial Peripheral Interface) złącza wielostykowego. Fundacja Raspberry Pi oferuje także wyświetlacz dotykowy, który łączy się z interfejsem DSI płytki Raspberry Pi.
Karty dźwiękowe. Czasami okazuje się, że wbudowane analogowe rozwiązanie audio jest niewystarczające dla wielu projektów. Do uzyskania wysokiej jakości wyjścia (lub wejścia) dźwiękowego na płytce Pi potrzebujemy karty dźwiękowej. Wiele kart dźwiękowych USB działa także dobrze z płytką Pi. Popularną, niedrogą opcją są urządzenia U-Control firmy Behringer.
Stacja dokująca. Niektórzy modyfikują stacje dokujące przeznaczone do telefonów komórkowych (np. stacja dokująca Atrix), aby działały jako wyświetalacz/baza dla Raspberry Pi. Pewne firmy, np. Pi-Top, tworzą przypominające laptopa urządzenie specjalnie dla Raspberry Pi. (W chwili pisania tych słów pojawiło się na rynku urządzenie Raspberry Pi 400, stanowiące po prostu Pi w obudowie laptopa; w mojej opinii taki projekt zdecydowanie potrzebuje stacji dokującej).
Karty rozszerzeń HAT. Wielu producentów i osób związanych z otwartym sprzętem wytwarza dodatkowe karty rozszerzeń (daughterboard), które umieszcza się na wierzchu płytki Pi i łączy za pomocą złącza wielostykowego GPIO. Te karty zwiększają możliwości, pozwalając na korzystanie z monitorów LCD, silników lub wejść czujników analogowych. Osoby znające terminologię Arduino mogą nazywać te karty rozszerzeń "osłonami" (shield), ale Fundacja Raspberry Pi nazywa je HAT (Hardware Attached on Top) - zobacz rysunek 1-5. Pełna specyfikacja jest dostępna na stronie Fundacji Raspberry Pi w witrynie GitHub (github.com/raspberrypi/hats).
Jednym z przykładów jest wykonana przez Fundację Raspberry Pi karta rozszerzeń HAT o nazwie Sense HAT, która zawiera macierz LED RGB, czujniki temperatury, ciśnienia i wilgotności, akcelerometr, żyroskop i magnetometr. Ma także pięciopozycyjny joystick. Jest to karta rozszerzeń HAT zaprojektowana dla płytek Raspberry Pi, które zostały wysyłane do Międzynarodowej Stacji Kosmicznej w ramach prowadzonego przez Fundację programu Astro Pi.
Rysunek 1-5. Karta rozszerzeń Sense HAT zawiera macierz LED, komplet czujników i wejście joysticka. Została zaprojektowana dla płytek Raspberry Pi, które były wysyłane do Międzynarodowej Stacji Kosmicznej.
Obudowa
Szybko okazuje się, że potrzebujemy obudowy do płytki Raspberry Pi. Sztywne kable wystające ze wszystkich stron utrudniają utrzymanie porządku, a niektóre elementy, np. gniazdo karty SD, mogą zostać mechanicznie uszkodzone nawet przy normalnym użytkowaniu.
Jest wiele dostępnych gotowych obudów, ale jest także wiele projektów obudów dostępnych do pobrania i wytworzenia za pomocą urządzenia do cięcia laserowego lub drukarki 3D. W ogólności należy unikać obudów z zatrzaskami, gdzie kruchy akryl jest używany na prostopadłych ściankach. Obudowy Pibow (shop.pimoroni.com/?q=pibow) z warstwowego akrylu występują w różnych kolorach (rysunek 1-6).
Rysunek 1 - 6. Kolorowa obudowa Pibow firmy Pimorini
Fundacja Raspberry Pi wytwarza także oficjalną obudowę w przyjemnej technologii formowania wtryskowego. Ma wiele części, które można usunąć, aby uzyskać dostęp do pinów GPIO i innych elementów (rysunek 1-7).
Rysunek 1 - 7. W oficjalnej obudowie Raspberry Pi można usunąć górę i boki, aby uzyskać dostęp do różnych części płytki.
Prawdopodobnie nie trzeba tego mówić, ale jest to jeden z oczywistych błędów, które czasami się zdarzają. Zawsze musimy się upewnić, że nie kładziemy płytki Raspberry Pi na powierzchni przewodzącej. Wystarczy obrócić płytkę i spojrzeć na jej spód. Jest tam wiele elementów i wiele lutowin, które mogą łatwo ulec zwarciu. Jest to jeszcze jeden powód, dla którego ważne jest używanie obudowy dla płytki Pi!