Monday, April 7, 2014

Making K9 Move - The motor base

I have been experimenting with building a base to sit my K9 outer shell on top of and things are really proceeding very well. For about $500.00 in parts I have created a platform that fits inside the shell that can be controlled either by a Raspberry PI or an RC remote control. Here is a picture of the platform with the parts I am planning on installing laid out on it but not yet connected. Here you can see the board that the scooters are attached two with plus shaped cut outs in the center to allow the wheels to pass through.

The platform consists of the following items.

1 1/4" Pine board with holes cut out for the wheels
2 Razor 24 Volt batteries (They come with the scooters, not shown above)
1 Terminal block
1 Raspberry PI
2  U-Bolts (1/4x1-1/8x3-1/2) used to attach the axel to the board
6 3/16x1 Washers
6 10-24 x3/4 Pan Phillips Machine screws which are the perfect size to screw through the wood into the steel frame.

Here is how the components are connected together.

If you look closely, you can spot that I have attached the scooters to the platform facing in opposite directions. This was to allow the steel frames to fit together closely enough to stay within the limits of the with of the board they were being mounted to. In the diagram above I have reversed the electrical connections to the motor to make both motors consistently move in the same direction. This could also be accomplished in code as well but this makes them both appear to be facing in the same direction as far as the controllers are concerned.

When working with high current systems it is a good idea to use heavier gage wire. I am using 18 gage stranded wire for all the motor connections which I am wiring into a terminal block for distribution. I have also wired the step down regulator into the terminal block to provide 3 amps of 5 volt service which should be enough to power two Ardunios and the PI.

Each scooter's specs state they can propel a child up to 10 mph for 40 minutes between charges. This platform packs two of them and will weigh far less so I am expecting really good performance. In addition the steel frames use a bicycle chain to transfer power from the motors to the polyurethane wheels. 

I put some thought into how I wanted the wheels arranged. I know I wanted four wheels, two powered and two idle to form a stable base that would not be easily tip-able. I also wanted the shortest possible turn radius as my goal was to develop autonomous navigation projects and having a near zero turn radius would allow the robot to maneuver in close quarters. This mean placing the wheels in the midsection of the body. By rotating them in opposite directions, the robot could literally spin around its z-axis, doing a complete 180° turn in place. I decided on a Hilare-type wheel arrangement which is a two wheeled differential drive with two additional passive points of contact (casters) was the way to make this happen.

After sawing away most of the scooter with a sawzall, only the back wheel and the motor remain. It turns out that using a combination of a large U-Bolt and 3 replacement screws listed above is all you need to anchor the scooter to the board. Here is a side shot of the mounted scooter frame.

I think I have been postponing posts because I want to put too much information into them so I am going to wrap this one up at this point and cover the communications protocol and how I am interpreting the sensor data as well as prioritizing remote control requests higher than PI requests in another post. I also want to talk about the power supply and how I want to manage battery charging. You can always look at the current state of my Arduino source code here. I have not yet started adding support for this peripheral to the PI daemon. It still has a long way to go.

No comments: