Line Follower V2

      6 Kommentare zu Line Follower V2

Ich habe eine neues Linienfolgerprogramm erstellt. Neu sind die Kalibrierungsfunktion für den Lichtsensor und die Möglichkeit, die Leistung der Motoren mit der Rechts- bzw. Links-Taste während des laufenden Programms anzupassen.

Line Follower V2 - Main Menu

Line Follower V2 – Main Menu

Nach einigen (wenig erfolgreichen) Experimenten mit Polynomen zur Berechnung der Radgeschwindigkeiten, habe ich mich dann doch für eine einfachere Lösung entschieden 🙂

Converting light sensor values (0 - 100) into steering values (-90 - +90)

Converting light sensor values (0 – 100) into steering values (-90 – +90)

Die Lichtsensorwerte (0 – 100) werden einfach in den zulässigen Wertebereich (-100 – 100) des Steuerungsblocks (hier: -90 – 90) umgerechnet.  Das funktioniert sehr gut mit niedrigen Leistungseinstellungen und ist auch bei höheren Werten noch akzeptabel.

Download the Mindstorms Project File

Ich habe zwei kleine Teststerecken (DIN A4) erstellt, die du hier und hier herunterladen kannst.

Die Anleitung zum Bau des Roboters findest du in diesem Blogpost.

6 thoughts on “Line Follower V2

  1. moh

    it is a great program, any idea if we need it to stop at the end if there is white end and, how to maximize the power and make it move straight .

    Reply
  2. alaa touni

    light sensor calibration (min 128) and (max128)
    and when run program it round it self
    can you tell me where is the mistake?

    Reply
    1. Bjoern Post author

      Hi, I am not sure what exactly causes your problem but the light sensor should return normalized values between 0 and 100…

      Reply
  3. Natiole

    Hey we are trying to program your idea in Java.
    Our Colorsensor only return values from 0 to 1
    Can you please explain your calculation again, so we can transfer it to our code?

    Reply
    1. Bjoern Post author

      It´s a simple linear function. http://www.wolframalpha.com/input/?i=plot+1.8x-90

      The result is passed to the steering block that takes values from -100 to 100 (I chose to limit it with +-90 for no special reason but I suppose it runs smoother this way).
      (1,8*100)-90=90 (turn e.g. left)
      (1,8*50)-90=0 (don´t turn just drive)
      (1,8*0)-90=-90 (turn e.g. right)

      You could use (180*lightsensorvalue)-90=steeringblock_input (If you have implemented something like the steering block)

      Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.