›_ ebskola.lv
← 1.4

1.5 Noslēguma projekts: Pārbaudes misija

Stundas uzdevums: Izplānot, uzbūvēt, notestēt un demonstrēt autonomu LEGO SPIKE robotu, kas izmanto kustību, sensorus un manipulatoru vienotā pārbaudes misijā.

D.7.2.1. Programmējamas ierīces vadība D.7.3.1. Sensoru signālu izmantošana D.7.4.2. Nosacījumi un cikli robota uzvedībā D.7.5.1. Programmas sadalīšana loģiskos blokos D.7.6.1. Komponentu integrācija vienotā ierīcē

70 min darba sadalījums: 1. uzdevums (~20 min) - atjauno teorijas piemēru vai minimālo prototipu; 2. uzdevums (~25 min) - pielieto to galvenajā uzdevumā; 3. uzdevums (~25 min) - pārbaudi rezultātu, izlabo kļūdas un pieraksti, kas strādā. Papildus/4. līmeņa uzdevums ir paredzēts tikai tad, ja pamatdarbs ir pabeigts.

Priekšzināšanu robeža: uzdevumos izmanto tikai iepriekš apgūto un šīs lapas teorijas/koda piemēros parādīto. Ja parādās jauna komanda vai rīks, vispirms atrod tās paraugu teorijas blokā.

Teorija: no atsevišķiem blokiem līdz misijai

Noslēguma projektā svarīgākais nav uzbūvēt vissarežģītāko robotu. Svarīgākais ir pierādīt, ka robota mehānika, sensori un programma strādā kopā atkārtojamā veidā. Labs risinājums ir tāds, kuru komanda var palaist vairākas reizes un izskaidrot, kāpēc robots pieņem konkrētus lēmumus.

Misijas cikls: starts -> sekošana līnijai vai kustība pēc attāluma -> objekta noteikšana -> satveršana -> atgriešanās -> kravas atlaišana -> rezultāta izvērtēšana.

# SPIKE Word Blocks tekstuāls piemērs
when program starts
set movement motors to [A] and [B]
set movement speed to [40]%

move [forward] for [30] [cm]
wait until distance sensor is < [10] [cm]
stop moving

run motor [C] for [90] [degrees]  # satver kravu
move [backward] for [30] [cm]
run motor [C] for [-90] [degrees] # atlaiž kravu

Pirms demonstrācijas vienojieties par komandas lomām: konstruktors atbild par mehāniku, programmētājs par bloku loģiku, testētājs pieraksta kļūdas un prezentētājs skaidro risinājuma izvēles. Lomas drīkst mainīt, bet atbildībām jābūt skaidrām.

1. uzdevums: Stabils robota pamats

  1. Uzbūvējiet robota bāzi, kas brauc taisni un nezaudē detaļas pēc sadursmes vai apstāšanās.
  2. Pārbaudiet motoru portus un dokumentējiet tos komandas pierakstos, piemēram: kreisais motors A, labais motors B, satvērējs C.
  3. Izveidojiet testa programmu: izbraukt no starta zonas, apstāties pēc noteikta attāluma, apgriezties par 180 grādiem un atgriezties.
  4. Veiciet trīs testa braucienus pēc kārtas un pierakstiet, vai robots apstājas vienā un tajā pašā vietā.

2. uzdevums: Sensoru lēmumi un if/else loģika

Pievieno sensorus pie robota un uzraksti programmu, kas pieņem lēmumus pēc sensoru rādījumiem.

  1. Pievieno krāsu sensoru pie porta A un distances sensoru pie porta B tā, lai tie netraucē satvērējam.
  2. Kalibrē sensorus klasē un pieraksti vērtības: melnā līnija (piem., 15), baltā (85), objekta tuvums (10 cm).
  3. Atver SPIKE/EV3 vidē Python programmu un izveido galveno ciklu ar while True:.
  4. Ievieto cikla iekšā if/elif/else lēmumus pēc sensoru rādījumiem:
    while True:
        if distance_sensor.get_distance_cm() < 10:
            motor_pair.stop()
            break
        elif color_sensor.get_reflected_light() < 30:
            motor_pair.move_tank(-20, 20)
        else:
            motor_pair.move_tank(30, 30)
  5. Pārlej programmu robotā un veic vienu testa braucienu.
  6. Pieraksti dienasgrāmatā: vai robots apstājās tuvāk par 10 cm? Ja nē - maini slieksni un pārlej vēlreiz.

Pārbaudi: trīs testa braucieni pēc kārtas - robotam jāapstājas ±2 cm robežās no šķēršļa.

3. uzdevums: Pilns autonomais brauciens

  1. Pievienojiet trešo motoru un noregulējiet satvērēju tā, lai tas objektu satver bez motora pārslodzes.
  2. Apvienojiet kustības, sensoru un satvērēja kodu vienā misijas programmā.
  3. Robots autonomi paņem kravu, nogādā to starta zonā vai mērķa laukā un atlaiž kravu bez cilvēka palīdzības.
  4. Pēc katra testa pierakstiet vienu labojumu: ātrums, leņķis, sensors, satvērēja grādi vai gaidīšanas laiks.

Papildus uzdevums: Adaptīva misija

  1. Pievienojiet otru maršruta variantu: ja sensors atrod objektu citā vietā, robots izvēlas citu kustības secību.
  2. Izmantojiet mainīgo, kas skaita veiksmīgus mēģinājumus vai kravu skaitu.
  3. Pievienojiet skaņas vai gaismas signālu, kas parāda misijas statusu: starts, krava atrasta, misija pabeigta.

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

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)
Programmēšana un Kustība Kods ir nepilnīgs, robots spēj veikt tikai atsevišķas taisnvirziena kustības. Nav izmantoti cikli. Kods ietver ciklus un pamatkustības, taču robota kustība ir neprecīza (neprecīzi leņķi vai attālumi, nesasniedz mērķus). Kods ir strukturēts. Robots precīzi pārvietojas pa laukumu, veic pagriezienus un izpilda kustības uzdevumus bez skolotāja iejaukšanās. Kods ir lieliski optimizēts (nav lieku bloku, izmantoti mainīgie). Kustības ir ļoti precīzas un pielāgotas reālajai laukuma fizikai.
Sensoru un Loģikas izmantošana Sensori ir fiziski pievienoti, bet netiek izmantoti kodā, vai arī to rādījumi netiek ņemti vērā. Sāk izmantot vismaz vienu sensoru (piemēram, apstājas pie šķēršļa), taču algoritms nav stabils un bieži kļūdās. Veiksmīgi un stabili izmanto "If-Else" un gaidīšanas loģiku, liekot lietā vismaz divus sensorus uzdevumu (sekošanas un apstāšanās) veikšanai. Sensori darbojas nevainojami. Algoritms paredz izņēmuma situācijas (piemēram, nepazaudē līniju asos līkumos vai pielāgojas apgaismojumam).
Mehānika un Manipulators Robota bāze ir nestabila, manipulators (3. motors) nav pievienots vai fiziski nedarbojas. Manipulators ir pievienots, taču tas ir mehāniski vājš, iesprūst vai nespēj uzticami pacelt/pārvietot misijas objektu. Robots ir izturīgs. Manipulators stabili satver, notur un atlaiž objektu, pareizi izmantojot motora grādu komandas kodā. Izcils inženiertehniskais risinājums (piemēram, efektīva zobratu pārvadu izmantošana satvērējam). Dizains ir gan funkcionāls, gan izturīgs.
Sadarbība grupā un Process Grupā aktīvi strādā tikai 1 skolēns, pārējie nepiedalās. Vāja laika plānošana. Pienākumi ir daļēji sadalīti, taču komunikācija grupā ir vāja, kas traucē misijas secīgu izpildi. Visi komandas biedri aktīvi iesaistās, spēj vienoties par kopīgiem risinājumiem un efektīvi testē robotu. Grupa strādā pilnīgi patstāvīgi, palīdz citiem klasesbiedriem, lieliski sadala laiku un spēj argumentēti izskaidrot savu koda loģiku.

Pašpārbaudes saraksts

⬅ Iepriekšējā stunda Tēmas apkopojums ➡