Micromite‎ > ‎

Micromite ipari feladatokra

Február 4-én nyitottuk meg a ChipCAD LoRaWAN hálózatot a felhasználóink számára, de előtte mi már december eleje óta kísérleteztünk a technológiával. Sokat segített ebben egy Semtech LoRaMote GPS szenzor és egy Microchip Mote fejlesztőeszköz. A Semtech LoRaMote egy belső nyákantennával éri el LoRaWAN hálózatot, az antennacsatlakozóval szerelt Microchip Mote pedig külső antennával használható.

A Semtech LoRaMote készüléket elegendő egy autó szélvédője mögé elhelyezni és máris használható a LoRaWAN hálózaton keresztül a helymeghatározás fogadására és feldolgozására. A hálózatba küldött koordinátákhoz egy hálózati és alkalmazásszerver kapcsolatot is ad gyártó, amellyel követhető online térkép segítségével az eszközünk. Szerettük volna azonban a Microchip RN2483 modullal kísérletezők munkáját támogatni, emiatt kerestünk egy másik alternatívát a hálózati kiszolgáló támogatás céljára, a Loriot felhő alapú kiszolgálója mellett döntöttünk. Létrehoztuk a Loriot kiszolgálóhoz kapcsolódó http://www.mylora.hu/ oldalt, ami elérhetővé teszi a regisztrált felhasználók számára az eszközeik adatforgalmának utólagos elérését is egy SQL adatbázisban.

Megkezdődhetett a munka a LoRaWAN hálózat lefedettségének a vizsgálatára. A Semtech LoRaMote GPS a beépített LoRa nyákantenna jelentős távolsági különbséget, akár 30% távolsági eltérést mutatott attól függően, hogy az autóval közeledtünk vagy távolodtunk az átjárótól. Ezen a problémán egy külső, az autó tetejére szerelhető 868MHz LoRa antenna csatlakoztatása segíthetett volna, de erre a készülék nem ad módot. A Microchip Mote ezzel szemben kapcsolható külső antennára, de hiányzik belőle GPS szenzor és kézzel kell indítani az adatküldést, ha gyakori LoRa kommunikációra akarjuk használni.

A Mikroelektronika karácsony előtt jelentette be a LoRa RF Click paneljét, ami kapóra jött a LoRaWAN hálózati kísérleteinkhez. Ebben az időszaban készítettük el és már teszteltük a saját fejlesztésű Micromite Kísérleti Panel első változatát. A Micromite Kísérleti Panelt gazdag periféria készlettel úgy alakítottuk ki, hogy alkalmas legyen gyors prototípus kifejlesztésére, két Microelektronika Click Board befogadására így a Microelektronika bejelentésével egyidőben megszületett a gondolat, hogy a Micromite Kísérleti Panel segítségével elkészítjük az első hazai LoRaWAN alkalmazást, ami egyesíti a Semtech GPS Mote és a Microchip Mote előnyös tulajdonságait. A bejelentést azonnali rendelésfeladás követte, majd január 7-én érkezett be a LoRa RF Click panel először.

A Micromite hardver tervezése pár percet vett csak igénybe, mert a kísérleti panel saját perifériáit kellett csak végig gondolni, hogyan használhatók a feladat kiszolgálására. A két mikroBUS foglalata alkalmassá tette a LoRa RF Click panel mellett a GNSS Click, az L86 GPS modul befogadására. A Micromite 44 modulnak három UART csatornája van: a programozást és fejlesztést segítő konzolport mellett két másik UART használható mikroBUS csatlakozókon keresztül. A Micromite LoRa Mote szoftver fejlesztése kicsit hosszabb időt igényelt, a munkaidőn kívüli szabadidőben egy hét alatt elkészült és január közepe óta használatban van a budapesti és debreceni területek LoRaWAN lefedettségének a feltérképezésére.


A Micromite LoRa Mote programja innen tölthető le. 

Az alkalmazás kezelői felülete a K1/K2/K3/K4 billentyűzetet használja és a kétsoros LCD kijelzőt használja állapot kijelzésre. Hogyha a bekapcsoláskor a K1 vagy K2 billentyűt megnyomva tartjuk, akkor a szervízmódok valamelyikébe léphetünk. A nyomógombok megnyomása nélkül indított program az automatikus LoRaWAN hálózati módba lép, ahol a GPS szenzorok adatát a LoRaWAN hálózatba küldi a beállított paraméterek szerint. A paraméterek egy része a K1/K2/K3/K4 billentyűn eközben módosítható, ezzel a hálózatba való adatküldés struktúrája és rádiós paraméterei is menetközben változtatható. Ez számunkra volt fontos többlet funkció, amit hiányoltunk mindkét gyári eszköz működésében és most végre a saját igényeink szerint alakíthattuk ki. Két szerviz funkciót készítettünk:

1. RN2483 működési paraméterek automatikus beállítása (K1)


2. RN24843 modul manuális beállítás (K2)


A LoRaWAN hálózati mód idő alapú vezérléssel működik, a BroadcastTime konstansban megadható periódus idő szerinti gyakorisággal elküldi a hálózatba a koordináták értékét. A GPS vevő adatait a COM2 porton fogadja a Micromite és az adatfolyam lekérdezésével határozza meg a hosszúsági, szélességi és magassági koordinátákat egy másodperces gyakorisággal. A héttérben megszakítási rutinokkal történik a nyomógomb megnyomások érzékelése, az RN2483 modul COM2 kommunikációja és az egy másodperces időszakra állított időmérés kiszolgálása. A hálózatba felküldött koordináta kódolása azonos a Semtech GPS szenzor kódolásával 24 biten a +-90fok szélesség, 24 biten a +-180fok hosszúság, és 16 biten az 1m felbontású magasság. Érvénytelen GPS adat esetében 0 értéket küld a készülék, így a hálózati adatkapcsolat megléte is vizsgálható műhold vétel nélkül is. K1 nyomógomb megnyomására a magasság küldése ki-be kapcsolható. A K2 megnyomására a DR data rate menet közben változtatható. A K4 nyomógombbal az időmérés felfüggeszthető is újra indítható, ezáltal a hálózati működés szüneteltethető.

A szervízmódok során a konzol portot használtuk adatbevitelre és az RN2483 modullal való kapcsolattartásra. Az első szervízmódba a K1 megnyomása közben a Micromite Modul reszetelésével lehet belépni. A másodikba a K2-t kell megnyomni a Micromite reszetelésekor. A szervízmódokból nyomógomb megnyomás nélküli reszettel léphetünk ki.

A feladatmegoldásban sokat segített a PIC32 gazdag perifériakészletének egyszerű BASIC parancsokon keresztüli programozhatósága. Hatékonynak bizonyult az USB portba ágyazott konzolport használata programfejlesztésre és a szervízmódok kiszolgálására, hiszen további fejlesztőeszköre már nem volt szükség. Az MMBASIC utasításkészlete tömör és jól átlátható forrásprogram felépítést tesz lehetővé. Néhány programrészt bemutatunk ennek alátámasztására.

A COM2 portra kapcsolt L86 GPS mondatokat beolvasó rutinja a GPS mondat szavaival feltölti az arg$(i) tömbváltozót:

SUB GetGPSRecord
DO
DO WHILE INPUT$(1, #2) <> "$" : LOOP                       ' wait for the start
FOR i = 0 TO 20
arg$(i) = ""                                                                 ' clear ready for data
DO                                                                             ' loops until a specific exit
x$ = INPUT$(1, #2)                                                    ' get the character
IF x$ = "," THEN EXIT DO                                            ' new data item, new field
IF x$ = "*" THEN EXIT SUB                                          ' end of record, so return with it
arg$(i) = arg$(i) + x$                                                  ' add to the data
LOOP                                                                          ' keep going
NEXT i                                                                        ' increment the field
LOOP
END SUB

Mindössze tizenegysoros programrész alakítja át a GPS vevőtől érkező BCD kódolású koordinátákat 24 illetve 16 bites előjeles bináris számmá. Például a hosszúsági koordináta 10 bájt helyett 3 bájtba sűrítve kerül továbbításra, ezáltal a rádiós átvitel hatékonyabb lesz:

LatDD=(val(MID$(arg$(2),1,1))*10+VAL(MID$(arg$(2),2,1)))*600000
LatMM=(val(MID$(arg$(2),3,1))*10+VAL(MID$(arg$(2),4,1)))*10000
LatMMMM=(val(MID$(arg$(2),6,1))*1000+VAL(MID$(arg$(2),7,1))*100+val(MID$(arg$(2),8,1))*10+VAL(MID$(arg$(2),9,1)))
Lat=(LatDD+LatMM+LatMMMM)*8388608\54000000
IF arg$(3)="S" THEN LAT=-LAT                                                       ' latitude
LonDDD=(val(MID$(arg$(4),1,1))*100+VAL(MID$(arg$(4),2,1))*10+VAL(MID$(arg$(4),3,1)))*600000
LonMM=(val(MID$(arg$(4),4,1))*10+val(MID$(arg$(4),5,1)))*10000
LonMMMM=(val(MID$(arg$(4),7,1))*1000+VAL(MID$(arg$(4),8,1))*100+val(MID$(arg$(4),9,1))*10+VAL(MID$(arg$(4),10,1)))
Lon=(LonDDD+LonMM+LonMMMM)*8388608\108000000
IF arg$(5)="W" THEN Lon=-Lon                                                      ' longitude
Alt=VAL(arg$(9))                                                                           ' altitude
 

Látogasson el a ChipCAD fórumba, ahol minden Micromite fejlesztés megosztását szívesen veszünk!

Comments