
Touch Steering Robot
Steer MIEO left and right with its touch pads
What you'll build
Now MIEO's wheels do what your fingers say. Hold T2 and MIEO drives straight ahead. Hold T1 and only the right wheel turns, so MIEO swings round to the left. Hold T4 and it swings to the right. Let go and it stops. You'll control each wheel on its own, which is how a robot like MIEO turns: it has no steering wheel, it just runs one wheel faster than the other.
What you'll learn
- How a robot turns by running its wheels at different speeds
- Controlling both motors with “run motor 1 … motor 2 …”
- Choosing between several inputs with “if … else” inside “if … else”
- Why a robot that stops when you let go is a safe robot
You'll need
- Mieo board
- Two N20 motors and their wheels
- Battery
- 3D-printed mountings
- Caster wheel
- Screws and screwdriver
- A USB cable, or Bluetooth on your computer
- The Robolab app (free)
Stay safe
- Ask an adult to help with the small screws.
- Lift MIEO's wheels off the table before you upload a driving program, so it can't drive off the edge.
Build it
- Build MIEO with both N20 motors, their wheels, the caster wheel and the battery, as in Switch Motor Start.
- Find the touch pads labelled T1, T2 and T4 on the board. You'll keep a finger on one of them while MIEO drives.
- Connect MIEO to your computer with a USB cable, or turn on Bluetooth on your computer so Robolab can find it.
Code it
- Open Robolab, choose Mieo, connect and set the switch at the top right to Upload.
- Start with “when mieo starts up” and “show neutral”, then add a “forever” loop.
- Inside the loop, add “if … else” with “is T1 touched?” as its condition. In the top part, add “run motor 1 0 % motor 2 50 %” from Robot. Motor 1 is the left wheel and motor 2 the right, so this turns left.
- In the else part, add another “if … else” for “is T4 touched?”, with “run motor 1 50 % motor 2 0 %” in its top part to turn right.
- In that else part, add one more “if … else” for “is T2 touched?”. Its top part is “run motor 1 50 % motor 2 50 %” to go straight, and its else part is “stop robot”.
- Lift the wheels and upload. Then put MIEO on the floor and hold a pad.
Upload mode: Robolab turns your blocks into MicroPython and sends them to MIEO over USB or Bluetooth. MIEO then runs the program by itself, even after you unplug it.

when mieo starts up
show [neutral v]
forever
if <is [T1 v] touched?> then
run motor 1 (0) % motor 2 (50) %
else
if <is [T4 v] touched?> then
run motor 1 (50) % motor 2 (0) %
else
if <is [T2 v] touched?> then
run motor 1 (50) % motor 2 (50) %
else
stop robot
end
end
end
endSee the MicroPython
# generated by Robolab
import mieo
mieo.showemotion('neutral')
while True:
if mieo.touched('T1'):
mieo.drive(0, 50)
else:
if mieo.touched('T4'):
mieo.drive(50, 0)
else:
if mieo.touched('T2'):
mieo.drive(50, 50)
else:
mieo.stoprobot()
Test it
MIEO waits with its wheels still. Hold T2 and it drives straight ahead. Hold T1 and it swings round to the left, turning on its left wheel; hold T4 and it swings to the right. As soon as you lift your finger, it stops. Walk beside MIEO with a finger on a pad to steer it round the room.
If it doesn't work
- MIEO turns the wrong way? Motor 1 is the left wheel and motor 2 the right. MIEO turns towards the side whose wheel is stopped.
- It keeps driving after you let go? The very last else part must hold “stop robot”.
- The wheels turn when you lift MIEO but it won't move on the floor? Give the motors more push by changing every 50 to 70.
Make it your own
- Easy: make MIEO faster or slower by changing every 50.
- Medium: use T3 to reverse with “run motor 1 -50 % motor 2 -50 %”. A minus sign turns a wheel the other way.
- Hard: make gentler turns by slowing one wheel instead of stopping it, such as 20 and 50, and show an arrow on the display for each direction.