Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

BeagleBone Black

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.

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
Po poprawnej konfiguracji możecie bez problemu skompilować projekt, a następnie wynikowy plik umieścić w urządzeniu docelowym po czym uruchomić program.

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

sprzęt

Komentarze

0 nowych
cyryllo   16 #1 03.05.2014 18:02

No właśnie BBB leży na biurku i się nudzi ;) ja mam tak samo leży i nic nie robi. Bawiłem się krótko GPIO ale jakoś bez większego entuzjazmu :P
Szkoda że tak mało pokazałeś w tym wpisie :P

McDracullo   16 #2 03.05.2014 19:58

@cyryllo - odkurzyłem BBB i mam nadzieję pokazać więcej w kolejnych wpisach. Jeden właśnie powstaje ;)

KyRol   17 #3 03.05.2014 21:28

Z tego co wiem domyślnym distro już nie jest Angström, a już Debian, tak więc ja chyba też wezmę pędzelek i odkurzę BBB ;)

KyRol   17 #4 03.05.2014 21:32

...No i BBB ma teraz 4GB eMMC na pokładzie, widać to po obrazach: http://beagleboard.org/latest-images

McDracullo   16 #6 03.05.2014 21:36

@KyRol - w którym dokładnie miejscu? Bo ja tam widzę flashery 2GB...
(BeagleBone Black - 2GB eMMC)

McDracullo   16 #7 03.05.2014 21:37

OK - teraz już jasne (ja pisałem to Twojego komentarza jeszcze nie było).

wojtekadams   18 #8 04.05.2014 13:23

BBB to fajna płytka, ale nie skusiłem się na jej zakup - bo nie widziałem sensu jak mam R-Pi. Zaś teraz poluje na coś z Satą i padło na Banana Pi (http://www.bananapi.org/) już niedługo powinno być u mnie :)

McDracullo   16 #9 04.05.2014 13:35

@wojtekadams - fajna płytka, jak z wydajnością tego SATA?

wojtekadams   18 #10 04.05.2014 13:43

@McDracullo
Jak tylko dojdzie to nie omieszkam podzielić się wynikami :)

cyryllo   16 #11 04.05.2014 14:54

@wojtekadams mnie natomiast interesuje możliwość sterowania GPIO jak znajdziesz chwile i banan dotrze to sprawdź to ;)

ArtiDiTu   2 #12 04.05.2014 19:38

@cyryllo : ze strony projektu : " BananaPi has same GPIO and circuit layout like RPi, But it got control button and TTL interface. BananaPi work perfectly with Debian. With this powerful hardware, This easy to set up an great internet service platform on it."

McDracullo   16 #13 04.05.2014 19:55

Jeśli chodzi o GPIO to mnie bardziej interesuje z jaką częstotliwością mogą one działać ;)

wobes   4 #14 04.05.2014 21:58

@McDracullo:

A jak wiemy w przypadku BBB nie ma powodów do radości jeśli chodzi o prędkość GPIO, nawet przy wykorzystaniu triku z /dev/mem cudów nie ma. M.in. to właśnie zniechęca mnie do tych wszystkich RB Pi, BBB itp. Póki takie komputerki będą wychodziły z linuxem na pokładzie, a nie rtosem zoptymalizowanym do konkretnej platformy sprzętowej, pozwalającego wycisnąć siódme poty ze sprzętu, lepiej nie będzie.

McDracullo   16 #15 04.05.2014 22:04

@wobes - akurat dla BeagleBone'a pod tym względem nie ma co narzekać. Przygotowany obraz QNX dla BBB jednak daje sporo możliwości. Co prawda nie ma dostępnego sterownika do obsługi GPIO spod tego systemu, ale we własnym zakresie zawsze można coś przygotować. Sam przygotowywałem taki sterownik i działało to spełniając moje kryteria... ;)

QNX dla BBB:
http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/TiAm335Beaglebone

  #16 05.05.2014 01:09

Dla ludzi którzy nie potrzebują pinów ani "profesjonalnie" wykorzystywać tego typu elektroniki stworzone zostało Banana Pi z zachowaniem GPIO maliny.

cyryllo   16 #17 05.05.2014 08:45

@ArtiDiTu wiesz że piszą to ok ale czy w praktyce mogę używać obecnych bibliotek? Bo to że ma taki sam układ nie oznacza że steruje się nimi tak samo. Puki co nie znalazłem żadnego wiki ani jakichkolwiek info o GPIO i sposobie sterowania.

cyryllo   16 #18 05.05.2014 08:49

@McDracullo liczę że opiszesz szerzej coś o QNX dla BBB ;)

McDracullo   16 #19 05.05.2014 17:10

@cyryllo - a ja myślałem, że tak niszowy produkt jak QNX już nikogo nie obchodzi ;)

KyRol   17 #20 05.05.2014 22:15

No ja na BBB się zdecydowałem po tym jak zagłębiłem się w szczegóły, płytka ma dwa 32-bitowe mikrokontrolery, można zarządzać GPIO bez systemu operacyjnego itp. Z czasem się okazało, że nieudostępnione binaria do GPU dla GNU/Linuksów to nie jedyny mankament BBB. Potwornym minusem tych wszystkich zdawałoby się dobroci jest brak dokumentacji. Mam dość wiszenia na irc'u czy dopytywania się o wszystko na grupie dyskusyjnej. Do tego powstała chyba jedna w miarę sensowna książka, ale ona nie porusza wszystkich aspektów o co z resztą ciężko i kosztuje niebagatela 50 USD. Jako entuzjasta, a nie deweloper, który zjadł zęby na AVR'ach i temu podobnych wynalazkach, trochę się czuję się spuszczony w kanał. R-Pi jakie by nie było uzupełnia te wszystkie niedociągnięcia i braki. Długo nie uwierzę w mocniejsze, alternatywne picopłytki dopóki nie będę widział czarno na białym, że dynamicznie są projektowane i udostępniane na wolnej licencji biblioteki, w szczególności do interfejsów i/o, w które wyposażona jest dana płytka. Ostatnio panuje wysyp wszelkich z płytek, a z udostępnianiem softu do interfejsu i/o czy z dokumentacją jest różnie.

McDracullo   16 #21 05.05.2014 22:46

@KyRol - to prawda, dokumentacja BB jest może słaba, ale od czego masz dokumentacje poszczególnych podzespołów... Do OMAPA 355x masz prawie 5 tys. stron, które są naprawdę pomocne ;) Sam przeszedłem przez znaczną część z nich ;) Co do bibliotek... cóż... BeagleBone nigdy nie będzie Raspberry, a to ono przetarło szlaki takim wynalazkom i to one jest najbardziej popularną platformą.

KyRol   17 #22 06.05.2014 00:06

Chyba zbuduję sobie CNC albo drukarkę 3D z BBB, przestaną mnie przynajmniej męczyć wszelkie niedociągnięcia i braki. Muszę tylko zobaczyć, czy przypadkiem z R-Pi nie da się zrobić czegoś podobnego przypadkiem taniej bądź/i lepiej ;P

cyryllo   16 #23 26.05.2014 12:43

@KyRol ja właśnie buduje wycinarkę CNC na PCB ale używam arduino do sterowania + RPi do tego podłączone ale tylko do obsługi programu i zdalnego pulpitu :) Na pewno napiszę o tym na blogu.

zypolit   3 #24 27.04.2015 15:16

Widziałem to na ematador.pl - czy sprzęcik jest bardziej wartościowy niż np. malina? A jeśli tak to dlaczego? Proszę o konkrety.

  #25 01.11.2016 18:53

@zypolit: Jest tragicznie kiepski w tym porównaniu.

McDracullo   16 #26 03.11.2016 22:18

@Artur12345 (niezalogowany): Pamiętaj, że podczas pisania tego tekstu malina była w pierwszej wersji. A pozatym - rozszerz swoją wypowiedź - każdy chciałby poznać dlaczego uważasz że jest tragicznie kiepski.