Subject: Request for Assistance – Accessibility App Project with MIT App Inventor (App Inventor controlled electric wheel chair)

Hello,

I am a person with a disability and I would like to control my electric wheelchair using my mobile phone via Bluetooth. I have some knowledge in electronics, but unfortunately, I have very limited experience with software development.

Right now, I am trying to use MIT App Inventor to create this project, but I’m finding it very difficult to achieve everything on my own due to my lack of coding skills.

Here is my dream for the app:

  • The wheelchair connects to my phone via Bluetooth.
  • There is a joystick area (a circular button) in the center of the screen.
  • When I slide my finger forward, backward, left, or right, the wheelchair should move accordingly and come to me.
  • At the top of the screen, I would like to display battery voltage, speed, and total distance traveled.

This project means a lot to me because it would make my life significantly easier and give me more independence.

If anyone can help me by creating a .aia project file for this system, I would be deeply grateful.

Thank you so much in advance to anyone who is willing to support me.

Sincerely,
Hasan Acar

Something that could work for you Hasan is certainly possible. There are several Projects made by others that control electric motor drive robot cars. using App Inventor software.

I expect you probably would control your electric wheel chair using a combination of an Android cell phone or tablet a mini computer and an Android device Exactly what you need to do depends on the wheel chair you expect to control.

These are just ideas. I haven't any experience with this sort of Project but someone else might be. Look at the Arduino project videos in the link and let us know what you think you are capable of. If you have specific questions about how to do something with the software parts of the Project, the community will help.

Good luck. :slightly_smiling_face:

The wheel chair motors would receive commands from an Arduino mini computer controlled by Bluetooth and a software joystick on your cell or tablet made using the tools in App Inventor.

To give you some ideas about what others have done using Arduino is a search of Projects that control the wheel chair using the mini computer

App inventor software is only part of what you will need.

  • The wheelchair connects to my phone via Bluetooth. and a mini computer
  • There is a joystick area (a circular button) in the center of the screen.. The controller can be made using the Canvas tool or an extension [FREE]JoyStick extension
  • When I slide my finger forward, backward, left, or right, the wheelchair should move accordingly and come to me.. This can be done with small electric motor cars. See the first link.
  • At the top of the screen, I would like to display battery voltage, speed, and total distance traveled. Battery voltage is possible. Speed and distance travelled might be difficult. Why? Tools using gps and the map components that can measure these things and display them on a Map are suitable for a wheelchair used outside. How it would be done in a room or building I don't know how it might be done.

.

Hello SteveJG,

First of all, thank you so much for taking the time to help me and for sharing your thoughts. Your guidance and encouragement meant a lot to me.

I’m currently developing a system that allows an electric wheelchair to be controlled via a joystick on an Android phone. The hardware side is mostly complete and working. Here is a list of the components I’m using:

:wrench: Hardware Components:

  • Arduino Uno R4 WiFi
  • MCP4725 I2C DAC Module (for motor speed control)
  • MLX90393 Hall Effect I2C Joystick
  • HC-05 Bluetooth Module
  • Hall Effect Magnetic Sensor + Neodymium Magnet (for speed/distance tracking)
  • Voltage Sensor (to monitor battery level)
  • 2-channel, 0.5–5V input, 50A motor driver
  • 2 x 250W / 24V DC motors

I’m an electronics technician, and I’m very confident on the hardware side.
I’ve already implemented direction control using relays and speed control using the DAC module — all handled by Arduino.
However, I would appreciate help with the visual and structural part of the app in MIT App Inventor.

Below I’ve attached an image of the sample UI I designed.
It shows what I would like the phone interface to look like:

  • At the top: battery voltage, current speed, and total distance (side by side)
  • In the center: a circular joystick that can be dragged
  • At the bottom: buttons to turn Bluetooth on and to select a device

I would like to request an .aia file that matches this interface and sends joystick X/Y values via Bluetooth to my Arduino.
Even if the speed, battery, or distance displays use mock values for now — that’s okay.
I will handle the rest on the Arduino side myself.

Thank you again for your support.
Best regards,
Hasan Acar Here is the UI image I mentioned:
Click to view the UI design

Dear @hasanacar,
apart of the high current needed to drive your motors (to this purpose I suppose you're using the 50A motor drivers: how do you drive them, via PWM ? Don't they whistle when you raise up the speed ?) how do you intend to manage the direction ?
I mean: I suppose you have one motor each wheel (one motor on the Right wheel and another on the Left wheel), therefore to control Righ/Left you'd probably have to power supply only one while keeping steady the other and, to control the direction (back and forward) you'd reverse the polarity of the command to both ? Agreed that with the Hall effect you can control the speed and by its integral you can estimate the distance,where do you put the pick-up ? One for each wheel ? Are your wheels like those of bycicles ? (or you measure the distance and the speed is its time derivative ?) If you have two hall sensors, one for each wheel, you shall carefully perform the arithmetic average and implement a strong filter to avoid the loss of (or unwanted) pulses.
Since in your picture you have designed a flat-circled-type-joystick, have we to suppose the also the diagonal directions shall be managed as well ? For example if you push @45° right-up the dial, you'd like to go forward+right @45° ? This means that probably the easiest solution can be to send via BT to your Arduino the amount in degrees (i.e. 45°) and then it's a task of your Arduino to make the vectorial composition of the movement, by driving the left wheel with a higher voltage with respect to the right one, to obtain a 45° right and forward movement.
Most probably at a first step you should "survive" with a two step movement: 1st step to rotate a bit on the right the chair, then, 2nd step to go forward. When you will be done with that basic movement you will improve the movements with the
diagonal ones.

In a third step you could also add an ultrasonic sensor to your chair, in order to avoid to bump some furniture (and your wife's scolding :rofl:). and with the aid of this sensor and a map of your apartment you could also automate some basic movement within it (the apartment). More ideas to come...

In any case, you can search the forum for topics related to the driving of robot cars via AI2.
There are also tutorials on the matter (BT communication, motors drivers, joysticks, etc) on the web sites of some Power Users like @ChrisWard, @Juan_Antonio, @TIMAI2, @Taifun, and many others.

Lastly (for now): I see that you use the HC05 to perform the BT communication: this is fairly the best solution (with respect to BLE) because it's much simpler and you'll find many topics on that.
My hint is to start with a super simple app with the unique task to have a strong BT communication, i.e. to be capable to quickly resume after a power failure or after a disconnection (search the forum with the tag "handshake"). In case of long lasting disconnection your chair must go into a limp-home condition, or to stop immediately. To this purpose attached to the handshcke it would be good to have also the watchdog on Arduino, enabled.

(really ..)Last: just be careful to the Android version of your phone, or Android tablet, because the latest versions of Android are appllying almost daily, higher and higher restrictions to the use of interfaces. Therefore if you plan to use a specific device, be careful to block any Operating System automatic upfdate, otherwise you could run the risk to have a working app that suddenly stops working after a system update ... :rage:

Best wishes and feel free to ask further (i'll be abroad the whole next week but later I'll be back, hopefully).
Cheers.

1 Like

Dear uskiara

Thank you so much for your detailed and thoughtful feedback.

Yes, I’m using 2 powerful 50A motor drivers, and I control them with 0–5V analog signals generated via an MCP4728 DAC module (no PWM, no whistling sound at all).
For direction control, I'm using relays to reverse polarity separately for the left and right motors (each connected to one wheel).

For now, I plan to install a Hall sensor on only one wheel to measure speed and distance. The wheel is bicycle-style, with a small magnet attached directly to it.

You're absolutely right about joystick behavior: I’ve already implemented differential drive using X-Y analog values. Diagonal directions like 45° forward-right work well by adjusting motor voltages accordingly.

At this point, I don’t need obstacle detection, watchdogs, or indoor mapping. But your suggestions are very inspiring and I may explore them in the future.

However, one critical feature I will implement — thanks to your advice — is a Bluetooth heartbeat mechanism. If connection is lost, the motors will immediately stop and brakes will be applied for safety.


Now, if I may add one very important and heartfelt request:

I kindly, sincerely and deeply ask for your help on this:
I have complete control over my system and hardware. Everything works beautifully.
The only thing I desperately need is a working .aia file to control my system via Bluetooth from my phone.
Please, I ask you from the bottom of my heart — could someone help me by creating or sharing such a file?
It would truly mean the world to me and complete my project.

Thank you again for your time, knowledge, and support.
I will keep the topic updated once Bluetooth control is fully functional.

Best regards,
Hasan Acar

More specific advice would require settling on message formats.

Dear @hasanacar,
in the next two hours I'll take the flight for my trip abroad and for the next week I'll don't have the possibility to follow the forum, anyway, as you've seen, many other power users can give you help in the meanwhile. Not only, by digging the forum you'll find a lot of posts about joystick management. And don't forget to give a sight to the other PU's web sites. They are really a mine of information.
First of all, make the simple BT comm's between your Android device and the HC05 and rememeber to reverse the pins Rx to Tx and visa versa between Arduino board and HC05.
@ABG has already posted a link where you can find samples on that.
Best wishes,
Ugo.

Hello everyone,

I had previously asked for help on this topic and received some useful suggestions. I truly appreciate all the support so far :pray:

However, I couldn’t make the system fully work because my knowledge of software development is limited.

I’d like to add something important: I am a person with physical disabilities, and I am developing this project not as a hobby but as a real necessity for my personal electric mobility device. This is not a luxury for me — it’s a real daily need.

My hardware is mostly complete. I can control the motors via Arduino using a joystick.
What I now need is a Bluetooth-based Android app made with MIT App Inventor that can:

  • Provide a draggable joystick in the center of the screen
  • Communicate with Arduino via HC-05 module
  • Display real-time data such as:
    • Battery voltage
    • Current speed (km/h)
    • Total distance traveled (kilometers)
  • Include a button to reset the trip counter
  • Allow the user to select Bluetooth device and connect/disconnect

I’ve tried exploring MIT App Inventor projects and forums, but I couldn’t create a working system on my own.

If anyone has a working .AIA file or is able to help me build such a system, I’d be incredibly grateful.
I am even willing to pay for the support, if necessary.

This project is not for fun — it’s for real-world, personal use.

I’ve also attached a sample mockup image of the interface to show what I’m trying to achieve:
:link: https://drive.google.com/file/d/1G9m9IlJMx0TlipGUCqc7Fxt_MI5kcXTn/view?usp=drive_link

Thank you so much to anyone who can help :pray:

Hasan A.

Ways you might control the wheel chair 'robot':

JOYSTICKS with aia code

Simple joystick.

The above is what you say you want. The code is not finished. Experiment.

Robot

RobotControl.aia (6.1 KB)
This joystick can be used for initial testing. It can be used to test one command at a time or to set up a sequence of commands. This might be appropriate since you are For direction control, I'm using relays to reverse polarity separately for the left and right motors (each connected to one wheel).

VOICE CONTROL

Try the joysticks aia s out and find out for yourself if one method is what you want. :thinking:

OTHER STUFF OF POSSIBLE INTEREST

Possible Bluetooth sketch

1 Like