I am getting started with the Arduino by taking a "Making Gadgets" course in my return to University. For the final project, I will be creating an Arduinio controlled sensor and display system for a manual wheelchair.
At this moment I am looking for which sorts of sensors and parts I will be needing (and if you think this project is feasible for a beginner who is actively learning the basics in a formal class as I go).
We are using the UNO in the class, but it doesn't matter which Arduino we use for the project.
The target user would have paraplegia so leg/foot based controls cannot be used, and the hands need to be kept free to operate the chair. It must be a manual chair since I already have one that I can play around with. Sensors should not be placed anywhere on the hand rims since they are needed to propel the chair.
What I plan to have so far:
A display on the back of the chair that can show LEFT, RIGHT, BRAKE, and REVERSE signals (like on a car)
When not displaying anything from #1, it should be able to show a custom message (eg "Sit down for what you believe in") that the user can change. For now, I will likely use char arrays in the sketch, but will try use other interfaces to change the messages if I have time.
LEFT and RIGHT should be signaled by the user in some way, prior to the turn. My thought is a pair of pressure sensors (1 on each side) on the side of the chair that can be quickly tapped to indicate a turn. The turn signal would turn off after 5 seconds automatically.
BRAKE should be automatically detected without input from the user. With a bit of coding work, it shouldn't trigger the display from normal variations in speed - only when the user is actively braking the chair.
REVERSE should also trigger automatically. I'm also thinking of adding a speaker to add an audible warning much like large trucks and buses.
One sensor that can do both is better than 2 sensors, each doing a different job, but I am open to using 2 sensors as well.
Finally, distance sensors that can sound a proximity alarm (or for rear facing sensors, also display a "You're standing too close" message on the display screen).
I would appreciate any advice on which parts to buy and what I should be looking for. I have a bit of a budget, but also don't want to buy $60 parts when a couple of $5 parts will do the same job.
A gyro is not a good idea for 4) and 5); a photo interrupter, encoder wheel, or hall sensor should be used for watching the motion of the wheels. Pololu sells a wheel encoder that would probably work well if you used the spokes of the wheel to record motion (you just need the encoder itself, but the previous link shows how it all goes together).
If I am reading the datasheet correctly, it wouldnt be able to detect a turning of the wheelchair. It would only detect a tipping of the wheelchair forward, back, or to one of the sides. The diagram labeled 'rate sensitive axis' describes this. THe only way this would really work is to put a gyro sensor on both wheels, which would be a problem..
If I am not mistaken, one wheel moves more than the other during a turn. As chagrin said, a sensor watching the spokes of the wheel would suffice. Speed can be measured in spokes/second or whatever other time constant is convenient. When one wheel's SPM is (x amount) higher than the other's, a turn is occurring. the X amount can be changed to accommodate wheels with different amounts of spokes and other variables.
That would leave you with the issue of distinguishing forward from backward.
Thanks Chagrin for the options. I just looked at the encoder, and while I don't understand everything right now, that will probably change in a few weeks once I learn a bit more about these kinds of things.
Angelo - thanks for explaining why the gyro won't work. Much appreciated. As for the turns, my plan is to have the user manually indicate a turn is coming up before the chair actually turns. Just like in a car, you (supposed to anyway) activate the turn signal prior to actually turning the wheel.
Depending on my time and materials, I might just make use of the turn detection to turn OFF the turn signal rather than just using a constant time. That method would be even more like a car with an automatic deactivation of the turn signal, but this will be a fine tuning of stuff that is already there.
Looks like the Pololu encoder can detect forwards and backwards motion as well. Once I learn a bit more, I will revisit the datasheet, as the price is certainly in my budget.
Feel free to keep the ideas coming. I'm likely going to learn more with this project than anything else I do.
If you are not a wheelchair user yourself it might be an idea to ask somebody who is what they would like. There may be age related differences. I could be on completely the wrong tack but perhaps some kind of gps / fitness setup might interest younger people, akin to what you can get for bikes (maybe a bit advanced for Arduino though).
You can actually get bicycles with sails now, that would certainly be something on a wheelchair, but I am getting carried away
Radman : My daughter has been in and out of the chair for a few months while recovering from simultaneous injuries to BOTH ankles, so I am getting some insight from her on that. One of my clients is a non-profit that works with people with disabilities, so I get to interact a lot with their clients while I work on the computer system. Those are the main reasons I chose the topic, I have some previous inspiration and will get some technical advice from long term chair users. For some of them, this will be the first time they have ever been asked for advice.
Since this is a first year project, I don't want to get too complicated, and I doubt the materials will stay on the chair permanently. Once my daughter is fully recovered, we will likely pass the wheelchair on to someone else who needs it. GPS/Fitness would be cool, but as you say, likely a bit advanced.
Sail: You are right, that would be cool, but not really an Arduino project.
Geldhart:
Thanks Chagrin for the options. I just looked at the encoder, and while I don't understand everything right now, that will probably change in a few weeks once I learn a bit more about these kinds of things.
Angelo - thanks for explaining why the gyro won't work. Much appreciated. As for the turns, my plan is to have the user manually indicate a turn is coming up before the chair actually turns. Just like in a car, you (supposed to anyway) activate the turn signal prior to actually turning the wheel.
Depending on my time and materials, I might just make use of the turn detection to turn OFF the turn signal rather than just using a constant time. That method would be even more like a car with an automatic deactivation of the turn signal, but this will be a fine tuning of stuff that is already there.
Looks like the Pololu encoder can detect forwards and backwards motion as well. Once I learn a bit more, I will revisit the datasheet, as the price is certainly in my budget.
Feel free to keep the ideas coming. I'm likely going to learn more with this project than anything else I do.
I think you are on the right track when you say the user will manually press to use the turn signal. There's no way to program which way the user INTENDS to go, only where he is currently going.
If I am not mistaken, a wheel encoder counts the number of spokes that passes through its sensors. The encoder itself is below:
It says that the two sensors produce wave forms out of phase with each other, which allows you to know which direction the wheelchair is going. I don't know if this particular sensor would be good for your application, to be honest. It seems that the wheel encoder caters specifically to the wheel included in the set. If you look at the wheels and the encoder itself, they go hand in hand. The encoder is made to count the spokes on that specific wheel. You may need to find another wheel encoder or make one yourself.
angelo-g:
It seems that the wheel encoder caters specifically to the wheel included in the set. If you look at the wheels and the encoder itself, they go hand in hand. The encoder is made to count the spokes on that specific wheel. You may need to find another wheel encoder or make one yourself.
The IR sensors on that encoder simply detect when the light is reflected back. With their black wheel / white spokes it can see the color difference, but with a wheelchair the chrome spokes should be more than shiny enough to get a reflection. You will have to fiddle with the positioning of the encoder in getting it the right distance from the spokes but it shouldn't be too much of a problem.
There's nothing too special about that specific encoder other than it is packaged up nicely. You could duplicate it with an IR emitter, phototransistor, and a 220R and 47K resistor if you wanted to.
My daughter has been in and out of the chair for a few months while recovering from simultaneous injuries to BOTH ankles
Ouch, I hope she makes a good recovery.
will get some technical advice from long term chair users. For some of them, this will be the first time they have ever been asked for advice.
As a non-user I admit I was a bit sceptical about the signaling options but the point was to ask so if that is the feedback go for it.
The GPS idea is a bit advanced because of the display requirements if you go down the mapping route, but speed distance etc. would be feasible.
Sail: You are right, that would be cool, but not really an Arduino project.
It was a wild idea, and you did ask for ideas. It might not be totally daft though and maybe not totally outside the limits of an Arduino. In fact I may just have devised a new paralympic sport. Imagine a sand yacht where the sail is motor controlled.
Here is a link to bicycles with sails, I know we are stretching the topic of your post but you may find it of interest.
The Dutch seem to have been the first to put sails on bikes http://www.whike.com/en/pagina/25/about-the-whike