Skip to main content

Programování s podmíněnými výrazy - Python

Ikona sady nástrojů pro učitele 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

Ikona sady nástrojů pro učitele 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.

VEXcode V5 s jednotkou pro příkaz napsanou v pracovním prostoru vlevo a informace nápovědy se otevřou vpravo. Nápověda zobrazuje definici příkazu a informace o tom, jak je používán.

Ujistěte se, že máte potřebný hardware, technický notebook a VEXcode V5 připraven.

Požadované materiály:
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

Ikona tipů pro učitele 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ů.

Panel nástrojů VEXcode V5 s výukovými programy zvýrazněnými červeným rámečkem. Panel nástrojů zobrazuje zleva doprava logo V5, ikonu glóbu, složku Soubor a Výukové programy. Napravo od Tutoriálů jsou další ikony a funkce.

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).
Screenshot of the linked article titled Using If else statements in VEXcode V5 Python.
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).

Snímek obrazovky odkazovaného článku s názvem Using Booleans in VEXcode V5 Python.

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).

    Příklad Projekty ve VEXcode V5 s filtrem Šablony a motorem Clawbot Drivetrain 2 bez ikony gyroskopu zvýrazněné červeným rámečkem označujícím, který projekt se má otevřít.

     

  • 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.
    Dialogové okno Název projektu na panelu nástrojů VEXcode V5 čte Vytvoření tlačítka Stop a ukazuje, že je vybrána pozice 1.
  • Zkontrolujte vysvětlení projektu a přidejte poznámky, které je podle potřeby opraví.

Ikona sady nástrojů pro učitele 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í.Funkce příkazů v projektu Stop nebo Drive jsou označeny. Příkaz if je označen jako Kontroluje, zda je podmínka True – kontroluje, zda je stisknuta obrazovka. Bloky odsazené pod ním jsou označeny Pokud je podmínka splněna, spustí se blok kódů. Příkaz while brain screen stisknutí je označen jako řídí rychlost zpracování.

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.Dialogové okno Název projektu na panelu nástrojů VEXcode V5 čte Stop nebo Drive a ukazuje, že je vybrán slot 1.
  • 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.

Okno pro výběr slotu se otevře na panelu nástrojů VEXcode V5 a slot 2 se vybere a zvýrazní červeným rámečkem.

  • 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

Ikona sady nástrojů pro učitele 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.

Ikona Rozšiřte si učení 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:Pixelová mřížka obrazovky V5 Brain zobrazuje 12 očíslovaných řádků podél levé strany, přičemž horní řádek je označen jako Řádek 1 a spodní jako Řádek 12. V horní části je 48 očíslovaných sloupců, přičemž sloupec 1 je označen úplně vlevo a sloupec 48 je označen úplně vpravo. Celkové rozměry v pixelech jsou 480 pixelů na šířku a 240 pixelů na výšku.

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ů.