Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 30 mar 2026, o 22:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 5 kwi 2015, o 21:12 
Offline
Użytkownik

Dołączył(a): 31 gru 2013
Posty: 36
Zbananowany użytkownik

Pomógł: 0

Cześć!

Dotychczas na forum znalazłem jedynie kilka wzmianek i kilka wprowadzających w błąd wypowiedzi osób, które myślały, że BTM-222 to BT 4.0. Tymczasem coraz popularniejszy, bo wymagający znacznie mniej energii, i stosowany w nowych smartfonach Bluetooth Low Energy (BLE), zwany też BT 4.0, nie ma wielu rzeczy, takich jak choćby profil SPP. Innymi słowy, nie można w prosty sposób traktować łącza BT 4.0 jako "bezprzewodowego kabla" RS232. Pytanie, jak sobie z tym poradzić? Gdzieś tam mi się obiło o uszy, że BT 4.0 ma inną filozofię i moduł nie ma w ogóle stosu różnych protokołów, tylko wszystkie protokoły trzeba sobie zaimplementować samemu w oprogramowaniu, a moduł zapewnia jedynie warstwę fizyczną.

Jeśli coś pokręciłem, to przepraszam. W każdym razie czy jakaś dobra dusza mogłaby może udostępnić bibliotekę lub podpowiedzieć, jak ją stworzyć? Bo BT 2.1 zaraz odejdzie do lamusa i zostaniemy z ręką w... wiecie czym.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2015, o 00:46 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

Tak tak wszystko zaraz do lamusa odejdzie ;) to tak samo jak procki 8-bitowe juz chyba ze 40 lat odchodza do tego lamusa i odejsc nie moga ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2015, o 01:58 
Offline
Użytkownik

Dołączył(a): 31 gru 2013
Posty: 36
Zbananowany użytkownik

Pomógł: 0

No a w temacie wątku?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2015, o 07:58 
Offline
Nowy

Dołączył(a): 06 kwi 2015
Posty: 4
Pomógł: 0

W przypadku BLE idea komunikacji jest zupełnie inna niż w SPP. Tu mamy tzw. serwisy i charakterystyki. Całość przypomina strukturę procesora. Serwis można porównać do układu peryferyjnego procesora a charakterystykę to rejestru w tym układzie. Każdy z tych elementów ma swój identyfikator UUID składający się z 2 lub 16 bajtów czyli inaczej mówiąc nazwę. Komunikacja z urządzeniem BLE polega na zapisywaniu lub odczytywaniu wartości do/z odpowiednich charakterystyk.
Zestaw dostępnych serwisów i charakterystyk w danym urządzeniu może być różny i zależy o jego konstruktora. Część identyfikatorów UUID jest zdefiniowana w standardzie a pozostałe są tworzone na potrzeby danego produktu.
Dzięki takiemu podejściu wszystko jest bardzo uniwersalne. Aplikacja może wyszukać znajdujące się w zasięgu urządzenia oferujące np. funkcje pomiaru pulsu (serwis o danym UUID) a następnie odczytać puls (charakterystykę o określonym UUID). W praktyce do komunikacji nie są potrzebne żadne API ani specjalne biblioteki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2015, o 11:48 
Offline
Użytkownik

Dołączył(a): 31 gru 2013
Posty: 36
Zbananowany użytkownik

Pomógł: 0

fp330 napisał(a):
W praktyce do komunikacji nie są potrzebne żadne API ani specjalne biblioteki


Zaciekawiło mnie to. To jak to się przykładowo odbywa?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2015, o 14:39 
Offline
Nowy

Dołączył(a): 06 kwi 2015
Posty: 4
Pomógł: 0

MichalPL napisał(a):
To jak to się przykładowo odbywa?

Standard BLE zakłada możliwość stworzenia różnych konfiguracji w jakich przesyłane są dane. Zwykle jednak mamy do czynienia z dwoma rodzajami urządzeń "peripherial" i "central"
Do pierwszej grupy należą wszelkiego rodzaju tagi RFID, czujniki, termometry, pulsometry itp. Druga grupa to komputery tablety, smatfony.
Urządzenie "peripherial" zwykle co około 1-3 sek wysyła informacje o swoim istnieniu (ramkę rozgłoszeniową). Zawiera ona podstawowe informacje o urządzeniu np. adres MAC, przyjazną nazwę, suportowane serwisy itp.
"Central" w po włączeniu skanowania odbiera te informacje. Może ono również nawiązać połączenie z danym urządzeniem "peripherial" .
Po nawiązaniu połączenia realizowany jest model komunikacji klient-serwer. Czyli klient wysyła do serwera np. żądanie odczytu jakieś charakterystyki. Serwer to realizuje i odsyła odczytaną wartość lub numer błędu.
Najczęściej urządzenia "peripherial" pełnią rolę serwera a urządzenia "central" klienta.
Wszystko wygląda dość skomplikowanie. W rzeczywistości jest tylko kilka prostych żądań jakie można wysłać do serwera. W praktyce cała komunikacja polega jedynie na odpowiednim posługiwaniem się tymi rozkazami.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2015, o 16:03 
Offline
Użytkownik

Dołączył(a): 31 gru 2013
Posty: 36
Zbananowany użytkownik

Pomógł: 0

Dziękuję. A czy pokierowałbyś mnie gdzieś do jakichś konkretów, to znaczy do przykładowych kodów, żeby można było zacząć zabawę?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2015, o 16:45 
Offline
Nowy

Dołączył(a): 06 kwi 2015
Posty: 4
Pomógł: 0

Musisz określić co dokładnie chcesz zrobić.
1. Czy masz jakieś urządzenie BLE ?
2. Czy chcesz połączyć się z urządzeniem BLE z PC, tabletu/smarfona ?
Jeśli tak to jaki system operacyjny jest zainstalowany na tym PC ?
3. Czy chcesz zrobić urządzenie BLE ?
Jeśli tak to jakiego typu ?
4. Czy chcesz dodać obsługę BLE do jakiegoś układu z uP ?
Jeśli tak to ile danych i jak często chcesz przesyłać ?
Czy urządzenie ma pracować jako "central" czy jako "peripherial" ?
Jakimi zasobami dysponuje ten uP ?
5. Jaką masz wiedzę z dziedziny programowania ?
itd...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2015, o 18:05 
Offline
Użytkownik

Dołączył(a): 31 gru 2013
Posty: 36
Zbananowany użytkownik

Pomógł: 0

fp330 napisał(a):
Musisz określić co dokładnie chcesz zrobić.


Urządzenie, które będzie w stanie informować komputer lub smartfon o swoim stanie, najlepiej nie ciągle, a jedynie na żądanie. Chodzi o przesłanie wartości paru zmiennych.

Cytuj:
1. Czy masz jakieś urządzenie BLE ?


Tak, 2 urządzenia BlueGiga - USB dongle do PC: BLED112-V1 oraz moduł: BLE112-A-V1

Cytuj:
2. Czy chcesz połączyć się z urządzeniem BLE z PC, tabletu/smarfona ?
Jeśli tak to jaki system operacyjny jest zainstalowany na tym PC ?


Win 7 64-bit, w przyszłości także smartfon z Androidem

Cytuj:
3. Czy chcesz zrobić urządzenie BLE ?
Jeśli tak to jakiego typu ?


Jak wyżej.

Cytuj:
4. Czy chcesz dodać obsługę BLE do jakiegoś układu z uP ?
Jeśli tak to ile danych i jak często chcesz przesyłać ?


Tak. Myślę, że w razie konieczności ograniczania się, wystarczyłoby mi przesłanie kilkudziesięciu bajtów raz czy dwa razy na dobę.

Cytuj:
Czy urządzenie ma pracować jako "central" czy jako "peripherial" ?


Peripheral

Cytuj:
Jakimi zasobami dysponuje ten uP ?


Mogę sobie pozwolić na zastosowanie w projekcie zupełnie dowolnej Atmegi lub ATXMegi, w razie konieczności nawet z zewnętrznym RAM-em przez XMEM.

Cytuj:
5. Jaką masz wiedzę z dziedziny programowania ?
itd...


Znam dobrze C, C++, Javę i PHP.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2015, o 19:20 
Offline
Nowy

Dołączył(a): 06 kwi 2015
Posty: 4
Pomógł: 0

Nie wiem czy z BLE112-A-V1 da się zrobić urządzenie typu "peripherial" Wymaga to zaimplementowania w module określonej funkcjonalności. Nie da się tego zrealizować zewnętrznym uP. Odpowiedni kod musi znajdować się w module.
Nie jest wykluczone, że producent przygotował jakieś narzędzia do tworzenia takiego kodu i wpisywania go do modułu. Niestety zwykle jest tak, że wszelkie takie ułatwienia pociągają za sobą mniejszą uniwersalność i brak efektywności jeśli chodzi o pobór prądu. Stworzenie od podstaw dobrze działającego urządzenia nie jest proste.
Te moduły firmy Bluegiga nie należą do najtańszych. Czy w podobnej cenie nie ma na rynku gotowego urządzenia BLE realizującego taką funkcjonalność jaką chcesz osiągnąć ?
Zwykle urządzenia BLE pobierają tak mało prądu, że do ich zasilania wystarczy mała zegarkowa bateria. Zewnętrzny procesor ATmega "zabija" tą ideę. Czy urządzenie jakie planujesz zrobić ma być zasilane taką małą baterią ?

Z napisaniem programu na Windows do komunikacji z urządzeniem BLE za pomocą modułu BLED112-V1 raczej nie będziesz miał problemów.
Jeśli chodzi system Android to jest to jest trochę gorzej. Zdarzają się błędy w obsłudze BLE. Różne urządzenia działają różnie. Wielu rzeczy przewidywanych przez standard nie da się zrobić. Często pojawia się problem z jednoczesnym działaniem WiFi i Bluetooth.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 paź 2015, o 11:59 
Offline
Nowy

Dołączył(a): 15 paź 2014
Posty: 4
Pomógł: 0

A mógłbyś coś podpowiedzieć odnośnie komunikacji BLED112-V1 lub innego adaptera z komputerem? Zbierałem już trochę informacji na temat obsługi BLE i wyczytałem, że Win8 ma już ją wewnętrznie zaimplementowaną w przeciwieństwie do Win7. Tylko co nam to daje? W opisie BLED112-V1 czytamy, że jest on wykrywany jako VCP i co dalej? Przecież chyba nie możemy przez ten VCP przesyłać surowych danych, bo potrzebujemy konkretne UUID, nie? Mi w moim urządzeniu zależy na emulowaniu komunikacji szeregowej - PC coś nada, ja odpowiem i procesor idzie spać. Zamierzam do tego użyć BlueNRG-MS od ST, aktualnie posiadam shieldy X-NUCLEO-IDB04A1 oraz X-NUCELO-IDB05A1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO