Moduły do komunikacji szeregowej Xbee dla Raspberry Pi i nie tylko

Moduły do komunikacji szeregowej Xbee dla Raspberry Pi i nie tylko
Pobierz PDF Download icon
Opisana w numerze czerwcowym płytka rozszerzeń GPIO dla Raspberry Pi (AVT1854) ma zainstalowane gniazdo dla modułów komunikacji radiowej, zgodne pod względem rozmieszczenia wyprowadzeń z modułami komunikacyjnymi Xbee oferowanymi przez firmę Digi. Moim zdaniem te moduły stały się niekwestionowanym standardem dla komunikacji bezprzewodowej. Jak konwertery FTDI ułatwiają systemom embedded komunikację szeregową za pomocą USB, tak moduły Digi uwalniają komunikację od kabli i przenoszą ją na fale radiowe. Rekomendacje: moduły przydadzą się w aplikacjach, w których Raspberry Pi lub inny system embedded komunikuje się z otoczeniem za pomocą fal radiowych.

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.

Rysunek 1. Schemat ideowy modułu Xbee_USB

Rysunek 2. Schemat montażowy modułu Xbee_USB

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ą.

Rysunek 3. Schemat ideowy modułu Xbee_BT

Rysunek 4. Schemat montażowy modułu Xbee_BT

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ów

Xbee_USB
R1, R2: 27 Ω (SMD 0805)
R3, R4: 470 Ω (SMD 0805)
C1, C2: 47 pF (SMD 0805)
C3, C5: 100 nF (SMD 0805)
C4: 10 µF (SMD 0805)
L1: 1 µH ((SMD 0805, 50 mA)
LD1, LD2: dioda LED SMD 0805
U1: FT230XS (SSOP16)
RM: złącze szpilkowe SIP10, R=2 mm, męskie
USB: złącze Micro USB, SMD

Xbee_BT
R1, R2: 470 Ω (SMD 0805)
C3: 100 nF (SMD 0805)
C4: 10 µF (SMD 0805)
LD1, LD2: dioda LED SMD 0805
M1: moduł BT42
CFG: złącze IDC6, R=2 mm + zworki 2 mm
FR: przycisk 6×3 mm
RM: złącze szpilkowe SIP10, 2 mm, męskie

XBee_RS232
C1...C5: 100 nF (SMD 0805)
U1: MAX3232 (SO16)
RM: złącze szpilkowe SIP10, 2 mm, męskie
RS: złącze SIP3
RS232: złącze MC1.5 (opcja)

XBee_TTL
R1, R2: 100 Ω (SMD 0805)
C1: 100 nF (SMD 0805)
U2: LVT125 (SO14)
RM: złącze szpilkowe SIP10, 2 mm, męskie
RS: złącze SIP3

Xbee_GPS
R1: zwora
R2: 10 kΩ (SMD 0805)
C1: 100 nF (SMD 0805)
C2: 10 µF (SMD 0805)
C3, C4: 0,1 pF (nie montować!)
D1: MCL103A
M: moduł GPS L80
CE1: 0,1 F/5 V
ANT: złącze SMA SMD
GPS: złącze szpilkowe SIP10, 2 mm, męskie

XBee_PC
R1, R2: 27 Ω (SMD 0805)
R3...R5: 470 Ω (SMD 0805)
C1, C2: 47 pF (SMD 0805)
C3, C5: 100 nF (SMD 0805)
C4: 10 µF (SMD 0805)
C7, C8: 1 µF (SMD 0805)
L1: 1 µH (SMD 0805, 50 mA)
LD1...LD3: dioda LED SMD 0805
U1: FT230XS (SSOP16)
U2: LM1117-3.3
RES: przycisk 6×3 mm
RM: złącze szpilkowe SIP10, 2 mm, żeńskie
USB: złącze Micro USB, SMD

Xbee_Mini
R1, R2: 470 Ω (SMD 0805)
C1: 100 nF (SMD 0805)
CE1: 22 µF/6,3 V (SMD "B")
LD1, LD2: dioda LED SMD 0805
CF: złącze szpilkowe IDC4 + 2 zwory 2,54 mm
J1, J2: złącze SIP10, męskie (opcja)
RES: przycisk 6×3 mm
RM: złącze szpilkowe SIP10, 2 mm, żeńskie
RS: złącze kątowe EH4

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.

Rysunek 5. Schemat ideowy modułu Xbee_RS232

Rysunek 6. Schemat montażowy modułu Xbee_RS232

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.

Rysunek 7. Schemat ideowy modułu Xbee_TTL

Rysunek 8. Schemat montażowy modułu Xbee_TTL

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.

Rysunek 9. Schemat ideowy modułu Xbee_GPS

Rysunek 10. Schemat montażowy modułu Xbee_GPS

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.

Rysunek 11. Schemat ideowy modułu Xbee_PC

Rysunek 12. Schemat montażowy modułu Xbee_PC

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.

Rysunek 13. Schemat ideowy modułu Xbee_Mini

Rysunek 14. Schemat montażowy modułu Xbee_Mini

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.

Rysunek 15. Rozmieszczenie wyprowadzeń popularnych modułów Xbee

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

Artykuł ukazał się w
Wrzesień 2015
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik styczeń 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio styczeń 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje styczeń 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna styczeń 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich styczeń 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów