In this project I am looking to modify a wheelchair to control it with a raspberry pi, from there who knows it can change to something amazing.
Any ideas?
In this project I am looking to modify a wheelchair to control it with a raspberry pi, from there who knows it can change to something amazing.
Any ideas?
I’d first start with the basics: What kind of wheelchair are you looking to control? Do you have one? Is it electric or manual?
Yes I have one already, is electric.
Can you share the make/model?
Next logical question would be, what do you want to do that the stock controller doesn’t do?
Also, do you have a photo of the motors? They look like standard brushed motors but I can’t really tell from this angle. They will either look like this:
or something funky like this:
So the first goal is to control it with the raspberry to get access remotely, then add a camera an sensors front and back. Also add some lights
I was thinking to replace the stock controller for a motor driver controller in order to connect it to the raspberry but I am not sure is the right path.
Presumably the controls (joystick?) are connected via a wire to a more central controller. What is being sent along that wire?
They look like brushed, and if so you can use something like the Sabertooth 2x32 regenerative dual motor driver to control your motors, I have one on the electric beaver that’s at the space. It works great for wheelchair motors and can even control the power safety brakes…
Buuuuut, the catch is you have to write all your own code for smoothing out the input from the joystick and sending sane motor commands with proper acceleration, ramping, braking etc.
When I built the beaver and started working on the code to make it driveable I crashed it… often… into walls, benches, myself… also rolled it several times (the beaver won most of these contests). Not a big deal with what is essentially a bad idea toy, slightly more problematic for a chair.
I think I know where Jarrett is going, which is doing a man in the middle and connecting the pi between the joystick and stock wheel chair controller (which has all the proper ramping and safeties) might be a good avenue to investigate.
I don’t have anything to add to this thread however you might find some interesting ideas from the Endless Sphere Forums.
For example: Joy Stick Control for Mobility Scooter. - Endless Sphere
Which has a link to https://www.wheelchairdriver.com
Also came across Powerd wheelchair build - Endless Sphere
I would also question if there is a need for the Raspberry Pi. Unless you are planning on doing some advanced Lidar or other high computing computations you are better to stick with either an Uno, Mega, or Teensy. I have been making a remote control car and I was trying to do a whole bunch of stuff on an ESP32 as well as control the car. I ended up going to an Arduino Uno because of the reliability.
James Bruton on Youtube also does a ton of stuff with radio controlled stuff. He always uses a Mega or Teensy as the interface with the controls. Even when he integrates Lidar he uses a Pi for the Lidar and Mega for the controls. It worth checking out for some cool inspiration.
Hi, yes in fact the wheelchair works by itself but the idea is to connect it to a raspberry, it will work as the base to connect with other tools. Also will need remote access, remote access and will connect a gps to load routes to drive. Forgot to say it will have some cameras and sensor to drive safely but mainly will work as autonomus vehicle tool.
A question and some thoughts.
I am guessing this will not be a wheelchair when done. If it will be then you need some major thoughts into safety systems.
I would use the existing motor controller as it’s already there. Why spend money on a part that works. You can update it later if design warrants.
Previous comment was I think the best starting point; just tap into the joystick.
Might consider an Arduino to start with. Get basic joystick control running there and then command the Arduino from the raspberry pi. Some safety like loss of communication with the pi would cause an immediate stop.
There must me some sort of panic stop that cannot fail if the computer fails. Wheelchairs are heavy and could injure or cause damage if it were to run off uncontrolled due to hardware or software failure.
@lharris thanks for your feedback, I am still doing some research and yes you are right. I think will hack the joystick and connect it to an arduino. What I found hard is that the ISM is hardcoded by the manufacturer so I have to stay on their paramaters, not free to do more.
Will continue working on it, thanks for all your support.
That makes sense as the manufacturer would put safety limits on what can be commanded. I would still go with getting the basics working and then consider replacing the motor controller if need be.
God luck.
Thanks everybody for your support, every idea is really nice. The muffins seems to be very funny, actually I am thinking of doing something like that, really funny.
Ok, I have done a lot of research, actually was worried to ruin the joystick before start but lucky me was not the case. So I found a video, not the exact same model but helped me:
So I proceed to open the joystick, seem that is right. It has 2 power cables 24 V and 2 communication lines 3.3 V. So now I am looking to get a logic analyzer to monitor and understand the packets. Next steps:
Code the microcontroller to send the same packets, receive the packets and decode them to send the next ones.
Pretty challenging, I thought it was going to be easier. I am really happy to learn.
I am looking to get a logic analyzer but not sure wich one to get, here is some options.
Also I don’t know if you have some in the lab.
If one of you have a good option or some feedback will be so much help.
The second one you have is incredibly cheap in some places, like here for example: https://www.amazon.ca/Comidox-Analyzer-Device-Channel-Arduino/dp/B07KW445DJ/
It works well with Sigrok / Pulseview
It’s really good, for the price. The first one listed is a little nicer, but I don’t know if it’s $300 nicer.