2. tēma: Robota uztvere un distances sensors

Tavs šīs stundas izaicinājums: Pievienot robotikas bāzes modelim ultraskaņas distances sensoru, ieprogrammēt to automātiski apstāties pirms sienas un veiksmīgi apbraukt šķēršļus, demonstrējot izpratni par nosacījumu algoritmiem.

Datorika 7. klase (D.7.2.1., D.7.4.1.)

Teorija: Kā robots "redz" šķēršļus?

Iepriekšējā stundā mēs teicām robotam precīzi, cik tālu braukt (piemēram, 50 cm). Bet reālajā pasaulē robotiem bieži jābrauc nezināmā vidē, līdz tie kaut ko pamana. Šim nolūkam izmanto sensorus un "Gaidīšanas" (Wait) komandas.

[Ievietot attēlu šeit: Ekrānuzņēmums ar "start moving [Straight]", kam seko oranžais "wait until [sensor port] is closer than [15] cm", un beigās "stop moving" bloks]

1. uzdevums: Sensora pievienošana un testēšana

Uzmontējiet distances sensoru robota priekšpusē un iemācieties nolasīt tā datus datora ekrānā.

Izpildes soļi:

  1. Atrodiet distances sensoru (ar "divām acīm") un pievienojiet to bāzes modelim tā, lai tas skatītos tieši uz priekšu.
  2. Ar kabeli pievienojiet sensoru brīvam Hub portam (piemēram, portam C vai D).
  3. Atveriet SPIKE programmu. Ekrāna augšdaļā, kur redzams savienotais Hubs, atveriet portu skatu (Dashboard).
  4. Pielieciet roku pirms sensora un vērojiet, kā mainās centimetru rādījumi portu skatā. Noskaidrojiet, kāds ir minimālais un maksimālais attālums, ko tas spēj "redzēt".

2. uzdevums: Automātiskā bremzēšana pirms sienas

Ieprogrammējiet robotu braukt uz priekšu un automātiski apstāties tieši 10 cm pirms šķēršļa (kastes vai sienas).

Izpildes soļi:

  1. Koda sākumā, kā parasti, iestatiet savus kustības motorus (set movement motors).
  2. Pievienojiet rozā bloku start moving [Straight]. (Uzmanību: neizmantojiet bloku, kurā ir norādīts attālums!).
  3. Pievienojiet oranžo kontroles bloku wait until. Tajā ievietojiet gaiši zilo sensora bloku [Distance Sensor] closer than [10] [cm].
  4. Pēc gaidīšanas bloka pievienojiet rozā bloku stop moving. Pārbaudiet robotu trasē!

3. uzdevums: Nebeidzamais ceļojums (Šķēršļu apbraukšana)

Pārveidojiet kodu tā, lai robots nekad neapstātos: ieraugot šķērsli, tas pabrauc atpakaļ, pagriežas un turpina ceļu citā virzienā.

Izpildes soļi:

  1. Ielieciet sava 2. uzdevuma kodu (braukšanu un apstāšanos pie šķēršļa) oranžajā forever ciklā.
  2. Uzreiz pēc stop moving bloka, pievienojiet komandu pabraukt nedaudz atpakaļ (piem., move [backward] for [10] [cm]).
  3. Pēc tam pievienojiet pagrieziena bloku, lai robots pagrieztos pa labi vai pa kreisi (piem., move [Right] for [150] [degrees]).
  4. Tā kā viss atrodas forever ciklā, pēc pagrieziena robots automātiski atkal sāks braukt uz priekšu, līdz ieraudzīs nākamo šķērsli.

4. uzdevums (Zvaigznītes izaicinājums): "Viedais kruīza kontroles" sekotājs

Ātrākajām komandām – izveidojiet programmu, kurā robots cenšas ieturēt precīzi 15 cm distanci no jūsu rokas.

Izpildes soļi:

  1. Izmantojiet forever ciklu un If... Else (Ja... Tad...) loģikas blokus.
  2. Ja attālums līdz rokai ir lielāks par 20 cm, robotam jābrauc uz priekšu (tuvojas).
  3. Ja attālums ir mazāks par 10 cm, robotam jābrauc atpakaļgaitā (bēg).
  4. Ja attālums ir starp 10 un 20 cm, robotam jāstāv uz vietas.

Biežākās kļūdas (un kā tās labot):

Koda piemērs (Šķēršļu apbraukšanas algoritms)


# SPIKE Word Blocks vizuālā koda tekstuālā reprezentācija

when program starts
set movement motors to [A] and [B]
set movement speed to [50]%

forever:
    start moving [Straight]
    wait until [Distance Sensor on C] closer than [15] [cm]
    stop moving
    move [Backward] for [10] [cm]
    move [Right] for [180] [degrees]
        
Robots brauks taisni, līdz šķērslis būs tuvāk par 15 cm. Tad tas apstāsies, pabrauks 10 cm atpakaļ, pagriezīsies prom no šķēršļa un atsāks ciklu no jauna.
⬅ Iepriekšējā stunda Nākamā stunda ➡