After five years of competition with Seeker 2, I finally decided this year to build a new one. I've been toying on and off with designs and ideas for a few years now, but I finally decided to take the plunge and build a brand new mini sumo.
I've started working on the CAD design, as I do with all my robots before I build them. Seeker //x is going to be very low, very fast, and very aggressive.
Seeker 2 is 1.5" high, and Seeker //x is going to measure in at just about 1" high. The reason it will be lower is mainly due to the smaller diameter motors I am going to use.
One interesting thing I have noticed about this design - its almost exactly a 1/2 scale replica of Seeker 3, my 3 kg sumo I built last year. One nice thing about building this one is, I have a CNC mill now, so all the panels will be cut precisely and directly from this CAD model.
The wheels will be machined from solid 1" aluminum rod (the same way Seeker 3's wheels were machined from 2" rod). Most of the parts are going to be either aluminum or brass.
Initial (tentative) specifications:
I figure this will go at least twice as fast as Seeker 2, and (at least according to the gearing and tire diameter) up to three times faster. This thing is going to be a beast to keep inside the ring, but its going to push like a demon once it starts.
One other nice thing - with Seeker 2, the microcontroller (a PIC 16F876) was limited to 8KB of FLASH, and my mini-sumo controller code filled most of that. The ATmega128 has 128KB of FLASH, so I have tons of space to try some more interesting algorithms...
I also picked up all the raw material I'm going to need to build this robot. The long aluminum plate is 1/16" thick, and the base and sides will be cut from it. The long brass plate under the material (the one Seeker 2 is sitting on) is about 0.040" thick, and will form the lid. The two long and thin strips to the left of that are 0.016" thick stainless steel, for the scoop.
Piled on top are two pieces of 1" diameter brass and aluminum rod, for the wheels and motor mounts. I'm going to make them from aluminum to start with, but if I need more weight I can make versions from brass. There are also a couple 1/4" wide bars from aluminum and brass, which are supports for the circuit board and the front. Finally there's a piece of 3/8" brass rod, which I will be machining to form a lid hold-down.
My motors finally came, and this is a picture that shows the motors, the two h-bridge boards, the four Sharp IR sensors, plus a 5 volt switching regulator from Dimension Engineering. I also included a ruler for scale, Seeker 2 with the lid off, and a 1:1 printout of the circuit board design.
Things are starting to come together. I can't wait to start actually building this thing, and see how it works.
|November 18, 2009 - Here it is, finished... The software is written (at least, a first pass at it).|
The competition is in three days... I'll post results and hopefully video here.
|November 9, 2009
- Here's a picture of Seeker 2x next to Seeker 2. You can see the
significant difference in height - Seeker 2 is 1.5" high, and Seeker 2x
is only 1" high.|
I had to re-machine the side panels, because my CNC mill was messed up when I machined the panels - the lead nut was worn, and it didn't put one of the holes in exactly the right spot. I had been putting that off, and finally decided to just print them. Of course, from the printer they come out exactly perfect...
The right tire is in the mold as I type this, so by tomorrow afternoon, all that is left is to attach the front scoop, paint it, and finish the code.
|November 7, 2009 - So, here it is, almost done...|
Left to do:
|November 2, 2009
- As you can see, the tire came out of the mold beautifully. The
urethane I am using is a 40-durometer, so these tires will be a tiny
bit less sticky than Seeker 2's tires are - it will be interesting to
see how that changes things.|
|Here's a shot with the wheel mounted. The tire is 1.5mm thick, in case you were wondering...|
|November 1, 2009
- So, its been a year since I did any real work on Seeker 2x. I decided
that since the 2009 robot games are in three weeks, I had better get my
butt in gear and finally finish it. Here's what is left to do:|
|October 26, 2008 - I remachined the left
motor mount (the old one was 1mm too short), and also did the right motor
mount. Here it is with both motors mounted, and with both wheels mounted.
The motors are wired up and working properly.
Next up is a new pair of side panels, and the tire mold.
|October 9, 2008 - So I spend a few hours
last night machining wheel #2. I have to kick things into high gear now -
time is running out, and the games are next month. I've got about six weeks
to get everything finished, so expect a lot more updates here, a lot more
Next up - motor mounts, tire molds
|September 10, 2008 - So I learned the
hard way that you can't cut the top off of the power switches I'm using on
Seeker 2x. It turns out they are hollow, and contain a spring and a plunger
to maintain tension against the switch contacts inside.
I was trying to cut them off so they don't stick too far below the bottom plate. Currently, they stick out about 3.5mm, and they need to stick out no more than 1mm. So, I ordered a couple new switches from Digikey, which have a lower switch, and I'm going to change how they are mounted, so they end up in the right place without needing surgery.
|September 6, 2008 - I re-machined the
rear support bar today. I had to do this because the holes I originally
drilled for the motor driver boards to mount were both too large (#4-40) and
slightly out of place.
The new bar has #2-56 holes tapped for the motor driver board mounts, and nylon machine screws holding them in place.
|The three lines on the LED are what I am using
to represent the "pause" state, after I press the red button on the handheld
remote. It gives me a visual indication that the robot has received the
Also in this picture, you can see the motor driver wiring is done. Each board gets a battery plug (the ones plugged in), and a motor plug (currently hanging out). They also each have a six-pin control plug, which provides both the PWM signals for controlling the motors and the analog feedback from the motor driver to the microcontroller.
|September 4, 2008 - Here's the remote
kill switch, ready to roll. I had a simple PCB made up, with an ATmega168 on
it. The AVR sends out a 38 kHz modulated 1200 baud serial signal through the
two IR LEDs.
And yes, I forgot to include a power switch. I will either hack something together, or just remove the batteries when I want to power it down.
|On the outside, the two push-button switches
stick out through holes in the front of the case. In between the two buttons
is a heartbeat LED, to tell me the remote is running.
And, I have the receive side integrated into the software already. When it gets a RED_BUTTON signal, the mini-sumo switches into a pause state. If you push the green button, it switches back to the state it was in before the red button was pressed.
|August 18, 2008 - Just in case you were
thinking this whole thing is fake, here's a picture (with no flash) showing
the 7-segment LED displaying the current battery level. The levels are 0-9,
with 9 being anything over 8.2 volts, and 0 being anything under 6.4 volts.
During a match, when you push the start button, the LED counts down seconds
from 5 to zero...
The battery, voltage regulator, and power switches are all mounted in the space under the main board. There's not a lot of space under there, but it all fits.
|August 17, 2008 - Wow, its been a while
since I updated here. I've been really busy with a lot of things, but I have
done some work here and there on Seeker 2x. I've got the debug menu up and
running over the serial link, and I can test the motors, range finders, and
edge sensors using it.
Here's the green board pretty much finished, and mounted in the chassis.
|Here's a rear quarter view, with one of the
motor driver boards squeezed in place.
Fitting all the wires in place is going to be one of the toughest things about putting this mini-sumo together.
|Jan 25, 2008 - After a lot of changes and redesign, I got the new (final) boards for Seeker 2x. I have to say, I'm pretty much impressed again by how nice the green boards with silkscreen and solder mask look...|
|Jan. 24, 2008 - So, things have slowed
down a bit on the mini-sumo front, just because I've been so busy with other
robots/electronics. However, after watching Rick Brooks' awesomely fast
Exspurt, I decided that I really am going to need a remote kill switch,
like he has on that robot. Seeker 2x is going to go like a banshee, and once
it gets off the ring, stopping it is going to be a major headache.
However, Seeker 2x is really really small, and everything inside is packed really really tight. There isn't a lot of room for anything extra, never mind a big RF receiver board. I thought about using IR, but didn't know how I could get it to work, given the amount of IR interference from sensors and cameras and such. After talking with my brother for a while, we figured out that you could use an IR receiver like a PNA4602 to receive IR data in a regular serial stream. The receiver removes the 38 kHz modulation from the signal, and produces clean digital 0's and 1's.
On the transmitting side, I decided to use an ATmega168, and send a modulated serial signal (1200 baud) using a bit-banged serial module my brother wrote. This way, I can encode a decently long message (say 10 bytes) that has a very specific pattern, with a checksum, so the chances of getting a false positive signal from anything other than my remote is almost nothing.
The PNA4602 is a standalone component, which requires very little space. I reserved a little space on the main PCB, beside the LED/start button, and it lays down nicely there, with the IR receiver lens pointed vertically.
I could have just made a board with a push-button on it for the kill switch, but I like my robots to look "finished", so I ordered a SERPAC remote enclosure from Digikey for $15. Another $5 got me an IR lense, and I also picked up a pile of tactile push-button switches and some switch covers.
The enclosure is really nice - it has a spot for a couple AA batteries (with
a sliding removable cover), and PCB mounts inside. I'm going to use a couple
NiMh AA batteries to power this remote. The only issue with that is they
only put out 2.4 volts, and I really want to run this at 3.3 volts.
|Dec. 25, 2007 - Yeah, I'm working on my
mini-sumo on Christmas day - sue me... :-)
This is my prototype PCB, running some test code. I am running a bootloader, and controlling one of the motors through the Pololu h-bridge. The motor current feedback from the board works great, and gives me an excellent sense of the load on the motor.
I am also controlling the 7-segment LED you can see lit up (with the digit 7, upside down). It currently displays a number from 0-9 which represents the battery condition, from fully charged to dangerously low. The digit 7 represents a voltage of between 7.8 and 8.1 volts. At the top of the picture is one of my old 6-cell NiMh battery packs, which I'm using for this prototype work.
All this prototyping work with the printed PCB is basically to validate the hardware design. I write test software to exercise the various sensors and motors the mini-sumo has, to ensure that when I get the printed boards done everything will work without needing any changes.
|Dec. 15, 2007 - I decided to take the
mockup to the next level, since I really only want to get this PCB done
once. So, I copied the outline and hole positions from my PCB program to
Rhino, and used a g-code macro and some code I wrote in Squeak to turn it
That allowed me to machine a plastic (Delrin) circuit board, complete with all the holes for the through-hole components. I took my paper PCB printout, put it on top, and put all the components on it, and then mounted it to the chassis.
This very clearly allowed me to see that I need to raise the level of the front lid of the robot by about 1.5mm, in order to clear the connectors for the front Sharp IR sensors. So, I will be machining new side panels. Fortunately, since they are done with CNC, its not much in the way of work to cut new panels. I also had to take about 1mm off the width of the PCB to fit properly, which required that I move the two outer connections in about the same distance.
Everything else looks pretty good. I normally don't go to this much trouble, but then again I normally don't get full PCBs done, complete with silkscreen and solder mask, and since it is going to cost close to $100 including shipping, I really only want to get it done once.
|Dec. 11, 2007 - One of the things I like
to do before I have a board done is to "print" the board to scale on my
printer, and put as many components on the mockup as possible. This helps to
see how things fit together in three dimensions, and can often point out
problems or omissions in my PCB design.
This mockup helped me realize that I didn't have a good way to connect the h-bridge boards with the main board, with respect to the battery and motor connections. I made some changes, added some connectors, and re-printed the mockup, which you see here.
|Dec. 10, 2007 - This is the current
revision of the circuit board. The cutouts on the sides are for the opponent
sensors, which are
Sharp GP2Y0D340K mini IR sensors. The
large cutouts at the back left and right are for the
Pololu motor driver boards.
The large chip in the center is a 64-pin ATmega128, running at 16 MHz. There
is also a seven-segment LED for displaying various pieces of information,
mounted right on the board. All of the sensors for this board are attached
directly to the board, which is a big change from
Stuff added to this board since the last revision: MOSFET for switching off the sensors, voltage divider for measuring the battery with an A/D port, low-profile 220 uF capacitor, and a BlueSMiRF socket for a serial port.
|Dec. 5, 2007 - Tonight I finished
another important part of this robot - one of the motor mounts. It was
machined from the same piece of 1" aluminum rod as the wheel was.
Here I've got the motor sitting inside the mount, where it is supposed to be. The mount is screwed to the base plate using a couple #4-40 flat head machine screws.
It took me about three hours to turn a piece of 1" rod into this motor mount.
|Here's a picture showing the wheel mounted to
the motor shaft. I think this looks pretty nice, and definitely shows the
character of this mini-sumo.
I'll be slowing down the building pace somewhat now, so don't expect updates quite as often as I have in the past week...
|Dec. 3, 2007 - I decided to take a
couple hours tonight and machine one of the wheels. I have to say, I am
really impressed with how it worked out. This image shows the wheel, mounted
to the motor. I don't have the motor mount machined yet, but that will be
The tire, which will be molded from poly-urethane, will be about 0.050" thick, which will give a total diameter of just about one inch.
|Here's a close-up of the wheel. You can see the
#4-40 set screw channels I drilled from each side, to hold the wheel to the
motor shaft. I will be cutting a small slit in the tire on each side to
allow the Allen key to reach the set screws.
The six holes around the rim aren't really necessary, but I think they add a lot in the looks department, and it was fairly trivial drilling them with the CNC mill. The back 3/4 of the wheel is hollow, of course, so the motor and motor mount can fit inside.
This wheel is 23mm outside diameter (0.905"), and 25mm wide (0.984").
|Dec. 2, 2007 - I love weekends... This
is the base plate, the two side plates, and the front bar (which is 1/4"
brass bar). This thing is tiny - much smaller than Seeker 2, even though its
only 1/2" shorter.
The two holes in the middle of the top of the brass bar are for mounting the circuit board.
I still need to do a bit of machining on the front bar, mainly to cut indents for the front IR range finder sensors, and to drill a couple more holes for the close-IR front sensor.
|Here's a rear-quarter view of the same thing. The four holes at the back of the base plate are to hold the motor mounts in place, which will be machined from aluminum.|
|Dec. 1, 2007 - Okay, I've now machined
the first piece for Seeker 2x, and I have to say its a lot nicer cutting
pieces on a CNC mill than with a hacksaw and file (which is how I made all
the flat plates for Seeker 2). This first piece is the bottom plate, and it
came out very nicely. I use WD-40 as a cutting lubricant for the mill when
I'll milling thin aluminum plate like this (1/16" thick).
The large "hole" in the middle is for the battery cover - this mini-sumo is designed so I can replace the battery from the bottom, by undoing two screws. There are also two holes for the edge sensors (the bottom of the picture is the front of the robot), and two smaller holes for the power switches (electrical and motor power).