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ā.
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ā.
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.
Pievieno sensorus pie robota un uzraksti programmu, kas pieņem lēmumus pēc sensoru rādījumiem.
A un distances sensoru pie porta B tā, lai tie netraucē satvērējam.15), baltā (85), objekta tuvums (10 cm).while True:.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)
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.
| 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. |