FINAL PROJECT: Omnidirectional Platform Controlled by Android

The idea of the project is to make a platform to move people who are in wheelchairs and improve their mobility in confined spaces using a mobile application installed on their mobile or tablet. A platform driven by four motors and four omnidirectional wheels allows the user to scroll in any direction with his wheelchair above the platform.

The first idea...

Note: omnidirectional wheels have three degrees of freedom and allow longitudinal, transversal and rotational movement.

The project is divided into three working areas where I apply different disciplines that I have learned during the course.

___________________________ELECTRONIC DESIGN___________________________________

It’s basically formed by 3 different electronic boards, one battery and four DC motors.

Main Board:

This board receives commands through its serial port, translates these into speeds and then it sends this information through 8 digital outputs: 4 PWM signals and 4 signals to define direction of rotation.

I decided to use the Barduino because it has all the outputs that I need and it is very easy to program.

In this picture I annotated the pinout that I used for engine drivers and the bluetooth module.

To connect the Barduino with the other boards, I made a simple shield using a prototype board with all necessary outputs.

Motor controller board:

This is the board for moving each of the DC motors. It’s a board basically formed by "H-bridge" and a "gate driver" for switching Mosfets doors.

The majority of integrated drivers as the A4953ELJTR not support more than 2 o 3 amperes. My platform has to move with the weight of a person and the power of each motor will be high so I considered necessary to do my own power board.

Another thing that I added in the design is an optocoupler. The idea is to control each motor using a direction signal and PWM signal only, because the majority of schemes used 2 PWM signals. In this case I would need 8 PWM outputs and another Barduino board control. First I did all the tests on a test board to verify correct functioning. Then I started PCB design using Altium program and finally I export the file to png image to make it with a milling Modela.

To be able to design the plate to one side without using many bridges,I found it necessary to use a plate with two sides covered with copper, so as to use one of them as ground.

Is very IMPORTANT to pass a wire through all holes and welding it on both sides of the board!!

Design files:






Bluetooth communication board:

This board allows the connection between the mobile and the main board by Bluetooth. It has Bluetooth communication module RN42.


Essential element that will provide the power needed to move the device. This platform has to pull the weight of a person, therefore It's important to provide the system with a battery of about 42Ah. I use gel batteries for this type of applications. In this prototype I have used a less amperage battery for testing. The voltage must be 12V, because the engines work with that voltage.

The idea is to put the batteries on top, but as I use a smaller battery I preferred to place it underneath and improve aesthetics. :)


I have used 4 DC motors Ref:CIG420040. Features: 12V and 40W with a planetary gearbox and a rotation speed of 120 rpm.

_______________________ANDROID APPLICATION DESIGN______________________________

I use “Eclipse as an environment to programme the application with the ADT plugin (Android Development Tools). I'm not an expert in java language but there are a lot of samples that helped me to create my application. I had worked many hours on this application until I found the result I wanted, and I'm still improving to.

The application will be divided into two basic parts:

o Communication: responsible for managing the Bluetooth communication between the main board and the mobile or tablet.

o Send Data: Controls movement across the touch screen. Converts the position of the fingers on display in values ranging from 0 to 127 in one direction and from 0 to 127 in the other direction for the X axis and Y axis and sends this information by bluetooth. When the main board receives these values, they are converted into longitudinal, transversal and rotational speeds.

__________________________MECHANICAL DESIGN_________________________________

I have made a design that allows to place a wheelchair on the top of the platform easily. Its dimensions do not exceed the normal size of conventional wheelchairs. After knowing the possibilities of "composites" I decided to make the platform using 3 layers of wood.

I considered the size of all components: motors, wheels, electronic boards, battery... and I did the design with Rhinoceros.

I used the laser cutter to cut all the wooden slats and to do the engraving.

After that, I started with the process of vacuuming and I waited...

Then I had to polish the wood and review the holes...

Additional mechanical pieces...

In order to get the wheels to the engine I needed to make a piece of metal. Thanks to the workshop that I have in the company where I work and with the help of Andrew, a partner could make parts with a lathe.

Another piece that I had to design is the engine bracket to hold the wood. This piece was designed in Rhino and then I had an external company manufacture the laser. It's a piece composed by two welded part.

Leveraging support of my company I could the base to hold a conventional chair on the platform. It is a concave part used in many conventional chairs.

From here I started with the setting up of the platform. First with engines and wheels, then with the placing the footrests and finally with the electronics.

After several hours of work, I placed the chair above the platform and checked whether it was fitting in properly.

The most important moment was when, after having done countless tests separately, I finally connected all pieces at once. After some software settings this was the result...