Ga direct naar de hoofdinhoud

Nieuwe hoogte

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], [Draai naar de juiste richting], [Draai naar de juiste positie] en [Draai voor] om de Hero Bot te programmeren zodat hij elk van de vier gemarkeerde paarse blokken oppakt en in Doel III scoort. Ontwerp een algoritme dat de robot naar een specifieke positie stuurt om het blok te laten vallen en ervoor te zorgen dat het doel de Fill Level 3 heeft.

  • Selecteer de VIQRC Virtual Skills - Full Volume Playground.
  • Programmeer de Hero Bot om een ​​gemarkeerd paars blok op te pakken en ermee in doel III te scoren. 
    • Ontwikkel een algoritme om de robot over een bepaalde afstand te laten rijden en de X- en Y-coördinaten te volgen. Gebruik het algoritme om de robot naar het gemarkeerde paarse blok te sturen.
    • Programmeer de robot zodat hij het blok oppakt.
    • Ontwikkel een algoritme om de robot naar een specifieke positie te navigeren. Gebruik het algoritme om de robot naar de coördinaten (-70, 1270) te navigeren en de robot te draaien naar een koers van -45 graden.
    • Programmeer de robot om het blok te laten vallen.
  • Programmeer de Hero Bot om het tweede gemarkeerde paarse blok op te pakken en in Doel III te scoren, op dezelfde positie en met dezelfde oriëntatie als waarmee het eerste paarse blok werd gescoord. 
  • Programmeer de Hero Bot om het derde gemarkeerde paarse blok op te pakken en in Doel III te scoren, op dezelfde positie en met dezelfde oriëntatie als waarmee het eerste paarse blok werd gescoord. 
  • Programmeer de Hero Bot om het vierde gemarkeerde paarse blok op te pakken en in Doel III te scoren, op dezelfde positie en met dezelfde oriëntatie als waarmee het eerste paarse blok werd gescoord. 

Handige tips

  • Gebruik de coördinaten van de robot (x1,y1), de coördinaten van de doelpositie (x2,y2) en een functie om de rijrichting te bepalen.
    • Bereken de hoek theta θ van de lijn die deze twee punten verbindt. Diagram van twee wiskundige uitdrukkingen. De eerste uitdrukking luidt 'theta is gelijk aan atan((y2 - y1) / (x2 - x1))'. De tweede uitdrukking luidt: '- pi / 2 is kleiner dan theta, wat kleiner is dan pi / 2'. Het diagram van bovenaf toont de robot op coördinaat (X1, Y1) en een lijn die wijst naar coördinaat (X2, Y2). De afstand wordt aangeduid met de variabele d, de hoek met de variabele theta. De horizontale afstand tussen de punten wordt weergegeven als 'x2 - x1', en de verticale afstand wordt weergegeven als 'y2 - y1'.
    • Pseudocodevoorbeeld voor een wiskundige uitdrukking:

      als x1 gelijk is aan x2:
      	als y2 > y1:
      		richting = 0 graden
      	anders:
      		richting = 180 graden
      anders:
      	als x2 > x1:
      		richting = 90 graden - theta
      	anders:
      		richting = 270 graden - theta
    • Zet de hoek theta θ om naar de koers.  Een bovenaanzichtdiagram met label 'robotrichting' toont de robot met een cirkel eromheen, waarbij labels de 360 ​​graden van de cirkel aangeven.
  • Gebruik de coördinaten van de robot (x1,y1), de coördinaten van de doelpositie (x2,y2) en de stelling van Pythagoras om de afgelegde afstand te berekenen. De wiskundige uitdrukking luidt 'd = sqrt((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)' Hetzelfde diagram van bovenaf als eerder, dat het verschil tussen twee coördinaten weergeeft. De robot bevindt zich op coördinaat (X1, Y1) en een lijn wijst naar coördinaat (X2, Y2). De afstand wordt aangeduid met de variabele d, de hoek met de variabele theta. De horizontale afstand tussen de punten wordt weergegeven als 'x2 - x1', en de verticale afstand wordt weergegeven als 'y2 - y1'.

 

  • Gebruik het uit de categorie Operators om een ​​functie uit te drukken waarmee de hoek theta θ berekend kan worden. VEXcode-functieblok met operatorblokken, die samen 'atan van ((Y2 - Y1) / (X2 - X1))' lezen.
    • Overeenkomende Python-opdracht: 

      wiskunde.atan((Y2 - Y1) / (X2 - X1)) / wiskunde.pi * 180
  • Gebruik het functie- blok uit de categorie Operators om de stelling van Pythagoras uit te drukken en de rijafstand te berekenen. VEXcode Set variabeleblok met functie- en operatorblokken, die samen de volgende tekst lezen: 'set driveDistance to sqrt of ((X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1))'.
    • Overeenkomende Python-opdracht: 

      driveDistance = math.sqrt((X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1))