Students set each wheel's speed with robot motor tank, drive and turn for a time, and find that a timed move does not stop the motors by itself; they finish by driving a square.
Load these into Waypoints Prepare: choose Load URL and paste the copied address, or download the file and import it. In Prepare, the worksheet's Teacher edition shows the answers; the student copy hides them.
Predict and Run 8 min · Investigate 10 min · Modify 10 min · Make 12 min · Real robot 5 min (optional)
The robot has two wheels, each with its own motor. robot motor tank sets the left and right speeds from −100 to 100: equal speeds drive straight, opposite speeds spin on the spot, and unequal speeds curve. The optional for … ms box is a time: the robot keeps that speed for that long, then the program moves on. The surprise in this lesson is that a time does not stop the motors: they keep doing what they were last told until another motor block changes them. So every program that should end needs robot motor stop.
Every program starts with a block that picks the robot (Elecfreaks Cutebot here). Schools with another supported robot change only that block. Kitronik MOVE Motor is not yet supported by the robot extension: MOVE Motor classes can use the Kitronik blocks on the real robot (move Forward at speed, spin Left at speed, stop, each with a pause), with the same ideas.
The simulator robot also smooths its speed, so starts and stops are gentle. Turns by time are not exact angles: students tune the turn time until a square looks square, which is what they will do on a real robot too.
A time on a motor block is not a stop. When the robot keeps spinning, ask what the last block tells the motors.
| What you will see | A question to ask | The fix |
|---|---|---|
| The robot keeps spinning after the program. | What is the last block? Does it stop the motors? | Add robot motor stop at the end. |
| The robot does not move at all. | Is the first block robot … start? Are the speeds above 0? | Keep the start block at the top, and use speeds like 50. |
| The square's corners are too sharp or too wide. | Which number decides how far it turns? | Change the turn's time, a little at a time. |
One possible solution for each task. Other correct programs are fine.

robot.elecfreaksCuteBot.start()
robot.motorTank(50, 50, 1000)
robot.motorTank(50, -50, 500)
robot.motorTank(-50, -50, 1000)
robot.motorStop()

robot.elecfreaksCuteBot.start()
robot.motorTank(50, 50, 1000)
robot.motorTank(50, -50, 500)
robot.motorTank(50, 20, 2000)
robot.motorStop()

robot.elecfreaksCuteBot.start()
for (let index = 0; index < 4; index++) {
robot.motorTank(50, 50, 1000)
robot.motorTank(50, -50, 400)
}
robot.motorStop()
Stretch: Drive a triangle (three sides, a bigger turn) and a figure of eight (two curves, one each way).
Support: Give the square's repeat block with one drive inside; students add the turn and the stop.
Why does a robot keep moving after its last 'for 500 ms' block?
The time only says when to move on to the next block. The motors keep their last speed until a block such as robot motor stop changes them.
Next: give each move a name with functions, and build a dance routine. Class ideas: tape a square on the floor and see whose real robot finishes closest to its start.