WiMo's Garage (Blog)

Visit the
Windows Mobile Blog
Legal mumbo jumbo: The information on this site is provided "AS IS" with no
warranties, and confers no rights.
While I do my best to make sure that all the information is correct and up-to-date,
mistakes do happen. If you think you see a mistake or something that is unclear,
please email me and let me know so that I can fix it.
|
You've read the books, you've bought the parts, and now you are ready to build a
WiMo. I'm going to do my best to walk you through the building of WiMo the
Aggressor. Feel free to deviate from the walk-through in anyway that you'd
like. Coming up with new designs is half the fun and helps to personalize
your robot.
Click the photos for a larger resolution
Building the Chasis
|
|
Tools that you may want/need |
- Wire Snippers: Great for separating the plastic pieces
- Phillips Screwdriver
- Needlenose pliers
|
|
Parts |
- Robot Tank Kit (KIT410)
- 4 #6-32 2" machine screws
- #6 Washers
- #6-32 machine nuts
|
|
Notes |
 Packaged Robot Tank Kit
The Robot Tank Kit comes with instructions that will lead you through building it.
I'll let you consult those.
I used the "C" type (203:1 gear ratio) when i built the twin motor.
There is one slight change that you need to make to the instructions. For
Step 5, when it says to use the 1 1/2" screws, use 2" instead. These screws
connect the bottom of the chassis to the top platform. The longer screws are
needed so that we can attach the circuit board as well.
Putting the treads together can be a little tedious. Don't completely force
the treads together, but do realize that the rubber is probably stronger than you
think. The tweezers also helped me out here.
When you are done you should have something that looks like this:
 Built Robot Tank Kit
This last part is a bit arbitruary, but here is what i did to make sure that the
circuit board was raised high enough to not interfere with the tank treds.
This is why i substituted the longer #6-32 screws.
On each of the screws shown above, put 6 #6 washers. (6 per screw). Then fasten
them with a #6-32 nut. This is a cheap and easy way to raise the circuit board.
|
The Circuit Board
The following directions are for WiMo the Aggressor. Again, feel free to modify
this if you'd like. Be patient when you are soldering these components.
Also, it helps if you have some "extra hands." These are tools that have alligator
clips that will hold your work for you while you hold the solder and the soldering
iron.
Remember, heat the work, not the solder, for the best soldering experience :)
|
|
Tools that you may want/need |
- Cordless drill
- 11/64 drill bit
- 1/8 drill bit
- 3/32 drill bit
|
|
Parts |
- Perfboard -- Large
- Futaba S3003 or equivalent hobby servo
- Lynxmotion Dual H-Bridge or equiv
- OOPic-R
- 9V batter clip
- 4 AA battery holder
- BlueSmirf
- Short plastic standoffs and the screws it came with
- 2, 4, & 6 pin polarized headers and connectors
- 20 Gauge wire: red, black, green
- Small machine screws (i think they are #2-56 1") from radio shack
|
|
Drilling the circuit board |
 Circuit board with drilled holes
I'm going to explain all of the holes that need to be drilled. You don't have
to drill them all at the same time, but that is how i will explain them.
- Circuit Board -> Tank Body: 11/64 holes at 20L, 51L, 51a, 20a
- Posts for Lynxmotion Motor Controller: 1/8 holes 55n, 55M, 35M, 35n
- Posts for OOPic-R: 1/8 holes 1F, 21F, 1g, 21g
- Servo: 1/8 holes 30N, 26N, 30g, 26g
- 9V clip (assuming 2hole version): 3/32 holes 26n, 30n
|
|
Hooking up Bluetooth |
Power and OOPic connections
 Bluetooth connectors
First solder 2 of the 2 pin polarized connectors. i soldered mine at 4A, 5A
and 8A, 9A. These will be used for the TX and RX lines from the OOPic and
5v and Ground (also from the OOPic).
For some context, in the picture above, the pins that i soldered are going to be
in the front of WiMo eventually. the OOPic will be directly to the right of
these pins (If you were to rotate the board pictured counter clockwise 90 degrees
that is, i'll try to take the rest of the photos upright :) ).
Building the Bluetooth Connector
I didn't want any of my components to be hardwired together, so i created little
sockets or connectors. Next we'll create the Bluetooth "socket". I just
used a female 6-pin polarized connector:
 6-pin polarized connector
 Pin that fits in connector (might look different depending on the connectors you buy)
These connectors come with metal inserts that you attach to the wires. I think
you are just suppose to crimp them, but i solder them to the wires. i just
stick the wire into the back of the pin housing, use needlenose pliers to crimp
it, and then add a little bit of solder so that it isn't going to go anywhere.
make sure you only use a little bit of solder if you go this route so that they
will still fit in the connector above.
The BlueSmirf Bluetooth module has the following pin-out in order:
 BlueSmirf module
- CTS: Clear to Send
- PWR: Power (5v)
- GND: Ground
- TX: Transmit Line
- RX: Receive Line
- RTS: Ready To Send
You really don't need the CTS and RTS lines (i don't use them)... so we can just
connect these (says so in the documentation, so i didn't just make this up)
Here is an example of a wire connected to the pin housings. i won't be showing
this again as most of the other wires are the same. We'll use this wire to
connect the cts and rts pins.
now stick the wire into the 1st and 6th pin hole in the connector:
 CTS and RTS are wires together
Next, you'll want to cut 2 green wires, 1 red wire, and 1 black wire all of about
the same length (about 1 inch or so). All 4 wires should have the pin housing
soldered onto only one end. The other end of the wire will be soldered to
one of the pins we soldered to the Circuit board.
The green wires will be for the tx and rx lines. the red for power and the
black for ground.
Your completed BlueSmirf connector should look something like this:
 Finished BlueSmirf connector
We will use some servo tape on the side not shown to fasten it to the bottom of
the main circuit board. First we will solder the connections to the board.
I don't recommend keeping the BlueSmirf connected while soldering :).
Here is what it will look like when you are done soldering the connector to the
bottom of the board:
 Solder and attach to bottom of circuit board. Black electrical tape as a precaution.
The black under the BlueSmirf is electrical tape. I covered anywhere the bluesmirf
may touch. The electircal tape should shield it from shorting out if it were
to touch the circuit board. I also used a small piece of servo tape (it is
double sided) under the connector to keep it from hanging. So, between the
servo tape and the soldered connections, this connector isn't going anywhere.
|
|
Controller Posts |
Might as well attach the small posts that we'll sit the OOPic and Motor controller
on. These are the short plastic standoffs i got at Spark Fun. 6 of them
are attached using the screws that they came with, the other 2 are using a much
smaller machine screw.
I got them from radio shack, i believe they are #2-56
1" screws, but i'll try to
check next time i go to radio shack. basically you want a screw that can fit
in the holes of the OOPic-R. Then, instead of using the screw that came with
the standoff, i put this screw through the standoff and then fasten with a nut that
fits. Then you can sit the OOPic-R over these 2 screws and fasten it with
another nut.
The board at this point will look like this:
 Posts for motor controller and OOPic |
|
Common Ground |
The next step is to create a common ground. Well, we aren't going to really
create it, but we are going to create a little "hub" where all the grounds can be
hooked up to.
solder a 4pin male header in pin holes 24A, 25A, 26A, & 27A connecting all 4
pins. I just used one big solder glob. I'm sure there are more "professional"
ways of doing this :)
 Common ground (bottom view).
The top view:
 Common ground from the top (top center)
We will be connecting the ground of the OOPic, the motor controller, and the motor's
batteries to this hub. |
|
Misc Wires |
Common Ground From OOPic
The pin housings that come with the polarized connectors we used above are great
for single wire ground connections. I use them on ends of the wires that all
connect to the ground "hub" we just created.
I do not use this pin housing on the other end of the wire that goes to the OOPic
however. I don't want to risk shorting out the OOPic, so i use an unpolarized
connector (i'm using 2pin, but i think you can get 1pin connectors). The non-polarized
connectors come with a different type of pinhousing that is a little trickier.
If you have a tool that is made for connecting wires to these, i'd say definitely
use it. i'm coming real close to going out and buying one myself. but
in the mean time, i just crimp with my needlenose pliers and try to solder small
so that i can get it into the connector.
The wire that i will use to connect the OOPic's ground to our "hub" is shown below:

Power from OOPic to BlueSmirf
For the Power to the BlueSmirf from the OOPic I use a 2-pin polarized female connector
and a 2-pin nonpolarized female connector. It really isn't "good" to have
a non-polarized connector at one end, but this is what fits on the OOPic.
I connect the non-polarized connector to the OOPic, and once connected, i just never
touch it again. If i remove the OOPic from the circuit board, i always disconnect
it on the polarized side. Feel free to improve upon this :)
|
|
Serial Connection with OOPic |
Ready for a bit of a soldering challenge? Good! :) The BlueSmirf talks
in TTL logic.
The OOPic does have TTL serial lines, but they are underneath the OOPic and require
soldering wires to the little solder pads. A great explanation of this is
in the OOPic book i recommended on page 21. I soldered 2 green wires to the
rx (the left pad in the view below) pad and tx (the right pad)pad on the OOPic like
so:
 Solder the RX and TX lines to the solder pads under the OOPic-R
Then i put a 2-pin polarized connector on the other end so that the RX line of the
OOPic connects to the TX line of the BlueSmirf. And vice versa.
|
|
Assembling the Circuit Board |
Now is probably a good time to attach everything to the circuit board so that we
can attach the circuit board to the tank base.
First attach the servo posts to the circuit board. these are the 1.25" Nylon
risers.
 Servo posts attached.
Next, attach the 9V battery clip. feel free to use velcro, servo tape, or
machine screws. I used the same machine screws (just shorter) as i used for
the OOPic (the ones i got from radio shack).
 Attached 9v battery clip.
(Actual servo not pictured, I used a Futaba
S3003 bought at my local hobby shop.
The servo pictured is a continuous rotation servo and will just keep rotating around.)
The four #6-32 2" screws coming up from the tank base should fit through the holes
in the circuit board that we drilled for them. just hand tighten a #6-32 nut
to each one and that should keep the circuit board attached.
Like so:

(Actual servo not pictured, I used a Futaba
S3003 bought at my local hobby shop.
The servo pictured is a continuous rotation servo and will just keep rotating around.)
Now i can put the OOPic on the circuit board and connect the wires that i have made
so far. On the side opposite of the RS232 serial connector are the main I/O and
power lines. The rows that have 3 pins are I/O pins and the rows that have
2 pins are power pins. Click here
for a diagram of the power pins in relation to the I/O pins
 OOPic attached to circuit board. Power and data lines are connected for BlueSmirf
Looking at the picture, the main I/O pins are on the left side. the top of
those is one of the power pins (only 2)... the pin on the left is GND and the on
on the right (toward the inside) is +5V. I hooked these up to my power pins
i made for the BlueSmirf. If you move down another 4 rows of pins (I/O 31
- 28) you'll have another set of power pins. i just use the GND from this
and hook it up to our "common ground hub". Then just plug in your RX/TX lines
that we made.
Next, attach the motor controller. I'll go into this in the next section. |
|
Motor Controller |
Connecting the Motor Controller to the OOPic
The first thing we need to do is to modify the data lines from the motor controller.
The OOPic-R works with this motor controller, but the pins on the OOPic-R that are
used for motor controllers are slightly different than this controller. The
OOPic's Dual DC Motor I/O wants the GND and 5V to be on the ends and each motor's
control lines are different.
You'll want to use a needle or something to move the wires. basically, you
just need to raise the little plastic tab on the housing and then pull the wire
out.
We'll keep the motor controller's 2 pin GND and 5V connector the same and just pull
power from the LCD I/O on the OOPic. Nothing wrong with that unless you are
going to use an LCD :).
we are going to swap the yellow wire (A enable) for the navy blue wire (B+).
And then swap the purple wire (A+) with the pink wire (B-). This will make
the connectors go in the order that the OOPic is expecting (A+, A Enable, A-) followed
by (B+, B Enable, B-). Again, we don't use the GND and 5V on the OOPic's Dual
Motor I/O.
 Motor controller.
Once you've swapped the wires, connect them to the OOPic. you should NOT have
anything plugged into the GND and +5V lines in the Dual DC Motor I/O group.
like so:

Now, just attach the motor controller to the CB if you haven't yet. Here's
a pic of what it might look like:

Connecting the Motor Controller to the Motors
First we need to solder some wires to the motors. You'll want to solder the
wires to the little metal tabs on each motor like the picture below (soldering the
wires the same way will help your WiMo to work with the code that is posted).
Then insert each of the wires into the motor controller and tighten the little screw
to clamp the wires in.
 Motors wired to the motor controller.
Providing Power for the Motors
Now all we need is a dedicated power source for the motors. You don't want
to use the 9V for the motors for a couple of reasons:
1. The motors draw a lot of power. a 9V battery doesn't really have
all that much power, so you'll kill your 9V really quick.
2. Motors cause electrical noise on the power lines. If you use the
9V which is also connected to the OOPic, you could introduce noise which could then
cause errors in your OOPic program.
So, we'll use 3 AA batteries. These should provide enough power for about
an hour or so depending on the batteries you use.
I use velco to attach this battery compartment.
just make sure you leave room for the switch to hang off the circuit board:
Next, hook up the GND wire to our common hub (you'll want to attach a pin housing
to it like we did from the OOPIc. and then attach the red power line to the
motor contoller.
But wait, we need to hook up a GND to the motors, so we'll create a wire that we
can hook up from the commond gnd "hub" to the motor controller's motors.
Here's the completed circuit board:
|
|
Designer SDK Phone Holder |
If you have an extra Windows Mobile SDK (or any other cd/dvd), then you can create
the platform that the Windows Mobile device sits in. The posts are spaced
enough to fit whatever device you are using. Use the 2.5" Aluminum risers
for the posts and attach like so:
 Windows Mobile SDK serves as the platform for the Windows Mobile Smartphone. If you were not able to get the aluminum posts, you could probably use 2.5" bolts
I used servo tape to attach the cd to the servo horn. If you attach the servo
tape to the top of the cd, then poke a hold in the center, you can attach the horn
pretty permanently.

Then you can place it on the servo. you don't need to screw the horn to the
servo unless you really want to. I've never had the CD fall off.
|
|
WiMo |
And there you have it. You have now built WiMo the Aggressor! Now it's
time for the software. Load the WiMo.osc file into the OOPic compiler and
download it to the OOPic. Then grab the WiMo code for the device on WiMo,
and then the host code and you should be in business! One thing that is great
about the bluesmirf connected to the OOPic is that now you can program the microcontroller
via bluetooth!

 Finished WiMo Aggressor
|
|
Questions? |
Hopefully you've found these instructions useful. Please send me pictures
of the WiMo that you've built! Especially if you changed things in my design!
I'd love to see what you did and post it up on the site for others to see.
I tried to be as detailed as possible without going too overboard. I'm sure
there are places where i did go overboard and some places where I could have gone
into more detail. So, please feel free to send me an email at
wimo@wimobot.com or leave comments on the
Windows Mobile Team blog under the latest WiMo entry.
|
|