SPIKE / Text­blö­cke / Gera­de­aus fah­ren mit Gyro­sen­sor (mit Distanz)


Sys­tem

  • Robo­ter: LEGO Edu­ca­ti­on SPIKE Prime
  • Platt­form: App „LEGO Edu­ca­ti­on SPIKE“-App “ v3
  • Pro­gram­mier­spra­che: Text­blö­cke

Auf­ga­be

  • Der Robo­ter soll eine bestimm­te Stre­cke genau gera­de­aus fah­ren.
  • Nach Rich­tungs­ab­wei­chun­gen z. B. durch das Über­fah­ren von Hin­der­nis­sen soll der Robo­ter wie­der die ursprüng­li­che Fahr­rich­tung ein­schla­gen.

Vor­aus­set­zun­gen

  • Der Robo­ter muss mit de Vor­der­sei­te in Fahrt­rich­tung ste­hen.
  • Der Gyro­sen­sor im SPIKE-Hub muss kor­rekt funk­tio­nie­ren (prü­fen und not­falls Robo­ter neu star­ten und ver­bin­den).

Code

Erklä­rung

  • Zunächst erstellst Du einen eige­nen Block mit Ein­ga­be­feld für die Stre­cke (Ent­fer­nung in cm). Der eige­ne Block ent­hält die fol­gen­den Blö­cke:
  • Block 1 („Set­ze Gier­win­kel auf 0“) setzt den Gier­win­kel (= Mess­wert des Gyro­sen­sors) auf 0. Damit wird die rich­ti­ge Fahrt­rich­tung gespei­chert.
  • Block 2 (Motor „D set­ze rela­ti­ve Posi­ti­on 0“) setzt die aktu­el­le Posi­ti­on eines Bewe­gungs­mo­tors auf 0. Anhand die­ser Motor­po­si­ti­on berech­net der Robo­ter spä­ter, wie weit er bereits gefah­ren ist.
  • Block 3 („set­ze Rad­um­fang auf 17.5“) spei­chert in der Varia­blen „Rad­um­fang“, wie weit der Robo­ter bei einer Rad­um­dre­hung fährt (17.5 cm = klei­ne Räder; 26.7 cm = gro­ße Räder).
  • Block 4 („set­ze Motor­po­si­ti­on-Ziel auf…“) berech­net, wel­che Posi­ti­on der Motor am Ende der Fahrt­stre­cke erreicht, und spei­chert die­sen Wert in der Varia­blen „Motor­po­si­ti­on-Ziel“ ab.
  • Block 5 („wie­der­ho­le bis…“) star­tet eine Schlei­fe, die solan­ge läuft, bis der Bewe­gungs­mo­tor sich so weit gedreht hat, dass er die zuvor berech­ne­te Ziel­po­si­ti­on erreicht bzw. über­schrit­ten hat. Bis dahin wer­den fol­gen­de Blö­cke 5.1 bis 5.3 wie­der­holt:
    • Block 5.1 („set­ze Abwei­chung auf…“) spei­chert den aktu­el­len Gier­win­kel in der Varia­blen „Abwei­chung“ (z. B. den Gier­win­kel-Wert „2“)
    • Block 5.2 („set­ze Kor­rek­tur auf…“) berech­net die Lenk­rich­tung ab, die zur Kor­rek­tur der Abwei­chung ver­wen­det wird (bei Gier­win­kel „2“ als den Kor­rek­tur­wert „-2“).
    • Block 5.3 („star­te Bewe­gung…“): lenkt den Robo­ter in die Rich­tung, die zuvor berech­net wur­de („-2“ = leicht nach links)
  • Block 6: Die­ser Block lässt den Robo­ter anhal­ten, sobald der Motor die Ziel­po­si­ti­on erreicht hat und die Schlei­fe (Block 5) daher endet.