LoRa w praktyce (1) CR BW [ Hz ] Modulacja

Podobne dokumenty
FSK i LoRa w zestawach startowych STMicroelectronics

rh-serwer Sterownik główny (serwer) systemu F&Home RADIO.

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

rh-serwer 2.0 LR Sterownik główny (serwer) systemu F&Home RADIO. Wersja LR powiększony zasięg.

dokument DOK wersja 1.0

INSTRUKCJA OBSŁUGI PROGRAMU INSTAR 1.0

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

1 Moduł Konwertera. 1.1 Konfigurowanie Modułu Konwertera

CENTRALA STERUJĄCA SMART CONTROL

Instrukcja obsługi. Centrala radiowa NETINO NRU-01. v r.

F&F Filipowski Sp. J Pabianice, ul. Konstantynowska 79/81 tel KARTA KATALOGOWA

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Uniwersalny modem radiowy UMR433-S2/UK

Konfigurowanie modułu BK9050 firmy Beckhoff wprowadzenie

Instytut Teleinformatyki

Instrukcja instalacji i obsługi modemu ED77 pod systemem operacyjnym Windows 98 SE (wydanie drugie)

F&F Filipowski Sp. J Pabianice, ul. Konstantynowska 79/81 tel KARTA KATALOGOWA

1 Moduł Bramki xcomfort

Często zadawane pytania

Instrukcja do oprogramowania ENAP DEC-1

To jeszcze prostsze, MMcc1100!

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

1 Moduł Bramki xcomfort 3

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

GRM-10 - APLIKACJA PC

Yaesu FTdx Konfiguracja do pracy emisjami cyfrowymi za pomocą wbudowanego interfejsu USB z wykorzystaniem wewnętrznej karty dźwiękowej.

1 Moduł Neuronu Cyfrowego SM

Uniwersalny modem radiowy UMR433-S1-Z/UK UMR433-S1/UK

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

1 Moduł Neuronu Cyfrowego

Kod produktu: MP-BTM222-5V

Podręcznik użytkownika

Wersja polska. Wstęp. Zawartość opakowania. Dane techniczne. Dodatkowe dane techniczne. BT200 - Sweex Bluetooth 2.0 Class II Adapter USB

Urządzenie nadawczo-odbiorcze PMR 446 Nr produktu

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

Konfiguracja pakietu CrossStudio for MSP

procertum CLIDE Client 2.1 wersja 1.0.2

SYSTEM BEZPRZEWODOWY RETRANSMITER SYGNAŁÓW

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

1 Moduł Diagnostyki Sieci

rh-pwm3 Trzykanałowy sterownik PWM niskiego napięcia systemu F&Home RADIO.

RPTC CONTROLLER (v1.11) STEROWNIK PRZEMIENNIKA RADIOWEGO OBSŁUGA KOMUNIKATÓW GŁOSOWYCH OBSŁUGA KOMUNIKATÓW IDCW OPCJONALNY MODUŁ GSM

ASMAX ISDN-TA 128 internal Instalacja adaptera w środowisku Windows 98 / ME

INSTRUKCJA INSTALACJI. Modem Technicolor CGA 4233

Kod produktu: MP-BT-RS232

1.Wstęp. 2.Generowanie systemu w EDK

Moduł Ethernetowy. instrukcja obsługi. Spis treści

LABORATORIUM Bezprzewodowych Sieci Komputerowych

VComNet Podręcznik użytkownika. VComNet. Podręcznik użytkownika Wstęp

2. Architektura mikrokontrolerów PIC16F8x... 13

Cisco EPC2100 Instrukcja obsługi modemu

Połączenia poprzez Modemy Wirtualne.

Specyfikacja techniczna:

1. Opis. 2. Wymagania sprzętowe:

Dokumentacja Techniczna. Konwerter USB/RS-232 na RS-285/422 COTER-24I COTER-24N

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

INSTRUKCJA UŻYTKOWNIKA MPCC

Program EDYTOR-AS-OUX

Instrukcja inteligentnego 2-kanałowego odbiornika radiowego z wbudowanym kontrolerem WiFi

Modem Bluetooth MBL-232/UK

DWUPASMOWY, BEZPRZEWODOWY PUNKT DOSTĘPU / ROUTER 450 MBIT

Modu³ transmisji radiowej du ej mocy MR03

Szkolenia specjalistyczne

Instrukcja użytkownika ARSoft-WZ1

STEKOP SA. Odbiornik dialerowy. Zakład Pracy Chronionej Białystok, ul. Młynowa 21 tel./fax : (+48 85) ,

Rejestrowanie urządzenia w systemie Konfiguracja Danfoss Link BR Wybór trybu regulacji przekaźnika BR... 56

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Konfigurowanie sterownika BC8150 firmy Beckhoff wprowadzenie

Konfigurowanie sterownika CX1000 firmy Beckhoff wprowadzenie. 1. Konfiguracja pakietu TwinCAT do współpracy z sterownikiem CX1000

Moduł Komunikacyjny MCU42 do systemu AFS42

Modem Bluetooth MBL-USB/UK

Rozdział ten zawiera informacje na temat zarządzania Modułem DMX oraz jego konfiguracji.

SML3 październik

KONWERTER DVB IP -> DVB ASI DELTA-2

Instrukcja użytkownika KRISTECH, 2016

1. Tworzenie nowego projektu.

instrukcja instalacji modemu SpeedTouch 605s

rh-ao3 LR Moduł wyjść analogowych 0 10 V systemu F&Home RADIO. Wersja LR powiększony zasięg.

Tester DMX typu TD-1

Rysunek 1: Okno z lista

Instrukcja obsługi Connection Manager

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Instrukcja obsługi. Centrala radiowa WSRT v r.

Router Lanberg AC1200 RO-120GE 1Gbs

1.1 Co to jest USBasp? Parametry techniczne Obsługiwane procesory Zawartość zestawu... 4

Podłączenie urządzenia. W trakcie konfiguracji routera należy korzystać wyłącznie z przewodowego połączenia sieciowego.

Politechnika Wrocławska

Modem radiowy MR10-NODE-S

Spis treści. 1 Moduł Modbus TCP 4

Wersja polska. Wstęp. Zawartość opakowania. Dane techniczne BT100. Dodatkowe dane techniczne BT100 S W E E X. C O M

Instrukcja inteligentnego gniazda Wi-Fi współpracującego z systemem Asystent. domowy

BEZPRZEWODOWA KARTA SIECIOWA WL-8313 / WL-8314

Parametryzacja przetworników analogowocyfrowych

Programowanie mikrokontrolerów 2.0

TECHNIKA MIKROPROCESOROWA II

Transkrypt:

LoRa w praktyce (1) Komunikacja bezprzewodowa jest obecnie jedną z najpopularniejszych metod budowania sieci czujników. Na rynku dostępna jest cała gama interfejsów, które można wykorzystać w zależności od wymagań projektu. Jednym z ich, opisywanym w artykule, jest stworzony przez firmę Semtech standard komunikacji LoRa. Modulacja Przepustowość kanału informacyjnego, pasmo oraz stosunek sygnału do szumu są ze sobą związane zależnością zwaną twierdzeniem Shannona-Hartleya. Wygląda ona następująco: S C = B log 2 1 + N, gdzie: C przepustowość kanału w bitach na sekundę, B pasmo sygnału w hercach S/N stosunek mocy sygnału do mocy szumów. Z twierdzenia tego można wyciągnąć następujące wnioski: Zwiększenie pasma sygnału umożliwia zwiększenie transferu przy stałym stosunku mocy sygnału do szumu. Spadek stosunku mocy sygnału do szumu (np. na skutek zwiększenia odległości między nadajnikiem, a odbiornikiem) wymaga zwiększenia pasma przy zachowanej przepustowości łącza. 100 Na powyższych założeniach oparta jest m.in. modulacja CSS (Chirp Spread Spectrum), w której strumień danych modulowany jest sygnałem o liniowo wzrastającej częstotliwości. Na tej technice bazuje modulacja LoRa, której zarejestrowany spektrogram został przedstawiony na rysunku 1. Z lewej strony pokazana została tzw. preambuła, niezawierająca danych, na której widać w jaki sposób wygląda sygnał modulujący, którego zakres częstotliwości definiuje szerokość pasma. Zmodulowany sygnał został przedstawiony na przebiegu po prawej stronie. Sposób, w jaki przebiega modulacja sygnału jest zależny od trzech głównych parametrów: BW (modulation bandwidth) opisuje w jakim zakresie zmienia się częstotliwość modulująca, SF (spread factor) określa jak szybko zmienia się częstotliwość modulująca, CR (code rate) wprowadza redundancje zapewniając jednocześnie korekcję błędów powstałych podczas transmisji. Parametry te wpływają na maksymalny zasięg oraz przepustowość łącza, która jest wyrażona zależnością: R b [ b s ] = SF CR BW [ Hz ] 2SF Parametry mogą przyjmować następujące wartości: BW 7,8 khz, 10,4 khz, 15,6 khz, 20,8kHz, 31,25 khz, 41,7 khz, 62,5 khz, 125 khz, 250 khz, 500 khz, SF 6, 7, 8, 9, 10, 11, 12, CR 4/5, 4/6, 4/7, 4/8. LoRa jest interfejsem radiowym działającym m.in. w pasmach ISM 434 MHZ i 868 MHz umożliwiającym komunikację o dużym zasięgu przy niewielkim poborze mocy. Dzięki temu świetnie nadaje się między innymi do budowy sieci zasilanych bateryjnie czujników rozproszonych na dużych obszarach. Odległości pomiędzy komunikującymi się ze sobą urządzeniami mogą być liczone w kilometrach w zależności od ukształtowania i typu terenu. Osiągnięcie takiego zasięgu wiąże się jednak z ceną, którą jest maksymalny transfer danych, który może wahać się, w zależności od konfiguracji modemu od kilobajtów, do pojedynczych bajtów na sekundę.

Rysunek 1. Modulacja LoRa (źródło: digikey.com) Łatwo więc policzyć, że maksymalny transfer wynosi 37,5 kb/s, natomiast minimalny zaledwie ok. 11,5 b/s. Należy jednak pamiętać, że w pakiecie danych radiowych znajdują są także preambuła oraz opcjonalny nagłówek, które dodatkowo zmniejszają transfer danych użytecznych. Modulację LoRA pokazano na rysunku 1. Modemy LoRa Rodzinę dostępnych na rynku modemów LoRa można podzielić na dwie grupy. Pierwsza z nich obejmuje układy SX1272 i SX1273, które są przystosowane do pracy z częstotliwościami z zakresu 860..1020 MHz. Druga grupa to układy SX1276, SX1277, SX1278 i SX1279 mogące pracować z częstotliwościami od 137 do 1020 MHz, zależnie od modułu. W porównaniu do układów z pierwszej grupy mają one większą czułość odbiorników Listing 1. Funkcja main #include <stdbool.h> #include stm32l0xx.h #include hw_gpio.h #include hw_msp.h #include radio.h #include vcom.h #include timeserver.h static TimerEvent_t ledtimer; static uint8_t* buffer = Hello LoRa ; #define LORA_FREQUENCY 868000000 #define LORA_TX_POWER 14 #define LORA_BANDWIDTH 2//0 #define LORA_DATARATE 7//10 #define LORA_CODERATE 1 #define LORA_PREAMBLE_LEN 8 int main(void) HAL_Init(); SystemClock_Config(); HW_Init(); RadioEvents_t radioevents; radioevents.txdone = txdoneeventcallback; radioevents.rxdone = rxdoneeventcallback; Radio.Init(&radioEvents); Radio.SetChannel(LORA_FREQUENCY); Radio.SetTxConfig(MODEM_LORA, LORA_TX_POWER, 0, LORA_BAND- WIDTH, LORA_DATARATE, LORA_CODERATE, LORA_PREAMBLE_LEN, false, true, false, 0, 0, 3000000); Radio.SetRxConfig(MODEM_LORA, LORA_BANDWIDTH, LORA_DATARATE, LORA_CODERATE, 0, LORA_PREAMBLE_LEN, 1000, false, 0, true, false, 0, false, true); Radio.Rx(0); TimerInit(&ledTimer, ledtimercallback); TimerSetValue(&ledTimer, 500); HW_GPIO_SetIrq(GPIOB, GPIO_PIN_2, 0, gpiocallback); BSP_PB_Init(BUTTON_USER, BUTTON_MODE_EXTI); for(;;); radiowych, a ich pasmo zaczyna się już od 7,8 khz, w przeciwieństwie do pierwszej grupy modemów, gdzie dopuszczalne pasmo zaczyna się od 125 khz. Na rysunku 2 można zobaczyć dokładne parametry poszczególnych modułów zaczerpnięte z oficjalnej dokumentacji firmy Semtech. Zestawy ewaluacyjne Dostępne na rynku zestawy deweloperskie z modemami Semtech LoRa można podzielić na dwie grupy. Pierwszą z nich stanowią płytki zawierające jeden z wyżej wymienionych modemów z możliwością podłączenia dowolnego zewnętrznego mikrokontrolera za pośrednictwem SPI. Przykładami tego typu zestawów są pokazane na rysunku 3: Adafruit RFM95W, Semtech SX1276MB1LAS, Semtech SX1272MB2DAS. W drugiej grupie zestawów ewaluacyjnych znajdują się moduły, które oprócz modemów LoRa zawierają mikrokontrolery, dzięki czemu nie wymagają dołączania zewnętrznych układów przed rozpoczęciem pracy. Przykładami takich układów są (rysunek 4): Adafruit Feather M0 RFM95 LoRa Radio z mikrokontrolerem ATSAMD21G18 (Cortex M0), STMicroelectronics B-L072Z-LRWAN1 z modułem CM- WX1ZZABZ-091 (mikrokontroler STM32L072CZ z modemem SX1276 w jednej obudowie). Przykładowy program Przedstawimy teraz krótki program umożliwiający komunikację radiową pomiędzy dwoma urządzeniami. Przykład został przygotowany dla zestawu deweloperskiego B-L072Z-LRWAN1 od STMicroelectronics i wykorzystuje bibliotekę STM32Cube z rozszerzeniem LRWAN. Biblioteka podstawowa STM32Cube Rysunek 2. Parametry dostępnych na rynku modemów LoRa (źródło: semtech.com) 101

Tabela 1. Parametry konfiguracji transmisji i odbioru SetTxConfig Argument Opis Argument Opis SetRxConfig modem Typ modulacji (LoRa/FSK). modem Typ modulacji (LoRa/FSK) power Moc sygnału nadawanego [dbm]. bandwidth fdev Dewiacja częstotliwości (tylko FSK). datarate bandwidth datarate coderate Pasmo (tylko LoRa, 0: 125 khz, 1: 250 khz, 2: 500 khz). Przepustowość (dla LoRa wyrażona jako 2 SF, gdzie SF = 6...12, dla FSK jako bit/s). Korekcja błędów (tylko LoRa: 1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8). coderate bandwidthafc preamblelen preamblelen Długość preambuły pakietu. symbtimeout Pasmo (LoRa 0: 125 khz, 1: 250 khz, 2: 500 khz, FSK <2,6kHz:250kHz>). Przepustowość (dla LoRa wyrażona jako 2 SF, gdzie SF = 6...12, dla FSK jako bit/s). Korekcja błędów (tylko LoRa: 1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8). Pasmo automatycznej regulacji częstotliwości (tylko FSK <2,6kHz:250kHz>) Długość preambuły pakietu. Maksymalny czas trwania trybu odbioru pojedynczego pakietu wyrażony w liczbie symboli (tylko LoRa). fixlen Stała/zmienna długość pakietu danych. fixlen Stała/zmienna długość pakietu danych. crcon Włączona/wyłączona generacja CRC. payloadlen Długość pakietu danych, gdy fixlen = true. freqhopon hopperiod Włączona/wyłączona opcja rozpraszania widma Frequency-hopping (tylko LoRa). Okres zmiany częstotliwości jeśli freqhopon = true (tylko LoRa). crcon freqhopon iqinverted Inwersja sygnałów I oraz Q (tylko LoRa). hopperiod Włączona/wyłączona kontrola CRC. Włączona/wyłączona opcja rozpraszania widma Frequency-hopping (tylko LoRa). Okres zmiany częstotliwości jeśli freqhopon = true (tylko LoRa). timeout Ograniczenie czasu transmisji w [ms]. iqinverted Inwersja sygnałów I oraz Q (tylko LoRa). - - rxcontinuous Włączony/wyłączony tryb ciągłego odbioru. dostarcza sterowników do peryferiów mikrokontrolera STM32L072CZ i jest używana przez wyższe warstwy oprogramowania oraz rozszerzenie I-CUBE-LRWAN, które zawiera sterownik do modemu SX1276 oraz stos LoRaWAN. Biblioteka podstawowa jest dostępna na stronie stmicroelectronics.com, lub za pośrednictwem środowiska SW4STM32, na którym będzie uruchamiany przykład. Rozszerzenie I-CUBE-LRWAN należy pobrać ze strony http://www.st.com/content/st_com/en/products/ embedded-software/mcus-embedded-software/ stm32-embedded-software/stm32cube-expansion-software/i-cube-lrwan.html. Pracę zaczynamy od utworzenia nowego projektu dla zestawu B-L072Z-LRWAN1 - kolejne kroki z wymaganymi opcjami zostały przedstawione na rysunku 5. W ostatnim z przedstawionych okien należy pobrać bibliotekę STM32Cube i dodać ją do źródeł projektu. W projekcie potrzebne też będą elementy rozszerzenia I-CUBE-LRWAN: Middlewares/Third_Party/Lora/Phy Middlewares/Third_Party/Lora/Utilities Drivers/BSP/MLM32L07X01 Drivers/BSP/B-L072Z-LRWAN1 Powyższe moduły wymagają dostarczenia funkcji obsługi takich peryferiów jak GPIO, RTC i SPI. Znajdują się one w przykładach aplikacji dołączonych do zestawu B-L072Z-LRWAN1. Do opisywanego przykładu zostały dołączone pliki z aplikacji Projects/Multi/ Applications/LoRa/PingPong: debug.c, debug.h, hw.h, hw_conf.h, hw_msp.h, hw_gpio.c, hw_gpio.h, hw_rtc.c, hw_rtc.h, hw_spi.c, hw_spi.h, mlm32l0xx_hal_msp.c, mlm32l0xx_hw.c, mlm32l0xx_ hw_conf.h, mlm32l0xx_it.c, vcom.c, vcom.h. Rysunek 3. Zestawy ewaluacyjne z modemem LoRa (źródło: digikey.com) W pliku mlm32l0xx_it.c znajdują się definicje wszystkich potrzebnych funkcji obsługi przerwań, dlatego można automatycznie usunąć utworzony plik stm32l0xx_it.c. Wszystkie używane przerwania wymagają także umieszczenia ich w tablicy znajdującej się w pliku startup_stm32.s. Można dopisać brakujące elementy wraz z deklaracjami typu.weak lub zamienić istniejący plik na Projects/ Multi/Applications/LoRa/PingPong/SW4STM32/B-L072Z-LRWAN1/ startup_stm32l072xx.s. Ostateczną listę plików w projekcie można znaleźć na rysunku 6. Po dodaniu wszystkich źródeł trzeba uzupełnić ścieżki w projekcie. Można to zrobić w ustawieniach projektu: C/C++ General Paths and Symbols. W zakładce Includes należy dodać ścieżki 102

Listing 2. Funkcje obsługujące zdarzenia radia oraz przerwania licznika i przycisku static void gpiocallback() BSP_LED_On(LED3); Radio.Send(buffer, 10); static void ledtimercallback() BSP_LED_Off(LED2); void txdoneeventcallback() BSP_LED_Off(LED3); Radio.Rx(0); void rxdoneeventcallback(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr) BSP_LED_On(LED2); TimerStart(&ledTimer); PRINTF( -> ); for(int i=0; i<size; i++) PRINTF( %c, payload[i]); PRINTF( \n ); Rysunek 6. Lista plików projektu Rysunek 4. Zestawy ewaluacyjne z modemem LoRa oraz mikrokontrolerem (źródło: digikey.com) do nagłówków, a w zakładce Source Location ścieżki do plików źródłowych. Przy dodawaniu ścieżek warto zaznaczyć opcje dodania ich do wszystkich konfiguracji. Rozszerzenie I-CUBE-LRWAN potrzebuje do poprawnego działania także odpowiednich symboli - podobnie jak w przypadku ścieżek warto dodać je do wszystkich języków i konfiguracji. Wszystkie ustawienia zostały przedstawione na rysunku 7. Próba kompilacji tak skonfigurowanego projektu zakończy się błędem z powodu wielokrotnej definicji funkcji HAL_MspInit. Rysunek 5. Tworzenie nowego projektu dla zestawu B-L072Z-LRWAN1 w środowisku AC6 Problem ten można rozwiązać usuwając plik HAL_Driver/Src/ stm32l0xx_hal_msp_template.c dostarczający pustych definicji funkcji konfiguracyjnych. Po pomyślnym skonfigurowaniu projektu z biblioteką I-CUBE- -LRWAN można przystąpić do implementacji prostej komunikacji radiowej pomiędzy dwoma węzłami, których rolę pełnią dwa zestawy B-L072Z-LRWAN1. Na listingu 1 została umieszczona funkcja main, w której znajduje się pełna konfiguracja radia. Pierwsze trzy funkcje są odpowiedzialne za inicjalizację biblioteki STM- 32Cube (HAL_Init), zegara systemowego (SystemClock_Config, wygenerowana przy tworzeniu projektu), sterownika radia i biblioteki I-CUBE-LRWAN (HW_Init). Następna sekcja to inicjalizacja modułu radiowego i konfiguracja parametrów transmisji. W pierwszej kolejności rejestrowane są callbacki wołane po skończonej transmisji i po odbiorze pakietu. Dla uproszczenia zostały pominięte pozostałe, odpowiadające m. in. za błędy transmisji i detekcję zajętości kanału radiowego. Użyte funkcje zostaną omówione w dalszej części tekstu. Kolejne linie kodu konfigurują parametry modemu radiowego. Funkcja SetChannel ustawia częstotliwość sygnału, natomiast pozostałe dwie funkcje konfigurują parametry transmisji i odbioru. Listy argumentów obu funkcji zostały opisane w tabeli 1. Istotne w tym przypadku jest, aby zarówno odbiornik, jak i nadajnik były skonfigurowane w ten sam sposób. W tym momencie radio gotowe jest już do komunikacji, więc zostaje wprowadzone w tryb ciągłego nasłuchu (argument 0 funkcji Rx oznacza brak limitu czasu na odbiór pakietu). W dalszej części programu konfigurowany jest licznik sterujący czasem świecenia diody sygnalizującej odbiór pakietu. Korzysta on z interfejsu dostarczanego przez moduł Lora/Utilities/timeServer. Dzięki niemu można w łatwy sposób zarządzać licznikami opartymi na sprzętowym RTC. Jest on używany przez 103

przejrzysz i kupisz na www.ulubionykiosk.pl 104 Na niemal 200 stronach przystępnym językiem przybliżamy zagadnienia warsztatowe i zasady kompozycji, podpowiadamy, jak najlepiej wykorzystać swój sprzęt i czego nie może zabraknąć w torbie ambitnego fotografa krajobrazu! sterownik SX1276, ale można go także użyć w swoim kodzie. Ostatnią czynnością wykonywaną przez funkcję main jest skonfigurowanie przycisku służącego do nadawania pakietu. Przerwanie jest włączane za pomocą funkcji dostarczanej przez moduł hw_gpio, natomiast konfiguracja GPIO znajduje się w BSP płytki B-L072Z-LRWAN1. Do omówienia pozostały funkcje obsługi przerwań przedstawione na listingu 2: gpiocallback przer wa nie od przycisku, które przełącza radio w tryb nadawania pakietu, zaświeca diodę sygnalizującą nadawanie pakietu, txdoneeventcallback przerwanie po skończonej transmisji pakietu, przełącza radio z powrotem w tryb nasłuchu, gasi diodę nadawczą, rxdoneeventcallback przerwanie po odebraniu pakietu, zapala diodę sygnalizującą Rysunek 7. Konfiguracja ścieżek i symboli projektu odbiór, uruchamia licznik kontrolujący czas świecenia diody, wypisuje treść otrzysx1276.c. Można je wyłączyć modyfikując odpowiednio zawarmanej wiadomości, tość pliku vcom.h. ledtimercallback przerwanie licznika kontrolująpo przyłączeniu płytki do komputera należy kliknąć prawym cego diodę. przyciskiem myszy na nazwę projektu w drzewie plików po lewej Komentarza wymaga jeszcze funkcja PRINTF. W rzeczywistostronie i wybrać opcję Debug As Ac6 STM32 C/C++ Application ści jest to makro dostarczane przez moduł vcom, który pozwala aby zaprogramować pamięć mikrokontrolera. na łatwe wypisywanie komunikatów na port szeregowy USART2 Działanie przykładu jest następujące. Po przyciśnięciu przy(tx: PA2, RX: PA3). Domyślnie jest on skonfigurowany w nastęcisku urządzenie wysyła zdefiniowany w kodzie pakiet danych, pujący sposób: co sygnalizuje niebieską diodą. Drugie urządzenie odbiera pakiet, BaudRate 115200 bps, co sygnalizuje zieloną diodą oraz wypisuje zawartość pakietu WordLength 8 bitów, na port USART2. Jest to bardzo prosty przykład komunikacji za StopBits 1, pomocą modemu LoRa SX1276, który pozwala na zapoznanie się Parity None, z bibliotekami dostarczanymi przez ST. W ramach eksperymentów HardwareFlowControl None. warto zmodyfikować parametry transmisji, jednocześnie obserz makra PRINTF korzysta także driver SX1276, o czym można wując czas nadawania sygnalizowany przez diodę. LED. się przekonać przeglądając plik źródłowy BSP/MLM32L07X01/Phy/ Krzysztof Chojnowski