Mikrokontrolery - Jak zacząć?

... czyli zbiór praktycznej wiedzy dot. mikrokontrolerów.

środa, 16 marca 2011

Bluetooth SPP Tools PRO

Autor: Dondu

Artykuł jest częścią cyklu: Bluetooth + mikrokontroler

Bluetooth SPP Tools PRO - Terminal


Stan na 3 października 2014r.
Nazwa:Bluetooth SPP Tools PRO
Autor:Jerry.Li
Cena:Bezpłatna
System:Android 4.0.3 i nowszy

Dostępna jest także starsza wersja tego programu:

Stan na 3 października 2014r.
Nazwa:Bluetooth SPP
Autor:Jerry.Li
Cena:Bezpłatna
System:Android 2.0 – 4.2

Bluetooth SPP Tools PRO to kolejna i jedna z najlepszych (do 2014r.) aplikacji terminala Bluetooth dla systemu Android. Pomimo, że dopisek PRO, kojarzony jest raczej z wersjami płatnymi, w momencie pisania tego artykułu aplikacja ta była aplikacją darmową.

Dla starszych wersji Androida (do 4.2 włącznie) jest dostępna także starsza wersja tej aplikacji Bluetooth SPP. Jest ona bardzo zbliżona w zakresie funkcjonalności (przynajmniej na razie). Poniżej omawiam jednak wersję PRO dostępnej w dniu pisania artykułu (październik 2014r.).

Do testowania aplikacji i sprawdzenia komunikacji z modułem HC-05 możesz użyć wybrany przykład:
  1. pętli opisanej w artykule: HC-05 (Bluetooth) - Test komunikacji z komputerem 
  2. koprocesora na ATmega8 opisanym w artykule: HC-05 (Bluetooth) - Komunikacja z mikrokontrolerem na przykładzie ATmega8.
Ja posłużę się tym drugim tematem (dot. koprocesora), ponieważ chcę pokazać jak wysyłać znaki w kodzie heksadecymalnym.


Ikona pod, którą kryje się aplikacja:


Bluetooth SPP Tools PRO - Terminal - Ikona aplikacji


Po uruchomieniu dokonywane jest skanowanie kanałów Bluetooth w celu znalezienia urządzeń:


Bluetooth SPP Tools PRO - Terminal - Wyszukiwanie urządzeń Bluetooth SPP Tools PRO - Terminal - Lista urządzeń w zasięgu


W dowolnym momencie można przerwać skanowanie wskazując wykryte urządzenie. Po jego wskazaniu otrzymujemy informacje szczegółowe:


Bluetooth SPP Tools PRO - Terminal - Szczegóły wybranego urządzenia


Po zainicjowaniu połączenia przyciskiem Connect, po chwili otrzymujemy informacje o poprawnym połączeniu oraz prośbę o wskazanie jednego z trzech trybów pracy terminala:


Bluetooth SPP Tools PRO - Terminal - Łączenie z wybranym urządzeniem Bluetooth SPP Tools PRO - Terminal - Tryby pracy

Do wyboru mamy więc:
  • Byte stream mode
  • Keyboard mode
  • CMD line mode
które po kolei omawiam poniżej.





Byte stream mode

To pierwszy tryb pracy terminala pozwalający na wysyłanie ciągu bajtów wpisanych z klawiatury.


Bluetooth SPP Tools PRO - Byte stream mode - Ekran startowy Bluetooth SPP Tools PRO - Byte stream mode - Wpisywanie danych


Dla nas najistotniejsze jest to, że oprócz trybu ASCII możemy używać trybu HEX (byte wpisany za pomocą dwóch znaków liczby heksadecymalnej). Aby włączyć ten tryb przechodzimy do Menu i klikamy Set IO mode:


Bluetooth SPP Tools PRO - Byte stream mode - Menu


po czym wybieramy tryb ASCII lub HEX osobno dla danych wejściowych i wyjściowych:


Bluetooth SPP Tools PRO - Byte stream mode - Wybór trybu HEX ASCII


Wszystkie cztery kombinacje są możliwe do ustawienia. Ja ustawiłem HEX przy wysyłaniu, a ASCII przy odbieraniu danych, ponieważ tak przygotowany jest przykład (patrz początek artykułu), który używam do testowania tej aplikacji.

Mam już przygotowaną aplikację do pracy z modułem Bluetooth (w moim przypadku HC-05), naciskam więc przycisk RESET w układzie z mikrokontrolerem i otrzymuję od niego dane pokazujące jaki wzór będzie obliczał nasz koprocesor:


Bluetooth SPP Tools PRO - Byte stream mode - Odbiór danych


Wyślemy teraz liczbę dziesiętną 10, czyli 0a w systemie heksadecymalnym:


Bluetooth SPP Tools PRO - Byte stream mode - Wysłanie danych


i natychmiast otrzymamy od ATmega8 wynik obliczeń równania:


Bluetooth SPP Tools PRO - Byte stream mode - Odbiór danych


Zauważ, że wpisana liczba 0a pozostała na swoim miejscu w polu do wysyłki, nie tak jak ma to miejsce w innych aplikacjach, gdzie pole to od razu jest czyszczone. Pozwala to na wielokrotne wysyłanie tej liczby poprzez naciśnięcie przycisku wysyłania:


Bluetooth SPP Tools PRO - Byte stream mode - Wysłanie danych


Czasami mogą się przydać dodatkowe informacje o ilości wysłanych (Txd) i odebranych (Rxd) danych, a także o czasie pracy terminala. Dane te są publikowane w górnej części okienka aplikacji:


Bluetooth SPP Tools PRO - Byte stream mode - Liczniki danych


Po zamknięciu klawiatury możemy oczywiście poszerzyć pole z danymi odbieranymi:


Bluetooth SPP Tools PRO - Byte stream mode - Duży ekran


Czasami mamy potrzebę zapisania odebranych danych do pliku co można zrobić używając Menu, a w nim Save2File, po czym otrzymujemy komunikat, gdzie zapisano plik:


Bluetooth SPP Tools PRO - Byte stream mode - Ścieżka nagranego pliku


Po otworzeniu pliku:

Waiting to receive…y = 0.3187x^2 + 2x - 7
44.869999
44.869999
44.869999
44.869999
44.869999
44.869999
44.869999
44.869999
44.869999
44.869999
44.869999
44.869999
44.869999
44.869999
44.869999
44.869999






Keyboard mode

To drugi z trybów pracy aplikacji:


Bluetooth SPP Tools PRO - Terminal - Tryby pracy


umożliwia zdefiniowanie dwunastu gotowych danych, które mają być wysłane do sparowanego ze smartfonem urządzenia po kliknięciu w wybrany przycisk:


Bluetooth SPP Tools PRO - Keyboard mode - Ekran startowy


Aby zdefiniować wybrany przycisk należy kliknąć Menu i wybrać opcję Buttons set:


Bluetooth SPP Tools PRO - Keyboard mode - Menu ustawień przycisków


Następnie klikamy wybrany przycisk:


Bluetooth SPP Tools PRO - Keyboard mode - Wybór przycisku


i pojawia się okienko z domyślnym ustawieniem oraz opcjami do ustawienia:


Bluetooth SPP Tools PRO - Keyboard mode - Ustawienia funkcji przycisku


Możemy więc ustawić według kolejności:
- napis na przycisku,
- wartość (wartości) wysłaną po naciśnięciu przycisku,
- wartość (wartości) wysyłaną cyklicznie przy dłuższym trzymaniu naciśniętego przycisku,
- wartość (wartości) wysłaną po puszczeniu przycisku.

Ustawiłem przykładowe:

Bluetooth SPP Tools PRO - Keyboard mode - Ustawienia funkcji przycisku


a czynność tę należy oczywiście zakończyć klikając OK, co zakończy proces ustawiania wybranego przycisku, ale nie zakończy jeszcze procesu ustawiania. Możesz więc definiować kolejne przyciski lub zakończyć klikając Menu i wybierając Button set complete:


Bluetooth SPP Tools PRO - Keyboard mode - Zakończenie ustawiania przycisków


Od tego momentu mamy zdefiniowany przycisk:


Bluetooth SPP Tools PRO - Keyboard mode - Zdefiniowany przycisk


Wartości wysyłane można ustawiać nie tylko jako pojedyncze bajty. Może to być kilka bajtów oddzielonych spacjami.


Na screenie powyżej zieloną strzałką zaznaczyłem istotną informację, jaką jest czas opóźnienia pomiędzy wysyłaniem kolejnych znaków przy długim przytrzymaniu przycisku. Czas ten domyślnie jest ustawiony na 500ms, czyli 0,5 sekundy.

Sprawdźmy jak zadziała nasz terminal, gdy przytrzymam przycisk przez nieco ponad sekundę:


Bluetooth SPP Tools PRO - Keyboard mode - Wysłane i odebrane dane


Jak widać otrzymaliśmy od koprocesora (ATmega8) cztery wyniki, a to oznacza, że wysłane zostały kolejno 4 bajty, czego potwierdzeniem jest licznik wysłanych bajtów zaznaczony strzałką zieloną.

Bajty różniły się wartością stąd wyniki także się różnią. Dwa środkowe są takie same ponieważ są to wyniki otrzymane w momencie przytrzymania przycisku przez ponad sekundę, a dla takiego przypadku zdefiniowałem wysyłanie bajtu o wartości 0b, co nastąpiło dwukrotnie.

Aby zmienić interwał czasowy pomiędzy wysyłaniem kolejnych danych ponownie klikamy Menu i wybieramy Set Long-press freq:


Bluetooth SPP Tools PRO - Keyboard mode - Ustawianie czasu repetycji przycisku


po czym ukazuje się nam okienko z możliwością podania odstępów czasowych w milisekundach:


Bluetooth SPP Tools PRO - Keyboard mode - Ustawianie czasu repetycji przycisku


Jak widać pojawiła się domyślna wartość 500ms, którą zmieniłem na 750ms klikając na koniec oczywiście OK. Od tego momentu opóźnienie wysyłania kolejnych bajtów podczas przytrzymania przycisku będzie dłuższe.

Kolejną opcją w Menu jest możliwość ustawienia obserwacji danych wysyłanych i wyniku. W tym celu należy kliknąć napis: Click show: Sent data area


Bluetooth SPP Tools PRO - Keyboard mode - Włączenie pokazywania danych wysłanych


Aby zobaczyć jak teraz działa terminal szybko kliknąłem przycisk testowy. Nie przytrzymałem go dłużej niż ustawione wcześniej 750ms, stąd wysłane zostały tylko dwa bajty, a koprocesor na ATmega8 odpowiedział dwoma wynikami:


Bluetooth SPP Tools PRO - Keyboard mode - Komunikacja


Przy włączonym podglądzie danych wysłanych  i odebranych ekran został podzielony na dwie części, a dane są pokazywane w jednej linii jeden po drugim osobno dla wysłanych i odebranych. Dane te oczywiście są zależne od siebie następująco:


Bluetooth SPP Tools PRO - Keyboard mode - Komunikacja - kolejność zdarzeń


czyli wysłanie 0a (przyciśnięcie przycisku) dało wynik 44.869999, a następnie wysłanie 0c (puszczenie przycisku) dało wynik 62.892799.

Ponieważ ekran mojego LG-E610 nie jest zbyt duży stąd ten tryb jest problematyczny do obserwacji danych. Można jednak przewijać wyniki w obu okienkach (wysyłania i odbioru danych):


Bluetooth SPP Tools PRO - Keyboard mode - Przewijanie na małym ekranie


Zapewne na większych ekranach tryb ten jest baaardzo pożyteczny.


Ostatnią istotną opcją dostępną w Menu dla tego trybu pracy terminala jest ustawianie jakie bajty mają (lub nie być) dodane na końcu danych wysyłanych z terminala:


Bluetooth SPP Tools PRO - Keyboard mode - Ustawianie sufixu wysłanych danych


domyślnie ustawione jest /r/n (czyli 0d 0a), ale można wybrać tylko /n, a nawet ustawić własne wybrierając opcję Other i wpisując bajty w polu Hex value of the end flag::


Bluetooth SPP Tools PRO - Keyboard mode - Ustawianie sufixu wysłanych danych


Po kliknięciu OK, opcja zostanie zmieniona.





CMD line mode

To trzeci i ostatni z trybów pracy aplikacji umożliwiający sprawną obserwację danych wysyłanych i odbieranych:


Bluetooth SPP Tools PRO - Terminal - Tryby pracy


Tryb ten wita nas ekranem:


Bluetooth SPP Tools PRO - CMD Line mode - Ekran startowy


Na początku kliknąłem przycisk reset naszego układu testowego (koprocesora na ATmega8), który w odpowiedzi przesłał nam wzór, który będzie obliczał:


Bluetooth SPP Tools PRO - CMD Line mode - Odebrane dane


Zauważ, że na początku otrzymanych danych terminal dodał prefiks w postaci ciągu znaków Rxd> które oznaczają, że to co po nich następuje, to odebrane (na linii Rxd) znaki. Na końcu w nawiasie podana jest liczba odebranych bajtów, w tym wypadku 24 (22 znaki wzoru matematycznego i 2 znaki końca linii (0d i 0a), które ATmega także wysłała, choć ich nie widać w terminalu, a powodują przejście kursora na początek nowej linii.

Wyślijmy więc jakąś daną i niech to będzie standardowo liczba dziesięć, czyli 0a szesnastkowo:


Bluetooth SPP Tools PRO - CMD Line mode - Wysyłanie danych


W odpowiedzi od koprocesora (ATmega8) otrzymujemy wynik:


Bluetooth SPP Tools PRO - CMD Line mode - Komunikacja dwustronna


Zauważ, że na ekranie z prefiksem Txd> zapisane zostało to co wysłaliśmy do ATmega8.

Możemy oczywiście schować klawiaturę, był ekran był większy:


Bluetooth SPP Tools PRO - CMD Line mode - Pełny ekran


W tym trybie w menu są tylko opcje wcześniej już opisane:


Bluetooth SPP Tools PRO - CMD Line mode - Menu


Niestety w aktualnej wersji jak się wydaje występuje drobny błąd w liczeniu ilości wysłanych bajtów. Pomimo wysyłania jednego bajtu 0a, licznik zwiększa się o 4 bajty przy włączonym dodawaniu znaków końca linii (dwa znaki: /r/n). Podobnie przy wyłączonej opcji dodawania znaków (zero znaków dodatkowych) licznik zlicza do dwóch a powinien tylko 1 bajt:


Bluetooth SPP Tools PRO - CMD Line mode - Mały błąd







Podsumowanie

Ta aplikacja jest najlepszą (na dzień pisania tego artykułu - październik 2014r.) aplikacją terminala Bluetooth w trybie SPP (port szeregowy). Mam nadzieję, że pomimo iż w nazwie aplikacji występuje groźnie brzmiące PRO, aplikacja nie będzie PRO w pełni tego słowa znaczeniu, czyli profesjonalną co z reguły jest równoznaczne z płatną :-)

Jeżeli znasz jeszcze lepszą aplikację niż powyższa, podaj jej nazwę lub link w komentarzu oraz wyjaśnij krótko, dlaczego tak uważasz. Z chęcią ją przetestuję i opiszę.


Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

1 komentarz:

  1. Odpowiadając na wasze pytanie o lepszy terminal niż ten, to na razie nie znalazłem lepszego. Ten terminal używam sporo i zawsze spełniał moje oczekiwania. Ma właściwie wszystko co niezbędne. Jeżeli są jakieś większe potrzeby podczas testowania urządzeń, to zastosować jednak należy komputerowe wersje terminali np. Realterm.

    Ciekawe co jeszcze doda autor programu w przyszłości?

    OdpowiedzUsuń

Działy
Działy dodatkowe
Inne
O blogu




Dzisiaj
--> za darmo!!! <--
1. USBasp
2. microBOARD M8


Napisz artykuł
--> i wygraj nagrodę. <--


Co nowego na blogu?
Śledź naszego Facebook-a



Co nowego na blogu?
Śledź nas na Google+

/* 20140911 Wyłączona prawa kolumna */
  • 00

    dni

  • 00

    godzin

  • :
  • 00

    minut

  • :
  • 00

    sekund

Nie czekaj do ostatniego dnia!
Jakość opisu projektu także jest istotna (pkt 9.2 regulaminu).

Sponsorzy:

Zapamiętaj ten artykuł w moim prywatnym spisie treści.