Like most programmers, I live alone, which means I end up in charge of rather more housework than I am altogether prepared to do. To fix it, I bought a Roomba. Specifically, I bought the cheapest Roomba there is, on the basis that it’s a robot that cleans my floor and I didn’t entirely understand what the premium version of that product would be.
It turns out that the cheap one can’t be scheduled to run at a particular time. At least, not using the buttons on top . If you take the face-plate off, there’s a serial port, and if you send the number 135 into it, the Roomba will clean the floor.
The Roomba's serial port has two 'battery voltage' pins and two ground pins. There's anywhere up to about 21V across this gap, which is enough to explode a Raspberry Pi. The voltage regulator takes this high voltage as input, and keeps its output pin a steady 5V above gound, perfect for the Pi. I used a linear regulator at first but changed to a switching regulator when I discovered how hot it ran.