Two-level or bang-bang controller
When we looked at the simplest of distance controllers, we simply used a Wait block to tell the robot to stop. However, as we are tracking a line, our conditions relative to the line are constantly changing as the line may move straight or curve. The simplest controller is called a two-level or bang-bang controller. If the sensor measures a reading greater than the setpoint, the robot will curve to the left. If the sensor measures a reading less than the setpoint, the robot will drive to the right.
When you execute the program in the following screenshot, you will notice that the robot will follow a zigzag type of motion along the line:
In the program itself, you may notice that we read the value of the setpoint from the Read File block. You can actually take data from an external source into the loop, and this is shown with the splice in the wire at the edge of the loop. Alternatively, you could store the information from the File block into a variable....