Sada nástrojů pro učitele
-
Účel této aktivity
Tato aktivita studenty seznámí s používáním příkazu while a if then, který uvádí, že robot pojede vpřed, pokud není stisknuta obrazovka.
-
Tato aktivita seznámí studenty s podmíněnými podmínkami a pokyny, které vedou robota vpřed, pokud není stisknuta obrazovka.
-
Pro více informací o tom, zda pak a zda pak jinak prohlášení nebo jiné použité v této činnosti, navštivte informace o nápovědě v rámci VEXcode V5. Další informace o tomto vestavěném nástroji nápovědy najdete v těchto článcích o nápovědě v C++ .
Sada nástrojů pro učitele
Návrhy na výukové strategie pro tuto část naleznete ve sloupci Dodání průvodce stimulací To Do or Not to Do! (Google Doc / .docx / .pdf)
Clawbot je připraven učinit rozhodnutí!
Toto prozkoumání vám poskytne nástroje, které vám umožní začít vytvářet některé skvělé projekty, které používají výrok if then else.
- Příkazy VEXcode V5 C++, které budou použity v tomto průzkumu:
- Drivevetrain.drive(vpřed);
- Brain.Screen.pressing()
- Drivetrain.stop();
- if (podmínka){}
- waitUntil();
- while (podmínka){}
- počkejte(1, sekundy);
Informace o nápovědě v kódu VEXcode V5 můžete použít k získání informací o pokynech v jazyce C++.
Ujistěte se, že máte potřebný hardware, technický notebook a VEXcode V5 připraven.
| Množství | Potřebný materiál |
|---|---|
| 1 |
VEX V5 Classroom Starter Kit (s aktuálním firmwarem) |
| 1 |
VEXcode V5 (nejnovější verze, Windows, macOS) |
| 1 |
Technický poznámkový blok |
| 1 |
Clawbot (hnací ústrojí 2-motor, bez gyroskopu) šablona |
Tipy pro učitele
Pokud je to student poprvé, kdo používá VEXcode V5, může kdykoli během tohoto průzkumu nahlédnout do výukových programů. Výukové programy jsou umístěny na panelu nástrojů.

Krok 1: Začněme pochopením podmíněných prohlášení
Než začnete programovat s podmíněnými podmínkami, přečtěte si článek knihovny VEX vysvětlující příkazy If Then Else. Článek najdete zde.
Seznam operátorů, které lze použít v příkazech If Then Else, naleznete v článku knihovny VEX vysvětlujícím booleovské hodnoty. Tento článek najdete zde.
Krok 2: Začněme programovat s podmíněnými příkazy.
-
Otevřete ukázkový projekt šablony Clawbot (Drivetrain 2-motor, No Gyro).

- Sestavte níže uvedený projekt.
// Start project code
int main() {
// Inicializace konfigurace robota. NEODSTRAŇUJTE!
vexcodeInit();
while (true) {
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
Drivetrain.stop();
waitUntil(!Brain.Screen.pressing());
}
}
} Ve svém technickém notebooku proveďte následující:
- Vysvětlete, co má projekt Clawbot dělat. Budete muset vysvětlit víc než jen to, že vytváří tlačítko stop. Vysvětlete, které pokyny nutí Clawbota dělat co.
- Napište shrnutí jedné věty, které zachycuje, co projekt dělá.
- Otestujte, zda je vaše predikce toho, co má projekt Clawbot udělat, správná.
- Uložte a stáhněte projekt jako CreatingAStopButton do slotu 1 na Clawbotu a poté jej spusťte.
- Nápovědu ke stažení projektu naleznete v tutoriálu ve VEXcode V5, který vysvětluje, jak stáhnout a spustit projekt (C++).
- Zkontrolujte vysvětlení projektu a přidejte poznámky, které je podle potřeby opraví.
Sada nástrojů pro učitele
-
odpovědi
Tento projekt má robot nepřetržitý pohon vpřed, ale zastaví se, pokud je obrazovka stisknuta. Dělá to pomocí příkazu Forever, který nepřetržitě řídí a kontroluje. Pokud je obrazovka stisknuta (TRUE), pak Clawbot zastaví jízdu.
Neočekává se, že studenti pochopí, proč se používá instrukce waitUntil (). Vysvětlete, že instrukce waitUntil () je nezbytná z důvodu rychlosti toku programu robota. Pokud by tam nebyl, motory Clawbota by se chovaly, jako by uživatel znovu a znovu tlačil na obrazovku, když prochází projektem. Místo toho příkaz waitUntil() zastaví tok programu a projekt znovu nespustí věčnou smyčku, dokud uživatel nepřestane stisknout obrazovku.
Řádek pseudokódu může být stejně jednoduchý jako: Jízda vpřed, dokud není obrazovka stisknuta.
Studentské technické notebooky mohou být udržovány a hodnoceny jednotlivě (Google Doc / .docx / .pdf) nebo jako tým (Google Doc / .docx / .pdf). Předchozí odkazy poskytují pro každý přístup jinou rubriku. Kdykoli je rubrika zahrnuta do plánování vzdělávání, je dobrou praxí vysvětlit tuto rubriku nebo alespoň dát kopie studentům před zahájením činnosti.
Krok 3: Pochopení příkazu wait until().
Všimněte si, že pokud je stisknuta obrazovka mozku, tok projektu se rychle pohybuje a projekt se přesune na další instrukci, kterou je instrukce Drivetrain.stop().
Projekt tedy potřebuje instrukci waitUntil(), která řekne robotu, aby zůstal zastaven, dokud se neuvolní obrazovka mozku. V opačném případě by příkaz forever způsobil, že by projekt začal znovu.
waitUntil(!Brain.Screen.pressing());Instrukce waitUntil() je nutná z důvodu rychlosti toku projektu. Pokud by tam nebyl, projekt by se přesunul na další instrukci dříve, než by měl robot čas reagovat.
Krok 4: Změňte projekt.
Naším dalším krokem je změna příkazu if then na příkaz if then else.
- Začněte uložením CreatingAStopButton jako nového projektu StopOrDrive.
- Pokud potřebujete pomoc s uložením projektu, klikněte zde pro C++.
- Poté vytvořte projekt StopOrDrive zobrazený níže.
// Start project code
int main() {
// Inicializace konfigurace robota. NEODSTRAŇUJTE!
vexcodeInit();
while (true) {
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
Drivetrain.stop();
waitUntil(!Brain.Screen.pressing());
}
else {
Drivetrain.drive(forward);
}
}
} - Stáhněte si StopOrDrive do slotu 2 na svém Clawbot.
- Nápovědu ke stažení projektu naleznete v tutoriálu ve VEXcode V5, který vysvětluje, jak stáhnout a spustit projekt (C++).
- Otestujte CreatingAStopButton (slot 1) a poté otestujte StopOrDrive (slot 2) a porovnejte je, abyste zjistili, zda existuje nějaký rozdíl v chování robota. Všimněte si jakýchkoli rozdílů ve vašem technickém notebooku
Sada nástrojů pro učitele
-
odpověď
Pokud jde o chování robota, neměl by existovat rozdíl mezi projekty CreatingAStopButton a StopOrDrive.
Pokud studenti potřebují další pomoc s porozuměním prohlášení If-Else, klikněte zde.
Oba projekty mají Clawbot chovat stejným způsobem. Jediným rozdílem je použití příkazu if then else v projektu StopOrDrive.
Použití příkazu if then else vám umožní přidat další tlačítka na obrazovku v nadcházejících aktivitách.
Rozšiřte své učení
V průběhu této STEM laboratoře budou studenti vyvíjet projekty, které umožní, aby obrazovka Clawbota fungovala jako uživatelské rozhraní. Při přípravě na to vyzvěte studenty, aby zjistili, jak nakreslit barevný obdélník na obrazovce, který funguje jako tlačítko. Vzhledem k tomu, že stisknutí kdekoli na obrazovce je v současné době podmínkou, tlačítko by mělo zabírat celou obrazovku. Studenti by měli mít projekt vysílat událost, aby nakreslili tlačítko při spuštění.
Nasměrujte studenty, aby se nejprve dozvěděli, jak je obrazovka mozku organizována do souřadnicového systému. Budou to muset pochopit, aby mohli nastavit parametry v rámci pokynů, které budou používat. Použité souřadnice odpovídají počtu pixelů, nikoli počtu sloupce nebo řádku. Zde je rozvržení obrazovky:

Studenti by měli naplánovat, otestovat a upřesnit tyto změny v projektu a zároveň je zdokumentovat ve svých technických poznámkových blocích. Pro jednotlivé strojírenské poznámkové bloky klikněte na jeden z následujících odkazů (Google Doc / .docx / .pdf), nebo klikněte na jeden z následujících odkazů pro týmové poznámkové bloky (Google Doc / .docx / .pdf).
Zde je příklad řešení:
// Begin project code
event draw = event();
void drawButton () {
Brain.Screen.setFillColor (red);
Brain.Screen.drawRectangle (0, 0, 480, 240);
wait(1, seconds);
}
int main() {
// Initializing Robot Configuration. NEODSTRAŇUJTE!
vexcodeInit();
draw(drawButton);
while (true) {
draw.broadcast();
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
waitUntil(!Brain.Screen.pressing());
}
else {
Drivetrain.drive(forward);
}
}
} Jak můžete vidět, tlačítko je nakresleno tak, aby zabralo celou obrazovku od počátku (0, 0) a vyplnilo všech 480 horizontálních pixelů (osa x) a 240 vertikálních pixelů (osa y).