Skip to main content

Ovladač: Průzkum pohonu tanku - Python

Ikona sady nástrojů pro učitele Sada nástrojů této části

Použití ukázkového projektu Tank Control umožňuje studentům ovládat Clawbota pomocí ovladače. Studenti budou muset upravit parametry v instrukcích left_motor.set_velocity(), right_motor.set_velocity(), left_motor.spin(), right_motor.spin(), left_motor_speed = controller_1.axis3.position() a right_motor_speed = controller_1.axis2.position() , aby řídili rychlost každého z motorů Clawbota a umožnili řídicí jednotce ovládat funkce motoru.

Více informací o kterékoli z instrukcí naleznete v sekci nápovědy Pythonve VEXcode V5.

Následuje nástin toho, co budou studenti v této aktivitě dělat:

  1. Prozkoumejte ukázkový projekt Tank Control.
  2. Pochopte použití struktury nekonečné smyčky while True .
  3. Dokončete výzvu Robo-Slalom!

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

Pokud student používá VEXcode V5 poprvé, může si v knihovněnajít mnoho užitečných.

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

Příklad projektu kontroly nádrže

2 nebo více

Objekty ve třídě, které mají být použity jako překážky

Tato aktivita vám poskytne nástroje pro programování vašeho řídicího systému. 

  • Pokyny VEXcode V5 Python, které budou použity při tomto průzkumu:
    • left_motor.set_velocity()
    • right_motor.set_velocity()
    • left_motor.spin()
    • right_motor.spin()
    • controller_1.axis2.position()
    • controller_1.axis3.position()
    • zatímco True: 
    • počkejte(5, SEKUNDY)

Další informace o kterékoli z instrukcí naleznete v sekcích nápovědy k Pythonu v publikaci VEXcode V5. 

VEXcode V5 je zobrazen s otevřeným panelem nástrojů úplně vlevo a s otevřeným příkazem Nápověda pro pohon úplně vpravo. Nápověda zobrazuje definici příkazu a informace o tom, jak je používán.

Krok 1: Začněme programovat ovladač.

  • Vyberte Soubor a Otevřít příklady.
  • Panel nástrojů VEXcode V5 s otevřenou nabídkou Soubor a otevřenými příklady zvýrazněnými červeným rámečkem. Open Examples je čtvrtá položka nabídky pod New Blocks Project, New Text Project a Open.
  • Projděte si různé ukázkové projekty. Vyberte ukázkový projekt řízení nádrže.

Příklad projektů ve VEXcode V5 s červeným rámečkem kolem snímacího filtru nahoře a ikonou projektu Příklad řízení nádrže vpravo dole.

  • Otevřete ukázkový projekt řízení nádrže. Příklad projektu konfiguruje hnací ústrojí a ovladač. Kód bude vypadat jako následující úryvek:
# Import knihovny
z importu vex *

# Začněte kód projektu
# Smyčka hlavního ovladače pro nastavení motorů na postihy osy ovladače,
zatímco True
    : left_motor.set_velocity (controller_1.axis3.position (), PROCENTA)
    right_motor.set_velocity (controller_1.axis2.position (), PROCENTA)
    left_motor.spin (FORWARD)
    right_motor.spin (FORWARD)
    wait(5, MSEC)

Ve svém technickém notebooku proveďte následující:

  1. Předvídat, co bude projekt dělat Clawbot. Vysvětlete více než skutečnost, že projekt využívá správce.
  2. Jak joysticky pohybují robotem? Co dělá Clawbot?

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

  1. Tento projekt využije strukturu nekonečné smyčky while True k průběžné kontrole polohy levého a pravého joysticku. Když je levý (nebo pravý) joystick zatlačen nahoru, nastaví se rychlost, o kolik dopředu je joystick zatlačen. 
  2. Čím dále je joystick zatlačen dopředu, tím rychleji se nastaví rychlost a tím rychleji se budou pohybovat motory. Stejný princip funguje i pro zatlačení joysticku dozadu. Čím dále je joystick zatlačen dozadu, tím rychleji se motory budou pohybovat v opačném směru.
  • Pojmenujte projekt TankControl. Uložte, stáhněte a spusťte projekt Python TankControl.

Dialogové okno Název projektu v VEXcode V5 čte Tank Control a ukazuje, že je vybrán slot 1.

  • Další informace o nápovědě najdete ve výukovém videu ve VEXcode V5, které vysvětluje, jak stáhnout a spustit projekt.

Panel nástrojů ve VEXcode V5 s červeným rámečkem kolem ikony Návody. Panel nástrojů zobrazuje zleva doprava logo V5, ikonu zeměkoule, soubor a pak návody.

  • 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: Ovladač: Ovládání nádrže

Ikona sady nástrojů pro učitele Nástroje pro učitele - Skutečné struktury nekonečných smyček while

Tento krok pojednává o důležitosti struktury nekonečné smyčky while True . Informace byste si měli projít jako třída. Chování můžete modelovat pomocí Clawbota a Controlleru, nebo pokud to čas dovolí, nechat studenty spustit program bez struktury nekonečné smyčky while True .

Pokud studenti potřebují další pomoc s pochopením nekonečné smyčky while True , klikněte zde.

​Jaké jsou výhody používání nekonečné smyčky while True?

Zde je náš projekt bez nekonečné smyčky while True:

# Import knihovny
z importu Vex *

# Zahájení kódu projektu
# Smyčka hlavního ovladače pro nastavení motorů na osu ovladače postiions

left_motor.set_velocity (controller_1.axis3.position (), PROCENTA)
right_motor.set_velocity(controller_1.axis2.position(), PROCENTA)
left_motor.spin(FORWARD)
right_motor.spin(FORWARD)


Co si myslíte, že by se stalo, kdyby byl tento program spuštěn? Diskutujte jako skupina. Svou předpověď si zapište do technického poznámkového bloku.

Ikona sady nástrojů pro učitele Sada nástrojů pro učitele struktury

Bez nekonečné smyčky while True se hodnota rychlosti pro každý motor nastaví ihned po spuštění projektu a tato hodnota zůstává konstantní, dokud není projekt zastaven. Jinými slovy, pokud spustíte projekt bez pohybu kteréhokoli z joysticků, protože výchozí poloha joysticku na jeho ose je 0, rychlost obou motorů zůstane na 0, i když joystickem pohnete.

Podobně, řekněme, že pohnete levým joystickem nahoru co nejvíce podél osy 3 a podržíte ho tam. Pokud spustíte výše uvedený projekt, levý motor se bude pohybovat plnou rychlostí a zůstane na této rychlosti, i když budete pohybovat joystickem dolů podél osy 3. Je to proto, že Clawbot obdrží svou počáteční instrukci od Controlleru ihned po spuštění projektu; bez smyčky se však tato počáteční hodnota nemůže aktualizovat.

Nekonečná smyčka while True říká Clawbotovi, aby neustále aktualizoval rychlost a běžel po celou dobu trvání projektu. Jinými slovy, nekonečná smyčka while True v tomto projektu umožňuje měnit rychlost každého motoru pohybem joysticku podél osy 2 nebo 3 a Clawbot bude reagovat odpovídajícím způsobem, dokud projekt nezastavíte nebo Clawbota nevypnete.

# Knihovna importuje
z vex import *

# Začátek projektového kódu
# Hlavní smyčka regulátoru pro nastavení motorů na polohy os regulátoru
while True:
    left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
    right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
    left_motor.spin(FORWARD)
    right_motor.spin(FORWARD)
    wait(5, MSEC)

Projděte si slalomový kurz!

Ikona sady nástrojů pro učitele Nástroje učitele Příprava aktivity

Rozdělte studenty do malých skupin po 2 nebo 4 studentech. Jeden student by měl být určen jako řidič – osoba, která bude pomocí ovladače manévrovat s Clawbotem.

Nechte studenty dokončit tento slalom tak, že pomocí ovladače budou pohybovat Clawbotem podél vnější strany každé „vlajky“. Dráha Clawbota mu musí zabránit v dotyku s jakoukoli vlajkou a umožnit mu překročit cílovou čáru. Vlajky mohou být jakýkoli učební materiál/předmět, který máte po ruce (guma, role lepicí pásky, krabička na kapesníky) a lze je umístit na místo před spuštěním Clawbota.

Pokud to čas dovolí, nechte studenty vyměnit role a dajte tak ostatním možnost řídit Clawbota. Dokonce byste to mohli proměnit v soutěž v rámci skupin nebo mezi skupinami tím, že uvidíte, jak rychle každý jezdec zvládne slalom.

Snowboardista závodí z kopce na zasněženém svahu a prochází řadou červených a modrých bran umístěných v klikatém vzoru

Slalomy jsou kurzy, které musí účastník procházet kolem nastavených vlajek nebo značek. Lyžařské slalomy jsou oblíbeným zimním sportem a jsou součástí zimních olympijských her.
Nyní, když je ovladač spárován a projekt Python je stažen, jste připraveni pohybovat svým Clawbotem pomocí ovladače!

  • Sbírejte od učitele čtyři předměty ve třídě, které budete používat jako vlajky ve slalomu.
  • Spolupracujte na nastavení vlajek, aby řidič mohl podle slalomového diagramu navigovat Clawbota.
  • Stáhněte si projekt Příklad kontroly nádrže. Pokud máte nějaké dotazy ohledně stahování projektu, podívejte se na návod ke stažení a spuštění projektu.

Ilustrace slalomové tratě na sněhu s nápisem „Start“ nahoře a cílovou čárou dole. Mezi tečkovanou klikatou cestou se proplétají střídavé modré a červené vlajky.

Pomocí ovladače přesuňte Clawbota na vnější stranu každé „vlajky“. Dráha robota musí zabránit tomu, aby se dotkl jakékoli vlajky, a umožnit mu překročit cílovou čáru.

  • Spusťte projekt a přesuňte Clawbota dopředu a dozadu a pomocí obou joysticků zahněte doleva a doprava.
  • Čas, jak dlouho trvá, než Clawbot dokončí kurz. Časy zdokumentujte v technickém poznámkovém bloku.
  • Jak rychle dokážete Clawbota dostat přes slalomový kurz?
     

Ikona motivační diskuse Motivace Diskuse - Reflexe aktivity

Otázka: Reagoval Clawbot na ovladač tak, jak jste očekávali?

A: Odpovědi se budou lišit; cílem této otázky je však podpořit kognitivní myšlení. Studenti začali tím, že před testováním chování předpovídali, zdokumentovali výsledky a začali se zamýšlet.

Otázka: Jaká je největší výzva při pohybu Clawbota vpřed nebo vzad v přímé linii?

A: I když se odpovědi mohou lišit, běžnou odpovědí by mělo být, že oba joysticky se musí pohybovat synchronně, aby se zajistilo, že se motory Clawbota pohybují stejným směrem a stejnou rychlostí.

Otázka: Jak vám použití nekonečné smyčky while True umožňuje nepřetržitě používat ovladač k pohybu Clawbota?

A: Bez nekonečné smyčky while True by Clawbot prováděl chování určené instrukcemi v projektu pouze jednou. Nekonečná smyčka while True říká Clawbotovi, aby neustále aktualizoval rychlost a běžel po celou dobu trvání projektu. Jinými slovy, nekonečná smyčka while True umožňuje používat ovladač k pohybu Clawbota donekonečna nebo dokud se nevybije baterie.