Programovací smyčky - Python
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.
Clawbot V5 je připraven k pohybu!
Tento průzkum vám poskytne nástroje, abyste mohli začít vytvářet některé skvělé projekty, které používají smyčky.
- Pokyny VEXcode V5 Python, které budou použity při tomto průzkumu:
- drivevetrain.drive_for(VPŘED, 300, MM)
- drivetrain.turn_for(VPRAVO, 90 STUPŇŮ)
- claw_motor.spin_for(OBRÁCENĚ, 70 STUPŇŮ)
- arm_motor.spin_for(VPŘED, 360 STUPŇŮ)
- bumper_b.pressing()
- zatímco True:
- pro repeat_count v rozsahu (4):
- počkejte(5, SEKUNDY)
Informace v nápovědě k VEXcode V5 se dozvíte o jednotlivých příkazech.

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

Tipy
učitele
Používání automatického doplňování
Automatické doplňování je funkce ve VEXcode V5, která předpovídá zbytek příkazu, který píšete. Během práce s VEXcode V5 je povzbuďte k používání funkce automatického doplňování, která jim pomůže se syntaxí Pythonu. Jakmile začnete psát instrukci, můžete si všimnout funkce automatického dokončování. Pomocí kláves „Nahoru“ a „Dolů“ vyberte požadovaný název a poté stiskněte klávesu „Tab“ nebo (Enter/Return) na klávesnici pro potvrzení výběru. Pro více informací o používání automatického doplňování si přečtěte článek o Pythonu z .

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

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

-
Pojmenujte projekt RepeatingActions.
-
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.
-
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?
- Napište svou predikci, ale nerozdělte krátký projekt na více než dvě části.
Sada nástrojů pro učitele
-
odpovědí
-
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í.
-
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.
- 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

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


-
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!

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