With space at a premium in this year’s bot (it amounts to a squared-off Pi):
and because I fancied having a go at it, and, Lance had his hands full with the CAD work, we decided to design a custom PCB. It’s now on its way to us from Shenzen 🙂
The custom PCB needed to combine several functions that were separate boards and breakouts last year:
propeller microcontroller for interfacing with the motor drivers/encoders
connectors for all the peripherals (IMU, motors and distance sensors)
along with some new functions that we wanted to squeeze in (screen and voltage sensors to monitor the batteries, for example). I also thought it’d be a good idea to add some isolation and level shifting chips to the design so that we could better isolate the motors and support having noisy and clean power supplies. Previously, we’d had gremlins that we thought might be down to noise and brownouts caused by the motors.
Since it’s pretty much the only game in town for open source PCB design (and Lance and I had used it before), we used Kicad to draw the schematic and then design the board itself.
We’ll cover a bit more detail on the design in the next few posts but, if you are interested in making your own board, my number one tip is to punch “Kicad” into Youtube’s search box. There are great how-to videos on there that guide you through the whole process. My second tip is to search for “Kicad push and shove”; which will show you how to use the automatic layout tools.
Note about the title: while it fits on the Pi, our board isn’t a HAT because there are rules about what makes a HAT 😛 also, we’re mad to try soldering some of the chips we plan to put on there; they’re tiny :-O
It was awesome to hear the launch of PiWars 2019 and we loved the space theme. That led to a week of lunchtime brainstorming – what famous space exploration robots are there? We ended up discounting most those as being a bit too spindly to 3D print. So what else could we do with the theme? What robots are there in space films? And Wall-E was the obvious winner:
tracked – so uneven ground would not be a problem
boxy – so shape should be printable
But: The PiWars rules limit the width of robots and Wall-E has a fairly square footprint. And a big chunk of the width is taken up by the tracks. So were we going to be able to fit all the electronics into the body?
That has turned into an interesting challenge. We were fairly sure we were going to use similar electronics to last year, but we were also sure that we would have to reduce the size of them. Which means designing a custom PCB…
So the challenges we’re going to face:
making it look like Wall-E – arguably the most important thing!
mechanical design – 3D printing tracks to look like Wall-E’s is going to be hard
making the electronics fit into the tiny body – ideally with extra servos to animate Wall-E 🙂
Finding places to mount sensors at the right height for the challenges
Figuring out how to mount the attachment hardware
Plus all the unexpected stuff we haven’t spotted yet!
Our design calls for an Arduino (to allow real-time stuff like outputting steps, running control loops, etc). We’re using an Arduino Due.
We had planned to get the Raspberry Pi to talk to the Due over ‘serial over USB’ – i.e. we connect the USB port on the Due into the Pi and then send bytes to the /dev/ttyACM0 device that gets created by the OS.
This worked, but after a while (30s or so of chatter) the port would stop responding. A quick google showed that a few other people have seen similar behaviour, but no one had a solution. 🙁
Now to find a workaround…
The plan here is to get last year’s Metabot code (with as few changes as possible) working on the new robot so that we can try it out and check the performance is sufficient. If we need new motors shipped from China, I’d like to know now rather than halfway through November!