Ta strona używa ciasteczek (plików cookies), dzięki którym może działać lepiej. Dowiedz się więcejRozumiem i akceptuję
30% rabatu »Setki ebooków o elektronice i programowaniu - kod: SANTAFORBOT. Sprawdź polecane bestsellery »

Kurs Raspberry Pi – #5 – instalacja/komunikacja przez UART

Podstawy 21.11.2017 Piotr, Damian

W poprzedniej części kursu poznaliśmy prostą metodę rozpoczęcia pracy z Raspberry Pi. Do pracy z systemem wykorzystaliśmy tradycyjny monitor, klawiaturę i myszkę.

Tym razem wykorzystamy mniej popularny, ale niezwykle przydatny sposób instalacji systemu z użyciem konwertera UART!

Nawigacja serii artykułów:
« poprzednia częśćnastępna część »

Kup zestaw elementów i zacznij naukę w praktyce! Przejdź do strony dystrybutora »

Metoda wykorzystująca port szeregowy nie jest najłatwiejsza i wymaga konwertera UART-USB (znajduje się on w naszych zestawach). Ten sposób instalacji jest często pomijany podczas nauki pracy z Raspberry Pi. Jednak ma kilka zalet, które sprawiają, że warto go znać!

Po pierwsze, sposób ten wymaga mniejszej ilości sprzętu niż poprzednio. Możemy wykorzystać PC, na którym czytamy ten kurs. Nie musimy mieć dodatkowego monitora, klawiatury i myszki. 

Konwerter UART – nowe narzędzie do komunikacji z RPi.

Największe zalety wykorzystania portu szeregowego to uniwersalność i możliwość naprawy systemu w razie awarii. Jeśli polubimy zabawę systemami wbudowanymi szybko odkryjemy, że dostępne są bardzo różne rozwiązania. Może któregoś dnia „konkurencyjna” płytka wpadnie nam w ręce, albo po prostu będziemy potrzebowali przygotować coś w oparciu o inny sprzęt. Nie wszystkie płytki z Linuxem obsługują wyjście obrazu (np. Intel Edison), ale praktycznie wszystkie pozwalają na pracę przez port szeregowy.

Wystarczy raz poznać ten sposób i można go uniwersalnie wykorzystywać
do pracy z innymi platformami tego typu.

W kolejnej części kursu do komunikacji z płytką wykorzystamy sieć lokalną. Taka opcja jest prosta i wygodna, ale działa tylko jeśli wszystko jest skonfigurowane poprawnie. Jeśli coś się popsuje, to zupełnie stracimy kontakt z naszą malinką. W przypadku monitora jest trochę lepiej, ale awaria na samym początku procesu uruchamiania systemu również jest trudna do naprawy. Port szeregowy jest obsługiwany od samego początku działania systemu. Co więcej można z niego korzystać nawet jeszcze przed startem Linuxa!

Korzystając z łączności przez UART mamy szansę na
uratowanie uszkodzonego systemu i przywrócenie go do działania.

Instalacja systemu przez UART

Do wykonania tego ćwiczenia potrzebne są:

  • Raspberry Pi 3 w obudowie,
  • zasilacz,
  • karta microSD,
  • czytnik kart pamięci,
  • przejściówka UART-USB (3,3V),
  • podręczna „ściąga” z GPIO,
  • dodatkowa zworka (opcjonalnie).

Zestaw do kursu Raspberry Pi

Gwarancja pomocy na forum dla osób, które kupią poniższy zestaw!

Elementy niezbędne do wykonania wszystkich ćwiczeń z kursu podstaw Rasberry Pi dostępne są w formie gotowych zestawów!


Kup w Botland.com.pl »

Raspberry Pi i czytnik kart SD będą nam zawsze potrzebne, więc właściwie dodatkowy element jest tylko jeden: konwerter UART-USB. Co ważne musi on obsługiwać napięcie 3.3V, konwertery na 5V mogą uszkodzić Raspberry Pi.

Konwerter używany do komunikacji z Raspberry Pi musi pracować
z napięciem 3.3V stosowanie wersji 5V grozi uszkodzeniem płytki!

W zestawach do tego kursu znajduje się uniwersalny konwerter, który nie powinien sprawiać problemów na żadnym systemie operacyjnym i jest przystosowany do pracy z 3.3/5V. Nie warto kupować najtańszych konwerterów – ich sterowniki mogą nie być kompatybilne z najnowszymi systemami Windows, co doprowadza do dodatkowych komplikacji.

Instalacja systemu Raspbian Lite

W poprzedniej części kursu dokładnie opisaliśmy procedurę przygotowania karty microSD. Teraz postępujemy podobnie, ale zamiast pełnej wersji Rasbpiana skorzystamy z wersji Lite. W przypadku komunikacji przez UART interfejs graficzny czy domyślnie instalowana gra Minecraft nie są nam potrzebne, a zajmują miejsce i wydłużają czas instalacji oraz uruchamiania płytki.

Wszystkie programy można później doinstalować,
więc nic nie tracimy zaczynając od wersji lite!

Obraz systemu w wersji Lite jest dostępny, tak jak poprzednio, na stronie Raspberry Pi. Pobrany plik rozpakowujemy i „wypalamy” go na karcie microSD za pomocą narzędzie Etcher. Szczegóły tej operacji zostały opisane w poprzedniej części kursu Raspberry Pi.

Dwie wersje systemu do pobrania.

Gdy program zakończy działanie wyciągamy kartę z komputera i wkładamy ją drugi raz. System pokaże wykrycie 2-3 nowych dysków/pamięci. Windows może pokazać nam komunikat mówiący o tym, że korzystanie z jednego nowego dysku nie jest możliwe. Oczywiście nie zgadzamy się na jego sformatowanie (usunęlibyśmy wtedy dane nagrane przez Etcher).

Formatowanie karty – klikamy Anuluj!

Odszukujemy partycję nazwaną „boot”:

Nowa partycja boot.

Znajdziemy na niej bardzo ważny plik config.txt, który przechowuje konfigurację systemu malinki. Otwieramy go za pomocą edytora tekstu. Otwarcie tego pliku w notatniku niestety spowoduje, że całość będzie mało czytelna.

Nie należy również edytować tego pliku w Wordzie. Z darmowych rozwiązań dobrze sprawdzi się np. Notepad++Programmer’s Notepad lub Atom.

Gdy plik się otworzy dodajemy na jego końcu jedną linijkę:

Plik powinien wyglądać wtedy mniej więcej następująco:

Edytowany plik config.txt

Bez tej ręcznej edycji połączenie z malinką przez UART nie byłoby możliwe. Zapisujemy zmodyfikowany plik na karcie i bezpiecznie usuwamy ją z systemu. Kartę można już wsunąć do Raspberry Pi, ale naszego małego komputera nie podłączamy jeszcze do zasilania!

Gniazdo rozszerzeń Raspberry Pi

Zanim podłączymy konwerter do płytki Raspberry Pi poświęćmy chwilę na zapoznanie się z gniazdem rozszerzeń. Rozkład pinów jest widoczny poniżej:

Opis wyprowadzeń GPIO.

Do podłączenia naszej przejściówki potrzebujemy podłączyć oczywiście masę (GND) oraz linie do komunikacji (TXD i RXD). Przy okazji bardzo ważne ostrzeżenie:

Raspberry Pi pracuje z napięciami wynoszącymi maksymalnie 3,3V. Podłączenie 5V do pinów malinki może spowodować jej nieodwracalne uszkodzenie!

Jak „na złość” piny 2 i 4 dostarczają napięcia 5V – musimy więc bardzo uważać, żeby niechcący nie zewrzeć ich z innymi lub nie podłączyć do nich czujnika i przez niego nie zasilić pozostałych pinów. Prostym ułatwieniem jest założenie zworki na dwa piny dostarczające +5V. Zwieramy dwa piny 5V ze sobą (co nie wpływa na działanie układu), a dzięki temu blokujemy sobie dostęp do pinów niosących „groźne” 5V.

Takie rozwiązanie ochorni nas przed przypadkowym użyciem 5V
i spaleniem RPi – przydarzył się nam taki wypadek podczas pisania kursu…

Raspberry Pi z założoną zworką zabezpieczającą.

Podłączenie konwertera

Nasz konwerter ma możliwość pracy w standardzie 3.3V lub 5V. Raspberry Pi wykorzystuje pierwszą opcję, musimy więc upewnić się, że zworka VCCIO jest umieszczona tak, że wskazuje na 3.3V (zgodnie z poniższym zdjęciem):

Odpowiednie ustawienie zworki na konwerterze UART.

Teraz możemy podłączyć odpowiednie piny malinki i konwertera. Nie używamy linii VCCIO, łączymy tylko GND, TXD oraz RXD. Sygnały powinny być połączone „na krzyż”, czyli TXD z konwertera łączymy z RXD malinki, a RXD z TXD. Podczas wykonywania połączeń warto wspomóc się podręczną ściągą GPIO, która była w zestawie.

Odpowiednie podłączenie konwertera.

Dla pewności, jeszcze zdjęcie „bez obudowy”:

Podłączenie do komputera

Wszystko gotowe? Możemy podłączyć konwerter do komputera i sprawdzić, który port szeregowy został do niego przypisany. U nas był to COM3:

Na tym etapie Raspberry Pi nie jest jeszcze podłączone do prądu!

Widok podłączonego konwertera w systemie.

Pierwsze uruchomienie Raspberry Pi przez UART

Teraz musimy uruchomić program do obsługi portu szeregowego, np. PuTTy – mały darmowy program, który potrafi komunikować się zarówno poprzez sieć wykorzystując protokół SSH jak i przez port szeregowy. Najnowszą wersję programu można pobrać ze strony producenta.

Po jego uruchomieniu wybieramy typ połączenia: Serial, prędkość transmisji 115200 oraz port szeregowy do którego podłączony jest konwerter.

Pierwsze ustawienia w PuTTy.

Musimy też wyłączyć kontrolę transmisji – w zakładce Serial odnajdujemy Flow control, a następnie z rozwijanego menu wybieramy None.

Ostatnie ustawienia w PuTTy.

Po powrocie do okna głównego programu możemy zapisać naszą konfigurację przyciskiem Save, a następnie otworzyć okno terminala za pomocą przycisku Open.

Uruchomiony terminal – oznaka otwarcia portu COM.

Gdy terminal się uruchomi, to pozostaje ostatnie sprawdzenie, czy wszystko jest połączone tak, jak być powinno. Wtedy podłączamy zasilanie do RPi.

Po chwili, na komputerze, zobaczymy komunikaty startującego systemu:

Uruchamianie systemu…

Pierwsze uruchomienie systemu zajmuje kilka chwil (do 5 minut). Czekamy więc cierpliwie aż zostaniemy poproszeni o zalogowanie. Co będzie wyglądało następująco:

Ekran logowania…

Logowanie do Raspberry Pi

Domyślny login to pi, a hasło raspberry. Przy wprowadzaniu hasła nie pojawiają się żadne znaki (brak gwiazdek maskujących hasło), to normalne zachowanie w przypadku Linuxa!

Cały proces logowania wygląda następująco:

Logowanie do Raspberry Pi…

Podczas wpisywania hasła na ekranie nie pojawiają się żadne znaki!
Domyślna nazwa użytkownika to: pi, a hasło to: raspberry

Po poprawnym zalogowaniu powinniśmy zobaczyć „znany z Linuxa” widok terminala, w którym możemy już działać!

Jesteśmy zalogowani do RPi przez UART!

Udało nam się zalogować do naszej malinki. Mamy dostęp do konsoli, która działa dokładnie tak samo jak „terminal” opisywany w poprzedniej części. Do komunikacji z terminalem w zupełności wystarcza nasz port szeregowy.

W linii poleceń możemy wpisywać komendy systemu Linux. Dzięki nim można konfigurować płytkę, uruchamiać programy, a nawet programować. To nieco zaskakujące, ale z Raspberry Pi można korzystać w trybie tekstowym, tryb graficzny wcale nie jest niezbędny.

Wprowadzeniem do pracy terminalem zajmiemy się w osobnym artykule, gdy uporządkujemy już swoją wiedzę z instalacji systemów.

Najważniejsze ustawienia – raspi-config

System jest już zainstalowany. Warto więc wykonać najprostsze ustawienia. Wpisujemy komendę sudo raspi-config i klikamy Enter. Pojawi się okno programu konfiguracyjnego przygotowanego specjalnie z myślą o Raspberry Pi:

Zmiana ustawień systemu.

Wyjście z powyższego menu możliwe jest za pomocą klawisza Esc.

Zacznijmy od zmiany hasła. Wybieramy pozycję numer 1 (po menu poruszamy się strzałkami), klikamy Enter. Pojawi się następujące okno:

Informacja o zmianie hasła.

Klikamy Enter i chwilę później wpisujemy nowe hasło, kolejny enter i podajemy hasło drugi raz.

Tutaj również podczas wpisywania hasła nie pojawiają się żadne znaki!

Wpisujemy dwa razy nowe hasło.

Na koniec otrzymamy komunikat świadczący o zmianie danych do logowania:

Potwierdzenie zmiany hasła.

Naciskamy Enter i wracamy do menu ustawień. Teraz warto przejść do „Localisation Options”. Gdzie ustawiamy informację na temat strefy czasowej, układu klawiatury itd.:

Opcje dostępne w menu.

Warto zacząć od wybrania ustawień językowych:

Następnie ustawiamy strefę czasową:

Czyszczenie ekranu, wyłączanie Raspberry Pi w trybie tekstowym

Artykuł miał pokazać proces instalacji RPi przez UART, nie będziemy się więc rozpisywać na temat samej pracy w terminalu. Do tego jeszcze wrócimy w osobnym artykule. Pora wyjść z menu ustawień (klawisz Esc). 

Wyjście z ustawień.

Po wciśnięciu Esc wyjdziemy z trybu ustawień i pojawi się oczekiwane pi@raspberrypi:~$ Cały czas jest jednak widoczny nieaktywny widok poprzedniego programu (co może być mylące). Aby się go pozbyć wystarczy wpisać komendę clear, która wyczyści aktualne okno:

Wyczyszczony ekran – brak śladów, po poprzednich programach.

Oczywiście, tak samo jak w poprzednio opisywanym trybie graficznym Raspberry Pi, nie można zwyczajnie odłączyć od prądu. Nie ma jednak menu, z którego możemy „wyklikać” wyłączenie…

Jesteśmy w trybie tekstowym, więc w celu wyłączenia płytki musimy skorzystać z komendy:

Komputer rozpocznie procedurę wyłączania natychmiast po zatwierdzeniu polecenia:

Wyłączanie RPi w praktyce…

Jeśli zamiast wyłączania interesuje nas ponowne uruchomienie, to korzystamy z polecenia:

Restart Raspberry Pi…

Podsumowanie

Za nami kolejny sposób pracy z RPi – przez UART. Sposób ten jest często pomijany w nauce Raspberry Pi. Warto go jednak znać, na pewno przyda nam się jeszcze w przyszłości! Co więcej skorzystaliśmy z sytemu operacyjnego w wersji lite, czyli m.in. bez interfejsu graficznego. Pobierany obraz tego Raspbiana był znacznie mniejszy, czyli na karcie pamięci zostało więcej miejsca na nasze pliki.

W kolejnym artykule zajmiemy się ostatnią metodą instalacji systemu. Tym razem skorzystamy z sieci lokalnej. Jest to zdecydowanie najpopularniejsza forma zdalnej pracy na malince. Po tym artykule, każdy będzie mógł wybrać sposób, w który chce łączyć się z Raspberry Pi. Będzie to więc idealny moment, aby wreszcie pójść krok dalej i w pełni korzystać z RPi.

Kup zestaw elementów i zacznij naukę w praktyce! Przejdź do strony dystrybutora »

Autorzy: Piotr Bugalski, Damian Szymański
Testy, ilustracje: Piotr Adamczyk

Powiadomienia o nowych, darmowych artykułach!

Komentarze

MagisterInzynie

20:51, 23.11.2017

#1

Witam, czy jest możliwość przesłania przez UART plików z komputera ma raspberry(chodzi o biblioteki i rozszerzenia ponieważ posiadam model zero bez łączności z internetem).

Kurs świetlny, z niecierpliwością czekam na kolejne części.

Pozdrawiam.

Elvis

17:42, 26.11.2017

#2

MagisterInzynie, na ogół przy kursach nie odpowiadamy na pytania odnośnie innych konfiguracji. Ale ponieważ uart jest też omawiany, odpowiem - tak da się, ale to strasznie powolne i nieco skomplikowane. Dokładny opis jest tutaj: http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/upload.html

Znacznie lepiej używając złącza szeregowego skonfigurować malinkę, a do komunikacji używać sieci ethernet lub wifi.

Treker
Administrator

17:48, 26.11.2017

#3

MagisterInzynie, witam na forum i dziękuję za miłe słowa! Jeśli chodzi o transfer plików, to da się to zrobić, jednak wyniki mogą być mało zadowalające (niska prędkość transmisji). Nie robiliśmy ostatnio takich testów w praktyce, nie chcę polecać Ci czegoś "w ciemno". W wolnej chwili zobaczymy, która z metoda jest najwygodniejsza i damy znać ;)

Edit: Elvis był jednak szybszy ;)

Ubuludzik

13:35, 07.12.2017

#4

Jako, że jest to mój pierwszy komentarz do kursu i na forum to Witam! wszystkich. :)

Z tym UART-em wszystko pięknie, ale przydałoby się też wspomnieć jak to zrobić, gdy korzysta się z innego systemu operacyjnego niż jedynie słuszny. Mam na myśli jak to zrobić pod linuxem?!

Treker
Administrator

0:39, 12.12.2017

#5

Ubuludzik, witam na forum :) Hmm, czy chodzi Ci o sytuację, w której Twój komputer PC działa na Linuxie? Cała operacja przebiegnie identycznie. Nie wiesz z jakiego programu skorzystać do komunikacja przez COM? Szukasz programu, który działa w trybie graficznym?

Zobacz powyższe komentarze na forum

FORBOT Damian Szymański © 2006 - 2017 Zakaz kopiowania treści oraz grafik bez zgody autora. vPRsLH.