wtorek, 16 lutego 2016

Beagle Bone Black - jak uporałem się z Hub'em USB?

Jako, że BeagleBone Black posiada tylko jedno gniazdo USB do tego w standardzie 2.0, do zasilania i komunikacji z większą ilością potrzebnych urządzeń: kart sieciowych, kamer, klawiatury, myszy, sterowników itp. - potrzebny jest aktywny Hub USB.
Pardon - bo zaraz fachowcy się przywalą, że piszę głupoty - BBB posiada oczywiście dwa złącza, z tym, że jedno miniUSB jako klient, ale nie o nim będzie tu mowa. Potraktuję o tym standardowym 2.0 oznaczonym w specyfikacji jako USB1.
W handlu dostępne żniste rozgałęziacze, Hub'y USB zarówno pod złącze 3.0 jak i 2.0. Ja wybrałem Hub w standardzie 2.0 ponieważ lepszy nie był mi potrzebny i takowe gniazdo (tego standardu) jest w BBB fabrycznie.
Należy pamiętać, że Hub USB powinien posiadać aktywne, zewnętrzne zasilenie, czyli ma to być Hub aktywny.
Dlaczego taka uwaga? Z tego co się orientowałem nadmierne obciążenie portu USB w Beagle może doprowadzić do jego uszkodzenia - inaczej - nie jest przystosowane do zasilania urządzeń o poborze prądu większym niż przewidziane dla standardu USB  - 500mA czyli 0,5A. Zatem jeżeli planujemy w naszym projekcie użycie większej liczby urządzeń USB, aktywny Hub to doskonałe rozwiązanie:).
Poniżej przedstawiono listę urządzeń, które powinny bezproblemowo współpracować z BeagleBone Black bez żadnych magicznych sztuczek:
  • Manhattan 10-port HUB,
  • D-LINK DUB-H7 7 Port USB 2.0 Hub,
  • Trust HU-5770 7-Port Powered Hub.
Oczywiście w moim przypadku, chciałem aby było bardziej "hakersko", nabyłem za kwotę 14,50zł wynalazek "no name" prezentowany na zdjęciu poniżej:
Hub USB z podłączoną kartą sieciową z mojego poprzedniego posta.
Tak jest bez obudowy, tak zdjąłem ją z premedytacją. Wielkie było moje zdziwienie kiedy po podłączeniu do BBB i zasilania okazało się, że Hub po prostu nie działa i nie działa... . Świeci mruga ale nie wykrywa kart i innych urządzeń. Nie wiem czy to kwestia konfiguracji BeagleBone Black i jego Debiana czy coś innego. Zacząłem poszukiwania, jak  rozwiązać ten problem - przecież nie chcę zasilania USB z BBB tylko z Hub'a - z sieci!
Znalazłem - okazuje się bowiem, że tańsze Hub'y mają rozwiązanie w postaci małej diody prostowniczej łączącej zasilanie gniazda USB z zasilaniem płytki z gniazda zasilacza. Prezentuje to foto poniżej:
I po kłopocie z niesfornym zasilaniem Hub'a USB
Wyczytałem, że rozwiązaniem takiego problemu może być jedynie odcięcie przewodu zasilania z kabla USB (uprzednio należy rozpruć jego otulinę), co ze względów estetycznych nie wchodziło w grę, lub odnalezienie na płytce takiego właśnie elementu i jego odlutowanie. Ja przezornie tę diodę pozostawiłem i jedynie rozłączyłem zasilanie via USB na rzecz bardziej przydatnego zasilania z zasilacza (aktywnego). Teraz już wystarczy zasilacz 5V / 2 - 3A i można podłączać to co nam potrzeba do realizacji wymarzonych projektów:).
Oczywiście Hub'y wymienione wcześniej, powyżej w tym poście nie powinny mieć takiego problemu, bo one fabrycznie są robione jako aktywne i nie ciągną zasilania via USB komputera czy BBB, z tego też tytułu są droższe. 
Dobra poniżej zamieszczam kilka fotek i okienko z VNC na dowód, że to wszystko funkcjonuje jak trzeba.
Hub z usuniętą diodą prostowniczą:) Lampka na karcie WiFi świadczy, że przynajmniej jest zasilanie:)
Cukierkowe podświetlenie taniego Hub'a USB:)
Przy okazji - taki mam radiator na Sitarze:)
Polecenie / lsusb / - utrwala mnie w przekonaniu, że o to chodziło.
Czy tak to powinno być zrobione? Pewnie jest inna metoda i grzebanie w konfiguracji Debiana, ale że nie jestem fachurą od Linuxów, takie rozwiązanie wydaje się być ze wszech miar prawidłowe i do zadań "amatorskich" chyba wystarczające.
I tak kolejny problem z Beagle został w miarę prosto rozwiązany. Pozdrawiam i dużo sukcesów z tą zabawną platfor.
Ponieważ to sztywny blog technologiczny na koniec On :)
 

niedziela, 6 grudnia 2015

BeagleBone Black konfiguracja WIFI dalsze zmagania.

Jest chyba 10 dnia kolejnego. Pora zatem na ciąg dalszy. Włączamy naszego Beagle i na razie bez podłączania karty WIFI instalujemy usługę obsługi WIFI. Wykonujemy szereg następujących po sobie poleceń:

cd ~
ntpdate -b -s -u pool.ntp.org
apt-get update && apt-get install git
git clone https://github.com/adafruit/wifi-reset.git
cd wifi-reset
chmod +x install.sh
./install.sh

Każde polecenie zatwierdzamy klawiszem Enter. Po wykonaniu prawidłowo wszystkich powinniśmy na ekranie otrzymać takie oto komunikaty:

Installing wifi reset service to /opt/wifi-reset.
Installing systemd service to run at boot.
Enabling systemd service.

Gdy coś pójdzie nie tak proszę koniecznie sprawdzić składnię poleceń opisanych powyżej.

Nareszcie nadeszła pora na właściwe uruchomienie sieci bezprzewodowej w naszym BeagleBone Black. Najpierw wyłączamy BBB potem podłączamy naszą kartę sieciową i włączamy ponownie nasz system. Wykonujemy połączenie przez USB lub UART za pomocą terminala a następnie wykonujemy komendy które pozwolą nam sprawdzić, czy nasz interfejs działa prawidłowo. Komenda jest następująca:

iwconfig

Po jej zatwierdzeniu klawiszem Enter dostajemy informację o zainstalowanych interfejsach sieciowych, w tym naszej karcie WIFI.
Jedną z ostatnich operacji jest edycja pliku, który będzie "przechowywał" ustawienia naszej sieci. Należy go oczywiście sobie wyedytować. Wpisujemy polecenie:

nano /etc/network/interfaces

Nano to popularny prosty edytor tekstowy a /etc/network/interfaces to oczywiście ścieżka dostępu do pożądanego pliku z konfiguracją sieci. Po otwarciu w edytorze nano poszukujemy następującej składni pliku:

# WiFi Example
#auto wlan0
#iface wlan0 inet dhcp
# wpa-ssid "essid"
# wpa-psk "password"


Jedyne co musimy zrobić to zedytować go tak żeby "odhashować" następujące linijki:

# WiFi Example
auto wlan0
iface wlan0 inet dhcp
wpa-ssid "moja_siec_WIFI"
wpa-psk "moje_haslo_WIFI"


Chyba nie muszę wyjaśniać co i jak, bo powyższy przykład dla osób obznajomionych z sieciami WIFI powinien być czytelny. wpa-ssid to nazwa naszej sieci a z kolei wpa-psk to hasło ją zabezpieczające :)
Po zakończeniu edycji plik zapisujemy kombinacja klawiszy Ctrl-O i zatwierdzamy nasz zapis zawartości pliku Enterem.
Kombinacją Ctrl-X wychodzimy z edytora Nano.
Testujemy nasze "łącze" poleceniem:

ifup wlan0

I na ekranie terminala powinna pojawić się kompletna informacja o przydzieleniu naszemu interfejsowi adresu IP przypisanym z DHCP.

Możemy także sprawdzić połączenie sieciowe BeagleBone Black wykonując polecenie:

ifconfig wlan0

No i w końcu je przetestować poleceniem np.:

ping www.wp.pl

Zobaczymy wtedy potwierdzenie połączenia w postaci poprawnych pingów. Ctrl-C zamknie nam pingowanie.
Wykonujemy polecenie reboot i po ponownym uruchomieniu - połączenie nie działa! Trzeba na nowo wklepywać polecenie ifup wlan0 i tak za każdym razem - tylko podstawowe pytanie po co? Skoro ma to działać automatycznie i cieszyć nas zdalnym dostępem via WIFI:)
Aby rozwiązać tę niedogodność musimy znowu wrócić się do edycji pliku interfaces:

nano /etc/network/interfaces

I znowu odszukać linijki składni:

# WiFi Example
auto wlan0
iface wlan0 inet dhcp
wpa-ssid "moja_siec_WIFI"
wpa-psk "moje_haslo_WIFI"


Dodajemy następujące polecenie ("hashując" jednocześnie linijkę - auto wlan0):

allow-hotplug wlan0

Tak, że nasz plik po wyedytowaniu będzie miał następująca składnię:

# WiFi Example
# auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "moja_siec_WIFI"
wpa-psk "moje_haslo_WIFI"




Poniżej zamieszczam zrzuty z obu plików tak aby wyeliminować wątpliwości związane z ich konfiguracją.

 Edycja pliku  - rc.local

Edycja pliku intefaces

Może nie jest to najlepszy pomysł ale ten sposób u mnie zadziałał znakomicie i wydaje się, że do potrzeb amatorskich w zupełności wystarczy.
Można jeszcze wykonać polecenie włączające:

ifup wlan0

I po kolejnym restarcie cieszyć się WIFI z BeagleBone Black.
I tak się sprawy z niesfornym Beaglem i siecią WIFI miały. mam nadzieję, ze komuś się przyda taka konfiguracja np. do sterowania robotem via WIFI no i oczywiście za pomocą BBB.
Pozdrawiam kolegów i koleżanki życzę sukcesów w zmaganiu się z tą platformą.




Beagle Bone Black - konfiguracja WIFI.

Jakiś czas temu stałem się szczęśliwym posiadaczem platformy BeagleBone Black. Jako, że bardzo szybko podłączyłem komputerek przez UART'a i opanowałem jako tako obsługę wbudowanego weń Debiana (na razie tylko podstawowe polecenia), naszła mnie ochota na podłączenie systemu do mojej domowej sieci WiFi.
No niby nic trudnego - kupić jakąś tam kartę na USB podłączyć i koniec tematu. Okazało się to jednak nie takie proste bo zakupiona karta wcale to, a wcale nie chciała działać.
Należało poszukać nieco w sieci a oto co udało mi się wykopać.
Mój post jest więc kompilacją tego co udało mi się znaleźć na ten temat w sieci, własnych eksperymentów i przeczytanych artykułów - postów. Dlatego proszę nie posądzać mnie o Plagiatowanie pracy innych - albowiem są to moje własne tłumaczenia z jęz. angielskiego i samodzielne przemyślenia w dochodzeniu do pewnych rzeczy.


Zacznę teraz od tego, że lista kart sieciowych które będą bez specjalnych "haków" i gimnastyki współdziałały z BBB i odpowiednimi dystrybucjami LINUX jest stosunkowo uboga ale dla potrzeb amatorskich w zupełności wystarczy - oto one:
1/ ASUS USB-N13 802.11 b/g/n - Angstrom;
2/ EDIMAX EW-7811UN oraz D-Link DWA-125 - Debian LXDE, Debian Gnome Desktop;
3/ D-Link DWA-121 - Angstrom Debian LXDE, Debian Gnome Desktop;
4/ Belkin N150 - Debian LXDE
5/ TP-Link TL-WN727N - Debian LXDE, Debian Gnome Desktop
6/ TP-Link TL-WN722N (z antenką) - Debian LXDE, Debian Gnome Desktop (i tejże użyłem w moich doświadczeniach);
7/ Netgear WNA1100 - Debian LXDE, Debian Gnome Desktop;
8/ Keebox W150NU - Debian LXDE, Debian Gnome;
9/ Realtek RTL8188CU w wersji USB - Debian LXDE (i tejże również używałem);
Informacje o kartach kompatybilnych z BBB pochodzą ze strony:http://www.elinux.org/Beagleboard:BeagleBoneBlack#WIFI_Adapters a dwie wytłuszczone powyżej karty wypróbowałem sam bo tylko takie znalazłem w handlu w sensownej cenie:)

Kolejną ważną rzeczą jest sprawdzenie czy dysponujemy najnowszą wersją Debiana na naszym komputerku. Najnowsze wersje obrazów możemy sprawdzić TUTAJ.

Jeżeli nie Jesteście pewni jak wykonać sprawdzenie i ewentualną instalację od zera czyli "flashowanie" zachęcam do odwiedzenia strony projektu BBB celem dowiedzenia się jak tego dokonać.

Do komunikacji z Beaglem będzie jeszcze potrzeba połączenia przez np. jego UART ale o tym to już inna historia i nie na dzisiaj.

Ja do komunikacji używam prostego konwertera USB <-> UART z kompletem przewodów komunikacyjnych tak, że nie muszę się martwić że "Tx to ma być podłączone do Rx i na odwrót" itd. itp. układ robi to za mnie.
Używam konwertera USB - TTL RS232 na układzie CH340G z możliwością przełączania napięć sterowanych, programowanych układów (3,3 - 5V).
Poniżej foto konwertera:
Połączenie nawiązuję przez Putty i port serial o szybkości 115200.

No dobrze w następnej kolejności musimy oczywiście połączyć się z naszym Beaglem i wykonujemy te czynność np przez program PUTTY i terminal (tak lubię najbardziej) - ale wiadomo są różne szkoły.
Pamiętajmy o tym aby zasilić nasz komputerek odpowiedniej mocy zasilaczem. Ja użyłem zasilacza 5v 3A. Który w zupełności pokrywa moje zapotrzebowanie na zabawę z Beaglem. Zasilenie BBB + WIFI tylko z kabla USB może nie dać mu wystarczającej mocy.
Co dalej? Dalej potrzeby będzie upgrade kernela naszego systemu. W przypadku Debiana 7 Wheezy. Wykonujemy polecenie:

cd /opt/scripts/tools/
./update_kernel.sh

Na ekranie terminala pokaże się nam szereg rozpakowywanych i instalowanych skryptów i plików i właściwie niewiele tu można pisać - całość dzieje się automatycznie. Po pojawieniu się z powrotem znaku zachęty wykonujemy komendę:

reboot

która uruchamia Beagle'a z powrotem.

No i zrobiła się Pierwsza w nocy zatem dokończę mojego posta w czasie późniejszym - wybaczcie drodzy koledzy i koleżanki idę spać...

CDN...