Blog (41)
Komentarze (510)
Recenzje (0)

BeagleBone Black

@McDraculloBeagleBone Black03.05.2014 18:57

Raspberry Pi cieszy się co raz większą popularnością – nic więc dziwnego, że na rynku pojawia się co raz więcej konkurencyjnych rozwiązań. Od kilku miesięcy na moim biurku leży BeagleBone Black, czyli miniaturowy komputer za kilka złotych.

[1/2] SerialPort
[2/2] BeagleBone Black
[1/2] Przyciski Power i Reset
[2/2] Przycisk zmiany kolejności bootowania
[1/2] Piny do wykorzystania
[2/2] Złącza USB, miniHDMI oraz karta pamięci microSD

Urządzenie można kupić w sklepach elektronicznych – TME, Kamami, Farnell (mój egzemplarz pochodził właśnie z tego ostatniego). Regularnie są też wystawiane na allegro, jednak czas dostawy towaru sugeruje, że sprzedawca ściąga urządzenia prosto z Anglii (Farnell). Co ciekawe przy zamówieniu przesyłki z Farnella do godziny 16 przesyłka powinna trafić do nas już następnego dnia. Cena urządzenia kształtuje się na poziomie około 220zł brutto. Samo urządzenie już kiedyś na łamach bloga opisywał kyrol, więc dla przypomnienia specyfikacji technicznej przypomnę jedynie że BeagleBone Black pracuje pod kontrolą procesora 1GHz (ARM, Cortex A8, 512MB RAM, 2GB wbudowanego NANDu). Sam procesor posiada 65 portów GPIO co pozwala na sterowanie urządzeniami zewnętrznymi (lub odbieranie od nich informacji). Oczywiście, niektóre z nich możemy wykorzystać do połączenia z wykorzystaniem RS-232, I2C czy SPI, inne natomiast tylko jako binarne wejścia oraz wyjścia. Dzięki temu urządzenie staje się niemal uniwersalnym.

System operacyjny

Najszybciej skorzystać z gotowych rozwiązań. Pełną listę systemów przeznaczonych na platformę BBB znaleźć można na stronie projektu (www.beaglebone.org). Po moich doświadczeniach z tą platformą mogę zauważyć, że Angstrom (domyślnie zainstalowany system na BBB) bardzo wolno pobiera treści z sieci. Maksymalny transfer jaki osiągnąłem to około 300kB/s, bez względu na miejsce zapisu (NAND, microSD). System posiada, „wszystko co niezbędne”, ma również od razu zainstalowany tryb graficzny. Kolejnym system jaki zdecydowałem się uruchomić na tej platformie jest Ubuntu. W tym przypadku zdecydowanie zwiększyła się prędkość pobierania danych z internetu. Podstawowa wersja tego OSa nie posiada trybu graficznego (należy go zainstalować ręcznie). Niestety w przypadku wykorzystywania pamięci wewnętrznej nie uda nam się zainstalować domyślnego trybu graficznego – zwyczajnie zabraknie nam miejsca. Jeśli zdecydujemy się na wykorzystanie karty microSD o wielkości minimum 4GB i wydaniu w konsoli polecenia


sudo apt-get update
sudo apt-get install ubuntu-desktop

i podłączeniu monitora lub telewizora do urządzenia po kilku chwilach na ekranie powinien pojawić się obraz w rozdzielczości FullHD w trybie 24fps. Niestety układ graficzny w BeagleBonie jest słabszy niż ten wykorzystywany w RaspberryPi i próba obejrzenie filmu w rozdzielczości 1920x1080 może zakończyć się nerwicą lub zawieszeniem urządzenia. Na desktopie korzystam z Windowsa. Jeśli już muszę skorzystać z Linuxa wybieram Debiana, którego kompilacja również jest przygotowana na BeagleBona. Co prawda na tym systemie nie instalowałem trybu graficznego ale najprawdopodobniej również w tym przypadku potrzebujemy większej karty microSD. Sterownik sieci pracuje z pełną prędkością, podobnie jak ma to miejsce w „Łubudubu” a kompilacja jest wyposażona również w sterowniki umożliwiające wykorzystanie GPIO, RS232 i innych interfejsów.

Możliwości połączenia

Oczywiście BeagleBone Black to komputer, który może pracować samodzielnie i po podłączeniu myszy, klawiatury i monitora możliwe jest wykorzystanie go do normalnej pracy. Częściej jednak jest wykorzystywany jako platforma uruchomieniowa lub urządzenie hostujące jakąś usługę. Jeśli więc chcemy uruchomić BeagleBona bez monitora, to możemy z niego korzystać z następujących połączeń:

  • SSH (chyba nie trzeba opisywać
  • SerialPort (wykorzystując UART)

Pierwszy przypadek wykorzystywany jest bardzo często, nie tylko w systemach wbudowanych, ale również w poważnych komputerach i serwerach. Za jego pomocą możemy również przesyłać pliki.

Drugi sposób przyda się szczególnie jeśli nie znamy adresu IP naszego BB lub zmieniliśmy konfigurację sieci i teraz urządzenie nie może połączyć się z siecią. Połączenie to jest możliwe z wykorzystanie kabla USB->UART i dzięki niemu możemy połączyć się z urządzeniem bez wykorzystania sieci TCP/IP. Po prawidłowym połączeniu należy zalogować się jako użytkownik komputera i... korzystać z urządzenia. To połączenie co prawda jest stosunkowo powolne, nie umożliwia przesyłania plików (ale nic nie stoi na przeszkodzie, aby w prosty sposób taką funkcjonalność zaimplementować) ale ma jedną podstawową zaletę - pozwala obserwować i analizować cały proces uruchamiania urządzenia począwszy od uboota aż do momentu uruchomienia systemu operacyjnego.

Cross – kompilacja

Platforma jaką jest Beaglebone Black czy Raspberry Pi może posłużyć nam również jako platforma dla naszych własnych aplikacji. Jednak ze względu na jej wydajność wątpliwym jest, aby ktoś wykorzystywał ją zarówno jako urządzenie docelowe jak i sprzęt na którym zdecyduje się tworzyć program. Najwygodniej w takim przypadku skorzystać z cross – kompilacji, czyli tworzyć kod na jednej platformie i kompilować go dla drugiej platformy. W tym celu najlepiej jest skorzystać z IDE Eclipse (w wersji na Windowsa lub Linuxa*). Oprócz środowiska potrzebujemy również toolchaina, który umożliwi kompilowanie kodu dla odpowiedniego formatu binarnego, rozumianego przez procesor urządzenia docelowego. Dla Beaglebona, wraz z Debianem proponuję skorzystać z Toolchaina Linaro (do ściągnięcia z https://launchpad.net/linaro-toolchain-binaries, w przypadku wykorzystania jako hosta Linuxa, należy również doinstalować: libc6, libstdc++6, libncurses5, zlib1g; jeśli korzystasz z Windowsa zainstaluj MinGW lub cygwina). Gdy nasz system jest już gotowy, a binarki toolchaina leżą na dysku należy stworzyć nowy projekt w środowisku Eclipse i w opcjach projektu dokonać kilku zmian. W tym celu należy zmienić wykorzystywany kompilator oraz linker na te z toolchaina Linaro. Można dokonać tego w prosty sposób: prawoklik na projekt › Properties › C/C++ Build › Settings. W oknie należy zmienić ustawienia kompilatora oraz linkera – można tego dokonać zmieniając wpis w textboxie Command na wskazujący plik wykonywalny kompilatora. Jeśli umieściliście toolchaina w wersji 4.8 bezpośrednio na partycji C: i nie zmieniliście nazwy folderu to ścieżka dla kompilatora C++ powinna wyglądać następująco (dla linkera jest to dokładnie ta sama ścieżka):


C:\gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_win32\gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_win32\bin\arm-linux-gnueabihf-c++.exe

Kompilator C:

C:\gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_win32\gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_win32\bin\arm-linux-gnueabihf-c.exe
Zakładka, w której dokonać należy zmian aby wykorzystać inny kompilator
Zakładka, w której dokonać należy zmian aby wykorzystać inny kompilator

Po poprawnej konfiguracji możecie bez problemu skompilować projekt, a następnie wynikowy plik umieścić w urządzeniu docelowym po czym uruchomić program.

Mało ambitnie, ale działa ;)
Mało ambitnie, ale działa ;)

*Dzięki narzędziu xapt łatwe staje się korzystanie z dodatkowych bibliotek

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.