Ga direct naar de hoofdinhoud

Ontgrendel locaties

Maak een coördinatensysteem aan op het virtuele vaardighedenveld met het rode punt als oorsprong (0, 0) en de beginpositie van het Hero Bot Center op coördinaten (0, 36). Gebruik de blokken [Rijden naar], [Draaien naar], [Draaien naar positie] en [Draaien naar] om de Hero Bot te programmeren zodat hij het rode blok (oranje gemarkeerd oppakt, het in Doel Iplaatst en robot gedeeltelijk in de bevoorradingszone parkeert Ontwikkel een algoritme om de X- en Y-coördinaten te vinden van de locatie waar de robot het rode blok kan oppakken en punten kan scoren, en de X- en Y-coördinaten van de locatie waar de robot de Hero Bot kan parkeren.

  • Selecteer de VIQRC Virtual Skills - Full Volume Playground.
  • Ontwikkel een algoritme om de X- en Y-coördinaten van de positie van de robot te berekenen en vast te leggen nadat deze een bepaalde afstand heeft afgelegd  gebruikmakend van de afgelegde afstand en de rijrichting van de aandrijving.
  • Programmeer de Hero Bot zodat hij naar het oranje gemarkeerde rode blok rijdt en het oppakt. 
    • Gebruik het algoritme om de X- en Y-coördinaten van de positie van de robot te volgen.
  • Gebruik het [print]-blok om de X- en Y-coördinaten van de locatie waar de robot het blok moet oppakken naar de printconsole te printen.
  • Programmeer de Hero Bot zodat hij naar Doel 1 rijdt en het blok in het doel laat vallen. 
    • Gebruik het algoritme om de X- en Y-coördinaten van de positie van de robot te volgen.
  • Gebruik het [print]-blok om de X- en Y-coördinaten van de locatie waar de robot het blok in doel I moet laten vallen, naar de printconsole te printen.
  • Bestuur de Hero Bot naar een positie die zich gedeeltelijk binnen de bevoorradingszone bevindt.
    • Gebruik het algoritme om de X- en Y-coördinaten van de positie van de robot te volgen.
  • Gebruik het [print]-blok om de X- en Y-coördinaten van de locatie waar de robot gedeeltelijk in de bevoorradingszone geparkeerd moet worden, naar de printconsole te printen.

Handige tips

  • Om de X- en Y-coördinaten van de Hero Bot op het VIQRC Virtual Skills Field te bepalen, stelt u de beginpositie van de Hero Bot in als het nulpunt (0,0) van het coördinatensysteem. 
  • Declareer twee variabelen om de X- en Y-coördinaten van de Hero Bot op te slaan. Gebruik de blokken set uit de categorie 'Variabelen' om de waarden van de X- en Y-coördinaten aan het begin van het project op 0 in te stellen.  VEXcode Set variabeleblok dat 'leest, stel currentX in op 0'. VEXcode Stel variabele blok in dat 'leest, stel currentY in op 36'.
    • Overeenkomend Python-commando:

      currentX = 0
      currentY = 36
  • Gebruik de Reporter-blokken uit de categorie Sensing om de aandrijfrichtingswaarde van de traagheidssensor te verkrijgen. VEXcode Drive-kopblok dat 'aandrijfkop in graden' uitleest.
    • Overeenkomend Python-commando:

      aandrijflijn.kop(GRADEN)
  • Gebruik de afgelegde afstand en de aandrijfrichting om de X- en Y-coördinaten te berekenen na het afleggen van een bepaalde afstand.
    • Wiskundige functie (vooruitrijden):

      X2 = X1 + rijafstand * sin (rijrichting)

      Y2 = Y1 + rijafstand * cos(rijrichting)

      Twee naast elkaar weergegeven diagrammen van bovenaf, waarop de Hero Bot te zien is. Het eerste diagram toont de robot met een cirkel eromheen, waarbij labels de 360 ​​graden van de cirkel aangeven. Het tweede diagram toont de robot op coördinaat (X1, Y1) en wijzend naar een punt (X2, Y2). De afstand wordt aangegeven als 'rijafstand' en de hoek wordt gemarkeerd met een theta-symbool.

  •  Gebruik het functie- blok uit de categorie Operatoren om wiskundige functies uit te drukken. Een stapel van twee VEXcode Set-variabelenblokken met blokvergelijkingen. Het eerste blok leest 'stel currentX in op currentX + drive_distance * sinus van de rijrichting in graden'. Het tweede blok leest 'stel currentY in op currentY + drive_distance * cosinus van de rijrichting in graden'.
    • Overeenkomende Python-opdracht: 

      currentX = currentX + drive_distance * math.sin(drivetrain.heading(DEGREES) / 180.0 * math.pi)
      currentY = currentY + drive_distance * math.cos(drivetrain.heading(DEGREES) / 180.0 * math.pi)
  • Voor meer informatie over VIQRC Virtual Skills Field Dimensions kunt klikken.