Oferta firmy Digi w zakresie modułów do komunikacji bezprzewodowej stale się rozszerza. Zastosowanie gotowego modułu uwalnia projektanta od konieczności projektowania części radiowej i aplikacji wybranego protokołu komunikacyjnego, co znacząco skraca czas opracowania urządzenia.
Moduły Xbee, ZigBee oraz najnowszy Wi-Fi dają wybór sposobu realizacji transmisji bezprzewodowej. W zależności od wersji modułu, jest możliwa komunikacja na odległość od kilkudziesięciu metrów do kilku kilometrów. Moduły Xbee i Zigbee, oprócz realizacji łączności punkt-punkt, umożliwiają budowę złożonej, wielopunktowej sieci radiowej z całą infrastrukturą komunikacyjną, taką jak routery, koordynatory itd.
Wszystkie moduły radiowe mają tak samo rozmieszczone wyprowadzenia, co ułatwia rozbudowę lub zmianę standardu komunikacji bez konieczności wykonywania zmian na płytce drukowanej.
Wyprowadzenia i konstrukcja mechaniczna stała się nieformalnym standardem - dostępne są także moduły innych producentów zgodne mechanicznie np. HC06 z interfejsem Bluetooth oraz zamienniki modułów Digi, uproszczone funkcjonalnie i nieco tańsze firmy Maxstream.
W zależności od oczekiwanego zasięgu komunikacji w ofercie Digi dostępne są moduły z serii Pro o podwyższonej mocy nadajnika. Każdy z modułów ma możliwość wyboru typu anteny, od wbudowanej (drutowej lub paskowej - bardzo wygodnej w zastosowaniach, ale o najmniejszym zasięgu i narzucającej pewne ograniczenia na konstrukcję urządzenia), po zewnętrzne, z dostępnymi kilkoma rodzajami typowych złącz antenowych (UFl, RPSMA).
Możliwy w zależności od warunków środowiskowych jest też dobór pasma radiowego: 868 MHz, 900 MHz, 2,4 GHz. Większość z modułów ma wbudowane i konfigurowalne wejścia/wyjścia analogowe oraz cyfrowe umożliwiające budowanie sieci monitoringu bez konieczności użycia dodatkowego sprzętu.
Korzystając ze standardu wyprowadzeń Xbee opracowałem kilka dodatkowych modułów zgodnych mechanicznie, a umożliwiających transmisję pomiędzy Raspberry Pi, Launchpadem (moduł PWR_Pack), AVTduino, STK_Mega256A, komputerem PC oraz wszystkimi płytkami zgodnymi z Xbee.
Dodatkowe moduły pozwalają także na zapanowanie nad nadmierną liczbą płytek z różnorodnymi konwerterami transmisji szeregowej, dostosowanych tylko do jednego standardu płytki uruchomieniowej np. Arduino. W skład zestawu oprócz "fabrycznych" modułów Xbee wchodzą:
- Xbee_USB umożliwiający realizację konwertera UART-USB.
- Xbee_BT umożliwiający realizację komunikacji w standardzie Bluetooth, przy wykorzystaniu nowoczesnego modułu RN42 Microchip.
- Xbee_RS232 umożliwiający realizację komunikacji w standardzie RS232.
- Xbee_TTL konwerter poziomów umożliwiający bezpośrednie dołączenie do systemów 3,3 V np. Raspberry Pi z systemami TTL np. AVTduino.
Dodatkowo opracowanym modułem, który nie służy do realizacji komunikacji szeregowej, jest Xbee_GPS z odbiornikiem sygnału GPS Quectel L80. Moduł ma wbudowaną antenę oraz współpracuje z anteną zewnętrzną.
Wykorzystanie standardu Xbee umożliwia rozszerzenie funkcjonalności płytek zgodnych z Xbee o możliwość odbioru sygnałów GPS. Całość zamykają płytki umożliwiające współpracę z komputerem PC oraz prototypowanie układów z Xbee na płytkach stykowych lub zastosowanie w systemach bez podstawki Xbee:
- Xbee_PC umożliwia komunikację pomiędzy PC, a dowolnym z opisanych modułów za pomocą konwertera USBCOM FT230XS, (moduł ma zasilacz 3,3 V). Jego podstawową funkcją jest umożliwienie konfiguracji modułów oraz realizacja transmisji PC - zestaw uruchomieniowy. Dwa takie moduły umożliwiają zestawienie linku radiowego (COM) pomiędzy komputerami PC.
- Xbee_Mini umożliwia połączenie modułów poprzez port szeregowy (3,3 V) z płytkami uruchomieniowymi bez gniazda Xbee np. STM32. Dodatkowo, moduł ułatwia wykorzystanie Xbee na standardowych płytkach prototypowych. Na złącza w rastrze 2,54 mm wyprowadzone są wszystkie sygnały Xbee, co po odpowiedniej konfiguracji pozwala na zapoznanie się z rozszerzonymi funkcjonalnościami modułów (np. zdalny monitoring w sieci).
Schemat ideowy modułu Xbee_USB pokazano na rysunku 1, natomiast montażowy na rysunku 2. Jest to podstawowy moduł, konwertera FT230XS USBUART (3.3V) umożliwiający dołączenie np. Raspberry Pi do komputera PC (praca z zdalna z konsolą) lub realizację transmisji szeregowej poprzez USB dla płytek Launchpad przy użyciu kitu AVT5476. Schemat jest typowy, dla potrzeb kontroli transmisji zastosowano dwie diody LED świecące w tak sygnałów RXD i TXD.
Wykaz elementówXbee_USB Xbee_BT XBee_RS232 XBee_TTL Xbee_GPS XBee_PC Xbee_Mini |
Drugim modułem jest Xbee_BT umożliwiający realizację transmisji w standardzie Bluetooth z zastosowaniem modułu RN42 firmy Microchip. Schemat ideowy modułu Xbee_BT pokazano na rysunku 3, a montażowy na rysunku 4.
Aplikacja jest typowa: diody świecące LD1 i LD2 wskazują status pracy modułu, złącze CFG umożliwia konfigurowanie modułu RN42, zwory AD/AMM umożliwiają wybór trybu automatycznej detekcji urządzenia BT, zwora B9600 ustawia prędkość komunikacji z modułem na 9600 b/s, a przycisk FR umożliwia powrót do fabrycznej konfiguracji modułu.
Szczegółowy opis konfiguracji i funkcji RN42 zamieszczono w dokumencie RN-BT-DATA-UG dostępnym na firmy Microchip. Zapoznanie się z nim jest konieczne do poprawnego skonfigurowania RN42 pod kątem własnych aplikacji.
Trzecim modułem jest Xbee_RS232, który umożliwia realizację transmisji szeregowej w tandardzie RS232. Schemat ideowy modułu Xbee_RS232 zamieszczono na rysunku 5, a montażowy na rysunku 6. Układ zawiera konwerter poziomów MAX3232 z 3,3 V do wymaganego przez RS232.
W zależności od preferencji, jest możliwy montaż dla sygnałów RS232 złącza szpilkowego SIP3, kątowego EH3 lub wygodnego złącza śrubowego - rozłączanego MC1.5 o rastrze 3,81 mm.
Czwartym konwerterem jest Xbee_TTL, umożliwiający dopasowanie układów CMOS 3,3 V i TTL. Dwukierunkową konwersję zrealizowano na układzie LVT125. Moduł umożliwia np. bezpośrednie przyłączenie portów szeregowych Arduino do Raspberry Pi lub Launchpada. Schemat ideowy modułu zamieszczono na rysunku 7, a montażowy na rysunku 8.
Ostatnim modułem zgodnym z podstawką Xbee jest moduł odbiornika GPS, dzięki któremu jest możliwe dodanie funkcjonalności GPS do każdego systemu zgodnego z XBee. Schemat ideowy modułu Xbee_GPS przedstawiono na rysunku 9, a montażowy na rysunku 10.
Moduł jest oparty o odbiornik GPS typu L80 firmy Quectel. Podstawową aplikację uzupełniają kondensator podtrzymujący CE1 (Super-CAP) z obwodem ładowania złożonym z diody D1 i rezystora R2. Odbiornik GPS typu L80 ma wbudowaną antenę, która sprawdza się w zastosowaniach "terenowych".
Jeżeli układ będzie wykorzystany wewnątrz budynków lub poziom sygnału będzie nieodpowiedni do synchronizacji, jest możliwe zastosowanie anteny zewnętrznej dołączonej do złącza SMA. Moduł automatycznie rozpoznaje przyłączenie anteny zewnętrznej sygnalizując to odpowiednim komunikatem statusu.
Oprogramowanie modułu jest zgodne ze standardem NMEA. Szybkie sprawdzenie modułu jest możliwe we współpracy z komputerem PC za pomocą adaptera Xbee_PC. Dla dekodowania danych można użyć programu np. PolarView.
Podobnie jak dla RN42, przed zastosowaniem we własnej aplikacji konieczne jest zapoznanie się z notą katalogową L80 ze strony Quectel. Ciekawym przykładowym zastosowaniem modułu może być synchronizacja czasu Raspberry Pi z dostępnym w systemie GPS.
Dla ułatwienia eksperymentów z modułami Digi i GPS opracowane zostały dwa pomocnicze interfejsy sprzętowe Xbee_PC i Xbee_Mini, których schematy ideowe i montażowe pokazano na rysunkach od 11 do 14. Zadaniem Xbee_PC jest umożliwienie bezpośredniej komunikację pomiędzy PC, a dowolnym z opisanych modułów za pomocą konwertera USB-COM typu FT230XS.
Ułatwia to konfigurowanie modułów Xbee (oprogramowanie Digi - XCTU), BT, GPS oraz realizację transmisji radiowej pomiędzy płytkami uruchomieniowymi, a PC podczas zdalnej akwizycji danych pomiarowych. Moduł ma wbudowany zasilacz 3,3 V dla modułu Xbee, sygnalizację transmisji za pomocą diod LED, poziomu sygnału RSSI (jeżeli moduł udostępnia) oraz przycisk zerowania.
Dwa moduły umożliwiają wykonanie linku radiowego (COM) pomiędzy komputerami PC przy wykorzystaniu modułów Xbee lub BT. Moduł Xbee_Mini umożliwia połączenie modułów Xbee poprzez port szeregowy (CMOS 3,3 V) z płytkami uruchomieniowymi bez gniazda Xbee np. STM32.
Sygnał portu szeregowego i zasilania jest doprowadzony do złącza RS, zwory CF umożliwiają przełączenie sygnałów RXD/ TXD, aby możliwe było zastosowanie typowego kabla SIP4 łączącego "na wprost", 1:1. Układ uzupełniają diody sygnalizujące załączenie zasilania i poziom sygnału radiowego. Przycisk RES służy do restartu modułu Xbee. Moduł ułatwia też zastosowanie Xbee na standardowych płytkach prototypowych.
Dla ułatwienia aplikacji modułów na rysunku 15 pokazano zaczerpnięty z dokumentacji firmy Digi wykaz wyprowadzeń dla najpopularniejszych typów modułów. Wszystkie opisane moduły wykorzystują tylko wyprowadzenia DOUT/DIN, zasilanie VCC/GND oraz nRES, jeżeli konieczny do poprawnej pracy. Pozostałe wyprowadzenie są niepodłączone.
O ile używanie modułów opracowanych na potrzeby komunikacji szeregowej nie wymaga szerszego opisu, to moduły firmy Digi wymagają kilku uwag:
- Wszystkie moduły wymagają zasilania 3,3 V. Pobór prądu jest zależny od typu modułu i wynosi od kilku do kilkuset mA (moduły Pro o zwiększonym zasięgu).
- Sygnały I/O zgodne są ze standardem CMOS 3,3 V. Przekroczenie dopuszczalnego napięcia spowoduje uszkodzenie GPIO. Sygnały analogowe I/O, jeżeli są dostępne, wymagają poprawnego skonfiguowania i zachowania zakresu napięcia wejściowego. Domyślnie jest to 0...2 V.
- Podczas zakupu modułów należy zwrócić uwagę, że moduły Xbee dostępne są z różnym oprogramowaniem: seria "1" umożliwia tylko i wyłącznie zestawienie łącza punkt-punkt bez późniejszej możliwości zmiany na wersję sieciową, seria "2" umożliwia realizację dowolnej topologii sieci. Niestety, nie jest możliwa współpraca modułów serii "1" i "2" nawet podczas realizacji transmisji punkt-punkt. Oczywiście, moduły z serii "1" są tańsze i wystarczające w większości zastosowań.
- Moduły Xbee są domyślnie skonfigurowane do transmisji szeregowej 9600, 8, n, 1.
- Dwa moduły umożliwiają bezpośrednią transmisję radiową pomiędzy dwoma urządzeniami bez dodatkowej programowej ingerencji w konfigurację modułu.
- Dla zmiany konfiguracji modułu Xbee lub zmiany firmware z poziomu PC konieczne jest oprogramowanie XCTU dostępne na stronie internetowej Digi Inc.
W celu wykonania własnej aplikacji jest konieczna szczegółowa analiza dokumentacji modułu Xbee. Polecam też książkę "Building Wireless Sensor Networks" Roberta Faludi wyd. O’Reilly, w której "łopatologicznie" opisano zastosowanie modułów Xbee we współpracy z Arduino. Pozwala to na w miarę bezbolesne zapoznanie się z ich możliwościami i sposobem zastosowania we własnych urządzeniach.
Podsumowanie
Użytkowanie modułów jest łatwe. Należy tylko wybrać współpracujące platformy uruchomieniowe, zestawić moduły zapewniające wymagany standard komunikacji, a czasem zaglądnąć do odpowiedniej dokumentacji.
Adam Tatuś, EP