Several MIEO Pro builds side by side: a rover, a gripper arm and an upright robot
Mieo ProAll build groupsAdvanced90 minUpload to MIEO

Multi-Configuration Robotics Platform

Rebuild one MIEO into several Pro robots with one program

What you'll build

The big idea of Mieo Pro is that the board, its sensors and your coding skills stay the same while the machine around them changes. This final project shows it off. You write one program with three jobs, each started from its own touch pad: T1 drives the rover round a square, T2 works the gripper arm, and T3 makes the upright robot dance. Then you rebuild MIEO three times and run the job that matches each build. The “set robot orientation” block keeps forward meaning forward when the board stands up.

What you'll learn

  • Reusing one program across different robot builds
  • How “set robot orientation” makes forward still mean forward when the board is turned on its side
  • Organising a program into separate jobs, each with its own trigger
  • How engineers design one product that becomes many machines

You'll need

  • Mieo board
  • Two N20 motors and their wheels
  • Battery
  • 3D-printed mountings
  • Caster wheel
  • Screws and screwdriver
  • Two servo motors, from the MIEO kit
  • Rover, gripper arm and upright body parts, from the Mieo Pro kit
  • 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.
  • Plug extra parts only into the connector this page names. Wiring a part to the wrong connector can damage it for good.

Build it

  1. Upload the program below first, while MIEO is still in one piece. It stays on the board through every rebuild.
  2. Build 1, the rover: build it as in Gamepad Controlled Robot, with the board lying flat.
  3. Build 2, the gripper arm: rebuild MIEO as in Gripper Pick-and-Place Robot, with the gripper servo in S1 and the arm servo in S2.
  4. Build 3, the upright robot: rebuild MIEO standing up, as in Dancing Robot, so the board is on its side.
  5. Between builds, always switch MIEO off before you unplug or move anything.

Code it

  1. Open Robolab, choose Mieo, connect and set the switch at the top right to Upload. Start with “when mieo starts up” and “show think”, then a “forever” loop.
  2. Job 1, “if is T1 touched? then”: “set robot orientation as horizontal”, “show happy”, then “repeat 4” with “go forward at 50 % speed for 1 seconds” and “go right at 50 % speed for 0.6 seconds” inside. That's a square.
  3. Job 2, “if is T2 touched? then”: “show nerd”, then the gripper's moves from Gripper Pick-and-Place: arm down (Servo 2 to 30), close the gripper (Servo 1 to 60), arm up (Servo 2 to 90) and open it again (Servo 1 to 120), with “wait 0.5 seconds” between each.
  4. Job 3, “if is T3 touched? then”: “set robot orientation as vertical”, “show disco pattern”, then “repeat 2” with “go left at 50 % speed for 0.5 seconds” and “go right at 50 % speed for 0.5 seconds”.
  5. After the three jobs, still inside the loop, add “show think”.
  6. Lift the wheels and upload. Then build each robot in turn and touch its 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.

The finished program
The Robolab blocks for the Mieo sprite, as listed below
when mieo starts up
show [think v]
forever
  if <is [T1 v] touched?> then
    set robot orientation as [horizontal v]
    show [happy v]
    repeat (4)
      go [forward v] at (50) % speed for (1) seconds
      go [right v] at (50) % speed for (0.6) seconds
    end
  end
  if <is [T2 v] touched?> then
    show [nerd v]
    set servo on Servo [2 v] to (30) angle
    wait (0.5) seconds
    set servo on Servo [1 v] to (60) angle
    wait (0.5) seconds
    set servo on Servo [2 v] to (90) angle
    wait (0.5) seconds
    set servo on Servo [1 v] to (120) angle
    wait (0.5) seconds
  end
  if <is [T3 v] touched?> then
    set robot orientation as [vertical v]
    show [disco v] pattern
    repeat (2)
      go [left v] at (50) % speed for (0.5) seconds
      go [right v] at (50) % speed for (0.5) seconds
    end
  end
  show [think v]
end
Checked in Robolab 1.0.10. Open it in Robolab from the File menu.
See the MicroPython
# generated by Robolab
import mieo

mieo.showemotion('think')
while True:
  if mieo.touched('T1'):
    mieo.setrobotorientation('horizontal')
    mieo.showemotion('happy')
    for count in range(4):
      mieo.run('forward', 50)
      mieo.sleep(1 * 1000)
      mieo.stoprobot()
      mieo.run('right', 50)
      mieo.sleep(0.6 * 1000)
      mieo.stoprobot()
  if mieo.touched('T2'):
    mieo.showemotion('nerd')
    mieo.setservo('S2', 30)
    mieo.sleep(0.5 * 1000)
    mieo.setservo('S1', 60)
    mieo.sleep(0.5 * 1000)
    mieo.setservo('S2', 90)
    mieo.sleep(0.5 * 1000)
    mieo.setservo('S1', 120)
    mieo.sleep(0.5 * 1000)
  if mieo.touched('T3'):
    mieo.setrobotorientation('vertical')
    mieo.showpattern('disco')
    for count in range(2):
      mieo.run('left', 50)
      mieo.sleep(0.5 * 1000)
      mieo.stoprobot()
      mieo.run('right', 50)
      mieo.sleep(0.5 * 1000)
      mieo.stoprobot()
  mieo.showemotion('think')

Test it

As the rover, touch T1: MIEO smiles and drives round a square, ending about where it started. As the gripper arm, touch T2: the arm lowers, the gripper closes, the arm lifts and the gripper opens. As the upright robot, touch T3: disco lights flash while MIEO wiggles left and right. Between jobs, MIEO shows its thinking face and waits.

If it doesn't work

  • The upright robot drives backwards? Make sure job 3 starts with “set robot orientation as vertical”, and that the board stands the way the build guide shows.
  • The square doesn't close? Change the 0.6 seconds of turning until each corner is a quarter turn.
  • A touch starts the wrong job? Check each if block names the right pad, and touch only one pad at a time.

Make it your own

  1. Easy: change each job's face and add a sound, so you can tell the builds apart with your eyes shut.
  2. Medium: add a fourth build and job on T4, such as the forklift from Warehouse Picker Robot.
  3. Hard: design your own Mieo Pro build, sketch it first, then add a job for it to the program.

What to build next