The Windows Mobile Robot!

Assembling WiMo II 

Building WiMo II 


WiMo's Garage (Blog)

Skip Navigation Links
Wimobot Home
What is WiMo?
Temporary Downloads
Building WiMo
Books and Resources
Hardware (WiMo II)
Assembling WiMo II
Assembling WiMo NXT
WiMo Api Docs
Source Code
WiMo Community
MIT AutoId Lab
Kevin Wolf's Nivek J.D.
Photos
History
WiMo on the Web
About Wimobot.com
Email a Question




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.