-40% na bestsellery wydawnictwa HELION, min.: Java, C++, TensorFlow, PHP, MySQL. Sprawdź listę tytułów »

Raspberry Pi w robotyce amatorskiej – #2 – Konfiguracja

Raspberry Pi w robotyce amatorskiej – #2 – Konfiguracja

Po pierwszej części artykułu zapraszam do jego kontynuacji, gdzie postaram się przejść ze stadium "mam Raspberry Pi" do etapu "mogę zacząć pracę i zabawę".

Obejmuje to przygotowanie karty SD z odpowiednim systemem operacyjnym, poznanie środowiska graficznego oraz zapewnienie połączenia z internetem.

« Poprzedni artykuł z seriiNastępny artykuł z serii »

Wybór systemu operacyjnego dla Raspberry Pi

W założeniach projektowych Raspberry Pi miał być tanim narzędziem do nauki programowania, z czego jednoznacznie wynika, że docelowym systemem operacyjnym był Linux. W ten sposób każdy potencjalny użytkownik mógł mieć możliwość skonfigurowania systemu, pasującego do jego potrzeb. W końcu każda aplikacja ma swoją własną specyfikę.

Jedne dystrybucje są ultralekkie i mają tylko niezbędne minimum. Inne są przygotowane pod kątem multimediów, dlatego każdy użytkownik na początku swojej przygody stoi przed decyzją – który system wybrać?

Pierwszym z dwóch najbardziej popularnych jest ArchLinuxARM – dystrybucja ArchLinuxa specjalnie przygotowana na urządzenia z procesorem ARM, której głównym założeniem jest prostota i pełna kontrola systemu przez użytkownika. Drugim jest Raspbian Wheezy – czyli debian, zoptymalizowany pod kątem Raspberry, oficjalnie sugerowany jako system dla początkujących użytkowników maliny. Ja zdecydowałem się na tę drugą opcję.

Przygotowanie karty SD

Aby móc umieścić jakikolwiek system na karcie pamięci, należy ją najpierw odpowiednio przygotować, do czego potrzebny będzie komputer PC z czytnikiem kart pamięci. Instrukcja wykonania tego dla systemu Windows:

  1. Wkładamy kartę pamięci do czytnika na komputerze PC.
  2. Ściągamy narzędzie SD Formatter 4.0 .
  3. Instalujemy i uruchamiamy ściągnięty program.
  4. W opcjach zaznaczamy „FORMAT SIZE ADJUSTMENT” jako „ON”.
  5. Formatujemy.

Można teraz ściągnąć obraz wybranej dystrybucji i nagrać go specjalnym narzędziem na kartę pamięci. Jednak Fundacja przygotowała coś w sam raz dla początkujących: NOOBS (czyli New Out Of Box Software). NOOBS to specjalnie przygotowana paczka, w skład której wchodzi kilka dystrybucji linuxa dla Raspberry (między innymi Raspbian i ArchLinuxARM). Zaletą narzędzia, oprócz ogromnej prostoty, jest fakt, że możemy w każdej chwili wrócić do interfejsu wyboru systemu operacyjnego w przypadku zepsucia już postawionego systemu. Poniżej instrukcja instalacji NOOBS na karcie SD:

  1. Ściągamy NOOBS .
  2. Wypakowujemy ściągniętą zawartość.
  3. Kopiujemy wypakowane pliki wprost na kartę pamięci.

To wszystko! W tym momencie wkładamy kartę pamięci do Raspberry Pi.

Pierwsze uruchomienie i raspi-config

W końcu jesteśmy gotowi włączyć malinkę. Potrzeba do tego kilku wcześniej wspomnianych rzeczy: monitora z wyjściem HDMI (żeby cokolwiek zobaczyć) oraz klawiatury (ewentualnie z myszką, do poruszania się po systemie).

Po włączeniu zasilania komputerka, ukazuje nam się menu wyboru systemu. Ja wybrałem Raspbiana, jako że jest on najbardziej popularny, a co za tym idzie - najlepiej wspierany.

Chwilę, jaka jest potrzebna do rozpakowania obrazu można wykorzystać w kreatywny sposób – na przykład pijąc herbatę. Po wypiciu herbaty (i wypakowaniu wszystkich potrzebnych plików systemowych) wystarczy kliknąć przycisk „OK”, a Raspberry uruchomi się ponownie, po czym Waszym oczom ukaże się poniższy obrazek:

Pierwszy obrazek po włączeniu maliny - skrypt raspi-config.

Pierwszy obrazek po włączeniu maliny - skrypt raspi-config.

Jest to narzędzie do łatwego konfigurowania Raspberry. Zostały tu wyprowadzone takie opcje jak: rozszerzenie miejsca, którego może używać Raspbian do całej karty, zmiana hasła, włączenie bootowania Raspberry bezpośrednio do środowiska graficznego i inne.

Z naszej perspektywy nie musimy na razie nic konfigurować, ponieważ NOOBS ma domyślnie rozszerzoną partycję dla systemu, a resztę ustawień każdy zrealizuje we własnym zakresie.

Tryb graficzny LXDE

Aby włączyć tryb graficzny należy opuścić skrypt raspi-config (klawisz ESC) i wpisać komendę startx. Komenda włącza menedżer okien w Raspbianie - LXDE (Lightweight X11 Desktop Environment), który został zaprojektowany tak, by nie pochłaniać więcej zasobów, niż to konieczne.

Domyślny pulpit w Raspberry Pi.

Domyślny pulpit w Raspberry Pi.

System jest prosty i intuicyjny w użytkowaniu, dlatego nie będę się przy nim bez potrzeby zatrzymywał. Niektórych użytkowników zastanowić może fakt, że nawet po ustawieniu daty i godziny w raspi-config, po ponownym włączeniu informacje te są gubione. Wynika to z braku wbudowanego w Raspberry Pi zegara czasu rzeczywistego – RTC (Real Time Clock).

Są trzy rozwiązania tej sytuacji: albo wpisujemy datę i godzinę po każdym włączeniu maliny, albo dołączamy układ RTC, albo zapewniamy dostęp komputerka do internetu. Wtedy malina korzysta z Serwera NTP. Osobiście zdecydowałem się  na ostatnią opcję.

Ustawienia sieciowe

Istnieją dwie możliwości zapewnienia internetu Raspberry Pi: ethernet lub bezprzewodowa karta sieciowa (adapter WiFi). Zazwyczaj jest tak, że sterowniki do adaptera należy.... pobrać z internetu, dlatego najwygodniej jest na początku podłączyć się kablem ethernetowym bezpośrednio do routera.

Sprawdzenie dostępu do internetu na malince wykonujemy wpisując w terminalu:

W przypadku sukcesu powinna pojawić się podobna wiadomość:

Plug-and-surf, prawda? Proste i przyjemne, jednak... cały czas mamy ogon w postaci kabla ethernetowego. By się od niego uwolnić, kupiłem kartę sieciową TL-WN725N, której instalacja była na tyle nieintuicyjna, że postanowiłem pokazać, co należy z tym fantem zrobić. Może komuś się przyda:

W zależności od tego, jaką wersją systemu dysponujecie, należy ściągnąć odpowiednią wersję sterownika, według:

W przypadku braku powodzenia załadowania gotowego, skompilowanego sterownika karty, można samemu przeprowadzić proces budowania.

Zakładając, że jesteśmy w katalogu głównym - tworzymy folder tplink:

Ściągamy potrzebne pliki:

Przygotowujemy do kompilacji:

Kompilujemy driver:

Kopiujemy sterownik i go włączamy:

Po poprawnym załadowaniu sterownika karty sieciowej można już włączyć dostarczany wraz z Raspbianem program WiFiConfig, gdzie w miejscu Adapter: powinno pojawi sięć wlan0. Oznacza to, że karta sieciowa została pomyślnie zainstalowana.

Aby znaleźć naszą sieć WiFi przechodzimy do zakładki Manage Networks i wybieramy opcję Scan. Gdy już  uda nam się znaleźć odpowiednią sieć, klikamy na nią dwukrotnie i ustawiamy odpowiednie szyfrowanie oraz hasło w polu PSK. Po próbie połączenia, sprawdzamy jego status takim samym poleceniem, jak wcześniej i dowiadujemy się, że wszystko działa jak należy.

Jeżeli jednak ktoś chce łączyć się z malinką zdalnie (np. poprzez SSH) będzie potrzebował jej adresu IP, który domyślnie jest ustawiany w sposób dynamiczny przez router (DHCP). Oznacza to, że po restartcie urządzenie może mieć zupełnie inne IP.

Oczywiście da się ten problem rozwiązać, ale pomyślcie, ile kłopotu sprawiłaby listonoszom nasza ciągła zmiana adresów zamieszkania? Dlatego proponuję zmienić domyślne ustawienia RPI na statyczne przydzielanie IP. Zanim jednak cokolwiek zmienimy, musimy wiedzieć, jakie ustawienia wprowadzić, by wszystko działało. Przyjrzyjmy się zatem konfiguracji interfejsów sieciowych, które znajdują się w pliku interfaces. Podglądamy to za pomocą komendy:

Pokaże nam się zawartość pliku:

Interesują nas jego dwie linijki:

Pierwsza z nich odpowiada za ustawienia sieci LAN, druga zaś za WiFi, więc każdy może zmienić sobie opcję, której będzie używał.

Ja będę używał adaptera WiFi, dlatego muszę zmienić drugą linijkę, a dokładniej słowo dhcp na static. Teraz już RPI będzie wiedziała, że adres musi ustawić statycznie, tylko że... jeszcze nie wie jaki!

Aby to poprawnie skonfigurować, musimy zebrać troszkę informacji od samego routera. Załóżmy zatem, że się z nim połączyliśmy (z dynamicznym IP) i mamy dostęp do internetu, wtedy wpisujemy w konsoli:

Naszym oczom ukazują nam się informacje o dostępnych interfejsach i połączeniach. Interesuje nas dokładnie:

Zapisujemy ważne dla nas informacje:

Potrzebujemy jeszcze dwóch wiadomości, które wyciągniemy na podstawie komendy:

Wtedy wynik:

Potrzebujemy:

Teraz możemy uzupełnić plik konfiguracyjny o niezbędne informacje. Na koniec cały plik będzie wyglądał następująco:

Oczywiście musicie uzupełnić plik informacjami konfiguracyjnymi, które sami otrzymacie. Mogą się one nieznacznie różnić od tych, które wypisałem powyżej.

Ktoś dociekliwy mógłby spytać, dlaczego ustawiłem akurat taki adres IP, a nie jakiś ładniejszy. Oczywiście można tak zrobić, jednak mogłoby się zdarzyć, że wymyślony przez nas „ładny” adres IP jest zajęty przez inne urządzenie - mało prawdopodobne, ale możliwe. Dlatego ustawiając przydzielony wcześniej dynamicznie adres IP jesteśmy pewni, że wszystko będzie poprawnie działać. Teraz po zapisaniu zmian oraz zrestartowaniu komputerka, możemy cieszyć się, że zmieniliśmy tryb życia naszej maliny z koczowniczego na osiadły.

Podsumowanie

System stoi, sieć stoi - nic nas nie zatrzyma przed rozpoczęciem programowania i na tym głównie skupimy się w kolejnej części artykułu.

Zobaczymy w jaki sposób zmusić Raspberry Pi do rozmowy z innymi układami za pomocą niskopoziomowych interfejsów komunikacyjnych (UART, SPI, I2C). Zapraszam do lektury!

« Poprzedni artykuł z seriiNastępny artykuł z serii »

Bibliografia:

  1. www.raspberrypi.org
  2. www.elinux.org
  3. www.wiringpi.com
  4. www.farnell.com/raspberrypi

ArchLinuxARM, konfiguracja, kursRPI, malinka, NOOBS, Raspberry PI, Raspbian Wheezy, rpi

Trwa ładowanie komentarzy...