This is a Modification of an electric wheelchair.
I called it “Buggy” for two reasons. #1 My kids can still ride it around because I left the seat intact. #2 I haven’t programmed anything for a long time.
I plan to create “jobs” for it in the near future.
I welcome any input. Keep in mind this is my first Instruct-able.
I found this chair on-line for a great price. The claim was that it was broken. The OEM battery charger had 2 volts output, the batteries are 24vdc. I found a 24VDC power supply and used the XLR plug that I cut from the charger and it worked fine. I did have to replace the batteries, they were old and tired.
Step 1: Getting Power
This is the connector for the battery charger. It is a standard XLR microphone type plug. This can be connected at the joystick body or into the battery pack at the base.
With the center pin down, top left is green. This is Positive 24VDC. Top right is white. This is Negative 24VDC. The bottom center pin, from what I’ve read, is a programming pin to adjust various operating protocols for the drive systems. The manufacturer of this model doesn’t share programming protocols.
Step 2: Inside the box
Upon power-up, the controller verifies that the joystick is centered. The voltage supplied at center is about 2.5 VDC. Knowing this I needed to allow the power-up to complete before I took control. So I used two DPDT Relays. Each directional feed from the joystick has two control lines, pins 2,4 and 5,7. I connected the common on the relay to the feed from the control board, the N.O. to the Arduino Uno circuit and the N.C. to the joystick.
Step 3: Who’s in control
I had cut into the ribbon cable from the joystick to the controller. As shown in the schematic a few of the lines carry straight through. I soldered them all to a circuit board. This is the point that I broke out the directional lines to go to the relay bypass. Then as seen in the picture I had to cut the board in two to get it to fit into the joystick housing. I ran the relay control lines and the Arduino control line through a hole I drilled into the Joystick housing. Use a strain relief bushing and BE CAREFUL, when drilling. While in there I also soldered a 22 AWG 6 conductor (22/6) to the labeled test points that control power, on / off, speed control, 5 VDC supply and ground, and a spare conductor. These points can be found running down the left side of the control board. Then I closed and re-mounted the joystick on the wheelchair.
Step 4: Connecting the systems
Once our relays kick on and connect to the Arduino we will need to make sure we produce the 2.5vdc needed to keep the joystick from going in error mode. Remember, if the joystick is not centered (2.5Vcd) it will lockup and stop all operations. If you view the schematic showing pins 9 and 10 PWM, you will see how I connect the output of the Adruino to the input of the joystick. Using the joystick’s 5vdc feed into the transistor and modulating it through the PWM output I can control the variance between the 4.0vdc and the 2.0vdc for forward / backward or left / right requests. This is controlled by activating the relay and then changing the PWM to get the direction that I want.
Step 5: Aux Controls
Activating the unit and controlling the speed. Again using the source 5vdc from the joystick controller I am tripping a transistor to pulse each input. The power and speed buttons are momentary, in this case I will use the software to turn the output pin on the Arduino high then low with a 500ms delay, simulating a button press.
Step 6: What’s it doing.
While working on this project I was given an old fire alarm panel. This panel had a Hitachi LCD display. This display, as I found is one of the most popular types available. So using one of the many examples on-line, I connected it to the Arduino. I use the LCD display to show me what the software is up to, Ie. on-line, power control, forward, backward, etc. I accomplished this using a simple LCD print command at each instruction. I also printed each “direction” to serial output as well.
Step 7: Who, What, Where
The pin-out for the Arduino is as follows. Pin 0-1 are used as rx-tx. Pins 2,3,4,5,11,12,13 are used for the LCD. Pin 13, the onboard LED pin is connected to the LCD back-light. Pins 6+7 are for future use. Pin 8 trips the override relay. Pins 9+10 are the PWM outputs for directional control. I’ve used analog inputs 1,2,3 as outputs 14, 15, 16. Pin 14 is Speed up. Pin 15 is Speed down, and pin 16 is Power control.
Read more: Buggy Wheelchair Robot using an Arduino