Embarrassing confession time. For someone whose job is 90% robot building, I have a surprising dearth of robots right now. So when Jesse, our video editor, was asking around for any available robots for a quick video shoot, sadly, I had none to provide.
But that didn’t mean I couldn’t deliver!
I asked Jesse to give me two hours to build him a robot from scratch. With all the parts we have around the Digilent Makerspace, I figured I could cobble together something in well under two hours… The game was afoot!
I quickly gathered together my supplies. A 3D printed robot chassis, uC32 and Basic IO Shield, a couple of gear-motors and wheels, a 9 volt battery and connector for power, and some double-sided tape! Also tea. Tea is very important.
I used the double-sided tape to stick everything to the chassis. A quick test revealed that the uC32 couldn’t be powered from the 9V that was to power the motors, so I found a 6V battery pack and stuck that on too.
The wiring took me a little while to figure out. I’d never used the Basic IO shield before, so I wasn’t familiar with the open-drain FETs onboard. I expected jumpers J7 and J8 (the bottom two screw-terminal jumpers on the left) to have a positive and negative terminal each. Turns out that each terminal is connected to it’s own FET instead. That’s a little strange, but it means the board has four FETs instead of two! That’s pretty neat!
Now I just needed to write some simple code and upload it to the board! This robot needed to be extremely simple. All it was supposed to do was drive forward… and not stop. Simple enough. A quick look at the IO Shield’s reference manual told me that the FETs I was using were controlled by pins 5 and 3, so soon I had my code set up to write those pins high.
Now I just had to test everything out!
I quickly downed the last of my tea, and re-purposed my tea mug as a makeshift test stand for my robot. Then I uploaded the code and plugged my robot in to power!
Disaster! I had accidentally plugged my 6V battery pack in backwards! All I see is a puff of smoke and I frantically unplug everything. Whalp…
Sheepish and embarrassed, I had to ask James to borrow another uC32. Reluctantly, he agreed.
James also showed me where I could find a whole bunch of both male and female power plugs, each with screw terminals already attached. If I used these, I could make sure I’d never plug my power in backwards, thereby protecting his board from my previous fumble.
Re-equipped, I attempted to test my code once again, this time with success! Only, one of my wheels was rotating the wrong way.
I corrected my motor wiring, tested once more, and my robot was good to go!
Triumphantly, I delivered my simple robot to Jesse. As you can see, he was overwhelmingly pleased!
Okay so maybe my robot wasn’t exactly stellar, but because I used the uC32 and Basic IO shield, it was technically capable of quite a lot! That’s what I like about these boards, specifically the uC32 and DP32. With just a little bit of forethought, you can pretty much throw together whatever you want very quickly. Instant robot, just add water!
(Don’t actually add water, that would be awful.)