Yes, the parts count keeps going up.
A board I’m working on that’ll sit atop a Raspberry Pi. It’ll replace the mass of jumper wire that’s currently serving the same purpose. This board is primarily for the robot, but I have a couple of other usecases in mind. Besides, I get three copies of the board from the PCB house, so I might as well make it slightly multi-purpose.
Now it has an I2S audio codec chip. I’ve never tried to do anything with digital audio before, so I’ll probably end up with a Version Two at some point in the future.
So far, it’s got:
- Yet another ATMEGA328p microcontroller. This one could easily be something with less horsepower, as it’s just there to manage the power supply and try to make sure bad things don’t happen.
- Connection for “Motion Controller” board
- Connection for I2C peripherals (the camera pan/tilt and a few other accessory things will attach to this bus)
- Microphone input
- Speaker output
- Power toggle button
I think I should go to bed though, before this gets too many more features!
I originally wanted to design and build all the parts for this robot on a single PCB. I figured that would look nicer. But I’m really glad that I’ve opted for a modular approach to the whole thing. It’s made it so that I can focus on one problem at a time, and it makes it easy to replace and/or reuse components.
Here’s a diagram of all the modules that will eventually be part of the robot. Colour indicates what’s been done so far, and what remains.
I’ve completed building the Motion Controller and Dual Motor Controller boards. They’ll need some firmware changes to support additional boards, but aside from a minor hardware issue on the Motion Controller (which I’ve been able to work around by using other hardware for the testing, these are looking pretty decent!
Prototyped, or in-progress. I’ve built a website that’s currently being served up by the robot itself. That’ll be moved to a terrestrial web server, eventually. The connections between the Pi and the rest of the hardware is now breadboarded. Although it looks hideous with all those jumper wires, it does work nicely. But I need to sort out an issue with the power supply before I can have the PCB manufactured, so it might just be a little while for that. I can live with the ugly wires (for a little while).
What was I thinking?!
I designed the Motion Controller board with support for analog distance measurement sensors and collision switches, as well as lighting control for illumination and hazard lights. What robot would be complete without a whole whack of blinkenlights?
A few quick snaps of the Office Robot. The motor control boards are essentially complete (working out the kinks in the firmware, still). The connection between the motor control boards and the web interface (courtesy of a Raspberry Pi) is obviously still pretty much crap. But it does work, and I’ve transferred the schematic to Eagle. All those jumper wires, and pretty much everything that’s plugged into that breadboard will be replaced with a single PCB!
The motor control boards are a little prettier. There’s one for each set of wheels, and an interface board in the middle.