Skip to main content
Skip to Main Content
Skip to main content
Navigatie

Chapter 4: Preparing to Compete


الدرس 2: استخدام قالب مسابقة الكتل

Hallo en welkom in het VEX-leslokaal. Mijn naam is Lauren, en in deze les gaan we het Blocks Competition Template gebruiken. In de vorige les hebben we het wedstrijdsjabloon wat algemener besproken en uitgelegd waarom je het moet gebruiken tijdens een VEX Robotics-wedstrijd. Er zijn verschillende versies van de wedstrijdsjabloon, afhankelijk van de programmeertaal die je gebruikt en of je met blokken of tekst werkt. In deze video, omdat we ons in deze cursus richten op blokken, ga ik de Blocks Competition Template in VEXcode V5 bespreken.

Voordat we dieper op de details ingaan, laten we het eerst even over de materialen hebben. Ik ga hier de Advanced TrainingBot gebruiken om een aantal functies van de Arm en Claw te demonstreren. Ik zal ook een controller, een game-object en VEXcode V5 gebruiken om jullie deze wedstrijdtemplate te demonstreren. Voor deze video heb je helemaal geen materialen nodig. Ik ga jullie een paar demonstraties geven. Nogmaals, je hebt helemaal niets nodig voor deze specifieke les.

Laten we het doel van deze les bespreken. We gaan de verschillende onderdelen van de Blocks Competition Template doornemen, meer specifiek drie onderdelen: het gedeelte 'Bij het starten', oftewel de fase vóór de autonome modus, het autonome gedeelte en het gedeelte 'Bestuurdersbesturing'. Ik ga die bespreken in de voorbeeldcode die ik hier heb, en daarna gaan we het daadwerkelijk testen en de functionaliteit op onze robot bekijken met behulp van onze controller om te zien hoe de Competition Template er in de praktijk uitziet.

Laten we, met dat in gedachten, eens dieper ingaan op ons projectvoorbeeld.

[Muziekfragment]

Oké, om de wedstrijdsjabloon te bekijken, ga ik naar Bestand, Voorbeelden openen, Sjablonen en vervolgens Wedstrijdsjabloon. Een paar dingen hier. Ten eerste, nogmaals, deze drie onderdelen. Voordat we met mijn specifieke voorbeeld aan de slag gaan, wil ik eerst even opmerken dat we, voordat we deze velden kunnen vullen, de apparaatconfiguratie moeten toevoegen. Dus nogmaals, als je een aandrijving met twee motoren gebruikt, of arm- of klauwmotoren of iets dergelijks, moet je er eerst voor zorgen dat je die toevoegt, zodat de blokken aan de linkerkant verschijnen. Dat stelt je in staat om deze secties opnieuw te vullen.

Zodra ik de wedstrijdsjabloon open, moet ik ervoor zorgen dat ik mijn apparaatconfiguratie toevoeg. Vervolgens wil ik nog iets vermelden: in dit gedeelte 'Driver Control' zie je dat het 'forever block'-mechanisme aanwezig is. De reden dat dit erin zit, is omdat we bij het gedeelte 'Driver Control', wanneer we de controller gebruiken, meestal continu willen controleren of er op knoppen is gedrukt of joysticks zijn bewogen. Daarom zit dat 'forever'-blok er standaard in. Als je het om welke reden dan ook wilt verwijderen, kan dat. Maar als je die stack niet gebruikt en alleen de apparaatconfiguratie, kun je het gewoon zo laten.

Akkoord. Laten we elk van deze drie onderdelen eens nader bekijken en wat ze precies betekenen aan de hand van een voorbeeld dat ik heb gegeven.

[Muziekfragment]

Om te beginnen wil ik opmerken dat ons wedstrijdsjabloon uit drie hoofdonderdelen bestaat. De eerste is de fase waarin het apparaat wordt gestart, oftewel de pre-autonome fase. Het tweede onderdeel is 'Wanneer autonoom' of het autonome gedeelte, en het derde onderdeel is 'Wanneer bestuurder de controle heeft' of het gedeelte 'Besturing door de bestuurder'. Alle drie deze evenement- of hoedblokken voeren verschillende onderdelen uit van, nogmaals, dit wedstrijdsjabloon.

Laten we elk onderdeel bespreken. Het pre-autonome gedeelte, ofwel het gedeelte dat wordt uitgevoerd zodra het Competition Template-project wordt gestart, wordt uitgevoerd. Dit is het meest geschikt voor het instellen van initialisaties.

Bedankt voor je deelname aan deze les. Ik hoop dat je het nuttig en informatief vond. Als je vragen hebt, neem dan gerust contact op. Veel plezier met programmeren en succes met je VEX Robotics-projecten!

Dus als ik iets op het scherm van de hersenen moet afdrukken voordat het autonome gedeelte begint, als ik een gyroscoop moet kalibreren, als ik gegevens wil afdrukken (in dit specifieke voorbeeld, aangezien ik de arm en de grijper gebruik), dan zet ik hun motoren op vasthouden. Dit betekent dat als ik mijn arm omhoog doe of mijn klauw open, de motoren in die specifieke positie blijven en bijvoorbeeld niet door de zwaartekracht naar beneden zakken. Ik ben dus eigenlijk gewoon bezig met het instellen van deze pre-autonome concepten voor mijn motoren. In dit specifieke voorbeeld bekijken we hoe dat eruitziet wanneer we de demonstratie bekijken.

Muziekfragment

Nu ik dat heb, is dat het gedeelte "Bij aanvang", ons gedeelte vóór de autonome modus. Vervolgens komt het autonome gedeelte. Het autonome gedeelte van de wedstrijd duurt 15 seconden, en dit specifieke stuk code wordt uitgevoerd gedurende dat autonome gedeelte. Zodra de competitiesjabloon wordt uitgevoerd, begint het gedeelte "Wanneer gestart" dat voorafgaat aan de autonome modus, ongeacht de omstandigheden. Daarna start de autonome modus van 15 seconden. We hebben het gehad over het veldbesturingssysteem en hoe dat regelt wanneer alle robots starten en stoppen, en wanneer dit specifieke onderdeel van de wedstrijd, deze regel code, wordt uitgevoerd.

In mijn specifieke voorbeeld begint onze robot met een spelobject in de grijper. Het apparaat sluit zich vervolgens om het object heen, gaat de lucht in, beweegt 200 millimeter vooruit, laat de arm zakken en laat ons spelobject vallen. Dit zou bijvoorbeeld het scoren van een punt aan het begin van de wedstrijd kunnen simuleren. Dat is dus wat er gaat gebeuren tijdens mijn autonome gedeelte. Nogmaals, het autonome gedeelte betekent dat ik geen bestuurder hoef te hebben die de controle over de controller van mijn robot uitoefent. Tijdens dit gedeelte is alles autonoom. Alles gebeurt via code.

Als ik naar dit derde gedeelte hier kijk, zie ik mijn bestuurdersbediening. Een belangrijk punt dat ik wil benadrukken, is dat ik in de apparaatconfiguratie mijn aandrijving en controller kan instellen. Dit betekent dat ik verschillende aandrijvingsconfiguraties aan mijn joysticks kan toewijzen en dat ik verschillende knoppen kan toewijzen aan de aansturing van verschillende motoren. Stel, ik heb geen knoppen meer over op mijn controller, of ik wil verschillende dingen tegelijk bedienen. Ik kan aan dit "When Driver Control"-gebeurtenisblok bepaalde dingen toevoegen die ik wil doen, maar waartoe ik mogelijk geen toegang heb in de apparaatconfiguratie, of misschien wil ik de snelheid van mijn aandrijving instellen, of iets dergelijks.

Mijn specifieke codevoorbeeld, voor het gedeelte 'Driver Control', stelt me in staat om mijn Claw met één knop op mijn controller te besturen. We gaan zien hoe dat eruitziet. Nogmaals, wanneer ik het gedeelte voor stuurprogrammabesturing gebruik, kan ik zowel de apparaatconfiguratie met de controller als het gedeelte voor stuurprogrammabesturing tegelijkertijd gebruiken. Of ik kan een van beide gebruiken. Als u geen van deze drie stacks gebruikt, de pre-autonome stack ("bij het starten"), de autonome stack of de stack voor bestuurdersbediening, kunt u deze velden leeg laten.

Muziekfragment

Oké. Nu dat alles gezegd is, laten we eens kijken hoe dit eruitziet als ik het daadwerkelijk op mijn robot ga uitvoeren. Oké. Laten we dit eens bekijken op mijn controller. Ik kan naar de programma's navigeren en daar zie ik mijn project 'Competition Template' staan, dat ik al in mijn hoofd heb opgeslagen. En als ik er met de muis overheen ga, verschijnt er een optie voor de getimede hardloopwedstrijd. Dit simuleert het veldbesturingssysteem waar ik het eerder over had, en hoe alles door dat systeem wordt aangestuurd. Dus wanneer het wedstrijdproject daadwerkelijk begint, wanneer het autonome gedeelte van de wedstrijd, en wanneer het gedeelte met de coureurbesturing, dat wordt aangestuurd, kan ik dat simuleren met behulp van deze getimede run op de controller.

Bedankbrief

Bedankt dat je de tijd hebt genomen om dit proces samen met mij te bespreken. Ik hoop dat deze demonstratie nuttig is geweest.

Laatste boodschap

Neem gerust contact op als u vragen heeft of meer uitleg nodig heeft. Veel plezier met programmeren en succes met je robotica-projecten!

Als ik dat selecteer, krijg ik hier te zien: 15 seconden voor het autonome gedeelte, één minuut en 45 seconden voor de bestuurdersbediening. En als ik deze knop nogmaals indruk, zal hij daadwerkelijk starten. Als ik het start, telt het af van 3-2-1, net zoals bij een wedstrijd. En dan gaan we van start.

Zodra ik op start klik, zal het autonome gedeelte worden uitgevoerd, of het pre-autonome gedeelte zal eerst starten, ongeacht wat. Dan zal het autonome gedeelte onmiddellijk starten. Ik laat het je zien zodra het programma het autonome gedeelte uitvoert. Zelfs als ik mijn controller beweeg om de robot te laten bewegen, zal hij niet bewegen, omdat ik de robot tijdens het autonome gedeelte niet met de controller kan besturen.

[Muziekfragment]

Laten we dat specifieke onderdeel dan eens in de praktijk zien gebeuren. Oké, daar gaan we. Oké. Ik heb nu nog een paar seconden over in het autonome gedeelte. Je kunt zien dat er zelfs als ik mijn controller beweeg, niets gebeurt, omdat ik mijn robot tijdens het autonome gedeelte niet met de controller kan besturen. Maar zodra ik overschakel naar de bestuurdersbediening, kan ik mijn robot wél besturen.

Dus ik ga hier verder, want zoals je je misschien herinnert van het gedeelte over de bestuurdersbesturing in dit project, kan ik deze verschillende onderdelen aansturen. Ik heb nog één minuut en 25 seconden. Ik ga nu verder rijden op basis van de bestuurdersconfiguratie. Dit regelt de aandrijving, dit regelt de arm, en deze knop regelt de klauw. Met één druk op de knop kan ik objecten vastpakken. Ik kan hier twee knoppen omhoog en omlaag bewegen om de arm te verhogen en te verlagen. Eén knop om de klauw te bedienen. Gesloten, Open.

Dit is geen optie in de apparaatconfiguratie, dus ik moest die code zelf schrijven. Dat is precies de reden waarom ik het Driver Control-gebeurtenisblok heb gebruikt dat je in die specifieke stack kunt zien. Het aftellen gaat door voor de rest van mijn Driver Control-gedeelte. Maar zoals je daar ziet, ga ik daar een einde aan maken. Zodra het onderdeel 'Driver Control' is afgelopen, wordt alles uitgeschakeld en is de wedstrijd voorbij.

Je kunt de drie verschillende onderdelen van de sjabloon zien. We doorlopen nogmaals het gedeelte over de pre-autonome modus, dat hoe dan ook zal draaien, ongeacht welk onderdeel we gebruiken. Als we de autonome modus of de modus met bestuurderscontrole uitvoeren, komen we vervolgens bij het autonome gedeelte. Ik kan mijn controller niet gebruiken als dit gebeurt. Zodra dat is gebeurd, gaat het over naar het gedeelte 'Driver Control', waar ik mijn robot daadwerkelijk kan besturen met de controller. Dat duurt 1 minuut en 45 seconden, tot het is afgelopen. Zoals ik al eerder aangaf, zullen alle robots vervolgens met behulp van het veldbesturingssysteem tegelijkertijd starten en stoppen.

[Muziekfragment]

Oké. Laten we even kort samenvatten wat we in deze video hebben besproken. We hebben het sjabloon voor de blokkenwedstrijd bekeken. Er zijn drie verschillende porties. Bij het opstarten, in de pre-autonome modus, zal deze sowieso blijven draaien. Dit is bedoeld voor het initialiseren van variabelen, bijvoorbeeld het instellen en kalibreren van een gyroscoop, het afdrukken dankzij het scherm, het instellen van motorische posities zoals 'vasthouden' of zelfs het omhoogbrengen van de arm naar een bepaalde positie. Dit alles gebeurt vóór het autonome gedeelte van de wedstrijd.

Vervolgens komen we bij het autonome gedeelte, de autonome stack die we daar zagen. Daarin beweegt de robot gedurende 15 seconden volledig op basis van code, zonder interactie met de controller of de bestuurder. Zodra dat gedeelte is afgerond, gaan we verder met het gedeelte 'Driver Control', dat kan worden aangestuurd via de apparaatconfiguratie die we eerder hebben gezien, door bepaalde motoren en dergelijke toe te wijzen aan de joystickknoppen en dergelijke op de controller, en ook via die specifieke stack waar ik wat meer aangepaste code voor mijn robot kan schrijven. Je kunt de een of de ander gebruiken, of allebei.

En zoals ik al eerder zei, als je geen van die drie secties in je programma gebruikt, kun je de stacks in de eventblokken ook leeg laten.

Bedankt voor het kijken en ik hoop dat dit je helpt om het wedstrijdsjabloon beter te begrijpen.

Nogmaals, de reden voor het gebruik van dit sjabloon is om ervoor te zorgen dat tijdens een wedstrijd alle robots tegelijk starten en stoppen. Dat komt omdat er vier robots op het veld zullen zijn, en we willen er, nogmaals, voor zorgen dat alle robots tegelijk starten en stoppen.

Ik hoop dat al deze informatie nuttig is geweest bij het leren kennen van de wedstrijdtemplate en bij de voorbereiding op een VEX Robotics-wedstrijd. Ik ben zo enthousiast.

Gefeliciteerd, je hebt hoofdstuk vier afgerond en ik zie je in een volgende video.

Learning Objectives

Learning Objectives Section
  • حدد العناصر الرئيسية لقالب مسابقة الكتل في VEXcode V5، بما في ذلك أقسام متى بدأت والقيادة الذاتية والتحكم في السائق.

Summary

Summary Section

هذا هو الفيديو الثاني لمقدمة الدورة التدريبية VEX V5 الفصل 4. إذا لم تكن قد شاهدت الفيديو الأول بعد، فارجع وشاهد الدرس 1: ميكانيكا مباراة مسابقة الروبوتات VEX.

في الدرس 2، ستتعرف على كل عنصر من العناصر الرئيسية الثلاثة لقالب مسابقة الكتل في VEXcode V5 من خلال عرض مثال عملي.

للمناقشات والأسئلة، انضم إلى موضوع PD+ Community المخصص للتعلم والاستكشاف الجماعي.

تهانينا، لقد أكملت دورة مقدمة إلى VEX V5 التدريبية!