Because it is the 'hello world!' of modern robotics.
Arduino Nano | EBay | Lightweight, 5V tolerant, easy to program, cheap as silicon chips, and no tears when clumsy roboticists fry them | |
Bluetooth receiver | EBay | If you want to control it remotely from the PC or a phone | |
BNO055 | EBay | IMU which does the orientation calculation on-chip. | |
Stepper Motors | EBay | An odd choice for this kind of robot | |
Stepper Motor Controllers | AliExpress | The ZD-M42s work well with an Arduino, but will not work well with a 3V3 source like a Raspberry Pi. | |
Robot Wheels | EBay | These wheels are designed for a RC model car. There are many types of fittings. They have to fit onto the shaft of the steppers - an adaptor might be needed. | |
Aluminium Bar | Bunnings | Easy to bend, drill and fashion - for the frame. | |
Mini Caster. | Bunnings | These are just for the training wheels. Actually you don't even need the wheels on the ends of the ruler - just a ruler to stop the robot falling over. Maybe some soft buffers or something. | |
7.4 Li-ion battery | EBay or local hobby shop | Should try out an 11.1V one of these. |
There really isn't much software to make this go. This is a pretty simple program.
Unfortunately, it's kind of tricky to do the timing on an Arduino to do this well - reliably pulsing a stepper motor controller faster than 1ms is a bit messy on the Arduino when you want to do other things along the way (like interrogate the IMU via I2C). DC motors would seem to be a better match for this, but the torque seems to be unpredictable.