You are on page 1of 7

Multi Controlled Wheelchair

S. Manoj, Ayswarya Vijayan, Shilpa N, Viswapriya R.

Abstract- Our paper aims to help handicapped and paralyzed people all over the world. Wheel chairs with joystick control are already available in market at starting rate of 50,000Rs and going as far as 1lakh. But if we examine carefully we can see that majority of the disabled people cannot afford this. Also we can see that the quadriplegic patients cannot use this joystick control wheelchair because of their disability. Hence we propose a multi-controllable wheelchair that provides various controls by means of voice, head tilt, using hand movement in joystick & touch in touchpad for various categories of disabled people. Index Terms electric wheelchair, voice control, multi controlled wheelchair, head controlled, accelerometer, low cost wheelchair. I. INTRODUCTION

quantities. One possible reason why HMMs are used in speech recognition is that a speech signal could be viewed as a piece-wise stationary signal or a short-time stationary signal.That is, one could assume in a short time in the range of 10 milliseconds, speech could be approximated as a stationary process[5]. Converting a speech waveform into a sequence of words involves several essential steps: 1. A microphone picks up the signal of the speech to be recognized and converts it into an electrical signal. A modern speech recognition system also requires that the electrical signal be represented digitally by means of an analog-todigital (A/D) conversion process, so that it can be processed with a digital computer or a microprocessor. 2. This speech signal is then analyzed (in the analysis block) to produce a representation consisting of salient features of the speech. The most prevalent feature of speech is derived from its short-time spectrum, measured successively over short-time windows of length 2030 milliseconds overlapping at intervals of 1020 ms. Each short-time spectrum is transformed into a feature vector, and the temporal sequence of such feature vectors thus forms a speech pattern. 3. The speech pattern is then compared to a store of phoneme patterns or models through a dynamic programming process in order to generate a hypothesis (or a number of hypotheses) of the phonemic unit sequence. A speech signal inherently has substantial variations along many dimensions.Before we understand the design of the project let us first understand speech recognition types and styles.

Wheelchairs are the easiest means of transport for disabled people. With the improvements in technology various improvements such as joystick control[7], voice control[12] are becoming available for ease of patients. Main disadvantage is that these are not affordable & comes at high prices.Hence we a multi-controllable wheelchair which provides various controls for disabled people at fairly low price. 1. 2. 3. 4. Voice Control- Can be used by any people except blind people to control the wheelchair. Head Control- Can be used by dumb people and other quadriplegic patients for wheel chair control. Joystick control- Can be used by others for wheel chair control where the user can control the joystick. Touchpad Control- Use touchpad for wheelchair motion & switching to menu. Password protection is also provided via speech recognition to prevent misuse of the wheel chair. The various modes of control of wheel chair can also be selected via speech recognition.




A. Voice Recognition and Control Modern general-purpose speech recognition systems are generally based on hidden Markov models (HMMs)[4]. This is a statistical model which outputs a sequence of symbols or

The heart of the speech recognition module is the HM 2007 voice recognition chip. It can store up to 20 words, each of duration 1.92 seconds. Password protection is also provided via speech recognition to prevent misuse of the wheel chair. The various modes of control of wheel chair can also be selected via speech recognition. The chip has two operational modes; manual mode and CPU mode. The CPU mode is designed to allow the chip to work under a host computer. This is an attractive approach to speech recognition for computers because the speech

recognition chip operates as a co-processor to the main CPU. The jobs of listening and recognition dont occupying any of the computer's CPU time. When the HM2007 recognizes a command it can signal an interrupt to the host CPU and then relay the command code. The HM2007 chip can be cascaded to provide a larger word recognition library. The circuit we are building operates in the manual mode. The manual mode allows one to build a standalone speech recognition board that doesn't require a host computer and may be integrated into other devices to utilize speech control. The major components of this design as in fig. 1 are: a speech recognition chip, memory, keypad, and LED 7-segment display. The chip is designed for speaker dependent (one user) applications, but can be manipulated to perform speaker independent (multiple users) applications. The keypad and LED 7-segment display will be used to program and test the voice recognition circuit.

(e.g. X or Z), where values in two directions are converted to degrees and compared to determine the quadrant that they are in.

where: VOUT = Accelerometer Output in Volts VOFF = Accelerometer 0g Offset V/g = Sensitivity 1g = Earth.s Gravity = Angle of Tilt Solving for the angle:


Fig. 2 Read values from an accelerometer.

Fig. 1 Speech Recognition Hardware Implementation.

B. Head Control In order to determine the angle of tilt, , the A/D values from the accelerometer are sampled by the ADC channel on the microcontroller as in fig. 2. The acceleration is compared to the zero g offset to determine if it is a positive or negative acceleration, e.g., if value is greater than the offset then the acceleration is seeing a positive acceleration, so the offset is subtracted from the value and the resulting value is then used with a lookup table to determine the corresponding degree of tilt, or the value is passed to a tilt algorithm. If the acceleration is negative, then the value is subtracted from the offset to determine the amount of negative acceleration and then passed to the lookup table or algorithm[6]. One solution can measure 0 to 90 of tilt with a single axis accelerometer, or another solution can measure 360 of tilt with two axis configuration (XY, X and Z), or a single axis configuration

Fig.3 accelerometer connection.

Fig.4 Sense axis of accelerometer

Fig.6 Joystick interfacing with arduino

Fig. 5 Plot of Voltage Vs Angle in accelerometer.

D. Touchpad Control Capacitance Measurement The complete capacitance measurement system is composed by sensing electrode pads connected to the MPR121 sensing inputs, and the MPR121 communicating with the host processor via the I2C bus and Interrupt output. The total measureable sensing channels is 13 channels, including 12 physical electrode inputs and one multiplexed 13th channel for proximity detection.. After the capacitance is measured, it then get noise filtered and finally touch /release status is determined. The 10bit output data (or even the 8 bit baseline value providing an even higher level of noise rejection for slowly changing mediums) can be used as the capacitance measurement output relating to the measured parameters such as the water level, displacement, or medium content change. The capacitance measured on each sensing channel, is the total capacitance to ground which can be the combination of background parasitic capacitance to ground (Cb) and finger touch induced capacitance to ground (Cx).


The analog output voltage from the accelerometer for degrees of tilt from -90 to +90. The change in degrees of tilt directly corresponds to a change in the acceleration due to a changing component of gravity acted on the accelerometer. The slope of the curve is actually the sensitivity of the device. As the device is tilted from 0, the sensitivity decreases. You see this in the Fig. 5 as the slope of output voltage decreases for an increasing tilt towards 90. Because of this nonlinearity, the degree resolution of the application must be determined at 0 and 90 to ensure the lowest resolution is still within the required application resolution. C. Joystick Control The 2-Axis Joystick can be used to add analog input to your next project. The 2-Axis Joystick contains two independent potentiometers (one per axis) that can be used as dual adjustable voltage dividers, providing 2-Axis analog input in a control stick form[7].

Fig. 7 Capacitance measurement

The MPR121 uses a constant DC charge current scheme for capacitance measurement. Each channel is charged and then discharged completely to ground periodically to measure the capacitance. All the channels are measured sequentially, when one channel is in the charge/discharge and measurement period the other channels are shorted to ground. The amount of charge (Q) applied is programmable by setting the charge current (I), and the charge time (T). Once the electrode is charged, the peak voltage (V) at the end of charge is measured by internal 10bit ADC. This voltage V (that is the ADC counts) is reverse proportional to the capacitance (C) on the sensing channel.

pins of the Arduino: A4, A5, and D2. The MPR121 speaks a kind of unique serial language called I2C. I2C requires just two wires for communication one for a clock (SCL), and one for data (SDA) which are connected to Arduino's A4 and A5 pins. Be aware that you probably should avoid using those two pins for anything but communicating with the Touch Sense Shield. Only one other pin is connected between the touch sense controller and the Arduino: an interrupt output from the MPR121 to Arduino's digital pin 2. This pin is controlled by the MPR121 IC. E. Motor Controller Hardware Architecture The design involves running the BLDC motor in a closed loop, with speed as set by a potentiometer[1]. As displayed in the architecture diagram, the design generates PWM voltage via the Z8FMC16100 PWM module to run the BLDC motor[2]. Once the motor is running, the state of the three Hall sensors changes based on the rotor position. Voltage to each of the three motor phases is switched based on the state of the sensors (commutation). Hall sensor interrupts are counted to measure the motor speed. Other peripheral functions are used to protect the system in case of overload, under-voltage, and over-temperature. The hardware is described in the following sections[3]. Three-Phase Bridge MOSFET The three-phase bridge MOSFET consists of six MOSFETs connected in bridge fashion used to drive the three phases of the BLDC motor. The DC bus is maintained at 24 V, which is same as voltage rating of BLDC motor. A separate Hi-Lo gate driver is used for each high- and low-side MOSFET phase pair, making the hardware design simpler and robust. The high-side MOSFET is driven by charging the bootstrap

=/=/, ==

Fig. 8 MPR121 Capacitance measurement


The Touch Sense Shield is really a very simple board[9]. It has got one little chip on it -- an MPR121 touch sensor controller and some extra circuitry to limit the voltages on that chip to 3.3V. The Touch Sense Shield uses just three

capacitor. The DC bus voltage is monitored by reducing it to suitable value using a potential divider.The DC bus current is monitored by putting a shunt in the DC return path. An NTCtype temperature sensor is mounted on MOSFET heatsink, providing analog voltage output proportional to temperature. PWM Module The Z8FMC16100 contains a six-channel, 12-bit PWM module configured in this application to run in Independent mode. The switching frequency is set to 10 KHz. The output on the individual channels is controlled according to the inputs from the Hall sensors.The inputs from the Hall sensors determine the sequence in which the three-phase bridge MOSFET is switched. The Duty cycle of the PWM is directly proportional to the accelerator potentiometer input. The change in the duty cycle controls the current through the motor winding, thereby controlling motor torque. Commutation Logic The Hall sensors are connected to port B pin PB0, PB1, and PB2 on the Z8FMC16100. An interrupt is generated when the input state on any pin changes[11]. An interrupt service routine checks the state of all three pins and accordingly switches the voltage for the three phases of the motor. Trapezoidal commutation is used for this application to make implementation simple. In this process of commutation, any two phases are connected across the DC bus by switching the top MOSFET of one phase and bottom MOSFET of another phase ON. The third phase is left un-energized (both top and bottom MOSFET of that phase are switched OFF).

Speed Measurement The Hall sensor outputs are connected to port B bits 0, 1, and 2. Interrupts generated on port B bits 0, 1, and 2 are counted every second. The one-second time interval reference is provided by Timer0. With an interrupt occurring every 1 ms, 1000 counts are required to complete a one-second interval. Closed Loop Speed Control The closed-loop speed control is implemented using a PI loop, which works by reducing the error between the speed set by the potentiometer and actual motor speed. The output of PI loop changes the duty cycle of the PWM module, thereby changing the average voltage to the motor and ultimately changing the power input. The PI loop is periodically timed at 128 ms by Timer0 interrupt. Protection Logic The ADC module periodically checks DC bus voltage,DC bus current, and heat sink temperature. If these values go beyond the set limits, the motor is shut down. These checks are timed by Timer0 interrupt. Over-Current Hardware Protection The Z8FMC16100 has a built-in comparator that is used to shut down the PWM for over-current protection. When the current exceeds the set threshold,a PWM Comparator Fault is generated to turn OFF the PWM Module.

Fig.9 Motor Controller block diagram

Microcontroller Board

Fig. 10 Arduino Mega 2560 board

The voice control is speaker dependant & responds very well to the person who trained the system. Thus the person who trained the system can only operate the system efficiently. We calibrated various voltage values for joystick movements, head tilt using accelerometer. Then converted these voltages to a digital count between 0 & 1023 using inbuilt 10 bit ADCs in arduino mega board & mapped different directions for these values & hence controlled the direction of wheel chair using arduino programming. Before testing this directly using motor we simulated their working in arduino serial monitor. We were also successful in interfacing touchpad & wrote a complex IIC program for serial communication of data[8]. We were able to reduce the overall cost to Rs 30000 which was our primary aim. Thus we were successful in designing a low cost efficient multi controlled wheel chair.

It has 54 digital pins of which 14 pins can be used as PWM outputs and 16 analog input pins which makes this board a good selection to implement our project. Coding will be done on arduino software which is an open source software.There are 4 serial ports in arduino mega.

We used Arduino [10], a free software for our simulations & programming purposes. The board that we used was arduino mega 2560 which is quite an advanced version of arduino board. We successfully interfaced all our modules with the arduino board & observed our simulations in the arduino serial monitor.

Overall, we feel that this paper met most of our expectations, as we were able to build an economical and multi- controlled wheelchair. If we had more time and funding we could have implemented a more enhanced version. This system can be developed in future to a brain controlled or stair climbing wheelchair. Other enhancements are standing wheelchairs & all terrain 6 wheel drive wheelchairs. Since our main aim was to design a low cost wheelchair such designs are out of our reach. This was also a tremendous learning experience for us, especially with the hardware. We learned more about Arduino open source, efficient circuit design, and hardware debugging. This endeavor of ours also helped in fine tuning our software skills. Through this paper, we got valuable experience in developing efficient software using memory and run-time optimizations, that which cannot be gained through routine assignments.

Fig.11 Arduino simulations for touchpad working

[1] eZ8 CPU User Manual (UM0128) [2] Z8FMC16100 Series Product Specification (PS0246) [3] PID Motor Control with the Z8PE003 Application Note (AN0030) [4] L. R. Bahl, P. F. Brown, P. V. de Souza, and R. L.Mercer, Estimating hidden Markov model parameters so as to maximize speech recognition accuracy, IEEE Trans. Speech Audio Processing, vol. 1, no. 1, pp. 7783, 1993. [5] Janet M. Baker, Li Deng, James Glass, Sanjeev Khudanpur, Chin-Hui Lee, Nelson Morgan, Douglas OShaughnessy (MAY, 2009). "Research Developments and Directions in Speech Recognition and Understanding, Part 1". IEEE SIGNAL PROCESSING MAGAZINE. Retrieved May, 2010. [6] Accelerometer based measurement of body movement for communication, play, and creative expression. M. Nolan, E. Burke and F. Duignan [7] Force Feedback Joystick Control of a Powered Wheelchair: Preliminary Study Fattouh, M. Sahnoun and G. Bourhis [8] MPR121, Proximity Capacitive Touch Sensor Controller Freescale datasheet. [9] Sparkfun website [10]Arduino reference page [11] T.G. Wilson, P.H. Trickey, "D.C. Machine. With Solid State Commutation", AIEE paper I. CP62-1372, Oct 7, 1962 [12] Relational Interface for a Voice Controlled Wheelchair Stefanie Tellex