LU-BST-b13:PD
Contents
Praktiskie darbi
Praktiskajos darbos jāizpilda sensoru mezgla programmēšanas uzdevums.
Lai nokārtotu kursu, sekmīgi jānokārto visi obligātie praktiskie darbi!
Praktiskais darbs ir sekmīgs, ja par to saņemts vismaz 40% vērtējums.
PD iesniegšanas procedūra:
- Darbā izmantotos failus (izejas kodu) iesūtīt uz epastu, subjektā norādot "BST PDxx", kur xx ir PD numurs: 01, 02, ... .
- Iesūtīšanai jāievēro norādītais termiņš!
- Faili jānosūta uz pasniedzēja e-pasta adresi
- Darbs jāatrāda uz vietas, 312. datorklasē, ieteicams, praktisko darbu laikā (pēc lekcijas). Atrādīšana var notikt arī pēc iesūtīšanas termiņa beigām.
Izstrādes platformas un vide
Pirmie divi obligātie praktiskie darbi (PD1, PD3) veicami TinyOS vidē.
- labojums: precizēts, ka TinyOS prasība attiecas uz PD1, PD3 (neobligātajam PD2 nav programmēšanas uzdevums)
Turpmākos praktiskos darbus atļauts veidot jebkurā vidē: TinyOS, MansOS, Contiki, Mantis, SOS, ... .
Vēlams izmantot TMote Sky sensoru mezglus. Bet arī citas motes ir atļautas, to saskaņojot ar pasniedzēju (uzrakstiet epastā "vēlos izmantot platformu X, programmēšanas vidi Y").
Vērtēšana
Visi praktiskie darbi kopā sastāda 20% no kopējā kursa vērtējuma (2 balles).
Praktiskajiem darbiem ir atšķirīga sarežģītība, tāpēc tiem ir arī atšķirīgi svari kopējā vērtējuma veidošanā. PD svari tiks noteikti brīdī, kad būs pienācis pēdējā PD termiņš un kad būs redzams, cik daudz piepūles katrs konkrētais PD studentiem ir sagādājis.
Bonusa punkti
Praktiskajos darbos būs neobligātā daļa, par kuru iespējams saņemt papildus punktus. Rezultātā par PD kopā iespējams saņemt arī vairāk par 20% no kopējās atzīmes (2 ballēm). Šādā veidā ar padziļinātu darbu iespējams nopelnīt punktus kas zaudēti citās "disciplīnās": esejas, KD, projekts.
Praktisko darbu saraksts
Informācija par praktiskajiem darbiem tiks ievietota pēc to uzdošanas.
PD1
Morzes kods.
Uzdevums: izspīdināt uz sarkanās gaismas diodes savu vārdu Morzes kodā (bez mīkstinājuma zīmēm).
Lai kods būtu lasāms "ar neapbruņotu aci", izmantosim sekojošus signālu ilgumus (kuri ideālā gadījumā ir konfigurējami):
- Punkta garums (P): 350ms
- Svītras garums (S): 3 * P
- Atstarpe starp signāliem viena burta ietvaros: P
- Atstarpe starp diviem burtiem: S
- Pauze pēc vārda beigām: 4 sekundes
Pēc pauzes vārds tiek izspīdināts atkal no sākuma.
Bonusa uzdevums 1 (+100%): vienlaikus uz sarkanās diodes spīdināt savu vārdu, uz zaļās: uzvārdu. Ja vārds īsāks par uzvārdu, sarkanā diode sagaida, kamēr zaļā beidz savu signālu virkni, abas kopā nogaida vēl sekundi, un atkal viss sākas no sākuma. Ja uzvārds īsāks, zaļā diode sagaida sarkano, pauze, atkal no sākuma.
Bonusa uzdevums 2 (+50%): uzlikt uz sava datora TOSSIM, nodemonstrēt praktisko darbu strādājošu (uz sava datora) iekš TOSSIM. Vēl papildus +50%, ja TinyOS un TOSSIM uzlikšana ir veikta no "nulles" un ir atsūtītas paša rakstītas step-by-step instrukcijas TOSSIM instalēšanā un iedarbināšanā, vai arī ir veikti būtiski uzlabojumi esošajās TOSSIM instalēšanas instrukcijās.
Veiksmīgas bonusa uzdevumu izpildes gadījumā iespējams iegūt vēl līdz 100% no PD1 vērtējuma. Šo bonusu iegūst tad, ja ir izpildīts vismaz viens no bonusa uzdevumiem (t.i., kopā iespējams iegūt 200% par PD1). Bonusa uzdevumu punkti nesummējas.
Termiņš: Trešdiena, 25.09.2013. 10:00
Soda punkti, iesūtot novēloti:
- pēc 25.09.2013. 10:00: -25%
- pēc 02.10.2013. 10:00: -50%
- pēc 09.10.2013. 10:00: -70%
PD2-1
Kursa projekta pieteikums (tēma).
Šoreiz nekas nav jāprogrammē, bet gan jāuzraksta sava kursa projekta īss apraksts un jāiesniedz tas PDF vai DOC formātā.
- PD2-1 ir jāatrāda lekcijas laikā (16.10.2013), īsi pastāstot par sava kursa projekta ideju.
- pēc 1 mēneša tiks izsludināta PD2-2 (šī PD otrā daļa), kurā aprakstīsies sīkāku informāciju par projekta arhitektūru, realizāciju un sagaidāmo rezultātu.
Ir būtiski laicīgi izvēlēties projekta tēmu un komandu, kā arī sākt darbu pie paša projekta.
Obligātās dokumenta nodaļas:
- Projekta tēma. Kas ir Jūsu projekts, ko Jūs izstrādāsit. Šeit var pietikt ar vienu vai dažiem teikumiem
- Projekta komanda. 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.
- Realizācija. Kādu aparatūru un programmatūru plānots izmantot projektam. Kā sistēma darbosies un kāda būs tās arhitektūra.
- realizācijas aprakstam jābūt pietiekami izmeļošam.
- svarīgi: aprakstiet kādus sensorus un iekārtas jums vajadzētēs projekta realizācijai.
Piezīmes:
- Ka tēmu izvēlaties to, ar ko Jūs vēlētos strādāt kursa projektā. Ja vēlāk pārdomājiet, līdz PD2-2 nodošanai kursa projekta tēmu vēl var mainīt.
PD2-1 Vērtējums
PD2-1 vērtējumu sastāda:
- Projekta tēma: 20%
- Komanda: 10%
- Motivācija: 20%
- Realizācija (pieeja un arhitektūra): 50%
PD2-1 ir daļa (50%) no kopējā PD2 vērtējuma.
Termiņš: ceturtdiena, 10.10.2012. 10:00
Soda punkti, iesūtot novēloti:
- pēc parastās shēmas
PD2-1 Atrādīšana
Atrādīšanas reize tiem, kas neatrādīja PD2-1 pirmajā reizē (16.10.2013):
- 05.11.2013, PD nodarbības laikā
Ja tiek atrādīts vēlāk, atzīme tiek samazināta pēc parastās shēmas
- -25% atrādot nedēļu vēlāk, ...
PD3
Sensoru datu pārsūtīšana uz bāzes staciju.
Termiņš: ceturtdiena, 17.10.2012. 10:00
Uzdevums
Izveidot divas aplikācijas: programmatūru sensoru mezglam, kas lasa analogos sensorus, un programmu uz bāzes stacijas datora, kas saņem un attēlo motes sūtīto informāciju.
Formulējums
Praktiskajā darbā jārealizē šāda funkcionalitāte:
- uz motes:
- nolasīt motes fotosintētiski aktīvās gaismas sensora rādījumus un 1 reizi sekundē bāzes stacijai sūtīt sensoru rādījumus (40%)
- uz bāzes stacijas (datora):
- saņemt sensoru rādījumus (40%)
- attēlot sensoru rādījumus cilvēkam saprotamās mērvienībās (gaismas sensoriem - luksos) (20%)
Par dokumentāciju:
- Nodotajā darbā jābūt README.TXT failam ar programmas aprakstu (ko dara, kā darbojas);
- jāiekļauj autora vārds, uzvārds, st. apl. nr.
- Programmas koda komentāriem jāatbilst tam, ko programma dara (nevis tam ko darīja piemēra programma pirms to modificējāt);
Bonus uzdevumi:
- nolasīt un sūtīt informāciju par User Button nospiešanu uz motes; attēlot šo informāciju uz datora (+20%)
- veikt gaismas sensoru nolasīšanu izmantojot ReadStream, samplējot sensoru 10x sekundē. uz bāzes staciju sūtīt vidējo vērtību (+30%)
Radio pārraide
Jārūpējas, lai raidot datu pa radio Jūs netraucētu citiem un viņi netraucētu jums.
Lai to nodrošinātu, visām datu paketēm jāsākas ar Jūsu sensoru tīkla ID un motes ID šajā tīklā. Programmatūrai, kas saņem datus, ir jāspēj atfiltrēt Jūsu tīklam piederošanas paketes (pārējās ignorēt). Kā tīkla ID izvēlamies savas studenta apliecības pēdējos 2 ciparus.
Datu paketes struktūras piemērs:
typedef nx_struct SensorReportMsg { nx_uint8_t net_id; nx_uint8_t node_id; [... pārējie lauki ...] } SensorReportMsg;
Piezīme: Savam tīklam piederošo datu filtrēšanu var veikt uz datora. Tādā gadījumā uz motes var lietot esošo TinyOS bāzes stacijas programmu.
- otrs variants ir modificēt bāzes stacijas kodu un datu filtrēšanu veikt uz motes.
Šis praktiskais darbs var noderēt kā bāze kursa projektam.
PD4 (neobligāts)
Prezentācija par pašu izvēlētu BST tēmu.
Uzdevums: Sagatavot prezentāciju par kādu konkrētu ar BST saistītu zinātnisku rakstu vai projektu.
- Izvēlētā tēma jāpaziņo iepriekš (lai tēmas nedublētos), informāciju par to nosūtot uz BST kursa listi līdz pirmdienai, 16.12.2013 23:59.
Jāuzstājas ar 15min prezentāciju, kuras saturs:
- Īss ievads (kāda ir izvēlētā tēma; kāda ir projekta motivācija un risinātās problēmas)
- Detalizēts raksta / projekta izklāsts
- raksta autoru izvēlētā pieeja, risinājumi, rezultāti, ...
- Kopsavilkums (secinājumi, prezentētāja komentāri)
Prezentētāji uzstājas BST lekcijas laikā, 18.12.2013. 12:30 - 14:00.
- PD4 pildīšanas gadījumā līdz 16.12 jāpiesaka sava tēma.
Vērtējums:
- izvēlētā tēma: 20%
- prezentācijas saturs un izklāsts: 80%
Tēmu piemēri:
- visi lekcijās minētie raksti
- lekciju slaidi
- http://selavo.lv/wiki/index.php/LU-BST:links
- BST konferenču / semināru raksti un prezentācijas (var izmantot Google Scholar, lai atrastu rakstus):
- SenSys: http://sensys.acm.org/
- Semantic Sensor Networks: http://knoesis.org/ssn2013/
- BST projektu un darba grupu rezultāti:
PD5
Bezvadu sensoru tīkla programmēšana.
Termiņš: piektdiena, 27.12.2013. 23:59
* šo darbu var nodot vairākas reizes. PD5 atzīme tiek noteikta kā lielākā vērtība no visu nodoto un klātienē atrādīto versiju vērtējuma (ņemot vērā soda procentus par darbiem, kas iesniegti ar kavēšanos).
Uzdevums
Izveidot divas aplikācijas:
* programmatūru sensoru mezglam, kas lasa 2 pašu izvēlētus sensorus un sūta informāciju uz bāzes staciju * programmu uz bāzes stacijas datora, kas saņem un attēlo motes sūtīto informāciju (te var izmantot arī BST OS piedāvātos rīkus, piem., seriālā porta lasīšanai)
Formulējums
Praktiskajā darbā jārealizē šādas prasības:
- uz motes:
- nolasīt 2 pašu izvēlētu sensoru rādījumus un reizi 5 sekundēs bāzes stacijai sūtīt sensoru rādījumus (30%)
- uz bāzes stacijas (datora):
- saņemt un attēlot sensoru rādījumus (30%)
- PD5 ir vēlams realizēt citā BST OS nekā iepriešējajos PD (PD1, PD3) lietotais
- tiek izmantota no TinyOS atšķirīga BST programmēšanas vide (40%)
- piem., MansOS, SEAL, Contiki, ...
- attēlot sensoru rādījumus cilvēkam saprotamās mērvienībās (gaismas sensoriem - luksos) (20%)
Par dokumentāciju:
- Nodotajā darbā jābūt README.TXT failam ar programmas aprakstu (ko dara, kā darbojas);
- jāiekļauj autora vārds, uzvārds, st. apl. nr.
- Programmas koda komentāriem jāatbilst tam, ko programma dara (nevis tam ko darīja piemēra programma pirms to modificējāt);
Bonus uzdevumi:
- nolasīt un sūtīt informāciju par User Button nospiešanu uz motes; attēlot šo informāciju uz datora (+20%)
- veikt gaismas sensoru nolasīšanu izmantojot ReadStream, samplējot sensoru 10x sekundē. uz bāzes staciju sūtīt vidējo vērtību (+30%)
Radio pārraide
Jārūpējas, lai raidot datu pa radio Jūs netraucētu citiem un viņi netraucētu jums.
Lai to nodrošinātu, visām datu paketēm jāsākas ar Jūsu sensoru tīkla ID un motes ID šajā tīklā. Programmatūrai, kas saņem datus, ir jāspēj atfiltrēt Jūsu tīklam piederošanas paketes (pārējās ignorēt). Kā tīkla ID izvēlamies savas studenta apliecības pēdējos 2 ciparus.
Datu paketes struktūras piemērs:
typedef nx_struct SensorReportMsg { nx_uint8_t net_id; nx_uint8_t node_id; [... pārējie lauki ...] } SensorReportMsg;
Piezīme: Savam tīklam piederošo datu filtrēšanu var veikt uz datora. Tādā gadījumā uz motes var lietot esošo TinyOS bāzes stacijas programmu.
- otrs variants ir modificēt bāzes stacijas kodu un datu filtrēšanu veikt uz motes.
PD svari
PD svari tiks noteikti brīdī, kad būs pienācis pēdējā PD termiņš un kad būs redzams, cik daudz piepūles katrs konkrētais PD studentiem ir sagādājis.