Ovladač: Průzkum pohonu tanku - Python
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:
- Prozkoumejte ukázkový projekt Tank Control.
- Pochopte použití struktury nekonečné smyčky while True .
- Dokončete výzvu Robo-Slalom!
Tipy pro učitele
Pokud student používá VEXcode V5 poprvé, může si v knihovněnajít mnoho užitečných.
| 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 |
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 této funkci si přečtěte článek o Pythonu z

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.

Krok 1: Začněme programovat ovladač.
- Vyberte Soubor a Otevřít příklady.
- Projděte si různé ukázkové projekty. Vyberte ukázkový projekt řízení nádrže.
- 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í:
- Předvídat, co bude projekt dělat Clawbot. Vysvětlete více než skutečnost, že projekt využívá správce.
- Jak joysticky pohybují robotem? Co dělá Clawbot?
Sada nástrojů pro učitele
-
odpovědí
- 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.
- Čí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.
- Další informace o nápovědě najdete ve výukovém videu ve VEXcode V5, které vysvětluje, jak stáhnout a spustit projekt.
- 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
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.
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!
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.
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.
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?
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.