LU-BST-b
Īssaites: Kalendārs | Uzdevumi | Resursi | Šodiena: 10.11.24 : Rītdiena: 11.11.24 (ja ir lekcija)
Bezvadu Sensoru Tīkli (BST)
LU DF bakalaura studiju kurss DatZ3070, meklēt eStudijās.
- Pasniedzējs: Leo Seļāvo
Kursa mērķis un uzdevumi
Iepazīties ar bezvadu sensoru tīklu sistēmu darbības un projektēšanas principiem un pielietojumiem.
- Apgūt sensoru un iegulto sistēmu pamata tehnoloģijas un pielietojumus lietu internetā.
- Izstrādāt arhitektūru un komunikāciju protokolus bezvadu sensoru sistēmām.
- Programmēt iegultās sistēmas BST pielietojumam.
- Analizēt sensoru lasījumus un izdarīt secinājumus.
Ievadlekcijas video: No sensoriem līdz stāstam
Vērtējums kursā
- 30% Praktiskie darbi PD
- 20% Mājas darbi MD
- 20% Kontroldarbs KD
- 30% Projekta prezentācija un demo eksāmenā EKS + PROJ
Mājas darbi
- Iesniedzami e-studijās
- Termiņš 30min pirms lekcijas sākuma, vai arī kā MD nosacījumos.
- Kavēts termiņš nozīmē -50% no vērtējuma. Pēc nedēļas darbs var tikt nepieņemts.
Kalendārs
Datums | Tēma, saturs | Uzdevumi | |
---|---|---|---|
07.02.24 |
Bezvadu sensoru tīklu pielietojumi un pamatproblēmas. BST kursa forma un prasības. |
||
14.02.24 |
Radio spektrs un ISM josla. Komunikācijas protokoli un modulācija. |
||
21.02.24 |
|
||
28.02.24 |
Sensoru mezgla uzbūve. |
||
06.03.24 |
|
||
13.03.24 |
|
| |
20.03.24 |
|
| |
03.04.24 |
Diskusijas par projektiem |
Sensoru datu analīze, Jupyter notebook | |
10.04.24 |
Komponenšu orientēta programmēšana. Skriptēta un enkapsulēta programmēšana. TinyOS, MansOS un SEAL. Lasāmviela:
|
| |
17.04.24 |
Vidus semestra kontroldarbs KD1. Pieejams eStudijās. |
||
24.04.24 |
Diskusija par projektu tēmām. "Use case" - par projektiem infekcijas risku mazināšanai. |
||
08.05.24 |
Lasāmviela:
|
||
15.05.24 |
Projektu statuss |
| |
22.05.24 |
Lasāmviela:
|
| |
29.05.24 |
|
| |
29.05.24 |
|
| |
xx.06.24 |
Eksāmena sākums: xx:xx Eksāmena (projekta) rezultāti iesūtāmi e-studijās kā PROJ, tai skaitā:
|
Eksāmens:
| |
Uzdevumi
Praktiskie darbi
Praktiskajos darbos būs lietojama MansOS operētājsistēma.
- Īss apraksts un pamācības pieejamas MansOS wiki.
Praktisko darbu risinājumi iesūtāmi e-studijās.
PD1
"SOS" morzes ābecē izvadīts uz motes LED
- E-studijās iesūtīt C programmas kodu.
PD2
Hello World -> no motes uz termināla
PD3
Gaismas sensora lasījums uz termināla
PD4
Darbs grupā pa divi.
Gaismas sensora lasījums pārraidīts ar radio un saņemts uz citas motes un izvadīts uz termināla.
Risinājumam jābūt noturīgam pret citiem raidītājiem šajā pašā radio kanālā. Jāparāda tikai sava risinājuma sūtītās ziņas.
Iesūtīt pirmkodu, kā arī failu apraksts.pdf ar testu rezultātiem un to aprakstu.
PD5
Darbs grupā pa divi.
Noteikt radio raidīšanas attālumu TmoteSky motēm.
- Izveidot raidītāja programmu un uztvērēja programmu.
- Pārvietot motes dažādos attālumos un novērtēt, cik datu pakas tiek saņemtas.
- Izvērtēt, kāda ietekme ir motes savstarpējai orientācijai starp raidītāju un uztvērēju.
- Aprakstīt rezultātus un iesniegt PDF dokumentā apraksts.pdf, e-studijās, kā PD5.
PD6
Darbs grupā pa diviem vai trijiem studentiem.
Realizēt "Multihop" tīklu ar TmoteSky motēm.
- Izveidot programmatūru trīs dažādu sensoru mezglu tipiem, attiecīgos pirmkoda failos:
- sensor.c - Sensors - nolasa gaismas sensora vērtību un nosūta pa radio Releja tipa motei.
- relay.c - Relejs - mote, kas saņem datus no sensoriem un pārsūta tālāk citām motēm (Relejiem un Vārtejām).
- gateway.c - Vārteja - mote, kas saņem radio datus un pārsūta tos uz seriālo portu (USB).
- Katram mezglam (motei) ir unikāls ID. Izdomāt, kā to panākt.
- Tīklā jābūt vismaz vienam relejam, bet var būt vairāki, lai realizētu garāku komunikācijas ķēdi.
- Tīklā var būt vairāki Sensoru mezgli.
- Tīklā ir tikai viena vārteja.
- Relejam jāignorē tās ziņas, ko tas jau ir kādreiz sūtījis. Šo var realizēt ar motes identifikatora un/vai ziņas kārtas numura iekļaušanu sūtāmajā datu pakā. Tad, piemēram, mote var ignorēt vecākas datu pakas nekā pēdējā, ko tā ir sūtījusi.
- Vārtejai katra datu paka jānosūta pa USB tikai vienreiz. Ja tā, piemēram, saņem to pašu datu paku atkārtoti, piemēram, no cita Releja, tai tā jāignorē.
- Aprakstīt rezultātus un iesniegt PDF dokumentā apraksts.pdf, e-studijās, kā PD6. Iesniegt arī programmatūras kodu.
Mājas darbi
MD_Routing
Izstrādāt un aprakstīt maršrutizācijas algoritmu, kas atbilst prasībām šajos slaidos
- Aprakstīt izveidoto maršrutizācijas protokolu.
- Aprakstīt protokola veiktspējas novērtējumu.
- Sniegt piemēru, kā tas darbojas slaidos dotajā situācijā.
- Risinājumu iesniegt PDF dokumentā, e-studijās.
MD1
PD5 rezultāti - Izvērtēt sensoru mezglu komunikāciju veiktspēju atkarībā no distances.
Gadījumā, ja jums neizdevās savākt savus datus, tad analīzei var lietot šos, ar attiecīgu atsauci:
- | Dati1 (excel) (Rainers, Juris)
- | Dati2 (zip) (Audris, Madara)
MD3
Izstrādāt un aprakstīt virtuālas mašīnas valodu bezvadu sensoru mezgliem, līdzīgi kā Mate lekcijas slaidos.
Aprakstā jāiekļauj:
- Valodas komandas, arhitektūra, pieņēmumi
- Komandu kodējums (pa bitiem), komandu tipi vai klases.
- Divi piemēri programmām, kas kodēti jūsu valodā.
- Ar ko jūsu risinājums atšķiras no Mate un kādos gadījumos tam ir priekšrocības.
MD_Proj
Kursa projekta pieteikums
Īss apraksts
Izstrādāt projekta pieteikumu, kurā aprakstīt:
- Problēmu, ko risināsiet ar bezvadu sensoru tīklu palīdzību
- Motivāciju, kāpēc problēma jārisina
- Esošos risinājumus šai problēmai vai līdzīgām problēmām
- Kas nepieciešams jūsu risinājumam: tehnoloģijas, aparatūra
- Termiņi katrai nedēļai: kas tiks veikts līdz šiem termiņiem projekta izstrādes gaitā.
Aprakstu organizēt kā slaidus, lai ērti prezentēt. Iesniegt aprakstu PDF formātā.
Sīkāks apraksts
Šoreiz nekas nav jāprogrammē. Bet gan jāuzraksta sava kursa projekta īss apraksts kā slaidu prezentācija un jāiesniedz PDF formātā. Kursa projekta pieteikumu vajadzēs prezentēt lekcijas laikā, katra komanda pastāstīs pārējiem par sava kursa projekta ideju, izveidosim īsu diskusiju.
Obligātās dokumenta nodaļas:
- Projekta tēma. Kas ir Jūsu projekts, ko Jūs izstrādāsiet. Šeit var pietikt ar vienu vai dažiem teikumiem
- Projekta komanda, īpaši ja nepieciešams vairāk par vienu dalībnieku. Kas piedalās, kādas lomas katrs izpilda (kurš ko programmēs, kurš projektēs, kurš testēs utt)
- Motivācija. Kāpēc Jūs šādu projektu taisāt. Kāds no tā varētu būt labums Jums un pārējiem apkārtējiem cilvēkiem, dabai.
- Jūsu pieeja un arhitektūra. Kā realizēsiet projektu. Kāda būs izmantotā aparatūra. Kāda programmatūra. Kāda būs tīkla struktūra. Šeit labi iederas sistēmas arhitektūras bildes, shematiski attēlojumi. Svarīgi norādīt arī nepieciešamo aparatūru, tai skaitā, kādi sensori nepieciešami projekta realizēšanai. Lai varam sākt meklēt nepieciešamos sensorus, motes. Tiek sagaidīts, ka šī ir saturīgākā projekta apraksta daļa.
- Sagaidāmais rezultāts. Cik daudz no savas projekta idejas plānojat šī semestra laikā realizēt. Kādus testus veikt. Kā novērtēsit rezultātus.
Papildus tēmas:
- Kas šajā tēmā pasaulē ir jau izdarīts. Bakalaura studentiem netiek prasīts izdarīt kaut ko universālu, kas pasaulē vēl neeksistē. Tai pat laikā, ir ļoti vēlams, ka veicat izpēti, par to, kas pasaulē Jūsu tēmā ir jau izpildīts. Kaut vai tāpēc, lai izvēlētos labāko risinājumu, lai nav pašiem jāizdomā no nulles
- Idealizācija. Šī projekta ietvaros netiek prasīts, lai Jūs uzbūvējat vispasaules sensoru tīklu ar Google mēroga infrastruktūru. Bet, ja tas būtu iespējams - ko ar Jūsu sensoru tīklu varētu izdarīt? T.i., padomājiet pāri sava viena semestra robežām!
MD_Testbed
Uzdevuma veikšana EDI testbed platformā (Testbed).
Pieslēguma informācija Testbed platformai tiks paziņota individuāli, lekcijā un/vai e-studijās.
Uzdevums ir ievākt informāciju no Testbed sensoriem kas atrodas uz jums izdalītajiem Testbed sensoru mezgliem pēc iespējas ilgāku laika posmu, vismaz 24 stundas, un attēlot datus grafiski. Sīkāks uzdevumu apraksts seko.
Programma P1
Programmas P1 mērķis ir pārbaudīt Testbed darbību un nolasīt log failos saglabātos datus.
- Pieslēgties Testbed
- Pārbaudīt jums izdalīto sensoru mezglu darbību izveidojot vienkāršu programmu
P1.c
kas sūta skaitļus no 1 līdz 100 ar vienas sekundes intervālu uz seriālo portu. Skaitļus sūtīt kā simbolu virkni salasāmā tekstā, piemēram "17". - Darbināt P1 uz visiem sensoru mezgliem vienlaicīgi. Darbināt eksperimentu 10min. Saglabāt Log failus.
- Novērtēt rezultātus. Piemēram, vai visi sensori darbojās vienlīdz ātri?
Programma P2
Programmas P2 mērķis ir ievākt sensoru datus ilgākā laika posmā.
- Izveidot programmu
P2.c
kas reizi 10 sekundēs nolasa sensoru vērtības. - Lasāmie sensori ir: Gaismas sensors, temperatūra un gaisa mitrums.
- Darbināt P2 24 stundas un saglabāt datus Log failos.
- Analizēt sensoru datus. Uzzīmēt datus grafikā ar x kā laika asi un y kā mērījumu asi. Izdarīt secinājumus.
Programma P3
Programmas P3 mērķis ir novērtēt komunikāciju iespējas Testbed vidē.
- Izveidot programmu
P3_send.c
, kas sūta 300 ziņas visiem citiem mezgliem ik pa 100 milisekundēm. Katrā ziņā iekļaut tās kārtas numuru. Datos iekļaut arī savu identifikatoru, lai saņemošais klients var atpazīt datu pakas tipu un mērķi. - Izveidot programmu
P3_receive.c
, kas saņem ziņas pa radio no citiem mezgliem un pieraksta RSSI vērtības atmiņas buferī. Kad visas atsūtītas, eksportēt datus uz log failu caur seriālo portu. - Darbināt P3_send uz viena mezgla un P3_receive uz pārējiem. Saglabāt datus log failā.
- Atkārtot iepriekšējo eksperimentu tā, lai datu būtu sūtīti no visiem mezgliem.
- Rezultātā jums jābūt datiem kas apraksta komunikāciju starp jebkuriem diviem mezgliem.
- Rezultātu analīzē parādiet kā RSSI mainās laikā starp visiem mezgliem. Bez tam, izveidojiet tabulu vai grafu kurā novērtējiet komunikāciju/ saņemtā signāla stiprumu starp visiem mezgliem. Atcerieties, ka saites var būt arī asimetriskas, piemēram, mezgls A "dzird" mezglu B labāk nekā B "dzird" A.
Piezīmes:
- Ņemiet vērā, ka var gadīties, ka dažas ziņas mezgli var nesaņemt trokšņu vai citu iemeslu dēļ. Datos tas ir jāredz. Tāpēc saglabājot RSSI jāņem vērā arī saņemtās ziņas kārtas numurs, ko tā sūtīja.
- Saņemtos RSSI rādījumus jums jāglabā atmiņā, lai tie aizņemtu pēc iespējas mazāk vietas. Sūtot tos uz reizi pa seriālo portu jums var nepietikt laika saņemt visas ziņas. Tāpēc ieteicams datus saglabāt ar seriālo portu tikai pēc tam kad eksperiments beidzies - pēdēja ziņa saņemta (vai nav pienākusi, bet laiks pagājis).
Iesniegšana
Iesniegt rezultātus visiem uzdevumiem e-studijās kā MD_Testbed. Tai skaitā, katram uzdevumam PX, kur X ir 1, 2 un 3:
- Katram uzdevumam P1, P2 un P3 izveidot direktoriju ar attiecīgu vārdu. Šajās direktorijās izvietot attiecīgo uzdevumu pirmkoda, datu un apraksta failus.
- Iekopēt direktorijās visu pirmkodu un ievākto datu failus
- Analīzes rezultātus aprakstīt un grafikus attēlot PDF failā ar nosaukumu PX.pdf
- Neaizmirstiet aprakstā norādīt darba autorus un ko katrs darījis, kā arī katra dalībnieka procentuālo ieguldījumu no komandas darba.
- Visus failus arhivēt kā zip failu un saukt BST_MD_Testbed_Vards_Uzvards.zip, kur, protams, lietots jūsu vārds un uzvārds.
- Zip fails jāiesūta e-studijās VISIEM komandas dalībniekiem.
Testbed
EDI BST testa vides piekļuve un lietošana.
Lasāmviela:
- Lietošanas pamācība
- EDI Testbed portāls
- Testbed CLI komandu Cheatsheet
- EDI Testbed Prezentācija
- Demonstrācijas video pieejams eStudijās
CLI klientu programmatūra:
Publikācijas
Resursi
- MansOS operētājsistēma
- The Lost Art of Structure Packing
- Grāmata: Introduction to Embedded Systems - A Cyber-Physical Systems Approach
- Ieteikumi plakātu prezentāciju veidošanā
- Datu zinātne - 30 intervijas jautājumi
- Mediapipe - attēlu apsrādes bibliotēka
Citu gadu materiālu arhīvs
Saites
- Bezvadu sensoru tīklu saites
- Linux komandu rokasgrāmata. Komandas, kas mums būs noderīgas: cd, ls, cp, mv, mkdir, df, echo, export, find, grep, less, nano, make, man, ping, rm, ifconfig.
- Kā piedarbināt SwissQM virtuālo mašīnu sensoru tīkliem (Paldies Kārlim Visendorfam par aprakstu!)
Interesanti
- Hedy Lamarr and Frequency Hopping Technology - Holivudas aktrise un FH patenta autore.