Skip to main content

Programovací smyčky - Python

Ikona sady nástrojů pro učitele Osnova aktivity pro učitele –

  • Tato studie seznámí studenty s programováním opakujících se chování pomocí opakujících se neboli forever smyček.

  • Učení se programování pomocí opakujících se a nekonečných smyček umožňuje studentům ušetřit čas při vytváření projektu, který používá stejné opakované akce. Další informace o instrukcích používaných v textovém projektu naleznete.

Ikona tipů pro učitele Tipy pro učitele

Pokud student používá VEXcode V5, může si přečíst řadu článků v knihovně.

Obrázek sekce VEXcode V5 z knihovny VEX

Ujistěte se, že máte požadovaný hardware, svůj technický notebook a VEXcode V5 stažený a 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

Šablona Clawbot (hnací ústrojí 2-motor, bez gyroskopu) ukázkový projekt

Krok 1: Začněme programovat se smyčkami

  • Před zahájením projektu vyberte správný projekt šablony. Příklad projektu Clawbot Template (Drivetrain 2-motor, No Gyro) obsahuje konfiguraci motoru Clawbota. Pokud šablonu nepoužijete, váš robot nebude projekt spouštět správně.
  • VyberteSouboraOtevřít příklady.

    Obrázek zobrazující nabídku Soubor otevřený v VEXcode V5 zobrazující možnost Otevřít příklady

     

  • Projděte si různé projektyPříklad. Tyto projekty demonstrují různé akce, které může váš Clawbot provést. Vyberte a otevřete vzorový projektClawbot Template (Drivetrain 2-motor, bez gyroskopu).

    Obrázek znázorňující ukázkové projekty s červeným rámečkem kolem projektu šablony Speedbot (2-motor hnacího ústrojí, bez gyroskopu)

     

  • Pojmenujte projekt RepeatingActions.

    Obrázek zobrazující název projektu Opakující se akce ve VEXcode V5

  • Zadejte následující kód:

    # Import knihovny
    z importu vex *
    
    # Začněte kód projektu
    # Pohon vpřed 300 mm otočí o 90 stupňů pro 4 iterace
    
    pro repeat_COUNT v rozsahu(4):
        hnací ústrojí.drive_for (VPŘED, 300, MM)
        hnací ústrojí.turn_for (VPRAVO, 90, STUPNĚ)
        počkejte(5, SEKUNDY)

Prohlédněte si projekt a poté proveďte následující kroky ve svém technickém notebooku.

  1. Předvídat, co bude projekt dělat Clawbot. Vysvětlete více než skutečnost, že se projekt opakuje.

    Co se to opakuje? Co dělá Clawbot?

  2. Napište svou predikci, ale nerozdělte krátký projekt na více než dvě části.

Ikona sady nástrojů pro učitele Sada nástrojů pro učitele - odpovědí

  1. V tomto projektu bude robot: jet vpřed o 300 milimetrů, otočit se doprava o 90 stupňů a poté čtyřikrát počkat 5 sekund, aby dokončil čtverec. Místo použití stejných 3 instrukcí čtyřikrát se instrukce opakování zkrátí na pouhý 1 pokus. Instrukce opakování opakuje akce jízdy vpřed a následného otáčení.

  2. Předpověď by mohla jednoduše znít „Clawbot se pohybuje ve čtverci.“ To by byl stručný způsob, jak zachytit opakované pohyby Clawbota bez jakéhokoli kontextu.

Studentské technické sešity si mohou vést a hodnotitindividuálněnebo jakotým. 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ň před zahájením aktivity rozdat kopie.

  • Uložte, stáhněte a spusťteprojekt Opakující se akce.

    Snímek obrazovky s názvem projektu Opakující se akce ve VEXcode V5

  • Zkontrolujte vysvětlení projektu ve svém technickém poznámkovém bloku a přidejte poznámky, které je podle potřeby opraví.

Krok 2: Spusťte projekt a pozorujte robota

Srovnání dvou úryvků kódu Pythonu pro roboty VEX. Horní úryvek používá vstup senzoru k určení, kdy se má otočit, s časovou smyčkou, která kontroluje, zda je stisknuto tlačítko nárazníku; pokud je stisknuto, robot se otočí doprava o 90 stupňů, jinak jede dopředu. Spodní úryvek používá pevnou vzdálenost k určení, kdy se má otočit, se smyčkou for, která pohání robota vpřed o 300 mm, otáčí se doprava o 90 stupňů a čeká 5 sekund, přičemž tuto sekvenci opakuje čtyřikrát

Podívejte se znovu na projekt Opakující se akce (druhý projekt). Tento projekt bude čtyřikrát opakovat chování vpřed a poté otočit. Struktura smyčky „opakování“ (s použitím smyčkypro) se používá, když chcete použít sadu chování určitý početkrát.

Pokud je struktura opakování nahrazena strukturou smyčky while , robot bude opakovat chování vpřed a poté se otočí, „dokud“ je podmínka pravdivá. Podmínku můžete také nastavit na „true“, aby smyčkawhile pokračovala donekonečna.

V prvním projektu se vstup ze senzoru používá k určení, kdy se má začít otáčet. Projekt vpravo používá pevnou vzdálenost hnacího ústrojí k určení, kdy se má začít otáčet.

Aby bylo možné průběžně kontrolovat vstup ze senzoru, používá se příkaz if else spolu se smyčkou while. V projektu vlevo se robot otočí doprava po stisknutí senzoru "bumper_b", jinak robot pojede dopředu navždy, pokud není stisknut senzor "bumper_b". Pro průběžnou kontrolu hodnoty senzoru bumper_b se příkaz if nachází uvnitř smyčky while

První projekt je praktický případ použití struktury, která se opakuje donekonečna – použití smyčekwhilea příkazůifdohromady. Představte si samořiditelný zametací stroj, který pokračuje v jízdě dopředu, dokud nenarazí do zdi nebo předmětu, pak se otočí a pokračuje v jízdě.

Ikona Rozšiřte si učení Rozšiřte si své znalosti

Pro bližší prozkoumání použití cyklů s podmíněnými výrazy nechte studenty vytvořit projekt Floor Sweeper ve VEXcode V5.

  • Začněte tím, že studentinamontují a zapojí spínače nárazníku.
  • Požádejte studenty, aby otevřeli vzorový projektClawbot Template (Drivetrain 2-motor, bez gyroskopu).

     

  • Nechte studenty nakonfigurovat 3vodičový nárazníkový spínač ve VEXcode V5, vybrat používané 3vodičové zařízení pro BUMPERa vybrat port pro B.Obrázek konfigurace zařízení ve VEXcode V5 se zvýrazněnou možností BumperObrázek konfigurace zařízení pro nárazníkový spínač se zvýrazněným portem B
     
  • Nechte studenty pojmenovat projekt jako Zametač podlah.

  • Požádejte studenty, aby sestavili následující projekt.

    # Knihovna importuje
    z vex import *
    
    import random
    
    # Začátek kódu projektu
    while True:
        while (not bumper_b.pressing()):
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
        
        drivetrain.stop()
    
        #Metoda random.randomint() vrací náhodné celé číslo v zadaném rozsahu
        #Předá minimální a maximální hodnotu rozsahu parametrům
        drivetrain.turn_for(RIGHT, (90+random.randint(0, 90)),DEGREES)
        wait(5, MSEC)

Pokud studenti potřebují s některým z pokynů pomoci, odkažte je na informace vNápovědě

Požádejte studenty, abystáhli a spustili projekta pozorovali, jak se robot pohybuje. Poté zahajte diskusi ve třídě a požádejte studenty, aby vysvětlili, proč byla použita struktura „forever“ místo struktury „repeat“.

Studenti by si měli všimnout, že struktura „forever“ je použita, protože tento projekt neustále kontroluje, zda je stisknut spínač nárazníku.

Krok 3: Výzva čtvercových smyček!

Schéma znázorňující zelenou čtvercovou dráhu se šipkami označujícími směr pohybu kolem čtverce. Další oranžové šipky mimo čtvercový bod v různých směrech, odpovídající zatáčkám a pohybům potřebným pro sledování dráhy

  • Nechte svého Clawbota řídit na náměstí.
  • Před každým otočením musí být dráp otevřen a zavřen a rameno musí být zvednuto a spuštěno.
  • Clawbot nemůže jet po straně náměstí více než jednou.
  • Jako výchozí bod můžete použít projekt RepeatingActions z výše uvedeného seznamu, ale před provedením jakýchkoli změn jej uložte jakoSquaredLoops.

Obrázek zobrazující název projektu Squared Loops na panelu nástrojů v VEXcode V5

Ve svém technickém notebooku naplánujte následující:

  • Naplánujte své řešení a předpovězte, co každý pokyn ve vašem projektu bude dělat Clawbot.
  • Stáhněte si a spusťtesvůj projekt, abyste ho před odesláním otestovali.
  • Podle potřeby provádějte změny v projektu a dělejte si poznámky o tom, co bylo během testování změněno.

Ikona sady nástrojů pro učitele Řešení – pro učitele – sada nástrojů

Následuje možné řešení výzvy Squared Loops:

# Knihovna importuje
z vex import *

# Začátek projektu kód
pro repeat_count v range(4):
    drivetrain.drive_for(FORWARD, 300, MM)
    claw_motor.spin_for(REVERSE, 70, DEGREES)
    arm_motor.spin_for(FORWARD, 360, DEGREES)
    claw_motor.spin_for(FORWARD, 70, DEGREES)
    arm_motor.spin_for(REVERSE, 360, DEGREES)
    drivetrain.turn_for(RIGHT, 90, DEGREES)
    wait(5, MSEC)

Studentům můžete poskytnoutprogramovací rubrikupro hodnocení jejich projektů.
Studentské technické sešity lze spravovat a hodnotitindividuálněnebo jakotým.