2. tēma: mehatronikas projekts – Interaktīvais Morzes koda raidītājs

Tavs mērķis: Patstāvīgi demonstrēt apgūtās elektronikas un C++ programmēšanas prasmes, izveidojot digitālu un fizisku ierīci, kas pēc pogas nospiešanas ar sinhronu skaņu un gaismu pārraida Morzes koda ziņu.

Datorika 7. klase (D.7.1.1., D.7.2.1., D.7.3.1., D.7.4.1., D.7.4.2., D.7.6.1.)

Darba uzdevuma gaita

1. solis: Bāzes elektronika un mainīgie

  1. Tinkercad vidē un pēc tam fiziski uz maketo plates savienojiet LED diodi (ar rezistoru) un pīkstuli (Buzzer) ar Arduino mikrokontrolieri.
  2. Izveidojiet C++ kodu, kas secīgi atskaņo jūsu izvēlētu īsu vārdu Morzes kodā (izmantojot īsus un garus signālus).
  3. Koda sākumā izmantojiet mainīgos (piemēram, int iss = 200; un int gars = 600;), lai nebūtu simtiem reižu jāraksta vienādi skaitļi delay() iekavās.
  4. Nodrošiniet, ka skaņa un gaisma ieslēdzas un izslēdzas absolūti sinhroni (vienlaicīgi).

2. solis: Interaktivitāte un "If-Else" loģika

  1. Papildiniet shēmu ar spiedpogu, izmantojot INPUT_PULLUP pieslēguma loģiku.
  2. Pārveidojiet kodu, ievietojot Morzes koda atskaņošanas algoritmu if-else nosacījumā.
  3. Programmai jābūt tādai, kas klusē, kamēr poga nav nospiesta, bet sāk pārraidīt ziņu tikai tad, kad poga tiek nospiesta (aktivizēts LOW signāls).

3. solis: Koda optimizācija un analogie signāli

  1. Lai loop() sadaļa nebūtu bezgalīgi gara, izveidojiet savas funkcijas katram vārda burtam (piemēram, izveidojiet bloku void burtsS() { ... } ārpus galvenā cikla) un vienkārši izsauciet to.
  2. Pievienojiet shēmai potenciometru pie analogā porta (A0).
  3. Ieprogrammējiet potenciometru tā, lai ar to varētu reāllaikā mainīt atskaņošanas ātrumu (nolasīt datus ar analogRead un piesaistīt tos pauzes mainīgajiem) vai regulēt pīkstuļa skaņas augstumu (kā frekvenci).

Vērtēšanas kritēriji (SLA)

Kritēriji Sācis apgūt (1-3) Turpina apgūt (4-6) Apguvis (7-8) Apguvis padziļināti (9-10)
Elektronikas shēmas izveide un dizains (D.7.6.1., D.7.2.1.) Maketo plate pieslēgta neprecīzi. Trūkst rezistora, vai arī komponentes pieslēgtas īssavienojumā. Darbojas tikai virtuāli. Shēma strādā fiziski, taču vadu izkārtojums ir haotisks un grūti pārskatāms. Viena no komponentēm (LED vai pīkstulis) nedarbojas pareizi. Pareizi un stabili saslēgta poga, LED (ar rezistoru) un pīkstulis. Vadi novietoti loģiski, nepārklājoties krustu šķērsu. Izcils kabeļu menedžments, stingri ievērojot krāsu kodējumu (sarkans 5V, melns GND). Shēmai veiksmīgi pievienota un saslēgta papildu komponente (potenciometrs).
Programmēšanas sintakse un mainīgie (D.7.1.1., D.7.4.1.) C++ kods satur kritiskas sintakses kļūdas (trūkst semikolu, nepareizas iekavas), nekompilējas bez skolotāja palīdzības. Kods strādā, bet ir atkārtojošs un gari sarakstīts. Netiek izmantoti mainīgie laika (delay) kontrolei. Kods ir brīvs no kļūdām. Veiksmīgi izmantoti mainīgie datu tipi (int), lai definētu signālu garumus (īss, garš) un portu numurus, padarot kodu pielāgojamu. Papildus izcilai mainīgo izmantošanai, skolēns patstāvīgi veido savas funkcijas (void) katram Morzes burtam, demonstrējot padziļinātu izpratni par koda optimizāciju.
Signālu apstrāde un Loģika (D.7.3.1., D.7.4.2.) Ierīce nav interaktīva – ziņa atskaņojas automātiski, nereaģējot uz ārējiem ievades signāliem. Sākta pogas integrācija, taču if-else loģika bieži kļūdās (piem., poga strādā apgriezti vai ziņa pārtrūkst pusceļā). Ierīce stabili gaida lietotāja ievadi. Pogas nospiešana nevainojami iedarbina sinhronu vizuālo (LED) un audio (Buzzer) izvadi. Līdztekus digitālajai loģikai tiek veiksmīgi nolasīti un izmantoti analogie signāli (analogRead), kas matemātiski (izmantojot map() vai dalīšanu) ietekmē mainīgo vērtības.
Izpratne un koda skaidrošana Nespēj paskaidrot, ko dara konkrētas koda rindas vai kāpēc strāva plūst konkrētā virzienā. Spēj paskaidrot pamatkomandas (digitalWrite, delay), bet apjūk, mēģinot izskaidrot if-else nosacījumus vai mainīgos. Pilnībā izprot savu izveidoto kodu un fizisko shēmu, pārliecinoši atbild uz skolotāja jautājumiem par savienojumiem. Spēj brīvi analizēt un modificēt kodu reāllaikā pēc lūguma (piem., uzreiz nomainīt kodu, lai tas reaģē citādāk), kā arī spēj palīdzēt klasesbiedriem atrast viņu kļūdas.

Pašpārbaudes saraksts