Raspberry Pi

Z Technique.pl
Wersja z dnia 14:46, 8 mar 2014 autorstwa Szdowk (dyskusja | edycje) (Utworzył nową stronę „=Raspberry Pi= Właśnie mijają dwa lata od pojawienia się na rynku komputera Raspberry Pi. Dwa lata, to na współczesnym rynku cała epoka. Ponieważ zajmujemy...”)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Skocz do: nawigacja, szukaj

Raspberry Pi

Właśnie mijają dwa lata od pojawienia się na rynku komputera Raspberry Pi. Dwa lata, to na współczesnym rynku cała epoka.

Ponieważ zajmujemy się tym komputerem poniekąd zawodowo poświęcimy mu chwilę uwagi.

Odrobina historii

Komputer ten pojawił się na "deskach kreślarskich" już około 2006 r. Jednak dopiero w 2011 r. przetestowano prototypy, które wiosną 2012 r. trafiły do produkcji. Może dziwić fakt, że komputer ten został zaprojektowany przez hobbystów. Głównym celem projektu były zastosowania dydaktycznye. Twórcy sami siebie określali jako weteranów komputerów z lat 80, którym nie do końca podobał się kierunek w którym rozwija się współczesna informatyka. Do uruchomienia i prowadzenia produkcji w 2008 r. została powołana fundacja charytatywna(!).

<Zdjęcie>

Nadzieje

Naszym planem było rozwiązanie przy pomocy tego komputera istotnych problemów z sterowaniem elektronicznym. Jakim? Czego? Na razie to nieistotne... Zasadniczo chodziło i nadal chodzi o możliwość szybkiej akwizycji danych (tzn. pomiarów częstotliwości i wartości analogowych) i ich rejestracji, a także jakiejś analizy tych danych i wywoływaniem na ich podstawie akcji, z zachowaniem możliwości zdalnej kontroli systemu. Czyli chcieliśmy zastąpić komputer PC ze specjalizowanym oprogramowaniem i kartami pomiarowymi czymś znacznie mniejszym, poręczniejszym i tańszym. Platforma Arduino nie była dla nas satysfakcjonująca. Podobnie było z innymi niedrogimi sterownikami mikroprocesorowymi bazującymi np. na zasłużonych procesorach 8051 czy BasicStamp. Z drugiej strony podobne do Raspberry Pi rozwiązania przemysłowe są po prostu abstrakcyjnie drogie (nie będziemy ich tu wymieniać nawet dla przykładu).

Plusy

Raspberry Pi wyglądał idealnie: procesor ARM o częstotliwości 700 MHz, 256 MB (później 512 MB) pamięci operacyjnej, wykorzystanie kart pamięci SD jako dysku, dość szybka grafika ze sprzętowym wspomaganiem odtwarzania filmów i nawet akceleracją 3D... Do tego porty USB, sieć Ethernet, HDMI, wyjście RCA na tradycyjny monitor/TV, złącze kamery cyfrowej, wyświetlacza LCD, a także uniwersalne złącze rozszerzeń (m.in. z magistralami I2C i SPI), wyjściem dźwięku, a także paroma innymi portami, które trudno wyszczególnić na jednym oddechu, sprawiało imponujące wrażenie.

Szczegółowy opis: http://en.wikipedia.org/wiki/Raspberry_pi

Wyposażenie i konfiguracja komputera jest imponująca, szczególnie jeżeli weźmie się pod uwagę, że wszystko razem jest mniejsze niż kaseta magnetofonowa i kosztuje mnie-więcej 25$.

Również zasadniczą zaletą jest to, że komputer ten pracuje pod kontrolą "zwykłego" systemu operacyjnego - Linux (także innych). Dzięki temu, można wszelkie prace programistyczne prowadzić bezpośrednio za jego pomocą - na nim samym, co odróżnia go od większości (wszystkich?) dostępnych sterowników mikroprocesorowych (może nie licząc CA80 i podobnych sterowników programowanych w asemblerze przy użyciu kodu binarnego...). Tzn. Komputer ten jest na tyle silny, aby "udźwignąć" system operacyjny, umożliwić uruchomienie edytora tekstu oraz kompilatora prawie dowolnego języka programowania.

Oprogramowanie

Oczywiście komputer ten nie służy tylko do programowania. Można na nim uruchomić tzw. powłokę graficzną (czyli w wypadku Linuxa - Xwindow) i wykorzystywać do pracy biurowej, przeglądania internetu lub oglądania filmów. Dzięki systemowi Linux, w teorii można robić wszystko, co robiło by się nie tylko z telefonem lub tabletem, ale z komputerem stacjonarnym. Standardowo do Raspberry Pi jest zapewniona dedykowana wersja dystrybucji Debian. Dodatkowo są dostępne też inne dystrybucje Linuxa (łącznie z wersją ARM Slackware z którego korzystamy, a także RiscOS). Warto też wspomnieć, że firma Wolfram udostępniła na ten komputer bezpłatną wersję swojego programu "Mathematica".

Sprzęt

Ponieważ komputer pracuje zwykle pod kontrolą systemu Linux, więc potrafi współpracować ze znaczną grupą urządzeń dostępnych dla komputerów PC łączonych z komputerem poprzez interfejs USB, Ethernet lub inne przejściówki USB (np. USB-RS232). Oczywiście w systemie jest zapewniona obsługa wszystkich portów znajdujących się na pokładzie komputera. Dzięki czemu można w łatwy sposób porozumieć się z bardzo szeroką gamą urządzeń, czujników lub po prostu układów scalonych wyposażonych w typowe w elektronice interfejsy I2C i SPI.

<Zdjęcie z ADC>

Po premierze Raspberry Pi na rynku szybko pojawił się znaczny asortyment dodatkowych akcesoriów i kart rozszerzeń jak np. płytki uniwersalne, przetworniki ADC itp. Wiele z dostępnych kart rozszerzeń ma charakter hobbistyczno-dydaktyczny i jest wyposażona od razu w działające przyciski, przekaźniki i diody LED (np. "standardowy" PiFace).

<zdjęcie z PiFace>

Wady i rozczarowania

Niestety okazało się, że komputer ten ma swoje wady. Nie ma co owijać w bawełnę. Pewne rzeczy były rozczarowujące.

W pierwszym podejściu Raspberry Pi okazał się powolny. Ten problem nas dość długo prześladował, a rozwiązanie wymagało pewnych kompromisów i dogłębnego zapoznania się z konfiguracją systemu. Tzn.:

  • Raspberry Pi współdzieli pamięć sterownika graficznego z dostępną pamięcią operacyjną. Standardowo aż 128 MB przysługuje karcie graficznej. W połączeniu z pomięcia podręczną operacji dyskowych (patrz następny punkt) było to nieakceptowalne w szczególności w modelu z pamięcią 256 MB. W modelu 512 MB było lepiej. Okazało się, że można to zmienić w konfiguracji systemu i w wypadku nieużywania powłoki graficznej, zmniejszyć pamięć sterownika graficznego do zaledwie 16 MB, co w zasadzie rozwiązało ten problem.
  • Wykorzystywanie karty pamięci SD jako dysku systemowego okazało się marnym pomysłem. Raz, że jest to przeraźliwie wolne, dwa, że dość zawodne. Można poprawić sytuację stosując jako dysk pamięć Flash z interfejsem USB (czyli popularne "pendrive"). Jednak ostatecznym rozwiązaniem usuwającym zasadniczo problemy wydajnościowe pamięci masowej jest zastosowanie dysku twardego podłączonego przez USB. Cóż, dyski SSD są drogie, a dyski tradycyjne mało mobilne - mówiąc oględnie. W każdym razie w systemie "developerskim" sprawdza sie prawdziwe HDD, a karty SD nadają się raczej do zastosowaniach mobilnych - gdy system nie musi zbyt wiele czytać lub zapisywać na dysku.
  • Procesor można dość bezpiecznie "podkręcić" o 100 MHz - czyli do 800 MHz. Potencjalnie można nawet do 1GHz, ale może się to odbywać kosztem znacznego ograniczenia jego trwałości.

W drugim podejściu pewnym rozczarowaniem dla nas było złącze rozszerzeń. Raspberry Pi potencjalnie dysponuje 26-pinowym złączem rozszerzeń GPIO.

  • Niestety część z tych wyprowadzeń ("piny") to masa i zasilanie. Dalsza część standardowo jest wykorzystana przez interfejsy szeregowe itp. Oczywiście wszystkie wyprowadzenia tego złącza są programowalne, ale i tak chcąc mieć dużo szybkich wejść i wyjść cyfrowych, trudno jest zrezygnować np. z interfejsów szeregowych, które akurat są potrzebne do czegoś innego.
  • Jeżeli potrzeba naprawdę szybkich wyjść lub wejść, to bez wycinania zbyt dużej ilości standardowych funkcji, daje się wykorzystać na własny użytek 8...10 wyprowadzeń złącza rozszerzeń. Zaletą za to jest możliwość przypisania oddzielnego przerwania każdemu wyprowadzeniu.
  • Ale bez euforii. Przerwania użytkownika dają sie wywoływać z częstotliwością 8-9kHz. Aby móc wywoływać przerwania częściej, trzeba napisać własny moduł jądra do ich obsługi.
  • Jeżeli cyfrowe wejścia-wyjścia nie muszą być szybkie (w granicach paru kHz), można użyć specjalizowanych układów scalonych realizujących tę funkcjonalność przez interfejsy szeregowe (dostępne są odpowiednie karty rozszerzeń).
  • Potencjalnie można wykorzystać także wyprowadzenia pozostałych portów (np. kamery), w końcu są programowalne i obsługiwane przez ten sam układ - ale tego jeszcze nie trenowaliśmy.
  • Komputer ma tylko jeden sprzętowy sterownik PWM, w dodatku standardowo obsługujący dźwięk. Czyli jak go wykorzystamy, to dźwięku nie będzie (a w zasadzie będzie, ale nieartykułowany). Na rynku jest dostępna karta dźwiękowa z prawdziwego zdarzenia, ale jej zakup to dodatkowe koszty.

<zdjęcie z płytką uniwersalną>

Podsumowanie

Mimo wszystkich wad Raspberry Pi jest świetnym komputerem edukacyjnym, który można używać w bardzo szerokim zakresie. Po dwóch latach produkcji, nadal jest dostępny i zapewne będzie dostępny jeszcze długo. Cieszy się bardzo dużą popularnością. Dzięki czemu jest bardzo dobrze udokumentowany. W Internecie można znaleźć dużo opisów i instrukcji dotyczących tego komputera, jego programowania i wykorzystania. Obecnie na rynku Raspberry Pi, w swoich granicach cenowych, nie ma konkurencji. Komputery tylko nieznacznie szybsze są przeciętnie parokrotnie droższe. Chyba tylko Beagleboard łapie się w zakresie cenowym ok. 50$ (Pi to 25$!), ale Beagleboard powstał w innym celu - bardziej sterownika niż komputera (jest przeznaczony dla bardziej zaawansowanych użytkowników). Inni konkurenci są w fazie testów (np. RiotBoard wygląda bardzo obiecująco, ale będzie co najmniej trzykrotnie droższy - piszemy to w marcu 2014). Innymi słowy aktualnej pozycji Raspberry Pi może zagrozić tylko jego oficjalny następca, o ile będzie w podobnej cenie. Jednak na razie nic o nim nie słychać.

PS

Osobiście, jak zastanawiam się nad cenami współczesnych komputerów, to przychodzi mi do głowy, że zbliżają się czasy króla Poleandra Partobona, który "...w kamienie na drogach móżdżki kazał wprawiać elektryczne, które wielkim głosem przechodnia ostrzegały, aby się nie potknął; także w słupy, w mury, w drzewa, aby wszędzie się dało drogi dopytać;..." (S. Lem, "Bajki Robotów").


Autor: dr Szymon Dowkontt