Moduły rozszerzeń do komputerów jednopłytkowych (1). Moduły komunikacyjne

Moduły rozszerzeń do komputerów jednopłytkowych (1). Moduły komunikacyjne
Pobierz PDF Download icon
Konsumenckie komputery jednopłytkowe to niedrogie platformy, pozwalające w łatwy sposób zrealizować wiele ciekawych projektów. Ich zaletą jest szybkość integracji i tworzenia nowych rozwiązań, co stało się możliwe dzięki powszechności i uniwersalności tych platform oraz dostępności gotowych modułów. I o ile część pomysłów da się wykonać bezpośrednio w oparciu na samym komputerze jednopłytkowym, co ciekawsze rozwiązania wymagają zastosowania dodatkowych elementów sprzętowych. Na szczęście, na rynku pojawiło się mnóstwo różnorodnych bloków sprzętowych, często oferowanych wraz z bibliotekami programistycznymi, które zdecydowanie skracają czas potrzebny na przygotowanie kompletnego projektu.

Komputerki, takie jak Raspberry PI są chętnie wybierane przez elektroników, którzy chcą zaoszczędzić czas potrzebny na samodzielne projektowanie systemu komputerowego oraz przez informatyków, którzy starają się wkroczyć w świat elektroniki. Bywa też, że są używane przez osoby wywodzące się ze świata sztuki, których wiedza na temat sprzętu jest minimalna i umożliwia jedynie zmontowanie zestawu z gotowych elementów. W każdej z tych sytuacji projekt staje się ograniczony właśnie przez dostępność modułów, przeznaczonych do podłączenia do danego komputera. Część z modułów została przystosowana do konkretnego modelu komputera i choć nierzadko da się je wykorzystać z innymi platformami, nie będą do nich dobrze dopasowane mechaniczne. Część natomiast to moduły uniwersalne, które podłącza się np. za pomocą kilku przewodów i które oferowane są z łatwymi w użyciu, również uniwersalnymi bibliotekami. W niniejszym artykule dokonujemy przeglądu modułów oferowanych na rynku, zaczynając od tych przeznaczonych do komunikacji i koncentrują się na zgodności z Raspberry PI.

Rodzaje modułów

Gotowe moduły do komputerów jednopłytkowych można podzielić na dwie podstawowe kategorie: moduły mechaniczne i elektroniczne lub elektro mechaniczne. Te pierwsze obejmują wszelkiego rodzaju obudowy (fotografia 1) i podstawki, które ułatwiają montaż i pozwalają chronić urządzenie. Bywają dostępne w wersjach z uszczelnieniami i w wykonaniach z różnych materiałów. Nie będziemy ich opisywać, gdyż dobiera się je przede wszystkim na podstawie wyglądu.

Drugą grupę wypada podzielić na podkategorie, zależną od rodzaju interfejsu, przez jaki są podłączane. Moduły specjalizowane, przystosowane do konkretnego komputera, podłączane są najczęściej przez linie GPIO, za pomocą złącza z goldpinami. W przypadku układów wymagających nietypowych, np. szybszych interfejsów, wykorzystuje się dodatkowe wyprowadzenia konkretnych komputerów jednopłytkowych. Dla Raspberry PI dobrym przykładem są interfejsy DSI do podłączania wyświetlacza i CSI do komunikacji z kamerą. RPI ma też wbudowane wyprowadzenia JTAG. W końcu, moduły można podłączać też z użyciem zewnętrznych portów, takich jak USB, a nawet wyjścia multimedialne, z tym, że te ostatnie w ogólności nie wymagają ?adnego dodatkowego programowania, więc nie będziemy się na nich koncentrować. Moduły podłączane przez sieć są z natury rzeczy samodzielnymi urządzeniami i można ich używać w połączeniu z dowolnymi komputerami.

Moduły można też podzielić na kategorie ze względu na ich funkcje. Wyróżnić można moduły:

− komunikacyjne,
− czujnikowe,
− wyświetlacza i inne optoelektroniczne,
− klawiaturowe,
− kamery,
− do sterowania silnikami i serwonapędami,
− przekaźnikowe,
− ekspandery i multipleksery wyprowadzeń,
− karty dźwiękowe,
− przetworniki,
− pozostałe, obejmujące m.in. baterie, kalendarze i zegary czasu rzeczywistego, moduły wykonawcze oraz konwertery poziomów logicznych.

 Dostępne są też moduły łączące funkcje dwóch lub większej liczby powyżej wymienionych rodzajów bloków. Natomiast biblioteki do modułów najczęściej oferowane są dla języków C lub C++ i Python, przy czym w przypadku Raspberry PI wydaje się dominować właśnie Python.  Dosyć łatwo jest także wykorzystywać z Raspberry PI liczne moduły zaprojektowane z myślą o Arduino, czasem z użyciem prostych przejściówek mechanicznych czy elektrycznych.

Moduły komunikacyjne

RS232 Istnieje wiele uniwersalnych modułów do realizacji komunikacji w standardzie RS-232, który świetnie nadaje się do łączności ze starszymi urządzeniami wykorzystującymi 12-woltowy interfejs szeregowy. Pasują one zarówno do Raspberry PI, jak i Arduino. Przykładem takiego modułu jest przedstawiony na fotografii 2 bloczek, którego wyprowadzenia bezpośrednio pasują do formatu wykorzystywanego przez produkty z rodziny XBee. Koszt takiego modułu to około 50…75 złotych. Podobny moduł, ale bezpośrednio dostosowany wymiarami do Raspberry PI, pokazano na fotografii 3.

RS485 Jeśli RS-232 to za mało, można poszukać modułu RS-485. Dobrym przykładem jest przedstawiony na fotografii 4 model DEV-13706, który można nabyć za około 80 zł. Trzeba jednak wziąć pod uwagę, że nie ma on wyprowadzonego mechanicznego portu, używanego typowo w urządzeniach z RS-485. W razie potrzeby można go samodzielnie dolutować, a w przeciwnym razie połączeń z interfejsem należy dokonywać za pomocą goldpinów.

Tańszym rozwiązaniem będzie użycie jednego z uniwersalnych modułów RS-485, opartych na układzie MAX-485, takich jak na fotografii 5. Można je nabyć już za około 10 zł.

 

Sieci komórkowe

Raspberry PI świetnie nadaje się do tworzenia małych, zdalnych systemów, umieszczonych w trudno dostępnych lokalizacjach. Wtedy dobrym sposobem komunikacji z otoczeniem jest użycie interfejsu GSM. Tanie moduły tego typu, korzystające z sieci 2G i GPRS (fotografia 6), można nabyć już za około 250...260 zł. Jeśli konieczna jest szybsza transmisja, można poszukać modułu 3G, czego dobrym przykładem jest płytka z fotografii 7. Niestety koszt takiego rozwiązania znacznie rośnie. Przedstawiony moduł kosztuje niecałe 700 zł.

Znacznie tańszym, ale mniej eleganckim rozwiązaniem będzie użycie modemu na USB. Co więcej, daje to możliwość skorzystania z sieci LTE. Raspberry PI poprawnie działa m.in. z modemem Huawei E3372 (fotografia 8), z tym że rozwiązanie to zajmuje dodatkowy port USB i mocno wystaje poza obrys samego komputera. Trzeba też pamiętać, że komunikacja przez sieć komórkową wiąże się z chwilowymi, dużymi poborami prądu. Należy się upewnić, że zasilacz Raspberry PI jest wystarczająco wydajny oraz że używana wersja RPI pozwala na dostarczenie wystarczającego prądu na złącza USB. Niekiedy rozwiązaniem tego problemu jest dołączenie drugiego zasilacza za pomocą odpowiedniego rozdzielacza, bezpośrednio do modemu USB. Niestety, to bardzo nieeleganckie rozwiązanie, które może powodować problemy z działaniem całego komputera.

Pozycjonowanie satelitarne

Moduły GSM są często doposażone w odbiornik GPS, a czasem nawet GPS/GLONASS. Dobrym przykładem jest przedstawiony na fotografii 9 produkt z modułem SIM908 firmy SIMcom. Jego cena to ok. 400…450 zł. Jeśli potrzebny jest tylko GPS, a koszty są bardzo istotne, tańszym rozwiązaniem będzie użycie odbiornika bez funkcji komunikacji komórkowej, takiego jak produkowany przez firmę Adafruit (fotografia 10). Bazuje on na układzie MTK3339 i ma wbudowaną antenę, a jego koszt to ok. 200 zł. Nieco bardziej zaawansowaną wersją będzie inny moduł GSM firmy Adafruit, wyposażony dodatkowo w zegar czasu rzeczywistego oraz miejsce na baterię podtrzymującą pamięć tego zegara. Moduł ten (fotografia 11) jest trochę droższy i większy.

Komunikacja radiowa ISM

Komunikację radiową na krótsze odległości można realizować za pomocą modułów pracujących w paśmie ISM. Prosty uniwersalny moduł radiowy (fotografia 12) dla częstotliwości 2,4 GHz można nabyć już za 8 złotych. Najczęściej bazują one na układzie nRF24L01, a komunikacja z nimi przebiega poprzez interfejs SPI. Podzespół ten będzie pasował nie tylko do RPI, ale do wszelkich komputerów z interfejsem SPI. Jako ciekawostkę można podać m.in. alternatywny moduł tego samego typu, który kształtem przypomina skrzydło motyla (fotografia 13). Bazuje on na układzie RFM75, a jego deklarowany, maksymalny zasięg transmisji to ok. 70 m. Cena wynosi niecałe 30 zł.

W podobnej cenie można też nabyć zestaw w postaci nadajnika i odbiornika (fotografia 14), pracujących na nielicencjonowanej częstotliwości 433 MHz.

Oprócz uniwersalnych modułów radiowych, na rynku znaleźć można też układy z zaimplementowaną obsługą konkretnych protokołów komunikacyjnych, takich jak np. LoRaWAN. Mogą one działać na częstotliwości 433 MHz lub 868 MHz. Często mają postać modułów kompatybilnych z XBee, ale dostarczane są wraz z przejściówką, która pozwala na wygodne podłączenie ich do Raspberry PI. Zestawy tego typu kosztują ok. 400...450 zł. Zestaw dla częstotliwości 433 MHz pokazano na fotografii 15, a dla 868 MHz na fotografii 16. Ich zaletą jest duży zasięg transmisji.

Bluetooth

Jeśli wymagany zasięg komunikacji jest znacznie mniejszy, można pomyśleć o komunikacji radiowej przez Bluetooth. Jeśli nie mamy Raspberry PI 3, najłatwiej ją zrealizować z użyciem niedrogich modułów BT na USB (fotografia17). Koszt takiego modemu wynosi kilkanaście złotych, a jego rozmiary są na tyle nieduże, że nie sprawia problemu fakt, że wystają poza obudowę. Te najpowszechniej dostępne są oparte na układach firmy CSR – często zgodnych z BT 4.0 +LE, co ma znaczenie przy tworzeniu urządzeń typu Bluetooth Smart i Bluetooth Smart Ready. Niestety moduły te zajmują cenne gniazda USB i dlatego niekiedy korzystniejszym rozwiązaniem będzie użycie modułu w postaci płytki drukowanej, połączonej przez UART z GPIO Raspberry PI. Te pasują też do Arduino i dowolnych innych komputerów z UART-em. Najtańsze z nich (fotografia18) kosztują kilkanaście złotych i są oparte na układzie CC2540 lub CC2541 firmy Texas Instruments.

Wi-Fi

Podobnie wygląda kwestia interfejsów Wi-Fi. Jeśli obsługa 802.11n nie jest wbudowana, można podłączyć moduł w postaci miniaturowej karty na USB (fotografia 19) lub płytki komunikującej się przez UART (fotografia 20). Te pierwsze najczęściej bazują na którejś wersji układu RTL8188 i mają pojedynczą wbudowaną antenę, choć znaleźć można też modele z dwiema antenami, co teoretycznie pozwala na transmisję wielotorową do 300 Mb/s, zgodnie z IEEE802.11n. W praktyce jednak mało który sprzedawca jest w ogóle w stanie podać klientowi informacje na temat dokładnej odmiany układu RTL8188, zainstalowanego w module, co czasem skutkuje koniecznością ręcznego dobierania sterowników metodą prób i błędów. Natomiast tanie moduły w postaci płytek drukowanych są najczę?ciej oparte na?uk?adzie ESP8266 i?kompatybilne z?Arduino. Bardziej zaawansowanym i?znacznie dro?szym modu?em Wi-Fi dla Raspberry PI będzie model ATWINC1500 SPI/UART+ (ściej oparte na układzie ESP8266 i kompatybilne z Arduino. Bardziej zaawansowanym i znacznie droższym modułem Wi-Fi dla Raspberry PI będzie model ATWINC1500 SPI/UART+ (fotografia 21), opracowany przez Adafruit. Ma złącze antenowe u.FL oraz można się z nim komunikować m.in. przez protokół SPI. Obsługuje też przerwania. Koszt takiego modułu to ok. 130 zł.

ZigBee

Pozostało jeszcze wspomnieć o komunikacji radiowej zgodnej z protokołem ZigBee. Moduły tego typu do Arduino są najczęściej produkowane w formacie XBee i kosztują niecałe 200 zł. Dostępne są do nich przejściówki dla Raspberry PI oraz biblioteki programistyczne. Zmontowany zestaw tego typu został pokazany na fotografii 22.

NFC i RFID

Do interfejsów radiowych należy także zaliczyć NFC, którego wykorzystanie w połączeniu z Raspberry PI może prowadzić do powstania bardzo ciekawych projektów. Moduł tego typu został opracowany m.in. przez Farnell Element14 we współpracy z NXP i bazuje na układzie PN512 (fotografia 23). Komunikuje się z komputerem za pomocą SPI lub I2C, przy czym dostępne obecnie sterowniki pozwalają jedynie na użycie SPI. Pozwala realizować czytniki, komunikację P2P oraz symulować działanie kart NFC. Jest też w pełni kompatybilny ze standardem kart RFID MIFARE Ultralight. Kosztuje ok. 90 zł, przy czym na rynku można znaleźć tańsze i droższe zamienniki z układem PN532 (fotografia 24).

 

Wbrew pozorom, moduły RFID dla Raspberry PI wcale nie są tańsze. Najczęściej mają postać modułów XBee i wymagają przejściówki do podłączenia do RPI. Model pracujący ze znacznikami 125 kHz (fotografia 25) można kupić za około 180 zł, a odczytujący znaczniki 13,56 MHz (fotografia 26) za niecałe 250 zł + koszty przejściówki. Przykład zmontowanego zestawu z Raspberry Pi pokazano na fotografii 27.

Podsumowanie

Oprócz opisanych modułów komunikacyjnych, na rynku znaleźć można też różnorodne płytki kompatybilne z Arduino. Wiele z nich będzie poprawnie działało z Raspberry PI, ale czasem może to wymagać większego nakładu pracy od strony programowej. Dużo zależy od dostępności sterowników i bibliotek dla wybranego języka programowania. Niemniej zaprezentowany przegląd pozwala zorientować się w kosztach rozbudowy komputera jednopłytkowego o różnorodne interfejsy komunikacyjne i wybrać ten optymalny. Natomiast samo poszukiwanie modułów warto rozpocząć w sklepach z komponentami do Raspberry PI, albo choćby w sklepie AVT, w którym dostępnym jest wiele autorskich projektów o nietypowych cechach, a także same płytki drukowane, pozwalające na indywidualny dobór alternatywnych komponentów.

Marcin Karbowniczek, EP

Artykuł ukazał się w
Elektronika Praktyczna
lipiec 2016
DO POBRANIA
Pobierz PDF Download icon
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik grudzień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje listopad - grudzień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna grudzień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich styczeń 2025

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów