Build a two-wheeled robot that stands up on its own: a motion sensor measures its tilt 200 times a second, and a PID controller drives the wheels back under it.
Free. Make an account and you come straight back to start it.
Motors, wheels, battery and boards are fixed to a tall, rigid frame, with the heavy battery high up and the motion sensor close to the wheel axle.
Why these motors: a balancing robot makes hundreds of tiny back-and-forth corrections. Plastic BO gearboxes have play, so a small correction can be swallowed before the wheel moves. Metal gears are stiffer and wear less. Why a TB6612FNG and not an L298N: the L298N loses roughly 1.5–2 V of a 7.4 V pack as heat, while the TB6612's MOSFETs lose far less, and it's smaller and lighter.
Check: You can say in one sentence why each part was chosen.