Programování s podmíněnými výrazy - Python
Sada nástrojů
této aktivity
Tato aktivita seznámí studenty s používáním příkazů while a if , aby se robot pohyboval vpřed, dokud není stisknuto tlačítko na obrazovce.
- Tato aktivita seznámí studenty s podmíněnými příkazy a instrukcemi, které způsobí, že se robot bude pohybovat vpřed, dokud nestiskne obrazovku.
- Více informací o příkazech if,, 4,, if-else, nebo dalších použitých v tomto cvičení naleznete v nápovědě k VEXcode V5. Více informací o tomto vestavěném nástroji nápovědy naleznete v článku o nápovědě v jazyce Python
Sada nástrojů pro učitele
Návrhy na strategie výuky pro tuto sekci naleznete v sloupci Výkon v Průvodci tempem úkolů, které je třeba udělat, či nikoliv! dokumentů Google .docx )
Clawbot je připraven učinit rozhodnutí!
Tato studie vám poskytne nástroje, které vám pomohou začít vytvářet skvělé projekty, které používají příkazy, if-else.
- Příkazy VEXcode V5 Pythonu, které budou v tomto průzkumu použity:
- drivevetrain.drive_for(VPŘED)
- brain.screen.pressing()
- drivevetrain.stop()
- pokud stav:
- else:
- zatímco True:
- počkejte(5, SEKUNDY)
Pro seznámení se s příkazy Pythonu můžete použít Nápovědu uvnitř VEXcode V5.

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 student používá VEXcode V5 poprvé, může si tutoriály kdykoli během tohoto zkoumání přečíst. Výukové programy se nacházejí v panelu nástrojů.

Krok 1: Začněme s pochopením podmíněných příkazů
Než začnete programovat s podmíněnými výrazy, přečtěte si článek vysvětlující příkazyif-else. Článek naleznete zde (Google Doc / .docx / .pdf).
Seznam operátorů, které se mají použít v příkazech if-else, naleznete v článku vysvětlujícím booleovské hodnoty. Tento článek najdete zde (Google Doc/.docx/.pdf).
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.
# Zahájit kód projektu
při True:
drivetrain.drive(VPŘED)
if brain.screen.pressing():
drivetrain.stop()
while brain.screen.pressing():
wait(5, MSEC)
wait(5, MSEC)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á.
- Pojmenujte projektCreatingAStopButton. Stáhněte a spusťte projekt na Clawbotu.
- Zkontrolujte vysvětlení projektu a přidejte poznámky, které je podle potřeby opraví.
Sada nástrojů pro učitele
-
odpovědí
V tomto projektu se robot nepřetržitě pohybuje vpřed, ale zastaví se při stisknutí obrazovky. Dělá to pomocí příkazu „forever“ (while True)pro nepřetržité řízení a kontrolu. Pokud je obrazovka stisknuta (True), Clawbot se zastaví.
Od studentů se neočekává, že pochopí, proč se používají příkazy while brain.screen.pressing():a wait(5, MSEC). Vysvětlete, že tyto příkazy jsou nezbytné kvůli rychlosti toku programu robota. Pokud by tam nebyl, motory Clawbota by se chovaly, jako by uživatel opakovaně mačkal obrazovku, zatímco projekt probíhal smyčkou. Místo toho tyto instrukce zastaví tok programu a nenechají projekt znovu spustit smyčku, dokud uživatel nepřestane mačkat obrazovku.
Řádek pseudokódu by mohl vypadat jednoduše jako: Jeďte vpřed, dokud nestisknete obrazovku.
Studentské technické sešity lze vést a hodnotit individuálně (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 do vzdělávacího plánování zahrnuta rubrika, je dobrým zvykem ji studentům vysvětlit nebo alespoň rozdat kopie před zahájením aktivity.
Krok 3: Pochopení příkazůwhileawait().
Všimněte si, že pokud stisknete obrazovku Brainu, tok projektu se posune rychle a projekt se přesune k další instrukci, kterou je příkaz drivetrain.stop().
Projekt tedy potřebuje chvíli a čekat na příkazy, které řeknou robotu, aby zůstal zastaven, dokud se neuvolní obrazovka mozku. Jinak by příkaz foreverzpůsobil, že by se projekt znovu spustil.
while brain.screen.pressing():
wait(5, MSEC)Příkazywhile a waitjsou nezbytné kvůli rychlosti průběhu projektu. Pokud by tam nebyly, 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říkazuifna příkazif-else
- Začněte uloženímCreatingAStopButtonjako nového projektu,StopOrDrive.
- Pokud potřebujete pomoc s uložením projektu, podívejte se na tyto články.
- Pak sestavte projektStopOrDrive, jak je uvedeno níže.
# Zahájit kód projektu
při True:
if brain.screen.pressing():
drivetrain.stop()
while brain.screen.pressing():
wait(5, MSEC)
else:
drivetrain.drive(FORWARD)
wait(5, MSEC)- Stáhněte siStopOrDrivedo slotu 2 na vašem Clawbotu.
- Pomoc se stahováním a spuštěním projektu naleznete v tomto článku.
- OtestujteCreatingAStopButton(Slot 1) a poté otestujteStopOrDrive(Slot 2) a porovnejte je, abyste zjistili, zda je v chování robota nějaký rozdíl. Všimněte si jakýchkoli rozdílů ve vašem technickém notebooku
Sada nástrojů pro učitele
–
odpověď
Co se týče chování robota,byrozdíl mezi projekty CreatingAStopButtona
Pokud studenti potřebují další pomoc s pochopením příkazůif-else, podívejte se na tento článek (Google Doc / .docx / .pdf).
Oba projekty mají Clawbot chovat stejným způsobem. Jediný rozdíl je v použití příkazu if-else v projektu StopOrDrive
Použití příkazu if-else vám umožní přidat na obrazovku další tlačítka v nadcházejících aktivitách.
Rozšiřte si své znalosti
V průběhu této STEM laboratoře budou studenti vyvíjet projekty, které umožní obrazovce Clawbota fungovat jako uživatelské rozhraní. Jako přípravu na to vyzvěte studenty, aby zjistili, jak nakreslit na obrazovku barevný obdélník, který funguje jako tlačítko. Protože je aktuálně podmínkou stisknutí libovolného místa na obrazovce, mělo by tlačítko zabírat celou obrazovku. Studenti by měli mít projekt, který by při spuštění vysílal událost pro vykreslení tlačítka.
Nejprve nechte studenty zjistit, jak je obrazovka mozku uspořádána do souřadnicového systému. Budou to muset pochopit, aby mohli nastavit parametry v příkazech, které budou používat. Použité souřadnice odpovídají počtu pixelů, nikoli počtu sloupců nebo řádků. Zde je rozvržení obrazovky:
Studenti by měli tyto změny v projektu plánovat, testovat a vylepšovat a zároveň je dokumentovat ve svých technických sešitech. Pro individuální rubriku technických sešitů 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é sešity (Google Doc / .docx / .pdf).
Zde je příklad řešení:
# Začátek projektu
draw = Event()
def draw_button():
brain.screen.set_fill_color(Color.RED)
brain.screen.draw_rectangle(0, 0, 480, 240)
wait(1, SECONDS)
draw(draw_button)
while True:
draw.broadcast()
drivetrain.drive(FORWARD)
if brain.screen.pressing():
drivetrain.stop()
while brain.screen.pressing():
wait(5, MSEC)
else:
drivetrain.drive(FORWARD)
wait(5, MSEC)Jak vidíte, tlačítko je nakresleno tak, aby zabíralo celou obrazovku počínaje počátkem (0, 0) a vyplňovalo všech 480 horizontálních (osa x) pixelů a 240 vertikálních (osa y) pixelů.
