ZINĀTNISKĀ PĒTĪJUMA PROGRESU APLIECINOŠA DOKUMENTĀCIJA
Eiropas Sociālais fonds
Prioritāte: 1.1. Augstākā izglītība un zinātne
Pasākums: 1.1.1. Zinātnes un pētniecības potenciāla attīstība Aktivitāte: 1.1.1.2. Cilvēkresursu piesaiste zinātnei
Projekta nosaukums: ”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” (VieSenTIS)
Līguma noslēgšanas datums: 27.11.2009.g. Projekta sākuma datums: 01.01.2010.g. Projekta beigu datums: 31.12.2012.g.
Vienošanās Nr.2009/0219/1DP/1.1.1.2.0/09/APIA/VIAA/020
Eiropas Savienības fonda finansējuma saņēmējs: Elektronikas un datorzinātņu institūts (EDI)
ZINĀTNISKĀ PĒTĪJUMA PROGRESU APLIECINOŠA DOKUMENTĀCIJA
Pārskata numurs Nr.11. par periodu no 01.07.2012.g līdz 30.09.2012.g.
Projekta zinātniskais vadītājs: Xxx Xxxxxx, Ph.D. datorzinātnēs.
Pētījuma projekta izpildītāju saraksts: Xxxxxx Xxxxxxxx, Dr.sc.comp.
Xxxxx Xxxxxx, topošais zinātnieks, Mg.Fizikā. Xxxx Xxxxx, doktorants.
Xxxxxxx Xxxxxxx, doktorants. Xxxxx Xxxxxxxx, doktorants.
Xxxxx Xxxxxx, Mg. Elektronikā. Xxxxxxx Xxxxx, doktorants.
Xxxxxx Xxxxxxxxxx, Mg. Elektronikā. Xxxxx Xxxxxxx, Mg. Elektronikā.
Xxxxx Xxxxxx, Dr.phys.
Xxxxxxx Xxxxxxx, Mg. Elektronikā. Xxxxxxxxx Xxxxxxxx, doktorants.
Xxxxxxxx Xxxxxxxx, Mg. Datorzinātnēs. Xxxxxx Xxxxxxxxxx, Mg. Elektronikā.
ELEKTRONIKAS UN DATORZINĀTŅU INSTITŪTS
Rīga, Latvija 2012.gads
Saturs
Ievads 3
VieSenTIS 3
1 BioSen grupas atskaite 4
1.1 Ievads 4
1.2 Saistītie risinājumi 4
1.3 Risinājums 5
1.4 Eksperimenti un-vai testi 6
1.5 Rezultāti 7
1.6 Kopsavilkums un secinājumi 7
1.7 Nākotnes perspektīvas 7
Literatūra 8
2 CarMote grupas atskaite 9
2.1 Ievads 9
2.2 Saistītie risinājumi 9
2.3 Risinājums 10
2.3.1 Navigācijas sistēma 10
2.4 Rezultāti un secinājumi 13
2.5 Nākotnes perspektīvas 14
Literatūra 14
3 EdiMote grupas atskaite 15
3.1 Ievads 16
3.2 Risinājums 16
3.3 Komunikāciju modulis 16
3.3.1 Implementācija 17
3.4 Barošanas sprieguma modulis 19
3.4.1 Implementācija 19
3.5 Turpmākie darbi 21
Literatūra 21
4 MansOS grupas atskaite 22
4.1 Ievads 22
4.2 Metodika 22
4.3 SEAL vienkāršības novērtējums 23
4.4 SEAL efektivitātes novērtējums 25
4.5 SEAL lietojamības apgabala novērtējums 26
4.6 Kopsavilkums un nākotnes perspektīvas 26
Literatūra 27
5 SAntArray grupas atskaite 29
5.1 Ievads 29
5.2 Esošie risinājumi 30
5.3 Cits risinājums 30
5.4 Aprēķinu metodika 31
5.5 Aprēķinu rezultāti 31
5.6 Kopsavilkums un nākotnes perspektīvas 35
Literatūra 36
6 SenSigA grupas atskaite 38
6.1 Ievads 38
6.2 EEG datu ieguves sistēma 40
6.3 EEG datu ieguve un vizualizācija reālā laikā 41
6.4 Eksperimentālie rezultāti 43
6.5 Kopsavilkums un secinājumi 45
6.6 Nākotnes perspektīvas 45
Literatūra 45
Ievads
Anotācija
”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” (VieSenTIS) ir ESF atbalstīts projekts zinātnisko grupu veidošanai. Šis projekts nodarbojas ar bezvadu sensoru un tīklotu iegulto sistēmu pētniecību. Projekta ietvaros ir sekojošas apakšgrupas: BioSen – sensoru sistēmu pielietojumi biometrijā, CarMote – viedās transporta sensoru sistēmas, EdiMote – jaunas arhitektūras bezvadu sensoru aparatūrai, MansOS – operētājsistēma un programmatūras rīki bezvadu sensoru un iegulto sistēmu atbalstam, SAntArray – antenu masīvu pielietojumi tīklotas iegultas sistēmās, un SenSigA – sensoru signālu apstrādes metodes. Šajā dokumentā izklāstītas zinātniskās pētniecības aktivitātes un rezultāti augšminētajās grupās. Pielikumā ir iekļautas šajā periodā iesniegtās un apstiprinātas zinātniskās publikācijas. Projektu atbalsta Eiropas Savienības fondi, līguma Nr. 2009/0219/1DP/1.1.1.2.0/09/APIA/VIAA/020.
VieSenTIS
VieSenTIS grupas galvenais pētniecības virziens ir tīklotu iegulto sistēmu un viedu sensoru risinājumi un pielietojumi cilvēku dzīves kvalitātes uzlabošanai, industrijā un citās nozarēs. Miniatūras iegultās sistēmas ir ar ierobežotiem resursiem, piemēram, enerģijas avots bieži vien ir neliela baterija. Tāpēc ir aktuāli pētīt kā šos resursus pēc iespējas efektīvi izmantot, kā arī radīt rīkus jaunas aparatūras un programmatūras izstrādei. Bez tam, bezvadu sensoriem rodami pielietojumi arvien jaunas dzīves sfērās, kas prasa gan specifisku signāla apstrādi gan pielietojuma metožu pētniecību.
VieSenTIS projektā ir sekojošas apakšgrupas saskaņā ar pētnieku individuālo pieredzi un interesēm:
• BioSen – sensoru sistēmu pielietojumi biometrijā;
• CarMote – viedās transporta sensoru sistēmas;
• EdiMote – jaunas arhitektūras bezvadu sensoru aparatūrai;
• MansOS – operētājsistēma un programmatūra bezvadu sensoru un iegulto sistēmu atbalstam;
• SAntArray – antenu masīvu pielietojumi tīklotas iegultas sistēmās;
• SenSigA – sensoru signālu apstrādes metodes.
Turpmākajās nodaļās ir apkopoti galvenie sasniegumi minētajos virzienos.
Nodaļa 1
BioSen grupas atskaite
Anotācija
BioSen grupas ietvaros tika izveidots precīzs sejas detektēšanas algoritms, kas balstās uz LBP un Neironu tīkliem. Tika izveidoti vairāki optimizācijas paņēmieni LBP operatora parametru izvēlei. Algoritma pozitīvais aspekts ir salīdzinoši neliela parametru telpa un vienkāršs neironu tīkls, kas ļauj paātrināt sejas detektēšanas procesu. Tika arī izveidots efektīvs skenējošais logs, kas paredzēts telpiski bagātināto histogrammu aprēķināšanai katrā loga pozīcijā. Sejas detektēšanas algoritms tika notestēts uz color FERET [1] datubāzes.
1.1 Ievads
Precīza sejas detektēšana ir ļoti svarīgs uzdevums daudzās jomās, piemēram, sejas atpazīšanā. Sejas atpazīšanas algoritma precizitāte bieži vien ir atkarīga no sejas detektēšanas stadijas [5]. Piedāvātais algoritms balstās uz tekstūras operatora (Local Binary Patterns - LBP) kombinācijām ar Neironu tīkliem. LBP histogrammas salīdzinoši maz ietekmē cilvēka ādas krāsa un apgaismojuma apstākļi [6], kas mazina šo negatīvo faktoru ietekmi uz sejas detektēšanas algoritma precizitāti.
Galvenās algoritma priekšrocības ir efektīva klasifikatora izvēle un salīdzinoši neliela LBP parametru telpa. LBP histogrammu garums, kas tika izmantots sejas un ne-sejas objektu aprakstīšanai, ir neatkarīgs no ieejas attēla izšķirtspējas, kas padara šo algoritmu par efektīvu sejas detektoru augstas izšķirtspējas attēlos.
1.2 Saistītie risinājumi
Ideja izmantot LBP operatoru objektu detektēšanai attēlos nav jauna. Pirmais sejas detektēšanas algoritms, kas balstījās uz LBP uz SVM tika izveidots 2004. gadā [2]. Vēlāk pētnieki šo ideju attīstīja arī citu objektu detektēšanai, aizvietojot SVM klasifikatoru ar ātrākiem klasifikācijas paņēmieniem. Tomēr piedāvātajiem algoritmiem ir viens liels trūkums: dažāda izmēra objektu
Att. 1.1: LBP sejas histogrammas aprēķināšanas princips, reģionu skaits ir 6×6.
detektēšanai tiek veikta ieejas attēla samazināšana, kas rezultātā noved pie informācijas zudumiem un pasliktina detektora precizitāti.
1.3 Risinājums
Piedāvātais sejas detektēšanas algoritms balstās uz skenējošā loga principiem. Pirmā algoritma stadija ir ieejas attēla LBP transformācija. Tālāk LBP attēls tiek skenēts ar logu, kur katrā loga pozīcijā tiek rēķināta telpiski bagātināta LBP histogramma. LBP histogramma tālāk tiek klasificēta ar iepriekš apmācīto Neironu Tīklu lai noteiktu histogrammas klasi: sejas vai ne-sejas. Detektora izejā tiek noteikta loga pozīcija kurā ar vislielāko varbūtību varētu atrasties seja. Šajā algoritma realizācijā seju skaits attēlā ir viens, bet algoritmu var salīdzinoši vienkārši paplašināt ar mērķi detektēt vairākas sejas ieejas attēlos. Galvenās problēmas kuras vajag atrisināt ir LBP parametru telpas samazināšana un efektīva klasifikatora izveide, jo šie aspekti ietekmē algoritma ātrdarbību.
·
·
·
·
Telpiski bagātinātas LBP histogrammas efektīvi reprezentē gan lokālās gan globālās objekta īpašības. Intuitīvais LBP histogrammu aprēķināšanas princips parādīts 1.1 attēlā, kur reģionu skaits sejas attēlā ir vienāds K = 6 6 = 36. LBP transformāciju parasti raksturo ar diviem parametriem P - pikseļu skaits kas tika izmantotas LBP transformācijas aprēķināšanai un R - rādiuss, uz kura šie pikseļi atrodas. Biežāk pētnieki sejas detektēšanas uzdevumā izmanto P = 8 [3, 2, 6, 5]. Telpiski bagātinātas LBP histogrammas garums ir vienāds N = 2P K2, tātad pielietojot klasisko P vērtību, LBP parametru vektora garums ir N = 256 K2. Pirmais optimizācijas solis, kas tiek paveikts ir P samazināšana līdz P = 4, kas ļauj ievērojami samazināt parametrisko telpu: N = 16 K2. P nav vienīgais LBP transformācijas parametrs, ir nepieciešams izvēlēties arī LBP struktūru (tika apskatītas divas struktūras: ”x”-formas un ”+”-formas) un rādiusa R vērtību, Attēls 1.2.
R vērtība un LBP struktūra tiek izvēlēta balstoties uz sekojošā vienādojuma:
F (R) = i j i j
(1.1)
(m − 1)/m ∑ ∑ d(Hf , Hnf )
i
j
i
j
i
j
i
j
∑ ∑ d(Hf , Hf ) + ∑ ∑ d(Hnf, Hnf )
kur apzīmējums d(Hf , Hnf ) reprezentē Eiklīda attālumu starp sejas
i j
Att. 1.2: ”+”-formas un ”x”-formas LBP operatora struktūras.
j
Att. 1.3: Līknes LBP operatora struktūras un rādiusa R izvēlei.
i
histogrammu Hf
un ne-sejas histogrammu Hnf
un m ir sejas/ne-sejas
apmācības piemēru daudzums. Šī vienādojuma intuitīvā ideja ir izvēlēties tādus LBP operatora parametrus, kas ļauj maksimizēt attiecību starp vidējiem ”inter- class” and ”intra-class” Eiklīda attālumiem.
Kad LBP operatora parametri ir noskaidroti ir nepieciešams izvēlēties optimālo K vērtību. Šī stadija tiek izpildīta kopā ar klasifikatora analīzi, jo šie aspekti ir cieši saistīti. Maza K vērtība un vienkāršs Neironu tīkls izraisīs ”High Bias” problēmu, bet pretējs apgalvojums var izraisīt ”High Variance”, kā arī samazināt algoritma ātrdarbību. Mērķis ir atrast kompromisu starp šiem parametriem. Klasifikators mūsu gadījumā ir Neironu Tīkls ar vienu slēpto slāni.
1.4 Eksperimenti un-vai testi
Algoritmi tika testēti uz color FERET datubāzes. Modificētie attēli no šīs datubāzes tika izmantoti Neironu Tīkla apmācībai un optimizācijai.
Pirmais aspekts, kas tika izanalizēts ir LBP operatora parametri balstoties uz vienādojuma 1.1. Šim nolūkam tika izvēlēti sejas attēli no color FERET datubāzes kā arī reģioni, kas nesatur sejas no šīs pašas datubāzes. Rezultējošās līknes paradītas 1.3 attēlā. Funkcijām 1.3 attēlā ir izteikts maksimums pie R = 4 un ”+” - formas struktūras. Šīs vērtības ir izvēlētas par LBP operatora parametriem.
Pēc Neironu tīkla analīzes tika noteikts arī K parametrs, kuram minimāla vērtība ir K = 3. Rezultējošās parametriskās telpas izmērs ir N = 144. LBP histogrammas ar garumu N kombinācijā ar Neironu tīklu, kas sastāv no pieciem
Att. 1.4: Līknes LBP operatora struktūras un rādiusa R izvēlei.
neironiem slēptajā slānī, nodrošina salīdzinoši augstu detektēšanas precizitāti.
1.5 Rezultāti
Lai noteiktu sejas detektēšanas algoritma precizitāti tika izveidots sekojošs kritērijs:
ηface = δface/(2deye),
kur ηface ir relatīva sejas reģiona nobīde, δface ir absolūta sejas reģiona nobīde un deye ir attālums starp acīm.
Algoritms tika notestēts uz color FERET datubāzes un ηface vērtības tika reprezentētas ECDF (Empirical Cumulative Distribution Function) formātā, attēls 1.4.
Kritiskā ηface vērtība ir 0.25, jo šī ir minimālā prasība, lai acu reģioni atrastos sejas attēlā. Pie ηface = 0.25 detektēšanas precizitāte ir 99.1%.
1.6 Kopsavilkums un secinājumi
Piedāvātais sejas detektēšanas algoritms balstās uz LBP un ANN kombinācijas, kas ļauj sejas detektēšanai izmantot parametrisko telpu ar salīdzinoši mazu izmēru N = 144 un nelielu Neironu Tīklu, kurā ir tikai 5 neironi slēptajā slānī. Detektēšanas precizitāte pie šiem parametriem testējot uz color FERET datubāzes ir 99.1%, kas ir ievērojami labāk nekā LBP un NNC kombinācija [5]. Vairāk detaļu par algoritmu ir iespējam izlasīt sekojošā publikācijā [4].
1.7 Nākotnes perspektīvas
Viens no būtiskākajiem algoritma trūkumiem ir tā nepietiekoši lielā ātrdarbība. Lielāko laiku patērē telpiski bagātināto LBP histogrammu aprēķināšana katrā skenējošā loga pozīcijā. Šo soli ir iespējams optimizēt un paātrināt, kas tiek plānots nākotnē. Tiek arī plānots apdomāt algoritma paralēlo izpildi ar mērķi to pārnest uz daudzkodolu sistēmas.
Literatūra
[1] xxxx://xxxx.xxxx.xxx/xxxxxxxxxx/.
[2] A. Xxxxx, X. Xxxxxxxxxxx, and X. Xxxxxx. A discriminative feature space for detecting and recognizing faces. In CVPR (2), pages 797–804, 2004.
[3] X. Xxx, X. X. Xxxx, and X. Yang. Face detection. Technical report, Stanford University, 2003. EE368 Final Project Report.
[4] X. Xxxxxxxx and X. Xxxxxxxx. Local binary patterns and neural network based technique for robust face detection and localization. Proceedings of the Special Interest Group on Biometrics and Electronic Signatures (BIOSIG 2012), pages 100–111, September 2012.
[5] X. Xxxxxxxx and X. Xxxxxxxx. Reduced complexity automatic face recognition algorithm based on local binary patterns. Peoceedings of 19th International Conference on Systems, Signals and Image Processing (IWSSIP 2012), pages 447–450, 2012.
[6] Y. Xxxxxxxxx. Face Detection and Verification using Local Binary Patterns. PhD thesis, Ecole Polytechnique Federale de Lausanne, 2006.
Nodaļa 2
CarMote grupas atskaite
Anotācija
Līdz ar dažādu transporta veidu attīstību, aizvien lielāka nozīme ir viedajām transporta sistēmām, kuras tiek veidotas, izmantojot aparatūras un programmatūras risinājumus. Šie risinājumi ietver gan transporta plūsmu un apkārtējo vidi raksturojošu datu ieguvi, gan arī to apstrādi un koplietošanu. CarMote grupa nodarbojas ar multimodālu datu ieguves un apstrādes problēmu risināšanu transporta nozarē, izmantojot gan dažādu konvenciālu mobilu datortehniku, gan arī speciāli izstrādātas iegultas iekārtas. Šajā darbā ir aprakstītas aktivitātes, kas ir saistītas ar navigācijas sistēmas izstrādi.
2.1 Ievads
CarMote grupas mērķis ir kooperatīva transportlīdzekļa izstrāde, kas spēj efektīvi plānot kustību un pārvietoties līdzīga veida transportlīdzekļu plūsmā. Šī mērķa sasniegšanai tika noteikti vairāki uzdevumi elektronikas, programinženierijas, digitālās signālu apstrādes, bezvadu komunikācijas u.c. jomās. Par kooperatīva transportlīdzekļa izstrādes prasību pamatu tika paņemti GCDC noteikumi [1], kas deva vairākas priekšrocības:
• ekonomēja laiku prasību uzstādīšanai;
• tika izmantots lokāls standarts, kuru izstrādāja un novērtēja professionālu zinātnieku/izstrādātāju grupa;
• varēja veikt sekmīgu izstrādāta risinājuma testēšanu, salīdzinot to ar citu komandu risinājumiem no dažādiem pasaules institūcijam un valstīm;
2.2 Saistītie risinājumi
Kooperatīvo transportlīdzekļu un autonomo transportlīdzekļu izstrāde ir ļoti populārā tēma pasaules zinātnē [2]. Katru gadu parādās ar vien vairāk transportlīdzekļu, līdz ar to efektīva transportlīdzekļu plūsmas plānošana un drošības paaugstināšana ir aizvien svarīgāka. Tēmas attīstību atbalsta dažādu sacensību rīkošana [3, 4].
2.3 Risinājums
2.3.1 Navigācijas sistēma
INS sensoru kalibrēšana
Navigācijas sistēmas rezultāts ir atkarīgs no tās apakšsistēmu panākumiem, tāpēc rezultāta precizitātes paaugstināšanai ir nepieciešama rupīga sensoru kalibrēšana. Mūsu gadījumā tiek veikta INS moduļa sensoru kalibrēšana:
• Akselerometra kalibrēšana
≈ ≈ ≈
Lai veiksmīgi veikt akselerometra kalibrēšanu ir nepieciešams, lai INS modulis būtu miera stāvoklī un akselerometra z-ass vektors būtu kolineārs ar gravitācijas virziena vektoru. Šajā gadījumā ir noteikti zināms, kā x-ass un y-ass paātinājums ir 0g un z-ass paātrinājums ir -g, kur g 9.8 m/s ir gravitācijas paātrinājums. Ņemot vērā šo faktu, tiek noteiktās x, y un z ass vērtību nobīdes. Turpmāk tās nobīdes tiek ņemtas vērā, kas dod iespēju ievērojami samazināt ātruma, pozīcijas un orientācijas prognozes kļūdu.
• Žiroskopa kalibrēšana
Lai veiksmīgi veikt žiroskopa kalibrēšanu ir nepieciešams, lai INS modulis būtu miera stāvoklī. Žiroskopa datu nobīdes tiek noteiktas uzņemot vairākus žiroskopa datu paraugus (piem., 100 paraugus) un aprēķinot paraugu vidējas vērtības. Turpmāk tās nobīdes tiek ņemtas vērā, kas dod iespēju ievērojami samazināt žiroskopa vertību novirzes ietekmi.
• Magnetometra kalibrēšana
Magnetometra kalibrēšana notiek kustībā un tā ir paredzēta “hard-iron” efekta ietekmes samazināšanai. Ideālā gadījumā magnetometra x un y ass paraugi veido plaknē riņķa līniju ar centru (0,0), bet ”hard-iron” efekta ietekmes gadījumā riņķa līnijas centrs ir nobīdīts (sk. att. 2.1). Magnetometra kalibrēšanas laikā tiek noteikta riņķa ļīnijas centra nobīde pēc vairākiem uzņemtiem magnetometra datu paraugiem. Turpmāk tās nobīdes tiek ņemtas vērā, kas dod iespēju ievērojami uzlabot kursa noteikšanas precizitāti.
Magnetometra kalibrēšana
Magnetometrs mēra magnetiskā lauka stiprumu, tāpēc to var izmantot kā digitālo kompasu. Tomēr eksistē Zemes magnetiska lauka izkropļojumi, ko rada ārējas magnetiskas ietekmes avoti (tiek klasificēti kā ”hard-iron” un ”soft-iron” efekta avoti). Mūsu gadījumā ”hard-iron” efektam ir vislielāka ietekme, tāpēc apskatīsim tas ietekmes novēršanas procedūru.
Ņemot vērā, ka ideālā gadījumā magnetometra x un y ass paraugi veido plaknē riņķa līniju ar centru (0,0), bet ”hard-iron” efekta ietekmes gadījumā riņķa līnijas centrs ir nobīdīts, tad magnetometra kalibrēšanas uzdevums reducējas uz riņķa līnijas centra koordinātu un radiusa noteikšanu. Tikai šī gadījumā ir nepieciešams minimizēt vidējo attālumu starp dotiem punktiem (magnetometra paraugi) un riņķa līnijas centru.
Att. 2.1: Magnetometra x un y ass paraugi, ”hard-iron” efekta ietekme
Riņķa līnijas centra koordinātu un radiusa noteikšanai tiek izmantota ”Gradient descent” metode. Kā ir zināms, ”Gradient descent” ir iteratīva metode, kas meklē lokālo optimumu, izmantojot kļūdas kritēriju jeb izmaksas funkciju. Šī gadījuma izmaksas funkcija J tiek definēta sekojoši:
Att. 2.2: Magnetometra kalibrēšana: pirmais solis (pa kreisi), otrais solis (pa labi)
Att. 2.3: Magnetometra kalibrēšana: pēdējais solis
∑
n
J = (di − r)2, kur
√
i=1
di = (xi − x)2 + (yi − y)2
- Eiklīda attālums starp punktiem Pi(xi, yi) un riņķa līnijas centru C(x, y)
∑n di
r = i=1
n
- riņķa līnijas radiuss
Savukārt izmaksas funkcijas gradients ir definēts sekojoši:
∂x
i=0
{ ∂J = 2 ∑n
(x−xi)(di−r)
di
∂y
i=0
di
∂J = 2 ∑n (y−yi)(di−r)
Metode sper soli uz priekšu (sk. att. 2.2 kreisajā pusē), pēc tam vēl vienu soli (sk. att. 2.2 labajā pusē) un tā turpinā kamēr izmaksas funkcijas dilšanas solis > ϵ. Beigās tiek noteiktās optimālās riņķa līnijas centra koordinātes un radiuss (sk. att. 2.3).
Att. 2.4: LEA-6H moduļa principāla slēguma shēma
GPS/GLONASS modulis
CarMote grupā tika izpētīts navigācijas modulis LEA-6H, kā arī izveidota un notestēta principāla slēguma shēma (sk. att. 2.4). Viena no LEA-6H navigācijas moduļa galvenām īpatnībām ir iespēja apstrādāt signālus gan no GPS (Global Positioning System) gan no Glonass pavadoņu sistēmas. Vēlāk šā moduļa iespējas tiks paplašinātas ar to, ka kļūs peejams signāls no Eiropas pavadoņu sistēmas Galileo. Pēc pētījuma rezultātiem [5] var noteikt, ka navigācijas sitēma, kas vienlaikus apstrādā signālus no vairākām sistēmām, gūs labāku apkalpošanas laiku un varēs precīzāk noteikt pētamā objekta koordinātes uzlabojot integrētas navigācijs sistēmas darbības parametrus. Ir paredzēts ka LEA-6H navigācijas modulis aizvietos šobrīd lietojamu Holux M-1200E GPS uztvērēju.
Slēgumu shēmā (sk. att. 2.4) ir redzama izveidota moduļa principiāla shēma. Shēmā ir realizēta iespēja veikt komunikāciju ar I2C, USART un USB datu pārraides protokoliem. Moduļa barošana notiek ar USB interfeisu. Moduļa rezervējoša barošana ir ralizēta ar bateriju. USB interfeisā ar miksoshēmu USB6B1 ir realizēta aizsardzība pret elektrostatisko izlādi. Modulī ir paredzēta aktīvās antēnas pieslēgvieta ar aisardzību pret īssavienojumu un antēnas pieslēģšanas detektēšanu.
2.4 Rezultāti un secinājumi
Navigācijas sitēmas pilnveidošanas laikā tika paveikts:
• INS sensoru kalibrēšanas procesa pilnveidošana;
• INS moduļa programmatūras pilnveidošana;
• Navigācijas sistēmas datu logošanas rīka pilnveidošana;
• Eksperimentu veikšana INS un GPS datu savākšanai;
• Jaunā GNSS moduļa projektēšana.
Secinājumi:
• Rupīga INS sensoru kalibrēšana dod iespēju ievērojami samazināt pozīcijas, ātruma un orientācijas noteikšanas kļūdas;
• Magnetometra kalibrēšana ar Gradient Descent metodi ir ērta lietošanā, kā arī nedārga un efektīva skaitļošanas ziņā;
• Navigācijas sitēma, kas vienlaikus apstrādā signālus no vairākām sistēmām, gūs labāku apkalpošanas laiku un varēs precīzāk noteikt pētamā objekta koordinātes uzlabojot integrētas navigācijs sistēmas darbības parametrus.
2.5 Nākotnes perspektīvas
Nākotnē tiek plānota navigācijas sistēmas programmatūras pilnveidošana un attīstīšana, kas dotu iespēju iegūt gatavu navigācijas risinājumu uz Sparkfun IMU moduļa un LEA-6H GPS/GLONASS uztvērēja bāzes.
Literatūra
[1] GCDC organization. GCDC 2011 Rules & Technology Document Final version, April 2011.
[2] The New York Times: Google Car. xxxx://xxx.xxxxxxx.xxx/0000/00/ 10/science/10google.html.
[3] DARPA Grand Challenge. xxxx://xxx.xxxxxxxxxxxxxxxxxxx.xxx/.
[4] Grand Cooperative Driving Challenge. xxxx://xxx.xxxx.xxx/.
[5] OXTS Application Note: What does GLONASS add? xxxx://xxx.xxxx. com/downloads/GLONASS_Add.pdf.
Nodaļa 3
EdiMote grupas atskaite
Anotācija
EdiMotes grupa nodarbojas ar universālas platformas izstrādi, kas būtiski atvieglo iegulto sistēmu aparatūras un programmatūras izstrādes procesu. Šāds rīks ir modulārs un nav piesaistīts pie konkrētiem iegulto sistēmu moduļiem (MCU, radio, sensoru, atmiņu, utt.) kā tas ir vairumā izstrādes rīku [1] [2] [3]. Tas nodrošina iegulto sistēmu izstrādātājam iespēju savstarpēji savienot iekārtas moduļus ar minimālu vai bez iespiedplašu projektēšanas nepieciešamības, izstrādes gaitā, kā arī veikt atsevišķu moduļu un kopējās sistēmas testēšanu. Tiek veidota arī analogo un ciparu signālu atkļūdošanas un analīzes iespēja, kā arī atsevišķu moduļu enerģijas mērīšanas funkcija. Platforma tiek vadīta no datora, kā arī analizējamo datu apstrāde, attēlošana un glabāšana notiek datorā.
EdiMote [4] palīdzētu atrisināt tipiskās iegulto sistēmu projektēšanas problēmas, ar ko saskaras gan inženieri, gan pētnieki. Šīs problēmas var iedalīt ar aparatūru saistītās problēmās un ar programmatūru saistītās problēmās:
• aparatūras problēmas:
– moduļu savstarpējā savienošana;
– signālu komutēšana;
– enerģijas patēriņa mērīšana;
• programmatūras problēmas:
– dažādu mikrokontrolieru programmēšanas atbalsts;
– ciparu un analogo signālu atkļūdošana;
– programmu veicamo operāciju ietekme uz enerģijas patēriņu.
3.1 Ievads
Iegulto sistēmu izstrāde ir laikietilpīgs un sarežģīts process. To iespējams atvieglot, izmantojot dažādus palīgrīkus, kas palīdzētu savienot atsevišķos iegultās sistēmas moduļus, nodrošināt to savstarpējo signālu savietojamību, analogo un ciparu signālu atkļūdošanu, kā arī novērtēt atsevišķu moduļu un sistēmas kopumā patērējamo enerģiju konkrētu procesu veikšanas brīdī. Izstrādājot iegultās sistēmas, kas izstrādes sākumā tiek veidotas kā prototipi, jāveic moduļu vai atsevišķu integrālo mikroshēmu savienošana, kam nepieciešama laikietilpīga spiesto plašu izstrāde [5] , nepieciešamas specifiskas ierīces procesoru programmēšanai un dažādi mērinstrumenti signālu novērošanai un atkļūdošanai. EdiMote [4] ir universāls iegulto sistēmu izstrādes rīks, kas paredzēts visu iepriekšminēto uzdevumu atvieglošanai.
Iepriekšējā laika posmā tika izstrādāts jaunas arhitektūras koncepts. Tās pamatā ir dažāda veida moduļi - perifērijas, testa, kuri savā starpā ir savienojami ar konektoru palīdzību. Tāda arhitektūra ir mērogojama.
3.2 Risinājums
Risinājums balstās uz dažāda veida moduļiem, kurus var saspraust savā starpā, dažādās kombinācijās. Lai šāda pieeja būtu realizējama, ir nepieciešami vismaz divi moduļu veidi - periferiālie un testējamie moduļi. Periferiālie moduļi kalpo prototipējamās iekārtas infrastruktūras veidošanai, piemēram, testējamās iekārtas enerģijas patēriņa noteikšanai, signālu atkļūdošanai utt. Šajā pieejā atšķirībā no citām pieejām, piemēram, izmantojot izstrādes rīkus, infrastruktūras konfigurācijas sarežģītību lietotājs pats var brīvi definēt. Šāda arhitektūra ir mērogojama. Prototipējamās iekārtas sarežģītība ir aktarīga no izmantoto moduļu daudzuma.
3.3 Komunikāciju modulis
Komunikācijas modulis nodrošina saskarni starp datoru un EdiMoti. Ir paredzēts, ka tas nodrošinās arī pārējo perifēriju moduļu kontroli. Tas tiek panākts izmantojot identisku saskarni, kas ir implementēta katram modulim. Tādā veidā ir iespējams gan konfigurēt, gan sazināties ar perifērijas moduļiem. Ir iespējami vairāki realizācijas varianti izmantojot vienu saskarni. Viens no variantiem ir izvēlēties tādu saskarni, kas atbalsta vairāku ierīču pieslēgšanu, piemēram, I2C saskarne. Ir jāizmanto UART tāpēc ka tas izmantots MCU pārprogrammēšanai, motēm, to var izmantot arī datu pārsūtīšanai.
Komunikāciju moduļa funkcionalitāte
• pārpogrammēt pieslēgto moti (pagaidām atbalsta iekārtas, kurām ir FT232 IC [6])
• pārprogrammēt mikrokontrolierus, izstrādes moduļus
• nosūtīt/saņemt datus, piemēram, enerģijas patēriņa dati
• nodrošināt USB un Ethernet saskarni
Veidojamā moduļa abstraktā blokshēma ir attēlota xx attēlā.
Att. 3.1: Komunikāciju moduļa blokshēma
3.3.1 Implementācija
UART kopnes multipleksēšana
Lai lokāli atkļūdotu testējamo iekārtu, to ir ērti pieslēgt pie USB saskarnes. Ja testējamo iekārtu skaits palielinās (pieaug līdz 10 un vairāk), ir ērtāk pieslēgt pie Ethernet saskarnes un piekļūt pie katras iekārtas attālināti (pēc IP adreses). Abas ieejas kopnes (USB, Ethernet) jāpārveido uz UART saskarni. Šāda izvēle tika izdarīta, jo vairāki funkcionālie mezgli izmanto UART saskarni.
Att. 3.2: UART 2:1 multipleksors
USB to UART pārveidošanai tiek lietota FT232 IC [6], kas pārveido USB uz virknes saskarni (UART).
Ethernet to UART pārveidošanai tiek izmantots Lantronix XPORT, kas pārveido Ethernet saskarni uz virknes saskarni (UART).
Multipleksora vadīšanai tiek izmantots Sel signāls, kas tiek vadīts no FT232 IC [6]. Ja USB saskarne ir aktīva, tad multipleksors padod UART’u, kas nāk no USB moduļa, pretējā gadījumā tiek izvēlēts UART’s no Ethernet moduļa.
Šī daļa ir uzprojektēta tā, ka gadījumā, ja USB netiks izmantots, tad var nelodēt gan USB, gan multipleksora daļu. Jāielodē nulles pretestības rezistori, kas savieno Ethernet UART’a signālus ar izejošiem UART signāliem.
UART kopnes dalīšana vairākās
Ir vairāki funkcionālie mezgli, kas izmanto UART saskarni, tāpēc ir jāveic UART’a kopnes demultipleksēšana, tas ir, viena UART kopne jāsadala vairākās.
Konkrētās UART saskarnes izvēlei ir jānosūta komanda (CMD). Pārslēgšana no viena klienta uz otru jāveic tā, lai netiktu pazaudēti dati kā arī, lai netiktu nosūtīti liekie dati klientam. Komanda tiek nosūtīta izmantojot DTR, RTS signālus. Ja ir atslēgts Hardware Flow Control, tad šie signāli tiek lietoti kā GPO (General Purpose Output).
Att. 3.3: RTS, DTR signālu laika diagrammas Šie signāli tiek padoti uz MCU, kas veic sekojošas darbības:
• pienākot jaunam bitam, tas tiek ierakstīts bīdes reģistrā;
• bīdes reģistra saturs tiek salīdzināts ar iepriekš definētiem masīviem. Ja viens no masīviem sakrīt ar reģistra saturu, tad tiek izvēlēts atbilstošais kanāls;
• bīdes reģistra saturs tiek nonullēts, ja ir saņemta pareiza komanda, pretējā gadījumā tiek gaidīti jauni dati;
• gaida jaunus datus.
Blokshēmu līmenī demultipleksēšanu nodrošina sekojoša shēma:
DTR, RTS signāli tiek buferēti un atkal apvienoti ar pārējiem UART signāliem pēc to demultipleksēšanas.
CTS signāls tiek izmantots kā ACK, ja MCU ir saņēmis pareizu komandu, tad izmantojot CTS signālu nosūta apstiprinājumu uz PC.
USB Host
Komutācijas moduļa shēmas daļa, kas nodrošina testējamo iekārtu, piemēram, motes, ieprogrammēšanu caur USB saskarni. Šim nolūkam tiek izmantota Vinculum II integrālā mikroshēma, kas nodrošina testējamo iekārtu pārprogrammēšanu caur USB saskarni.
Att. 3.4: UART kopnes demultipleksēšana
3.4 Barošanas sprieguma modulis
Barošanas moduļa galvenā funkcionalitāte ir darbs ar barošanas spriegumu kontroli un tā novērtēšanu. Piemēram, mainīt testējamai iekārtai barošanas sprieguma līmeni vai arī nomērīt, cik patērē enerģijas testējamais modulis.
Barošanas moduļa funkcionalitāte
• jānodrošina barošanas spriegums perifērijas un testa iekārtām
• testa iekārtām papildus jānodrošina maināms barošanas spriegums
• jāspēj nomērīt enerģijas patēriņš
• jānodrošina, lai šo moduli būtu iespējams konfigurēt caur UART kopni
3.4.1 Implementācija
Barošanas sprieguma kontroles modulis sastāv no vairākām daļām:
• barošanas sprieguma pārveidotājs (no 5V līdz 12V pārveidot uz 3V3)
• maināma izejas barošanas sprieguma (no 1V25 līdz 5V) pārveidotājs
• patērētās enerģijas mērītājs
• datu saglabāšanas daļa, piemēram, flash atmiņa vai SD karte
• kontroles daļa, kas konfigurē, kontrolē iepriekš minētās shēmu daļas
Barošanas sprieguma pārveidotājs (no 5V līdz 12V pārveidot uz 3V3)
Šim nolūkam tiek izmantots LM1117MP-3.3 LDO. Tas nodrošina 800mA lielu izejas strāvu. Ir iespējams ielodēt arī mikroshēmu, kas nodrošina lielāku izejas strāvu, līdz pat 1.5A.
Maināms izejas barošanas sprieguma (no 1V25 līdz 5V) pārveidotājs
Ir speciālas mikroshēmas, kas nodrošina maināmu izejas spriegumu, kas tiek noteikts pēc Vadj sprieguma lieluma. To var iestādīt gan ar fiksēto sprieguma dalītāju vai arī ar potenciometru. Mūsu gadījumā spriegumu ir jākontrolē programmistiski, tas ir, izejas spriegumu var mainīt nosūtot no datora attiecīgu komandu. Šim uzdevumam ir vairākas realizācijas:
• izmantot iebūvētu vai ārēju DAC - pārveido ciparu signālu analogā.
• izmantot ciparu potenciometru
• izmantot rezistoru matricu
Tika izvēlēts ciparu potenciometrs, jo tas ir lētākais un vienkāršākais variants no esošajiem. Ja izmanto MCU iebūvētu DAC, tas uzreiz sadārdzina MCU izmaksas. Ja salīdzina ar ārēju DAC, tad tam ir sarežģītāka kontrole nekā ciparu potenciometram. Lai šī pieeja strādātu, tad izejas sprieguma signāls ir jābuferē, tas ir, jāieliek operacionālais pastiprinātājs. Zinot, ka operacionālie pastiprinātāji (OP) nespēj nodrošināt izejā spriegumu, kas ir tuvu pie barošanas spriegumiem (-Vcc un +Vcc), tāpēc mēs nedrīkstam izmantot vienpolāru barošanu, jo tādā gadījumā tiks iegūti neadekvāti izejas dati. Lai to risinātu ir jāizmanto Rail to Rail input output OP, kas spēj nodrošināt izejā spriegumu, kas ir tuvs pie barošanas spriegumiem.
Enerģijas mērītājs
Patērētās enerģijas vērtības noteikšanai tiek izmantots Rsesnse rezistors, uz kura tiek mērīts sprieguma kritums, iegūtā vērtība tiek pastiprināta un saciparota ar ADC.
Att. 3.5: Enerģijas mērīšanas blokshēma
Tāpat arī šajā gadījumā mēs nedrīkstam izmantot parastos OP vienpolāras barošanas gadījumā. Šos OP aizstājam ar instrumentāliem OP, izvēloties šos
OP ir svarīgs Vcm parametrs, kas noska maksimālo sprieguma vērtību, kas var tikt padota uz abām instrumentālā OP ieejām.
Barošanas moduļa kontrole
Lai veiktu iepriekšminēto daļu kontroli ir jābūt kontroles mezglam, šajā gadījumā tas ir MCU, kas šīs operācijas veic. Galvenie kritēriji MCU izvēlē ir:
• iebūvēto USART kontrolieru skaits
• iekšējā RAM un Flash atmiņa
• izvadu skaits
3.5 Turpmākie darbi
Turpmākie darbi saistās ar pārējo perifēriju moduļu izstrādes pabeigšanu. Pirmajā iterācijā tiks pabeigtas shēmas daļas, kas atbild par nepieciešamo funkcionalitāti. Nākamā iterācija būs vienotas saskarnes izveidošana, kas nepieciešama, lai varētu saslēgt kopā moduļus. Ja būs nepieciešams shēmas tiks papildinātas ar komponentiem, kas nodoršinās vienotu saskarni starp moduļiem.
Literatūra
[1] Xxxxxx Xxxxxxxx, Xxxxxx Xxxxxxxx, and Xxxxx Xxxxxx. Telos: enabling ultra- low power wireless research. In Proceeding IPSN ’05 Proceedings of the 4th international symposium on Information processing in sensor networks. IPSN, 2005.
[2] Xxxxxx Xxxxx and Xxxxx Xxxxxx. Demo: Epic: An Open Mote Platform for Application-Driven Design. In In Proceedings of the Seventh International Conference on Information Processing in Sensor Networks (IPSN’08) Track on Sensor Platforms, Tools, and Design Methods. IPSN, 2008.
[3] Micaz. xxxx://xxx.xxx-xxxx.xx/XXXXx.xxx.
[4] X. Xxxxxxx and Xxxxxx X. EdiMote: A Flexible Sensor Node Prototyping and Profiling Tool. In Real-World Wireless Sensor Networks 4th International Workshop, REALWSN 2010 Colombo, Xxx Xxxxx, December 2010 Proceedings, pages 194–197. ACM, 2010.
[5] Spiestās elektriskās plates. xxxx://xx.xxxxxxxxx.xxx/xxxx/Xxxxxxx_ circuit_board.
[6] Ft232rl. xxxx://xxx.xxxxxxxx.xxx/Xxxxxxx/Xxxxxxxxx/XxxxXxxxxx/ ICs/DS_FT232R.pdf.
Nodaļa 4
MansOS grupas atskaite
Anotācija
MansOS grupas mērķis ir izstrādāt operētājsistēmu bezvadu sensoru tīkliem (BST), kā arī strādāt pie šīs operētājsistēmas praktiskajiem pielietojumiem. Lai gan jau eksistē vairākas BST specifiskas operētājsistēmas, tām ir tādi trūkumi kā krauja apmācības līkne vai slikta pārnesamība. MansOS izvairās no šīm problēmām, sekojot savas arhitektūras vadlīnijām – strādāt mērķauditorijai ar UNIX un C programmēšanas pieredzi, būt lietotājdraudzīgiem, un piedāvāt vieglu pārnesamību uz jaunām aparatūras platformām.
Lai padarītu mūsu programmatūru pieejamu vēl plašākam lietotāju lokam, tiek izstrādāta domēnspecifiskā valoda SEAL [6]. Tika veikts tās novērtējums un salīdzinājums ar alternatīvajiem piegājieniem.
4.1 Ievads
Valoda SEAL ir deklaratīva domēnspecifiska valoda, kura izveidota, lai padarītu lietojumprogrammu prototipēšanu vienkāršāku – tai skaitā iespējamu tiem, kuri nav profesionāli programmētāji, tomēr būdami potenciāli sensoru tīklu lietotāji. Tādi ir, piemēram, dabaszinātnieki, inženieri, kā arī gluži vienkārši cilvēki, kuri darbošanos ap iegultajām sistēmām uzskata par savu hobiju.
SEAL ir izveidota (Att. 4.1) ietekmējoties no tādām valodam kā SNACK [7], kā arī no Arduino bibliotēkas un programmēšanas vide.
4.2 Metodika
Lai novērtētu SEAL, vairākas lietojumprogrammu implementācijas tika salīdzināts ar implementāciju MansOS C kodā, kā arī (kur bija iespējams) ar TinyOS [8] lietojumprogrammām nesC valodā.
• Empty – minimālā programma, kuru iespējams bez kļūdām nokompilēt;
• Sense & print – nolasīt gaismas, mitruma un temperatūras sensorus un aizsūtīt datus uz seriālo portu;
C/C++
Processing
implements implements implements
implements
is based on
WSN
software
Mantis
LiteOS
Contiki
Arduino software
influences is based on
influences
influences
Arduino IDE
influences
implements
nesC
TinyOS influences MansOS
influences
Area of our contributions
uses
uses
SNACK
influences
SEAL
SEAL IDE
SEAL Blockly
is based on
is based on
Blockly
Scratch
- programming language
- visual programming language
- OS or software libraries
- integrated development environment
Att. 4.1: Valodas SEAL saistītais darbs un konteksts
• Sense & store & send – nolasīt gaismas, mitruma un temperatūras sensorus, aizsūtīt datus uz radio, un ierakstīt tos SD kartē;
• SAD – pilnā SAD programma lietojumam LVAI [1] augļu dārzā Dobelē; ieskaitot bāzes stacijas un datu pārsūtītāju kodu.
SAD programmas kods ir dots slejā 1; pārējie ir triviāli.
Sleja 1 SAD lietojumprogramma
config "USE_LONG_LIFETIME=y"; // use 64-bit counter define HelperLed RedLed, blink;
define Battery AnalogIn, channel constants.ADC_INTERNAL_VOLTAGE; when Variables.localAddress == 0x0796:
define TheLight SQ100Light; else:
define TheLight Light;
end
define AllSensors sync(TheLight, Humidity, Temperature);
read AllSensors, period 10min, associate HelperLed, turnOnOff; output SdCard;
output Network, protocol SAD, routing SAD;
Visi testi tika veikti ar MansOS SVN revīziju 492 (2012. gada 22. septembris) un TinyOS revīziju 5966.
4.3 SEAL vienkāršības novērtējums
Tika mērīti šādi parametri:
• Lines of code – rindiņu skaits. Tikai ieskaitītas .c koda un konfigurācijas failu rindiņas. Netika ieskaitītas tukšās rindiņas un tās, kurās bija tikai komentāri.
• Number of files – failu skaits. Tikai ieskaitīti .c koda faili un konfigurācijas faili, bet netika Makefile. Tika ieskaitītas arī mapes, izņemot augšējā līmeņa mapi.
200
180
160
140
lines of code
120
100
80
60
40
20
0
Empty
Sense & print
Sense & send & store
(a) Source code size
SAD
TinyOS nesC MansOS C MansOS SEAL
12
10
number of files
8
6 TinyOS nesC
MansOS C
4 MansOS SEAL
2
0
Empty
Sense & print
Sense & send & store
(b) Number of source files
SAD
Att. 4.2: Lietotņu pirmkoda un failu skaita salīdzinājums
Kods tika rakstīts, vadoties no MansOS kodēšanas stila norādījumiem. Visiem for un while cikliem atverošās iekavas stāv vienā un tajā pašā rindiņā, tāpat kā tas ir ar funkcijām, kuram ir tikai divas rindiņas vai mazāk. Garākām funkcijām iekavas ir jaunā rindiņā. Visām funkcijām aizverošā iekava ir jaunā rindiņā, ieskaitot funkcijas ar tukšu ķermeni.
No attēla 4.2 var izdarīt šādus secinājumus:
1. TinyOS koda garums ir daudz lielāks; ir pamats domāt, ka sarežģītākam progammām šī proporcija saglabāsies (jo sarežģītība nozīmē programmas loģikas apraksta apjoma pieaugumu);
2. SEAL ļauj iztikt ar daudz mazāku (ap 10x) koda rindiņu skaitu;
3. Kompleksām progammām SEAL ļauj iztikt ar daudz mazāku failu skaitu.
4.4 SEAL efektivitātes novērtējums
Tika mērīti šādi paramteri:
• Binary code size – .text segmenta izmērs, noteikts, izmantojot
msp430-size utilīprogrammu;
• RAM usage – summa no .bss un .data segmentu izmēriem. RAM lietojums iekļauj apgabalu, kas rezervēts pavedienu stekam (512 baitu).
25000
20000
15000
bytes
10000
5000
TinyOS nesC, TelosB MansOS C, TelosB MansOS C, SADmote MansOS SEAL, TelosB MansOS SEAL, SADmote
0
Sense & print
SAD
Empty
Sense & send & store
(a) Code memory usage
2000
1800
1600
1400
1200
bytes
1000
800
600
400
200
0
Empty
Sense & print
Sense & send & store
SAD
TinyOS nesC, TelosB MansOS C, TelosB MansOS C, SADmote MansOS SEAL, TelosB MansOS SEAL, SADmote
(b) RAM usage
Att. 4.3: Lietotņu binārā koda izmēru un RAM patēriņa salīdzinājums SAD programmai tika mērīta optimizēta versija - tāda, kurai config
failā bija vēl divas papildus rindiņas, kas atslēdza assert tipa izteikumus un drukāšanu uz seriālo portu. Šīs rindiņas tika ieskaitītas arī pirmkoda izmēra novērtējumā.
SAD gadījumā attēlā ir doti tikai galvenās (motes) programmas dati. Citu programmu attiecīgie dati ir šādi:
• SAD bāzes stacijas koda izmērs: 12814 baiti; XXX xxxxxxxx: 1498 baiti
Scenārijs Klase Demonstrētā īpašība
Mikrokilamata mērīšana [5] Env. monitoring Periodic sampling Apūdeņošanas sistēmas kontrole [5] Env. monitoring Distributed processing Sensoru kalibrācija [9] Env. monitoring Intra-node processing Gaismas mērījumu savākšana [13] Env. monitoring Interactive query support Seismiskās aktivitātes noteikšana [15] Env. monitoring Event-driven processing Rezerves mikrokontroliera kods [16] Wild animal mon. Imperative elements Tilta funkcionalitāte [14] Automotive Basic intra-node processing Gaismas monitorings tuneļos [3] Env. monitoring Adv. intra-node proc. (using C) Bedru detektēšana #1 [11] Mobile agents Adv. intra-node proc. (using SEAL) Bedru detektēšana #2 [11] Mobile agents Signal filtering
Mērķa rajona noteikšana [10] Mobile agents Localization Signāla ģenerēšana [12] Electronics Multiplatform support
Tabula 4.1: Analizētie scenāriji
• SAD datu pārsūtītāja koda izmērs: 10230 baiti; RAM patēriņš: 1134 baiti
• SAD datu savācēja koda izmērs: 10978 baiti; XXX xxxxxxxx: 1278 baiti Visi izmēri ir doti SADmote v3 platformai.
Bāzes stacijai bija atslēgts assert, abām pārējām programmām: gan
assert, gan drukāšana.
No attēla 4.3 var izdarīt šādus secinājumus:
1. TelosB un SADmote patērē aptuveni vienādu daudz resursu;
2. TinyOS patērē daudz vairāk; tomēr ir pamats domāt, ka garākām programmām pārtēriņš būs mazāks (jo lielāku daļu koda aizņems pati programmas loģika, nevis OS servisi);
3. SEAL tērē tikai nedaudz (10–20%) vairāk nekā programmētāja rakstītā implementācija C kodā;
4. SEAL ir pietiekoši efektīvs, lai to lietotu uz ļoti zema enerģijas patēriņa MCU.
4.5 SEAL lietojamības apgabala novērtējums
Ir tikuši identificēti vairāki scenāriji, kuros varētu tikt lietots SEAL un uzrakstītas tiem atbilstošās programmas šajā valodā. Tabulā 4.1. ir sniegta tikai apkopojošā informācija; programmas ir iekļautas MansOS pirmkodā, bet to apraksti darbā [4].
4.6 Kopsavilkums un nākotnes perspektīvas
Tika veikta valodas SEAL vienkāršības (lietošanas viegluma), lietošanas apgabala, kā arī efektivitātes novērtēšans. Rezultati parādīja, ka SEAL lietot ir vieglāk nekā izmantot citas, alternatīvās, pieejas. Tās efektivitāte ir augsta (10–20% pārtēriņš salīdzinot ar roku rakstītām programmām), bet lietošanas
apgabals plašs – gan “klasisskie” sensoru tīklu lietojumi, gan citas iegulto sistēmu programmēšanas problēmas.
Vēl MansOS grupā šajā ceturksnī tika veikta:
• AdvanticSYS XM1000 [2] platformas pievienošana. Tā ir TelosB līdzīga mote, taču ar MSP430F2618 MCU. Tai ir on-board radio transcīveris CC2420 un sensori (divi gaismas un viens temperatūras un mitruma), kuri ir pilnīgi savietojami ar Tmote Sky sensoriem;
• MansOS izstrādes vides pilnveidošana, x.xx. integrēšana ar Blockly valodas paplašinājumu SEAL-Blockly;
• MSP430FRxx (FRAM) platformas pievienošana MansOS;
• datu apstrādes funkciju pievienošana valodai SEAL;
• attālināto sensoru lasīšanas pievienošana valodai SEAL.
Literatūra
[1] Latvia State Institute of Fruit-Growing. xxxx://xxx.xxxx.xx.
[2] AdvanticSYS XM-1000. xxxx://xxx.xxxxxxxxxxx.xxx/xxxx/xxxxx. php?title=XM1000, 2012. [Online; accessed 29.09.2012.].
[3] M. Xxxxxxxx, X. Xxxxx, X. X’Xxxxxx, X. Xxxxxxxxx, X. Xxxxxxx, X. Guna,
G. Xxxx, X. Xxxxx, X. Xxxxxxx, X. Xxxxxx, et al. Is there light at the ends of the tunnel? wireless sensor networks for adaptive lighting in road tunnels. In Information Processing in Sensor Networks (IPSN), 2011 10th International Conference on, pages 187–198. IEEE, 2011.
[4] X. Xxxxx. A framework to facilitate wireless sensor network application development. PhD thesis at University of Latvia (draft), 2012.
[5] X. Xxxxx, X. Xxxxxx, X. Xxxxxxxxx, and X. Xxxxxx. SAD: Wireless Sensor Network System for Microclimate Monitoring in Precision Agriculture. In Proceedings of the 5-th international scientific conference Applied information and communication technologies (AICT 2012), pages 271–281, 2012.
[6] X. Xxxxx and X. Xxxxxx. A user-centric approach to wireless sensor network programming languages. In SESENA ’12: Proceedings of the 3rd Workshop on Software Engineering for Sensor Network Applications, pages 29–30, New York, NY, USA, 2012.
[7] X. Xxxxxxxxxx, X. Xxxxxx, and D. Estrin. A sensor network application construction kit (SNACK). In Proceedings of the 2nd international conference on Embedded networked sensor systems, SenSys ’04, pages 69–80, New York, NY, USA, 2004. ACM.
[8] P. Xxxxx, X. Xxxxxx, X. Xxxxxxxx, X. Xxxxxxxx, X. Xxxxxxxxxx, X. Woo,
D. Xxx, X. Xxxx, X. Xxxxx, X. Xxxxxx, and D. Culler. Tinyos: An operating system for sensor networks. In Ambient Intelligence. Springer Verlag, 2004.
[9] LUMII. Projekts „Liela rādiusa bezvadu sensoru tīkla izstrāde precīzās lauksaimniecības pielietojumiem Latvijā”. xxxx://xxx.xxxxx.xx/ resource/show/485, 2011.
[10] X. Xxxxxx. A multimodal approach for determination of vehicle position. In Workshops on Business Informatics Research, pages 223–235. Springer, 2012.
[11] X. Xxxxxx, X. Xxxxxxxxx, X. Xxxxxxxx, X. Xxxxxxxx, and X. Xxxxxx. Real time pothole detection using android smartphones with accelerometers. In Distributed Computing in Sensor Systems and Workshops (DCOSS), 2011 International Conference on, pages 1–6. IEEE, 2011.
[12] X. Xxxxxx and X. Xxxxxxxx. RFID Communication: How Well Protected Against Reverse Engineering? In Proceedings of the 2nd International Conference on Digital Information Processing and Communications (ICDIPC12), pages 57–62. Klaipeda University, 2012.
[13] X. Xxxxxx, X. Xxxx, X. Xxx, X. Xxxxxxx, X. Xxx, X. Xxxxxxxxxx, X. Wu,
W. Xxxx, X. Xxxxxxxxx, X. Xxxxx, et al. Luster: wireless sensor network for environmental research. In Proceedings of the 5th international conference on Embedded networked sensor systems, pages 103–116. ACM, 2007.
[14] X. Xxxxxxxxx, X. Xxxxxxxxxx, X. Xxxxxxxx, X. Xxxxxx, X. Xxxxxx,
X. Xxxxxxxx, and X. Xxxxxx. Team “University of Latvia” GCDC 2011 Technical Paper. xxxx://xxx.xxxx.xxx/xxxxxxxx/Xxxx/xxxx/Xxxx_
-_current/GCDC_Final%3A_teams_videos_and_final_papers/Latvia, 2011.
[15] X. Xxxxxx-Allen, X. Xxxxxxx, X. Xxxxxxx, X. Xxxx, and M. Welsh. Fidelity and yield in a volcano monitoring sensor network. In Proceedings of the 7th symposium on Operating systems design and implementation, pages 381–396. USENIX Association, 2006.
[16] X. Xxxxxxxx, X. Xxxxx, X. Xxxxxxxxx, X. Xxxxxx, and X. Xxxxxx. Lynxnet: Wild animal monitoring using sensor networks. In P. Xxxxxx, X. Xxxxx,
P. Corke, and X. Xxxxxxx, editors, Real-World Wireless Sensor Networks, volume 6511 of Lecture Notes in Computer Science, pages 170–173. Springer Berlin / Heidelberg, 2010. 10.1007/978-3-642-17520-6_18.
Nodaļa 5
SAntArray grupas atskaite
Anotācija
XXxxXxxxx grupas mērķis ir izveidot vienkāršu antenu ar elektroniski vadāmu virziendarbību. Šajā atskaitē aprakstīta antenas ieejas pretestības salagošana ar standarta 50 Ω viļņvadu izmantojot “2T” veida slēgumu.
5.1 Ievads
Iepriekšējās atskaitēs aprakstīta septiņu elementu ESPAR antenas ar elektronisko slēdzu vadību, izstrāde. Tālāk to sauksim par EDI-ESPAR antenu. Lai šī antena stradātu ar maksimālu efektivitāti, to nepieciešams salāgot ar pievadkabeļa viļņu pretestību Z = 50 Ω. Prasības antenas salāgošanas sistēmai ir šekojošas:
• Lai kompensētu gan antenas ieejas reaktīvo pretestību gan arī lai tās ieejas aktīvo pretestību salāgotu ar kabeļa viļņu pretestību, nepieciešami divi regulējamie elementi;
• Salāgošanas mezglam ir jāietilpst EDI-ESPAR antenas pamatnē. Tādēļ maksimālie pieļaujamie izmēri ir 7 cm × 4 cm.
Šajā atskaitē aprakstīta antenas salāgošana ar viļņvadu izmantojot spiestās plates celiņus “2T” veida slēgumā, atbilstoši shēmai kas dota 5.1 attēlā. Veikta
Att. 5.1: “T2” salāgošanas slēguma principiālā shēma, atbilstoši [2].
D2
D1
L2
L1
Zin ZL
Z0 | 50 Ω |
ϵr h t f | 4.6 1.5 mm 35 µm 2.44 GHz |
w 0.25λ | 2.699 mm 16.58 mm |
Att. 5.2: FR-4 tekstolīta spiestās plates pārvades līnijas posma parametri
atbilstošā mezgla optimizācija izmantojot Sonnet Lite programmatūru [5] savienojumā ar ģenētiskajiem algoritmiem.
Ģenētiskais algoritms ir skaitliska optimizācijas metode, kuras ideja aizgūta no evolūcija teorijas bioloģijā: katrs atrisinājums atbilst indivīdam, no tiem izveidota populācija kuras locekļi veic pārošanos, mutē un cīnās par izdzīvošanu. Indivīdu raksturojošo genomu veido mērķa funkcijas parametru binārā reprezentācija.
5.2 Esošie risinājumi
Projekta ietvaros sākotnēji tika pētīta iespēja izveidot salāgošanas mezglu izmantojot “1T” veida slēgumu [1]. Šadai ķēdei ir divi maināmi parametri, taču viens no tiem pēc mezgla izgatavošanas ir fiksēts. Tādējādi vairs nevar veikt precīzu mezgla noskaņošanu vienlaikus gan antenas reaktīvās pretestības precīzai kompensēšanai gan arī aktīvās pretestības salāgošanai ar kabeļa viļņu pretestību. Savukārt salāgošanas mezgla pusplatums var sasniegt λ/2, kas, atbilstoši 5.2 zīmējumā dotajiem datiem ir 33.16 mm. Tātad salāgošanas mezgls var pārsniegt maksimāli pieļaujamos izmērus un tāda situācija nav vēlama.
5.3 Cits risinājums
Izmantojot salāgošanai “2T” veida slēgumu izstrādātāja rīcībā ir četri parametri
- posmu garumi: L1, L2, D1 un D2, kas dod cerības, atrast tādu parametru kombināciju, kas ļautu salagošanas mezglam neparsniegt atļautos izmērus. Bez tam, divus no tiem L1 un L2 var izmantot pieskaņošanai arī jau izgatavotai konstrukcijai. Tāpēc tika pieņemts lēmums turpināt salāgošanas līnijas pētījumus apskatot “2T” veida slēgumu.
Literatūrā [2] aprakstīta “2T” ķēdes idealizētu elementu garumus aprēkina procedūra risinot algebraiskus vienādojumus. Rezultātā atrod parametrus L1, L2, kas atbilst iepriekš uzdotajām D1 un D2 vērtībām, pie kam, parasti D2 = λ/2. Netiek dota nekāda recepte kā izvēlēties D1 vērtību. Tāpēc, lai efektīvi izmantotu tās iespējas, kuras dod papildus divi parametri, nākas izmantot ģenētiskos algoritmus.
Salāgošanas mezgla parametru precizēšanai reālai konstrukcijai tika izmantota Sonnet Lite programmatūru ar iebūvēto optimizācijas sistēmu. Izrādījās, ka ne vienmēr iespējams atrast konkrētai idelālai sistēmai atbilstošus realās sistēmas parametrus. Tāpēc nācās sākt optimizāciju no sākuma
Att. 5.3: “T2” salāgošanas mezgla modelis Sonnet programmā
izmantojot ģenētiskos algoritmus mērķa funkciju aprēķinot izmantojot Sonnet Lite programmatūru.
5.4 Aprēķinu metodika
Aprēkini tika veikti izmantojot ģenētisko algoritmu realizāciju programmēšanas valodai python. Tika izmantota pygene pakotne [4], kas realizēta izmantojot tikai python kodu. Ievērojami labāko PGAPy pakotni [3] pakotni lietot nebija iespējams, jo tā ir tikai “virsbūve” bibliotēkai, kas Windows vidē nav pieejama.
Optimizācijas mērķa funkcija tika izvēlēta sekojoša
ffitness = |Zin − Z0| (5.1)
Šeit Z0 = 50 Ω ir pievadlīnijas viļņu pretestība, bet mezgla iejas pretestība Zin tiek aprēķināta izmantojot Sonnet Lite programmatūru, kuru no python izsauc izmantojot python.os pakotnes līdzekļus. Aprēkinos lietotais salāgošanas mezgla modelis dots 5.3 zīmējums. Aprēkini tika veikti 2.44 GHz frekvencei sekojošam slodzes pretestības ZL vērtībām: 39 + 0J Ω, 26 − 18J Ω, 21 − 18J Ω, 26 − 13J Ω, 26 − 23J Ω un 31 − 18J Ω.
5.5 Aprēķinu rezultāti
Aprēķinu rezultātā atrasto salāgošanas mezglu ģeometriskie izmēri D1, D2, L1 un L2 apskatītajām slodzes pretestībām apkopoti 5.4 un 5.4 zīmējumos: katrai izmēru kombinācijai atbilst divi punkti, viens D1, D2 plaknē, otrs L1, L2 plaknē. Interesanti, ka punkti D1, D2 plaknē grupējas vairakās paralēlās līnijās, savukārt lielumam L2 ir tikai nedaudzas vērtības. Tas nozīmē, ka L2 praktiski nav iespējams lietot mezgla precīzai noskaņošanai pēc tā izgatavošanas.
Lai novērtētu salāgošanas mezgla izmērus, 5.6 zīmējumā katrai slodzes pretestības vērtībai ar punktiem tika attēlotas lielumu D1 + D2 un max(L1, L2) kombinācijas. Pirmais lielums nosaka salāgošanas mezgla garumu, otrais tā
35 35
30 30
25 25
D , mm
2
L , mm
2
20 20
15 15
10 10
5 5
0
0 5 10 15 20 25 30 35
D1 , mm
35
0
0 5 10 15 20 25 30 35
L1 , mm
35
30 30
25 25
D , mm
2
L , mm
2
20 20
15 15
10 10
5 5
0
0 5 10 15 20 25 30 35
D1 , mm
35
0
0 5 10 15 20 25 30 35
L1 , mm
35
30 30
25 25
D , mm
2
L , mm
2
20 20
15 15
10 10
5 5
0 | 5 | 10 | 15 20 | 25 | 30 | 35 | 0 | 5 | 10 | 15 20 | 25 | 30 | 35 |
D , mm 1 | L , mm 1 |
0 0
Att. 5.4: “T2” salāgošanas kēdes parametru kombinācijas dažadām slodzes pretestībām: augšā 39 + 0J Ω, vidū 26 − 18J Ω un apakšā 21 − 18J Ω.
35 35
30 30
25 25
D , mm
2
L , mm
2
20 20
15 15
10 10
5 5
0
0 5 10 15 20 25 30 35
D1 , mm
35
0
0 5 10 15 20 25 30 35
L1 , mm
35
30 30
25 25
D , mm
2
L , mm
2
20 20
15 15
10 10
5 5
0
0 5 10 15 20 25 30 35
D1 , mm
35
0
0 5 10 15 20 25 30 35
L1 , mm
35
30 30
25 25
D , mm
2
L , mm
2
20 20
15 15
10 10
5 5
0 | 5 | 10 | 15 20 | 25 | 30 | 35 | 0 | 5 | 10 | 15 20 | 25 | 30 | 35 |
D , mm 1 | L , mm 1 |
0 0
Att. 5.5: “T2” salāgošanas kēdes parametru kombinācijas dažadām slodzes pretestībām: augšā 26 − 13J Ω, vidu 26 − 23J Ω un apakšā 31 − 18J Ω.
35 35
30 30
25 25
max(L1 ,L2 ), mm
max(L1 ,L2 ), mm
20 20
15 15
10 10
5 5
0
0 10 20 30 40 50 60 70
D1 +D2 , mm
35
0
0 10 20 30 40 50 60 70
D1 +D2 , mm
35
30 30
max(L1 ,L2 ), mm
max(L1 ,L2 ), mm
25 25
20 20
15 15
10 10
5 5
0
0 10 20 30 40 50 60 70
D1 +D2 , mm
35
0
0 10 20 30 40 50 60 70
D1 +D2 , mm
35
30 30
25 25
max(L1 ,L2 ), mm
max(L1 ,L2 ), mm
20 20
15 15
10 10
5 5
0
0 10 20 30 40 50 60 70
D1 +D2 , mm
0
0 10 20 30 40 50 60 70
D1 +D2 , mm
Att. 5.6: T2 salāgošanas parametru kombinācijas slodzēm 39+0J Ω, 26−18J Ω, 21 − 18J Ω, 26 − 13J Ω, 26 − 23J Ω un 31 − 18J Ω.
pusplatumu. Kā redzams, ne vienmēr ir izdevies atrast parametrus, kas ļauj izveidot pietiekoši kompaktu salāgošans mezglu.
Lai novērtētu salāgošanas mezgla īpašību izmaiņas nedaudz mainot atrasto garumu vērtības, katrai no atrasto garumu kombinācijām tikai veiktas četras aprēķinu sērijas katru no parametriem mainot 15% robežās. 5.7 un
?? zīmējumos doti divi no šo aprēķinu rezultātiem. Mūsuprāt ideāli “T2” salāgošanas ķēdes parametri ir atrasti gadījumam, kas attēlots 5.7 zīmējumā, tikai 2.84 GHz frekvencei…Kā redzams, izmaiņas D1 un D2 garumos praktiski nemaina salāgošanas ķēdēs īpašības. Tas garantē, ka izgatavotavotam un uzstādītam mezglam būs prognozētās īpašības. Savukārt mainot garumus L1 un L2 var veikt mezgla precīzu noskaņošanu.
Savukārt 5.7 zīmējumā attēlots tipisks piemērs gadījumiem, kad L1
izmaiņām praktiski nav nekāda efekta. Savukārt precizitāte, ar kādu izgatavošanas procesā jānodrošina “neregulējamie” parametri D1 un D2 ir praktiski nerealizējama. Mezglu ar šādiem izmēriem nevajadzētu mēģināt izgatavot.
5.6 Kopsavilkums un nākotnes perspektīvas
Pētījuma uzdevums bija atrast optimālus “T2” tipa salāgošans mezglus virknei dotām slodzes pretestības vērtībām. Salāgošanas mezgls tika meklēts atbilstoši sekojošām prasībām:
• nodrošina salāgošanu ar 50 Ω līniju 2.44 GHz frekvencē
• ir pietiekoši mazs, lai ietilptu EDI-ESPAR antenas pamatnē
• mezgla īpāšības ir stabīlas attiecībā pret attālumu D1 un D2 vērtību nelielam izmaiņām
• pēc mezgla izgatavošanas to var prezīzāk noskaņot līniju garumus L1 un
L2
Izrādījās, ka atrast mezgla parametrus, kas atbilst visām šam prasībām, ir daudz grūtāk nekā tika plānots: netika atrasta neviena parametru kombinācija, kas atbilstu visām prasībām. Tika pamanīts, ka viena no parametru kombinācijām, kas dota 5.7 zīmējumā atbilstu visām prasībām bet 2.84 GHz frekvencē. Acīm redzot, ideālu parametru meklēšanai izmantojot ģenētiskos algoritmus nepieciešams konstruēt ievērojami komplicētāku mērķa funkciju. Vai arī atgriezties pie banālām RC tipa salāgošanas ķēdēm.
Kā rāda aprēķinu rezultāti kas doti 5.6 zīmējumā, ļoti grūti ir nodrošināt pietiekoši kompaktus salāgošanas mezgla izmērus. Iespējas tos samazināt variējot piemēram plates biezumu h un celiņa platumu w, ir ierobežotas, jo līniju pretestību pamatā nosaka tās garums salīdzinajumā ar viļņa garumu. Pēdējais, mainot h un w mainās tikai dažu procentu robežās. Var mēģināt veikt papildus optimizācijas procedūru, fiksējot D1 un D2 un mainot tikai liniju L1 un L2 platumus. Tika veikti daži testa aprēķini, taču būtisks uzlabojums diemžēl netika panākts.
D1=14.2 D2=10.7 L1=23.2
L2=21.0 L2=22.5 L2=24.0 L2=25.5 L2=27.0 L2=28.5 L2=30.0 L2=31.5
0
D1=14.2 D2=10.7 L2=26.2
L1=18.6 L1=19.9 L1=21.2 L1=22.5 L1=23.9 L1=25.2 L1=26.5 L1=27.8
0
10 10
20 20
30 30
|S11|, dB
|S11|, dB
40 40
50 50
60 60
70 70
80
2.0 2.2 2.4 2.6 2.8 3.0
freqvence, GHz
D1=14.2 L1=23.2 L2=26.2
D2=8.6 D2=9.2 D2=9.8 D2=10.4 D2=11.0 D2=11.7 D2=12.3 D2=12.9
0
80
2.0 2.2 2.4 2.6 2.8 3.0
freqvence, GHz
D2=10.7 L1=23.2 L2=26.2
D1=11.4 D1=12.2 D1=13.0 D1=13.8 D1=14.6 D1=15.4 D1=16.2 D1=17.1 D1=17.1
0
10
20
20
30
|S11|, dB
|S11|, dB
40
40
60
50
60
80
70
100
2.0 2.2 2.4 2.6 2.8 3.0
freqvence, GHz
D1=14.2 D2=10.7 L1=23.2 L2=26.2
80
2.0 2.2 2.4 2.6 2.8 3.0
freqvence, GHz
0
10
20
|S11|, dB
30
40
50
60
70
2.0 2.2 2.4 2.6 2.8 3.0
freqvence, GHz
Att. 5.7: Salāgošanas mezgla īpašību izmaiņas otimālo parametru D1 =
14.2 mm, D2 = 10.7 mm, L1 = 23.2 mm un L2 = 26.2 mm apkātnē. Slodzes pretestība 26 − 13J Ω
Literatūra
[1] Projekta ”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” pārskats Nr. 9, Marts 2012.
[2] D. M. Pozar. Microwave engineering. J. Wiley, 2005.
[3] Pgapy: Python wrapper for pgapack parallel genetic algorithm library.
xxxx://xxxxx.xxxxxxxxxxx.xxx/.
D1=21.9 D2=17.9 L1=22.8
L2=6.6 L2=7.1 L2=7.5 L2=8.0 L2=8.5 L2=9.0 L2=9.4 L2=9.9 L2=9.9
0
D1=21.9 D2=17.9 L2=8.2
L1=18.3 L1=19.6 L1=20.9 L1=22.2 L1=23.5 L1=24.8 L1=26.1 L1=27.4
5
10 10
20
15
30
|S11|, dB
|S11|, dB
20
40
25
50
30
60
70 35
80
2.0 2.2 2.4 2.6 2.8 3.0
freqvence, GHz
D1=21.9 L1=22.8 L2=8.2
D2=14.4 D2=15.4 D2=16.4 D2=17.4 D2=18.5 D2=19.5 D2=20.5 D2=21.5
0
40
2.0 2.2 2.4 2.6 2.8 3.0
freqvence, GHz
D2=17.9 L1=22.8 L2=8.2
D1=17.5 D1=18.8 D1=20.0 D1=21.3 D1=22.5 D1=23.8 D1=25.0 D1=26.3
0
10 10
20 20
30 30
|S11|, dB
|S11|, dB
40 40
50 50
60 60
70 70
80
2.0 2.2 2.4 2.6 2.8 3.0
freqvence, GHz
D1=21.9 D2=17.9 L1=22.8 L2=8.2
80
2.0 2.2 2.4 2.6 2.8 3.0
freqvence, GHz
5
10
15
|S11|, dB
20
25
30
35
40
2.0 2.2 2.4 2.6 2.8 3.0
freqvence, GHz
Att. 5.8: Salāgošanas mezgla īpašību izmaiņas otimālo parametru D1 =
21.9 mm, D2 = 17.9 mm, L1 = 22.8 mm un L2 = 8.2 mm apkātnē. Slodzes pretestība 26 − 23J Ω
[4] pygene - simple python genetic algorithms/programming library. http:// xxxxxxx.xxxxxxxxxxxx.xxx/xxxxxx/xxxxxx/.
[5] Sonnet lite. xxxx://xxx.xxxxxxxxxxxxxx.xxx/xxxxxxxx/xxxx/.
Nodaļa 6
SenSigA grupas atskaite
Anotācija
Pasaulē arvien aktuālāks paliek elektroencefalogrammas (EEG) signālu ieguves un apstrādes jautājums. Jaunas un inovatīvas metodes tiek prezentētas ar mērķi, uzlabot esošās EEG datu iegūšanas sistēmas. Viens no inovatīvajiem risinājumiem ir arī mūsu prototips. Ir izstrādāts kompakts sensors daudzkanālu EEG datu iegūšanai. Sensora pamatā ir 3 spiestās plates, kas nodrošina EEG signāla ieguvi, pastiprināšanu, kodēšanu un kodētā signāla bezvadu datu pārraidi. Sensorā tiek izmantota energoefektīva datu kodēšanas metode, lietojot Asinhrono Sigma-Delta modulatoru, kuram piemīt daudz priekšrocību salīdzinājumā ar sinhroniem kodētājiem. Atskaitē lielākais uzsvars tiek likts uz pārraidīto datu uztveršanu un apstrādi. Izmantojot superheterodīna uztvērēju un ATS460 ciparotāju, uztvertie dati tiek ielasīti datorā, kur ir veikta komplicēta signālu apstrāde, kuras rezultātā ir iespējams iegūt, atjaunot un vizualizēt EEG signālus reālā laikā.
6.1 Ievads
Mūsdienās ir zinātniski izpētīts, ka cilvēka smadzenēs ir vairāk kā 100 miljardi neironu, kas vada elektriskos impulsus (skatīt 6.1.attēlā). Tā, piemēram, ja
Att. 6.1: a) Neirons b) Elektriskie impulsi
cilvēks vēlas pakustināt roku vai kāju vai jebkuru citu ķermeņa daļu, no
smadzenēm tiek padots elektrisks impulss, lai veiktu šādu darbību. Arī pretēji, no nerviem, kas ir mūsu ķermenī (piemēram, rokas), uz smadzenēm tiek padots līdzīgs elektriskais impulss, lai informētu smadzenes par noteiktām sajūtām. Šādi impulsi rodas ne tikai brīžos, kad vēlamies stimulēt kādu muskuli, bet arī tad, kad cilvēks vienkārši domā. Būtībā, šie impulsi rodas un tiek pārraidīti visu laiku, jo mūsu smadzenes ir nemitīgā darbībā, gan strādājot, gan guļot.
Izmantojot speciālus elektrodus, kas izvietoti noteiktās pozīcijās uz cilvēka skalpa, ir iespējamas nomērīt šīs smadzeņu elektriskās aktivitātes jeb elektriskos impulsus, un nomērītos signālus sauc par elektroencefalogrammas (EEG) signāliem jeb smadzeņu signāliem (skatīt 6.2.attēlu).
Att. 6.2: EEG signāli
6.2.attēlā ir vizualizēti 14 kanālu smadzeņu signāli, kas iegūti Elektronikas un datorzinātņu institūta laboratorijā. Šajā attēlā ir redzamas signāla potenciāla izmaiņas atkarībā no cilvēka veiktajām darbībām. Tā, piemēram, iezīmētajā apgabalā, kad cilvēka acis ir aizvērtas, ir redzams izteikts amplitūdas pieaugums, kas skaidrojams ar citu maņu orgānu aktivitāšu pieaugumu. Pārējie iezīmētie apgabali būtībā ir artefakti, kad tiek aizvērta labā vai kreisā acs, vai ari nomirkšķinātas abas acis reizē. Šādus artefaktus lielākoties no signāla ir nepieciešams izfiltrēt, lai varētu precīzāk reģistrēt smadzeņu aktivitātes.
Atkarībā no veicamā uzdevuma, kur noteikta smadzeņu garozas daļa atbild par noteiktu ķermeņa funkciju, noteiktā smadzeņu apgabalā ir paaugstināta aktivitāte.
Smadzeņu signāliem ir dažādas īpašības un klasifikācijas [1], [2], [3]. Tā, piemēram, smadzeņu signālus var iedalīt piecos dažādos smadzeņu ritmos – alfa, beta, gamma, delta un teta, kuriem ir dažādas frekvences diapazonā no 0,5-100Hz, bet to raksturojošās amplitūdas ir no 1-100µV (6.3.attēls).
Attiecīgi, izmantojot šos smadzeņu signālus, ir iespējams izstrādāt ierīci – domu jūtīgu saskarni (brain computer interface), ar kuras palīdzību ar domu spēku ir iespējams vadīt citas vadības ierīces. Tā, piemēram, šādas ierīces varētu palīdzēt invalīdiem, lai ar domām vadītu mehānisku protēzi vai arī kontrolētu ratiņ krēslu, kā tas redzams 6.4.attēlā. Šāda ierīce var tikt izmantota arī izklaides sfērā, lai, piemēram, spēlētu spēlēs, pārvaldītu televizoru vai arī
Att. 6.3: EEG signālu ritmi
vadītu automašīnu. Lai izveidotu šādu domu jūtīgu saskarni, nepietiek tikai ar
Att. 6.4: Domu jūtīgas saskarnes [4]
sensora izveidi datu iegūšanai, kodēšanai un bezvadu pārraidei. Ļoti būtiski ir izstrādāt sistēmu, kas spētu iegūtos datus apstrādāt un vizualizēt reālā laikā. Šāda sistēma ļautu, piemēram, monitorēt smadzeņu aktivitātes, veicot kādas konkrētas darbības, reālā laikā. Ar šādu sistēmu būtu iespējams arī kontrolēt citas vadības ierīces, kas reaģētu reālā laikā, atkarībā no iegūtajiem un apstrādātajiem EEG jeb smadzeņu signāliem. Tāpēc mūsu mērķis ir izveidot no sensora pārraidīto datu uztveršanas ierīci, kā arī, algoritmus datu apstrādei un vizualizācijai reālā laikā, izmantojot grafisko lietotāja saskarni.
6.2 EEG datu ieguves sistēma
Lai sasniegtu izvirzīto mērķi, tika izveidota sistēma, kuras blokshēma ir attēlota 6.5.attēlā. EEG dati tiek iegūti, izmantojot sensoru, kas sastāv no
Att. 6.5: Sistēmas blokshēma
∼
trīs daļām jeb trīs spiestajām platēm (skatīt 6.6.attēlu). Izmantojot sudraba hlorīda elektrodus, tiek iegūts EEG jeb smadzeņu signāls. Iegūtais smadzeņu signāls tiek pastiprināts 10 000 reizes, izmantojot EEG signālu pastiprinātāju (EEG AMP). Tad, izmantojot nevienmērīgas diskretizācijas metodi - Asinhrono Sigma-Delta modulatoru (ASDM), analogais EEG signāls tiek pārveidots binārā
signālā, kuru tālāk pārraida, izmantojot On-Off Keying (OOK) manipulācijas tehniku. Izveidotais maza izmēra sensors nodrošina sistēmai zemu enerģijas patēriņu, kas ir kritisks faktors šāda veida sistēmās, kā arī, pateicoties bezvadu tehnoloģijai - neierobežo cilvēka kustības.
Att. 6.6: EEG datu iegūšanas sensors
Kā jau tika minēts ievadā, būtiska ir sistēmas uztvērēja un signāla apstrādes sastāvdaļa. Lai uztvertu pārraidīto signālu, tiek izmantots superheterodīna uztvērējs (6.7.attēls), kas daudzkanālu augsto frekvenču signālu konvertē uz zemākām frekvencēm, kas atvieglo turpmāko reāla laika signālu ciparu apstrādi datorā. Lai signālu reālā laikā ielasītu datorā, tiek izmantots ATS460 ciparotājs [5].
Att. 6.7: Uztvērējs
6.3 EEG datu ieguve un vizualizācija reālā laikā
Izmantojot 6.2. nodaļā aprakstīto sistēmu, kuras blokshēma ir attēlota 6.5.attēlā (detalizētāks sistēmas apraksts skatāms iepriekšējās atskaitēs), datorā tiek ielasīts daudzkanālu uztvertais signāls. Izmantojot dažādus algoritmus, ielasīto signālu ir nepieciešams apstrādāt, lai rezultātā iegūtu un vizualizētu EEG signālu reālā laikā. Algoritmu implementācijai tiek izmantota LabView datorprogramma.
Uzskatāmības dēļ, tiek aprakstīta viena kanāla realizācija, jo pārējo kanālu apstrādes algoritmi ir identiski. Kopējā signāla atjaunošanas algoritma realizācijas blokshēma ir parādītā 6.8.attēlā.
Att. 6.8: Signāla atjaunošanas algoritma implementācija LabView
Ielasītais signāls LabView programmā tiek reprezentēts kā matrica, kas sastāv no diviem vektoriem - laika vektora un signāla nolašu vērtību vektora. Par cik iegūtais signāls ir daudzkanālu signāls, vispirms katrs no kanāliem ir jāizfiltrē ar joslu filtru. Attiecīgi tālāk katra kanāla izfiltrētais signāls tiek vēlreiz filtrēts, izmantojot zemfrekvenču filtru, lai iegūtu signāla apliecēju, kas reprezentē Asinhronā Sigma-Delta modulatora izejas signālu. Iegūtajam signālam piemērojot noteiktu slieksni, tiek iegūtas ASDM izejas signāla pārslēgšanās laika momentu vērtības tk, kas ir nepieciešamas sekmīgai kodētā EEG signāla atjaunošanai. Izveidoto filtru un ASDM izejas signāla iegūšanas algoritma implementācija LabView ir redzama 6.9.attēlā, kas ir daļa no 6.8.attēlā redzamās kopējās algoritma realizācijas.
Att. 6.9: Filtra algoritma realizācija
Izveidotā LabView realizācija ir balstīta uz iepriekšējās atskaitēs aprakstītajiem Asinhronā Sigma-Delta modulatora signāla atjaunošanas
∫
algoritmiem. Attiecīgi, kodēto signālu ir iespējams atjaunot, izmantojot vienādojumu:
t
s(u)du =
−∞
n∑∈Z
cng(t − sl), (6.1)
πt
kur g(t) = sinΩt , bet cn - nezināmi koeficienti, kuri ir jāatrod. No iepriekšējo atskaišu izvedumiem ir zināms, ka koeficientus c var izteikt no vienādojuma:
q = cG, (6.2)
kur vektora q un matricas G elementi:
qk = (−1)k[2kδ − b(tk+1 − tk)] (6.3)
gn,k = g(tk+1 − sl) − g(tk − sl) (6.4) Zinot signāla atjaunošanas vienādojumu izteiksmes, tās ir iespējams realizēt
LabView datorprogrammā. Attiecīgi 6.10.attēlā ir redzama q vektora realizācija, bet 6.11.attēlā – G matricas realizācija.
Att. 6.10: q vektora realizācija
Att. 6.11: G matricas realizācija
Attiecīgi, papildus izveidotajiem blokiem, izveidojot sl vektora blokshēmu (skatīt 6.8.attēlu) un, realizējot 6.12.attēlā redzamo signāla atjaunošanas algoritmu, ir iespējams atjaunot sensora kodēto EEG signālu.
6.4 Eksperimentālie rezultāti
Lai pārbaudītu izveidoto algoritmu, ir izveidota grafiskā lietotāja saskarne, kura attēlo uztverto Asinhronā Sigma-Delta modulatora izejas signālu un atjaunoto EEG signālu (6.13.attēls).
Att. 6.12: Signāla atjaunošanas LabView realizācija
Lai būtu iespējams iegūt, apstrādāt un vizualizēt šos signālus, eksperimentā tiek izmantots izveidotais EEG datu iegūšanas sensors, ar kura palīdzību tiek iegūts EEG signāls, kurš tālāk tiek pastiprināts, kodēts un kodētais signāls pārraidīts, izmantojot OOK raidītāju. Attiecīgi uztverošajā sistēmas daļā, šis signāls tiek uztvers, izmantojot superheterodīna uztvērēju, kurš šo signālu gan pastiprina, gan samazina tā frekvenci. Izmantojot ATS460 ciparotāju, uztvērēja izejas signāls tiek ielasīts datorā, kur tālāko cipar-apstrādi veic izveidotā LabView programma.
Ielasītais signāls tiek sākumā filtrēts ar joslu filtru, bet pēc tam ar zemfrekvences filtru, tādā veidā iegūstot signāla apliecēju. Izmantojot adaptīvo sliekšņa algoritmu, tiek noteikti Asinhronā Sigma-Delta modulatora izejas signāla pārslēgšanās laika momenti (skatīt 6.13.attēlu pa kreisi). Attiecīgi tālāk, pielietojot izveidoto signāla atjaunošanas algoritmu, tiek iegūts kodētais EEG signāls (skatīt 6.13.attēlu pa labi).
Att. 6.13: Grafiskā lietotāja saskarne
Izveidotā grafiskā lietotāja saskarne dažādiem parametriem ir gan adaptīva, gan konfigurējama. Tā, piemēram, ir iespējams uzstādīt dažādus Asinhronā Sigma-Delta modulatora parametrus priekš signāla precīzākas atjaunošanas (parametri b, δ, fmax). Ir iespējams mainīt arī signāla līmeņus, nobīdi, garumu, taktēšanas frekvenci, trigeri u.c.
6.5 Kopsavilkums un secinājumi
Galvenais mērķis, izveidot inovatīvu, mobilu, izmēros mazu, EEG datu iegūšanas sistēmu ir sasniegts. Šī ir pasaulē pirmā, reālā tāda veida EEG datu iegūšanas sistēma, kas satur vairākus uz galvas novietojamus sensorus ar asinhronu datu apstrādi. Eksperimentālā analīze pierāda, ka, lietojot izveidotos sensorus, ir iespējams iegūt EEG signālus, tos pastiprināt, kodēt un pārraidīt, kā arī atjaunot reālā laikā.
Lietojot šāda veida signāla ieguves un apstrādes pieeju, ir iespējams palielināt kanālu skaitu līdz 85 un vairāk (ISM joslā). Šādas sistēmas galvenā priekšrocība ir tās mazie izmēri, kas ļauj palielināt kanālu skaitu vienkārši pievienojot papildus sensorus pie barošanas avota.
Izmantojot LabView programmatūru Asinhronā Sigma-Delta modulatora atjaunošanas algoritma implementācijai, tiek secināts, ka ir iespējams atjaunot kodēto EEG signālu reālā laikā no izveidotajiem sensoriem un uztvērēja.
6.6 Nākotnes perspektīvas
Pie nākotnes plāniem var nosaukt: papildināt esošo smadzeņu signālu iegūšanas sistēmu ar daudz vairāk kanāliem un izstrādāt algoritmus dažādu notikumu detektēšanai, lai būtu iespējams kontrolēt citas vadības ierīces. Pie nākotnes plāniem ietilpst arī fiziskas ķiveres izstrāde, kurā būtu iespējams ievietot izstrādātos sensorus un kuru būtu ērti lietot, tādā veidā radot EEG datu iegūšanas sistēmu ar zemu enerģijas patēriņu un un bezvadu datu pārraidi, kas neierobežotu cilvēku kustības telpā.
Literatūra
[1] X.Xxxxxxxx, S.-X.Xxx, X.Xxxxxxxxx, Xxx Xxxxxxxx, and X.Xxxxxx. A design of the EEG feature detection and condition classification. In Proceedings of 2007 Annual Conference SICE, pages 2798–2803, 2007.
[2] X.Xxxxxx, X.X.Xxxxxx, and X.Xxxxx. Spectral EEG features and tasks selection process: Some considerations toward BCI applications. In Proceedings of 2010 IEEE International Workshop on Multimedia Signal Processing (MMSP), pages 150–155, 2010.
[3] X.Xxx, X.Xxxxxxxxx, X.Xxxx, X.Xxxxxxxx, and X.Xxxxxx. Study on relationship between personality and individual characteristic of EEG for personalized BCI. In Proceedings of 2010 IEEE Region 8 International Conference on Computational Technologies in Electrical and Electronics Engineering (SIBIRCON), pages 106–111, 2010.
[5] X.Xxxxx, X.Xxxxxxxx, and X.Xxxxxxxx. EEG data acquisition system based on Asynchronous Sigma-Delta modulator. In Proceedings of the 13th Biennial Baltic Electronics Conference (BEC2012), pages 183–187, 2012.