I bought an Arduino Uno and was planning on building a balancing Robot. I was really impressed with the Balancing Skate Board that was published by Xenon John. It had most of the code that I would need to build a balancing something. That something evolved from a Robot to a Sit Down Segway clone, which I named the SITWAY. I want to at this time thank John for all the help and patience he showed me in building and testing this ible.
This is my second project involving a discarded electric wheel chair. The motors have great torque and are very reliable. They use 24 volts and have great range using two U1 type garden tractor batteries. You can't go any cheaper than that.
The build went pretty smoothly. Thankfully Xenon John pitched in and helped me modify his code to work with my wheel chair motors.
After running all the tests I felt were needed I elected to have a young neighbor take the first ride. It turned out to be a real blast. So far eight or ten people have ridden it, the youngest being 12, and the oldest 81 (me). The training wheels limit the speed by limiting the forward tilt. I plan to keep the rear training wheels on permanently because I don't need a lot o speed going backwards.
The SITWAY appears to be pretty safe, but it does not have all the built in backup systems that a real Segway has, I have only tested it on my smooth driveway at this time. I have driven over small objects, and it still stayed stable..Any one can learn to drive it in about 5 or10 minutes. With all the testing and driving we have done I have yet had to charge the batteries. The original wheel chair had a published range of 20 miles.. HAVE FUN!!!
Step 1: MATERIALS AND COSTS
Item Source Cost
1. Donor electric wheelchair Various places $50 to $200 Depending on condition
2. Arduino Uno Maker Store $30
3. Arduino Uno Proto-shield Spark Fun $15
4. 5 degrees of freedom IMU Spark Fun $49
5. Sabertooth 2X25 Dimension Engineering $129
6. Two surface mount LED's Radio Shack $1.29
7. Two Momentary contact switch's (trim) Radio Shack $1.29
8. Two micro switches for Steering Radio Shack $3
9. Single pole single throw power switch Radio Shack $1
10 13X20X1/4" plate for base Local $10
11. 1/2" steel tubing for seat frame Local $10
12. Vinyl and foam for seat Local $4
13. Asst hook up wire Local $3
14. One can spray paint Local $3
Total $309 to $459
(note) I actually bought my used wheelchair for $35 at a yard sale
It was pretty beat up but the motors were good and even included
A 24 volt charger.My project cost less than $300.
Step 2: Salvaging Parts From the Donor Wheelchair
Step 3: Build the Frame and Mount the Wheels and Motors
Step 4: STEERING CONTROLLER
The stick is rigid in the fore and aft position , and will move side to side in the lateral position. a compression spring centers the stick.
Two set screws provide stops, and two more act as limit switches for the two micro switches that control the steering.
This could be done simpler by mounting the micro switched on the outside of the stick, but I wanted to have them hidden inside the stick.
I have access to a vertical mill and I never miss a chance to use it. The micro switches are available from Radio Shack for 3 or 4 dollars.
The adjustable front training wheel serves two purposes. first it keeps you from pitching forward during any sudden stops, and secondly it limits the forward speed by limiting the pitch angle until you get comfortable with riding it. The rear wheel is fixed limiting reverse travel to a safe speed.
Step 5: ELECTRONICS
5 Degree's of freedom IMU
Asst. LED's and switches
10K pull down resistors (5)
4 conductor cable and hook up wire
I don't like to solder directly to my Arduino. Instead I used a shield. This allows me to make solid solder connections instead of plugs that can come loose due to handling or vibrations.
A good place to begin is to solder the (5) 10k resisters to the shield. These are the pull down resisters for the balance trim, steering, and dead man circuits.
(Note) The following wires are connected to the Arduino digital pins
pin 9 is for the dead man switch circuit
pin 7 is for nose down trim circuit
pin 6 is for nose up trim circuit
pin 5 is for steer left circuit
pin 4 is for steer right circuit
The other end of the resisters goes to circuit ground
pin 13 connects to the S1 input of the Sabertooth Motor Controller
The following wires are connected to the Arduino Analog pins
pin 0 to Y Rate 4.5 on the IMU
pin 2 to X Rate on the IMU
pin 3 to Y Rate on the IMU
pin 4 to ZACC un the IMU
+5 volts to he Steering controller
+3.3 volts to the IMU (NOTE) do NOT apply 5 volts to the IMU
GND to the IMU
All the Analog connections can be soldered directly to the shield.
The Digital connections can be made either by plugging directly into the headers or using a connecter. I found some in the Sparkfun catalog that fit snugly into the headers (See above pic)
I found some four conductor ribbon cable at Radio Shack that worked well for me. It is stiff enough to hold it's shape, and the color coding makes life easier. You can use ribbon cable from an old computer just as well except for the color coding .
Mount the IMU to a small block either wood or phenolic to the floor of the machine at approximately the center line of the axles.
Be sure to mount it correctly.
The factory drilled mounting hole must be pointed towards the ground
The component side of the IMU must face forward
If you mount the IMU incorrectly bad things will happen.
The plate can be shimmed fore and aft to adjust for level balance
Fashion an aluminum plate to hold the power switch, and the trim and steer switches and mount it to be reached conveniently while seated. I installed a power indicator LED (with a Pull down resister) to verify Arduino power (12 volts)
Step 6: WIRING
There are four voltages used in this project
24 VDC for the motors
12VDC for the Arduino Uno
5 VDC for the steering and trim circuits
3.3 VDC for the IMU
24 VDC is connected to the Sabertooth 2X25 . A power switch is installed in the negative leg. Be VERY careful to maintain the correct polarity.
The Sabertooth will be permanently damaged if you hook it up with the wrong polarity. The warranty will also be voided.
The 12 VDC is obtained with a tap between the two batteries terminated with a plug for the Arduino power input. Do not use the USB circuit as a power source, strange things happen to the gyro when you use the USB for power.
The 5VDC and 3.3VDC is obtained from the Arduino Uno.
A 5 volt source powers the dead man, left and right turning, and both trim switches.
3.3 volts from the Arduino powers the IMU
Bolt the Sabertooth, the IMU mounted to a block, and the Arduino Uno and it's shield to the floor of the frame
Connect the motors to the Sabertooth. The left motor connects. to M1A and M1B. The right motor to M2A and M2B.
S1 on the Sabertooth connects to Arduino pin 13. Connect Sabertooth ground to Arduino ground. This completes the Sabertooth wiring for now. These connections will be verified during the Motor test procedure a little later. Be sure and set the Sabertooth DIP switches for Simplified Serial operation. Set switches 1,3,5, and6 to the on position Switches 2, and 4 are set to the off position. These settings support using lead acid batteries.
Route the five wires from Digital pins 4,5,,and 9 plus a 5 VDC source to the steering handle.
Connect the 5 volts to one side of the two momentary on steering switches and to one side of the dead man switch.
Connect the other side of the switches to the wires coming from Arduino pins 4, 5, and 9.
Route the wires from Arduino pins 6, and 7 to the little plate with the trim switches. Connect one side to 5 VDC and the other to Arduino pins 6, and 7.Route the wires from the main power switch to this plate and attach them to a 40 amp SPST switch. Install a surface mounted LED indicator and power it with 5VDC to ground through a 10k resistor.
Install the batteries using the battery box or covers you salvaged from the wheelchair and this pretty much completes the basic construction of the project.. If you saved the charging plug from the wheel chair, install it in a handy place and wire it up to the 24 VDC source. Pad and upholster a seat cushion to be bolted to the frame uprights.
Step 7: MOTOR TEST
IMPORTANT!!! Maker sure the Sabertooth DIP switches are set for Simplified Serial operation.
Raise the machine up on blocs high enough for the wheels to clear the floor and can spin freely.
Open the Motor Test notebook sketch. Copy and paste this sketch to a new Arduino sketch. Upload the new sketch to your Arduino.
This sketch only uses digital pins 9 and 13. (Dead man and serial input to the Sabertooth)
Turn on the main power switch and depress the Dead man switch. Both motors should start turning in the same counter clockwise direction. If they don't, reverse the wires going to the M1 or M2 connections on the Sabertooth. Both motors should slowly increase in speed in 10% increments from stop to 50% and then from 50% to stop.
Step 8: THE FIRST TEST RIDE
This is a good time to exercise extreme caution as these motors are very powerful and can run across the room and do bad things.
This code makes use of a TIP START routine that lets the machine start gently at first and then after about 5 seconds comes up to full power.. With the machine tipped to its parked position turn on the master switch. Count to five slowly. This allows the IMU to calibrate itself.
Next depress the dead man switch. (Note) I installed an LED to light up when pin 9 the dead man circuit is activated. Slowly bring the machine to an approximately level position. If all goes well the machine should balance it's self. Any time you sense a problem let go of the dead man and the machine will stop. If you De-activate the dead man you will have to start from the beginning and go through the TIP START routine again. Make these first tests with out getting on the machine. Tip the machine forward and backward a little and see if the machine tries to move accordingly Try a gentle turn in both directions. If all goes well you are ready for the first test ride.
Do not take the first ride when you are alone. Have some one there to help you if something goes wrong. At my age my bones are getting pretty brittle so I let my best friends teen age son do the honors. We made him wear a helmet and we brought him up to level after the TIP START by hand. He did a great job and mastered the machine in just a couple minutes.
For this first test we used the hand held controller that Xenon John uses in his skate board. It became obvious that for the SITWAY we would need a different control method. I built the new joy stick out of 1" steel tubing. Like the original Segway you need something to hang onto. The joy stick houses the two steering switches and the dead man circuit. The stick does not move in the fore and aft plane, the only movement is from side to side. This system really works well and has not given me any trouble. I moved the trim switched to a little aluminum plate mounted whitin reach of my left hand.
Step 9: ADDING 3D PRINTED OBJECTS
Step 10: CONCLUSION
This version is a little slow at this time and that is alright by me for now. I plan to raise the front wheel a little for more forward speed.
Eventually I might eliminate the front training wheel all together when my confidence factor builds up.
The most important to learn is that the machine should balance you, not the other way around. Try to remain in a stiff position and let the machine do the work instead of fighting it.
SAFETY SAFETY SAFETY I take baby steps with any changes I make If you try to go too fast, this thing could hurt you. There is a lot of power with these motors. I have not tried to navigate over any large objects as yet. I plan to test it by running it over a 2X4 and see what happens.
It is a fun project. The neighborhood kids are crazy about it and zip around the yard with ease. Thar's the main reason I have limited the speed for now. The wheel chair motors are very frugal with battery use. I have actually run on 12 VDC. It was a little sluggish but operated just fine.