Post One - Main Control Board23 Nov 2020
Hi there, and thanks for visiting our blog. We’ll be documenting every step of the development of our robotic entry to Pi Wars 2021.
Pi Wars is a non-destructive Raspberry Pi based robotics competition with both autonomous and remote-controlled challenges. It takes place over one weekend and features teams of school students, family members and hobbyists as well as solo roboteers.
We’ve decided to go with a non-chronological format, that is we’ll be writing about each element of the robot separately, rather than documenting changes as we make them. We feel this is much more useful for future teams looking back on previous years as it better categorises information about a specific part in one place. Of course, there will still be some news spliced in with the posts - it just won’t be the main focus.
Let’s start with the schematic - Cryptoid is primarily controlled by a Raspberry Pi Model 3A+, as required by the Pi Wars rules, which both directly interfaces with hardware through the GPIO pins and connects to a second ARM coprocessor for additional functions that cannot be performed reliably by the Pi, such as large amounts of PWM pins for motor control and precise timing for LED strips.
The circuit features three switched-mode power supplies, which take the approximately 15 volt supply from the batteries and regulate it down to the levels required by the hardware, these being VCC1 running at 12V for half of the motors, VCC2 - also running at 12V - for the other half and 5V for the Raspberry Pi. The ARM coprocessor is supplied power through a traditional 3.3V linear regulator, from the 5V rail.
The motors themselves are controlled by two power transistor drivers. We chose these instead of a more efficient H-Bridge MOSFET design as it massively reduces the board space required, we would have needed 16 TO-220 packages just for motor control and we wanted to keep the final robot as small as possible. The motor pins are broken out into a spring terminal, as with all other connections on this board that need to interface with external hardware. The drivers require flyback diodes on the output for preventing voltage spikes from destroying the ICs. We have also included LEDs for easy troubleshooting later on. In this same section is the transistor driver for the piezo buzzer used for error notifications and decoupling capacitors for each of the power rails.
This section contains output terminals for a string of WS2812B LEDs, ultrasonic sensors (with the data pins going through a resistor divider to bring the signal levels down to safe voltages for the Pi - that’s 3.3V from 5V), breakout pins for the additional hardware from the ARM chip - we’ll probably end up using these for servo motors later. power lines and a hookup for an LCD screen if we decide to add one later.
Here you can see the ARM coprocessor and its support hardware. There are two crystal oscillators feeding the clock generators for the chip and headers for firmware programming and mode selection along with a reset button and the linear regulator I mentioned earlier.
Finally, we get to the Raspberry Pi controlling everything. There’s not much interesting going on here, it’s just signals being routed away from the GPIO connector to the rest of the board. The NOWHERE lines are a bodge to stop a glitch with EAGLE’s board editor - as the name implies, they don’t actually go anywhere.
Next week, I’ll go through how we put all this circuitry onto a PCB and how that circuit board fits in with the rest of the hardware. We did order the boards months ago but they’re still stuck in international shipping limbo so I can’t show off the finished product yet. You can sign up for email alerts through the form at the bottom of any page (if you don’t see it, try disabling your ad-blocker - I’ve found it can interfere) to get our latest posts as soon as they are available or if you have an RSS reader installed, you can subscribe to our feed by adding the link here.
[Design drawings by Matthew Charlston © 2020 Leeds Raspberry Jam]
[Pi Wars quote taken from piwars.org © Michael Horne & Tim Richardson]