Projekt ELEKTRONIČKA META
- Uvod
- Senzori
- Detektorska elektronika (diskretna)
- Detektorska elektronika (CPLD)
- Monitor
- Bežični link
Komunikacijski protokoli
Za bežičnu komunikaciju između mete i strijelca (do 300 metara) logički izbor je Long Range (LoRa) modul koji omogućuje prijenos podataka na velike udaljenosti uz iznimno malu potrošnju energije. Takvi moduli omogućuju prijenos digitalnih podataka na udaljenosti 2-15 km (ovisno o konfiguraciji terena) na nelicenciranim ISM radio frekvencijama od 433 MHz, 868 MHz ili 915 MHz. Veliki domet i mala potrošnja idu na štetu brzine prijenosa podataka koja je niska, obično od 0,3 kbps do 50 kbps. Ovo je posve dovoljno za naše senzorske podatke, ali svakako ne bi bilo dovoljno za video ili glasovnu komunikaciju.
LoRa SX1278 na 433 MHz – prvi testovi
Strana mete (predajnik)
U našem slučaju, za povezivanje EPM570 sa ESP32, kao i za povezivanje ESP32 sa bežičnim LoRa modulom koristi se brza SPI sabirnica.
Međutim, iako je SPI brzina između MCU-a ESP32 i LoRa modula velika (1 MHz do 10 MHz) i MCU može “napuniti” međuspremnik (buffer) LoRa modula u djeliću milisekunde, sam bežični prijenos tih podataka iz buffera traje puno duže. Kako je odziv senzora zbog RC konstante usko grlo detektorskog sustava (unatoč vrlo brzoj logici), tako je i bežični protokol slanja podataka usko grlo u komunikacijskom dijelu (unatoč vrlo brzim SPI sabirnicama).
LoRa je naime bežični sustav dizajniran za veliki domet uz malu potrošnju struje (što nama svakako i treba), ali nije dizajniran i za veliku brzinu. Također u mnogim regijama (uključujući Europu), zakonski smijete emitirati samo 1% vremena na određenoj frekvenciji (433 MHz). To znači da nakon slanja jednog paketa, modul mora “šutjeti” određeno vrijeme, što dodatno smanjuje propusnost.
Prema našem razvijenom CPLD protokolu, jedan paket podataka za jedan hitac čini ukupno 10 bajtova (80 bita), od čega 1 bajt zauzima Header, 8 bajtova sadrže podatak za 64 senzora i 1 bajt je Checksum ili ID. Za veću metu (128 senzora) treba 18 bajtova, no to ipak ne povećava značajno vrijeme potrebno za prijenos. To je zato što svaki LoRa paket ima fiksno zaglavlje (Preamble i Header) koje zapravo oduzima većinu vremena kod slanja ovako malih paketa.
Također, vrijeme slanja znatno ovisi i o postavljenim parametrima LoRa modula: Spreading Factor (SF), Bandwidth (BW) i Coding Rate (CR). Pri optimalnim postavkama koje smo odabrali za naš LoRa Ra-02 modul (SF8, BW 125 kHz, CR 4/5), slanje 10 bajtova traje tek oko 31 ms, a slanje 18 bajtova (za 128 senzora) bi trajalo oko 41 ms. To znači da je sustav u oba slučaja gotovo trenutačno spreman za sljedeći hitac.
Čak i da želimo najveći mogući domet (teoretski do 10 km) dakle uz SF12 i propusnost 125 kHz, vrijeme slanja podataka bi bilo ispod jedne sekunde (oko 991 ms prema Semtech LoRa Calculatoru). I ovo je sasvim dovoljno za pojedinačno gađanje bilo kojim oružjem. Domet od 300 metara je i dvostruko veći nego je nama realno potreban, tako da su SF7 ili SF8 idealni za ovu distancu i dobivamo vrlo brz odziv svakako ispod 50 ms.
Sve ove kalkulacije vrijede za LoRa Ra-02 SX1278 modul koji košta oko 6 eura, međutim dostupna je novija inačica LoRa SX1262 modula. Novi modul ima bolju prijemnu osjetljivost, veću brzinu slanja podataka i bolju energetsku efikasnost. Brzina slanja podataka preko ovog modula bi mogla biti i 4x brža (7-10 ms). Cijena ovog modula je oko 8 eura.
Strana strijelca (prijemnik)
Napravio sam prve testove sa modulima EPM570 + ESP32 + LoRa Ra-02 na predajnoj strani (meta) i ESP32 + LoRa Ra-02 modulima na prijemnoj strani (strijelac). Testovi su prošli dosta dobro, međutim, došao sam do granice gdje se testiranja više ne mogu vršiti na eksperimentalnim pločicama i spajanjem „u zraku“. Sada imamo FPGA sa oscilatorom takta na 50 MHz, ESP32 sa oscilatorom takta na 40 MHz i CPU taktom 240 MHz, obrađujemo veliki broj signala reda nano-sekunde, te imamo bežične module. Potrebno je osigurati dobra i stabilna napajanja i dobre zaštite od EM smetnji kako bi mogli nastaviti sa testiranjima stabilnosti i daljnjim razvojem softvera.
Brzu digitalnu logiku možete do neke razine spajati “u zraku”, no onda sve više dolaze do izražaja vanjske EM smetnje, parazitski kapaciteti i induktiviteti i druga “preslušavanja” između vodova koja uzrokuju nestabilnost sklopa.
LoRa SX1262 na 915 MHz – novo rješenje
U kasnijoj fazi razvoja projekta, puno stvari se promijenilo od početnih testova. Kao prvo LoRa Ra-02 (SX1278) moduli na 430-470 MHz (može se razvući na 410-525 MHz) više nisu bili opcija jer sam uz CrowPanel monitor dobio LoRa SX1262 module na 915 MHz (850-930 MHz). Stoga sam i za stranu mete prešao na modernije LoRa module DX-LR30 (SX1262) koji rade na 915 MHz.
LoRa Semtech SX1262
Semtech SX1262 je visokoučinkoviti sub-GHz radijski primopredajnik (transceiver) nove generacije koji nudi znatno bolju energetsku učinkovitost i veći domet u usporedbi sa starijom generacijom (poput SX1276/SX1278). Sam čip pokriva široki frekvencijski raspon od 150 MHz do 960 MHz što obuhvaća sve globalne ISM frekvencijske opsege (433 MHz, 470 MHz, 868 MHz i 915 MHz). Razlika u modulima je samo u propusnosti ugrađenog izlaznog frekvencijskog filtra.
Maksimalna odašiljačka snaga je do +22 dBm (0,158 W na 50 Ω) s integriranim visokoučinkovitim pojačalima snage. Osjetljivost prijemnika je vrlo visoka, sve do -148 dBm (ovisno o postavkama LoRa modulacije). Čip podržava različite vrste modulacije: LoRa, (G)FSK, MSK, GMSK i najnoviju LR-FHSS (Long Range – Frequency Hopping Spread Spectrum). Brzina prijenosa podataka (Bit Rate) u LoRa načinu rada je 0,018 do 62,5 kbps, a u (G)FSK načinu rada od 0,6 do 300 kbps.
Potrošnja struje na prijemu je oko 4,5 mA, a kod odašiljanja do 118 mA pri maksimalnih +22 dBm. Struja mirovanja (Sleep mode) je 1,6 µA (s očuvanom memorijom registara).
Putem registara i naredbi na SPI sučelju, u aplikacijskom kodu se mogu u potpunosti konfigurirati sljedeći parametri:
LoRa mrežni parametri:
- Radna frekvencija (Frequency): Točno definiranje centralne frekvencije kanala (npr. postavljanje na točno 915 MHz, razlučivost 0,1 MHz).
- Faktor širenja spektra (Spreading Factor – SF): Od SF5 do SF12. Manji SF znači brži prijenos i kraći domet, dok veći SF nudi veći domet uz sporiji prijenos.
- Širina pojasa (Bandwidth – BW): Podesiva u rasponu od 7,8 kHz do 500 kHz. Uža širina povećava osjetljivost, ali produljuje vrijeme slanja paketa.
- Stopa kodiranja / Ispravljanje pogrešaka (Coding Rate – CR): Podesiva kao CR 4/5, 4/6, 4/7 ili 4/8. Pruža zaštitu od gubitka paketa u okruženjima sa puno EM smetnji i šuma.
Konfiguracija paketa (Packet RF settings):
- Sinkronizacijska riječ (Sync Word): Softverski se definira izolacija mreže. Primjerice, 0x1424 se koristi za javne LoRaWAN mreže, dok se 0x3444 postavlja za privatne (Peer-to-Peer) mreže.
- Duljina preambule (Preamble Length): Broj simbola koji prethode paketu radi sinkronizacije prijemnika.
- CRC provjera: Uključivanje ili isključivanje hardverske provjere integriteta podataka (Cyclic Redundancy Check) na razini paketa.
- Zaglavlje paketa (Header Mode): Odabir između eksplicitnog (duljina paketa je u zaglavlju) i implicitnog načina rada (fiksna duljina paketa).
Snaga i upravljanje energijom:
- Izlazna snaga odašiljača (TX Power): Može se precizno programirati u koracima od -9 dBm do +22 dBm kako bi se zadovoljili lokalni zakonski propisi o snazi zračenja.
- Pojačanje prijemnika (RX Gain Boosted): Moguće je softverski uključiti “Boosted RX” način rada koji troši neznatno više struje (cca 0,6 mA više) ali podiže osjetljivost za dodatnih +3 dB.
- Regulacija napajanja: Softverski odabir između ugrađenog visokoučinkovitog DC-DC pretvarača (za minimalnu potrošnju) ili LDO regulatora (za čišći signal ako hardver to zahtijeva).
- Upravljanje TCXO oscilatorom: Preko DIO3 pina softver može upravljati napajanjem i vremenom pokretanja temperaturno kompenziranog kristalnog oscilatora (TCXO) radi stabilnosti frekvencije.
Napredne funkcije:
- CAD (Channel Activity Detection): Softversko pokretanje detekcije aktivnosti na kanalu kako bi uređaj provjerio ima li LoRa signala prije odašiljanja (Listen Before Talk – LBT), štedeći tako energiju.
- Prekidne linije (Interrupts – DIO1, DIO2, DIO3): Softversko mapiranje događaja (npr. TxDone, RxDone, Timeout, CadDone) na fizičke pinove kako bi mikrokontroler znao kada je akcija završena.
Prijenos paketa od 32 bajta podataka na daljinu do 300 metara
Paket podataka koji LoRa sa mete mora prenijeti na CrowPanel se tijekom razvoja proširio na 32 bajta. Vrijeme slanja (Time-on-Air) paketa od 32 bajta na modulu SX1262 kreće se u rasponu od 5,78 milisekundi (za najveću brzinu) pa sve do 40,04 sekunde (za apsolutno najveći domet). Brzina i vremensko trajanje slanja LoRa paketa najviše ovise o kombinaciji tri parametra: širine pojasa (BW), faktora širenja (SF) i stope kodiranja (CR).
U slučaju elektroničke mete, možemo računati sa maksimalnom daljinom od 300 metara gdje je svakako osigurana optička vidljivost bez prepreka jer ne možemo gađati ako ne vidimo metu. U tim uvjetima vrijeme slanje našeg paketa od 32 bajta bez problema može biti ispod 6 ms. Optimalne postavke pri tome mogu biti:
- Širina pojasa (Bandwidth – BW): 500 kHz (to je najširi dostupni kanal koji omogućuje najbrži prijenos podataka).
- Faktor širenja (Spreading Factor – SF): SF5 ili SF7 ako vaš biblioteka ne podržava SF5. SF5 je najbrži način rada SX1262. Na 300 metara optičke vidljivosti, prigušenje signala je zanemarivo, pa visoka osjetljivost koju nude veći SF-ovi (poput SF10-SF12) uopće nije potrebna. Uz SF7 slanje paketa bi se produžilo na 14,4 ms što je i dalje vrlo kratko za našu primjenu.
- Stopa kodiranja (Coding Rate – CR): 4/5. Ovo je najniži stupanj zaštite (dodaje najmanje redundancije). Budući da nema prepreka ni refleksija na otvorenom polju, rizik od interferencije je minimalan, što eliminira potrebu za jačim kodiranjem (poput 4/8).
- Duljina preambule (Preamble): 8 simbola. To je standardna i minimalna preporučena duljina za stabilnu sinkronizaciju prijemnika pri visokim brzinama.
- Izlazna snaga (TX Power): 0 do +5 dBm. Nema potrebe za maksimalnih +22 dBm (158 mW). Spuštanjem snage na 1–3 mW štedi se baterija i sprječava zagušenje (zasićenje) prijemnika na tako maloj udaljenosti.
Paket podataka Meta – Strijelac.
Paket podataka Strijelac – Meta.
U tablici je prikaz i protokol slanja podataka kroz LoRa paket od 32 bajta. S obzirom na sve navedeno, imamo još puno prostora za eventualno buduće proširenje podataka koji se šalju sa pozicije mete.




