“This is a robot that I’ve been playing with for a few months. It moves by turning its wheels against a pendulum weight and controlling its speed using feedback from a tilt sensor. It was inspired by a video taken at the 2020 Consumer Electronics Show (CES 2020) featuring Samsung’s Ballie robot. Their robot was apparently all hype and never materialized into a product, but looked like a fun project to attempt.
I experimented with several kinds of motors: DC gearmotors, geared stepper motors, and finally gimbal motors. The geared motor versions had fairly serious problems due to dead zones and backlash which made accurate steering impossible when the wheels needed to reverse directions in order to turn.
The gimbal motor version, although requiring much more complex motor-control software, had none of those problems and produced the best results.
The robot is controlled by an ATMEGA2560 using an Arduino Mega electronics board with a hand-built motor driver board stacked on top. An XBee radio transceiver communicates with another XBee mounted on a remote joystick to provide steering. A 3 cell 1500MAh LiPo battery powers everything.”