Ovladač: Průzkum pohonu tanku - C++
Sada nástrojů
této aktivity
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íchLeftMotor.setVelocity(), RightMotor.setVelocity(), LeftMotor.spin(), RightMotor.spin(), leftMotorSpeed = Controller1.Axis3.position(),arightMotorSpeed = Controller1.Axis2.position()pro řízení rychlosti každého z motorů Clawbota a umožnit Controlleru ovládat funkce motoru.
Další informace o kterékoli z instrukcí naleznete v nápovědě v sekciC++v kódu 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čkywhile True.
-
Dokončete výzvu Robo-Slalom!
Tipy pro učitele
Pokud student používá VEXcode V5 poprvé, může si najít mnohove znalostní bázi VEX.
| 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 řízení nádrže |
| 2 nebo více |
Předměty 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 ve VEXcode V5 je povzbuďte k používání funkce automatického doplňování, která jim pomůže se syntaxí ČlánekAutomatické doplňovánípopisuje, jak používat funkci Automatické doplňování.

Tato aktivita vám poskytne nástroje pro programování vašeho ovladače.
Krok 1: Začněme programovat ovladač.
- Otevřete vzorový projekt Tank Control.
-

Do svého technického sešitu si napište následující:
Předpovězte, co bude Clawbot v tomto projektu dělat. Vysvětlete více než jen to, že projekt využívá řídicí jednotku.
Jak joysticky pohybují robotem? Co dělá Clawbot?int main() { // Inicializace konfigurace robota. NEODSTRAŇUJTE! vexcodeInit(); // Zahájit kód projektu. // Main Controller loop to set motors to controller axis positions while (true) { LeftMotor.setVelocity (Controller1.Axis3.position (), procenta); RightMotor.setVelocity (Controller1.Axis2.position (), procenta); LeftMotor.spin (forward); RightMotor.spin (forward); wait(5, msec); } return 0; }
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 více je joystick zatlačen dozadu, tím rychleji se motory budou pohybovat v opačném směru.
- Uložte, stáhněte a spusťte (C++) vzorový projekt Tank Control.
-
Pro pomoc se podívejte do sekcí knihovny VEX naC++nebo se podívejte na tutoriál 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 .
Jaké jsou výhody používání nekonečné smyčky while True?
Zde je náš projekt bez nekonečné smyčky while True:
int main() {
// Inicializace konfigurace robota. NEODSTRAŇUJTE!
vexcodeInit();
// Zahájit kód projektu.
// Main Controller loop to set motors to controller axis postiions
LeftMotor.setVelocity(Controller1.Axis3.position(), procenta);
RightMotor.setVelocity(Controller1.Axis2.position(), procenta);
LeftMotor.spin(vpřed);
RightMotor.spin(vpřed);
}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 z 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.
Krok 3: 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ž jeController spárovánaC++ projektje stažen, jste připraveni pohybovat svým Clawbotem pomocí Controlleru!
- 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.
Krok 4: Robo-Slalom

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čkywhile Trueumožňuje nepřetržitě používat ovladač k pohybu Clawbota?
A:Bez nekonečné smyčkywhile Trueby Clawbot prováděl chování určené instrukcemi v projektu pouze jednou. Nekonečná smyčkawhile Trueříká Clawbotovi, aby neustále aktualizoval rychlost a běžel po celou dobu trvání projektu. Jinými slovy, nekonečná smyčkawhile Trueumožňuje používat ovladač k pohybu Clawbota donekonečna nebo dokud se nevybije baterie.