LU-BST-B10:PD

From DiLab
Revision as of 10:18, 25 September 2010 by Girts (talk | contribs) (PD2)
Jump to: navigation, search

Praktiskie darbi

Praktiskajos darbos jāizpilda sensoru mezgla programmēšanas uzdevums

Lai nokārtotu kursu, sekmīgi jānokārto visi 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ņš
  • 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.

Vērtēšana

Visi praktiskie darbi kopā sastāda 15% no kopējā kursa vērtējuma (1.5 balles).

Praktiskajiem darbiem ir atšķirīga sarežģītība (ar tendenci pieaugt), 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 15% no kopējās atzīmes (1.5 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.

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): 200ms
  • 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: 1 sekunde

Pēc pauzes vārds tiek izspīdināts atkal no sākuma.

Bonusa uzdevums: 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.

Veiksmīgas bonusa uzdevuma izpildes gadījumā iespējams iegūt vēl līdz 100% no PD1 vērtējuma (t.i., kopā iespējams iegūt 200% par PD1).

Termiņš: Trešdiena, 29.09.2010. 05:00

Soda punkti, iesūtot novēloti:

  • pēc 29.09.2010. 05:00: -15%
  • pēc 06.10.2010. 05:00: -30%
  • pēc 13.10.2010. 05:00: -45%
  • pēc 20.10.2010. 05:00: -60%


PD2

Sensoru datu pārsūtīšana uz bāzes staciju.

Uzdevums: Izveidot divas aplikācijas: programmatūru sensoru mezglam, kas lasa analogos sensorus, un bāzes stacijai, kas pieprasa sensoru mezglam datus un nosūta tos uz seriālo portu.

Gan pārraidi no sensoru mezgla pa radio, gan no bāzes stacijas uz seriālo portu veikt ar TinyOS AM paketēm, ar sekojošu struktūru:

SensorRequestMsg:
    moteId: uint8_t      // sensoru mezgla id
    adcChannel: uint8_t  // kuru ADC kanālu lasīt (analogā sensora numurs)
SensorReportMsg:
    moteId: uint8_t       // sensoru mezgla id
    adcChannel: uint8_t   // kurš ADC kanāls nolasīts (analogā sensora numurs)
    value: uint16_t // nolasītā sensora vērtība
SensorTotalReportMsg:
    moteId: uint8_t    // sensoru mezgla id
    value: uint16_t[8] // 8 vērtības, katra ir viena analogā sensora vērtība (2 baiti)

Katrs students izvēlas sev unikālu sensoru mezgla identifikatoru (moteId): studentu apliecības pēdējos divus ciparus. Vairāku vienādu ID gadījumā atrādīšanas laikā tiks izvēlēti citi, unikāli ID. Katram studentam paredzēta arī sava bāzes stacija, kura prasa datus tikai sev piederīgajam sensoru mezglam. Bāzes stacijai ID nav vajadzīgs. Citiem vārdiem, katrs students noprogrammē pāri: bāzes stacija un sensoru mezgls, kas abi runājas savā starpā, netraucējot citu studentu motēm, kas vienlaikus atrodas tajās pašās telpās.

Sensoru mezgla un bāzes stacijas darbības protokols:

  • Bāzes stacija:
    • Ik pa 1 sekundei nosūta sensoru mezglam pieprasījumu SensorRequestMsg, norādot tajā sev piederīgu moteId
    • adcChannel katrā pieprasījuma ziņojumā tiek palielināts par vienu, sākot no 1. Kad adcChannel > 8, tas tiek uzstādīts atpakaļ uz 1 (motei ir tikai 8 ADC kanāli). Citiem vārdiem: bāzes stacija cikliski pieprasa sensoru mezglam nolasīt visus analogos sensorus
    • Bāzes stacija klausās ienākošos SensorReportMsg ziņojumus, atfiltrē no tiem tikai tos, kam ir atbilstošs moteId, pieglabā sev lokāli saņemtās sensoru vērtības (value)
    • Kad bāzes stacija saņēmusi visus 8 sensoru lasījumus, tiek uzbūvēta SensorTotalReportMsg AM pakete un nosūtīta pa seriālo portu. Ja gadījumā sensora i vērtība nav saņemta no sensoru mezgla, bāzes stacijai tas ir jāpieprasa atkārtoti.
  • Sensoru mezgls:
    • Klausās pa radio saņemtos SensorRequestMsg ziņojumus, atfiltrē tikai sev piederīgus (ar savu moteId).

Bonusa uzdevums: TODO

Veiksmīgas bonusa uzdevuma izpildes gadījumā iespējams iegūt vēl līdz 50% no PD2 vērtējuma (t.i., kopā iespējams iegūt 150% par PD2).

Termiņš: Piektdiena, 15.10.2010. 05:00

Soda punkti, iesūtot novēloti:

  • pēc 15.10.2010. 05:00: -15%
  • pēc 22.10.2010. 05:00: -30%
  • pēc 29.10.2010. 05:00: -45%
  • pēc 05.11.2010. 05:00: -60%