1. Mikrofona izmantošana Scratch 2

Kā jau bija minēts 1. tēmas konspektā "Programmēšanas vide jebkuram skolēnam - Scratch jeb datorprogrammēšanas pamati dažās stundās", Scratch 2 māk izmantot tikai 2 tipu skaņas failus: WAV un MP3. Fona mūzikas vai gariņu izdoto skaņu pievienošana programmai ir īsi aplūkota minētajā 1. tēmas konspektā, tādēļ šeit pievērsīsimies sarežģītākai idejai- izmantot mikrofonu kā sensoru jeb skaņas detektoru.

Aplūkosim vienkāršu programmiņu, ar kuras palīdzību var saprast, kā darboties ar mikrofonu: http://scratch.mit.edu/projects/23691519/ vai redaktora skatā http://scratch.mit.edu/projects/23691519/#editor - Taurenītis v.1.1 - darbināms piemērs Scratch 2.0 programmiņai ar skaņas detektēšanu no mikrofona (pārlūkprogrammā parādās brīdinājums: Adobe Flash Player Settings - Camera and Microfone Access... - jānospiež poga Allow). Lai taurenītis lidotu, radiet skaņu, kas skaļāka par 10 vienībām, lai lidotu augstu - virs 80 nosacītajām vienībām (tās ir diapazonā 0...100 vienības, tās var uzskatīt par % no maksimālā skaļuma). Mikrofona lietošanas programmas kods dots 1. attēlā. Lai izmantotu mikrofona programmēšanas iespējas, izmantojiet jaunāko versiju - Scratch 2.0; Ja Scratch 2.0 programmēšanas rīku izmantojat interneta pārlūkprogrammā, tai ir jābūt ne vecākas versijas kā Chrome 7, Firefox 4, Internet Explorer 7 (vienmēr visur lietojiet pārlūkprogrammu jaunākās versijas!) ar Adobe Flash Player 10.2 spraudni vai jaunāku.

Taurenitis 1.1 kods

1. att. Skaņas detektēšanas ar mikrofonu programmas Scratch 2.0 kods.
 

Kā viegli ieraudzīt programmas kodā, tā, kā parasti, ir palaižama ar zaļo karodziņu. Programmas scenārijā ir 2 lielas sadaļas:

1) gariņa novietošana sākumstāvoklī - apakšējā kreisajā darbību laukuma stūrī (iet uz x: -175 y: -135),

2) beznosacījuma cikls - lielais dzeltenais koda bloks (nepārtraukti); ja programmas pārtraukums kodā nav paredzēts, to tomēr var pārtraukt ar sarkano pogu.

Programmas scenārija 2. lielā sadaļa satur divus nosacījuma jeb zarošanās blokus (if), tieši nosacījumos ir iekļauta programmas sadarbība ar mikrofonu (skaļums):

a) ja skaļums ir no 30 (varbūt te liekam 10, ja klusi noregulēts mikrofons, pārāk maza skaitļa izvēle liks taurenītim reaģēt uz fona troksni) līdz 80 %, tad izpildās gariņa pārvietošana gan pa x, gan y asīm; tā kā skaļums ir < 100, bet darbību laukums ir lielāks (-240 līdz +240 pa x asi un -180 līdz +180 pa y asi), tad skaļuma skaitli reizināsim ar kādu skaitli, kas tauriņam dod iespēju aptvert mazliet vairāk par ekrāna apakšējo pusi;

b) ja skaļums ir lielāks par 80, liksim tauriņam lidot ekrāna paša augšdaļā.

Lai izveidotu šādu kodu, vispirms lielajā ciklā ievelkam "if” operatoru. Tad tam ir jānorāda nosacījums; tā kā nosacījums sastāv no 2 daļām vispirms atrodam apvienojuma koda bloku "un”, tad tā abu argumentu vietās (baltie kvadrātiņi) ievelkam salīdzināšanas operatorus ">” un "<”. savukārt tā argumenti ir no mikrofona detektētais "skaļums” un ierakstāms skaitlis, ar ko to salīdzināt. Pievēršam uzmanību, ka operatori jeb koda bloki Scratch ir ne tikai dažādas krāsas (pa tematiskajām grupām), bet ari dažādas formas. Ja operatora "if” nosacījuma vieta ir sešstūris, tad skaidrs, ka tajā varēs novietot tikai sešstūrveida operatora klucīti. Darot citādi, klucīši neiekritīs vietā jeb nesaķersies, kas nozīmē, ka tā nevar. Šādi Scratch, kā visi mūsdienīgi programmēšanas rīki, palīdz programmētajam neveidot neizpildāmu kodu.

Veidojot gariņa novietošanas izteikumu, vispirms atrodam un ievelkam zem "if” bliku "iestatīt x uz”, tad "nejauši izvēlēties no... līdz...”, lai taurenītis lidotu ne tikai atkarībā no balss skaļuma, bet arī ar nejaušības piedevu. Nejaušas izvēles operatora argumenti lodziņos vispirms ievelkam reizināšanas operatoru "*” (zvaigznītes izskata), tad tajā ievelkam "skaļums”, kas ir operators, kas lasa mikrofona ieeju (ja angliski, tad "sensing” bloku kopā "loudness”), un norādām skaitli, ar kuru reizināt. Decimālzīme te ir punkts (nevis komats). Jūtieties brīvi šos nosacījumus modificēt.

UZDEVUMS. Padomājiet, kā šo programmiņu pilnveidot! Piemēram, papildiniet to ar spārnu vicināšanas efektu, šim nolūkam jāizvēlas gariņš ar vismaz 2 tērpiem, piemēram, sikspārnis (Bat1), tad ieprogrammējiet tērpu (costumes) maiņu katra kustības posma vidū (operators switch costume to bat1-b).