3.final Dissertation - 16378
3.final Dissertation - 16378
by
Natthawin Vetsandonphong
16378
JANUARY 2016
by
Natthawin Vetsandonphong
16378
Approved by,
__________________
(ZAZILAH BT MAY)
PERAK
JANUARY 2016
CERTIFICATION OF ORIGINALITY
This is to certify that I am responsible for the work submitted in this project, that the
original work is my own except as specified in the references and acknowledgements,
and that the original work contained herein have not been undertaken or done by
unspecified sources or persons.
________________________________
NATTHAWIN VETSANDONPHONG
i
ABSTRACT
Falling down is among the major causes of medical problem that are faced by the elderly
people. Elderly people tend to injured themselves from falling down more often
especially when they are living alone. When a falling event occurred, medical attention
need to be provided immediately in order to reduce the risk of faller from getting severe
injuries which may lead to death. Several technologies have been developed which some
utilized webcams to monitor the activities of elderly people. However, the cost of
operation and installation is expensive and only applicable for indoor environment.
Some user also worried about their privacy issues. Current commercialized device
required user to wear wireless emergency transmitter in form of pendant and wristband.
This method will restrict the user movement and produce high false alarm due to
frequent swinging and movement of the device. This project proposed a fall detection
system which is cost effective and reliable to detect fall and alert nearby healthcare
center or relatives for help and support. For fall detection, accelerometer and gyroscope
was used to detect acceleration and body tilt angle of the faller respectively. By coupling
accelerometer with gyroscope, the accuracy of the system was improved due to reducing
in false positives and true negatives. False alarm was minimized due to the device’s
position mounted on the upper trunk of the user’s body. Alert system in form of Short
Message Service (SMS) was transmitted to the concerned authorities. Moreover, this
wearable device requires less implementation cost and provides a quick response. As a
result, this fall detection and alert system has the sensitivity and specificity of 95% and
90% respectively. However, the limitation of this device is unable to detect a user falling
against a wall and falling end in sitting position. Recommendation for future work is to
develop an interactive display which enables users to input nearby healthcare centre and
relative’s phone number.
ii
ACKNOWLEDGEMENT
First and foremost, I would like to take this opportunity to express my deepest
appreciation to those who support me in my Final Year Project (FYP). I always wanted
to thank the FYP coordinators for their continuous support and guidance.
A special gratitude I give to my FYP Supervisor, Ms. Zazilah Bt May who invested her
full effort in guiding me during my FYP. I would like to thank her for her enthusiasm,
encouragement and support, which become my inspiration and motivation for me to
successfully complete my FYP.
Not to forget, I would like to express to my family and friends for their love,
encouragement and support that I received during my FYP. Last but not least, I would
like to thank those who willing to perform testing on my fall detection and alert device.
iii
TABLE OF CONTENTS
Title page
Certificate of Approval
Certificate of Originality i
Abstract ii
Acknowledgement iii
Table of Contents iv
List of Figures v
List of Tables vi
iv
5.0 Chapter 5: Conclusion and Recommendation 30
6.0 References 32
7.0 Appendices 35
7.1 Appendix I: Gantt Chart and Key Milestones (FYP I) 35
7.2 Appendix II: Gantt Chart and Key Milestones (FYP II) 36
7.3 Appendix III: Pseudocode 37
7.4 Appendix IV: Program Code 38
v
LIST OF FIGURES
vi
LIST OF TABLES
Table 2: Budget 18
vi
CHAPTER 1
INTRODUCTION
1.1 BACKGROUND
Every country in the world was focusing on developing their nation which includes
growing the country’s population. According to the findings on world population by
United Nations in 2015[1], the global population is expected to have an increment of
more than 1 billion people within 15 years which can accumulated to 8.5 billion in 2030.
The fastest growing population which currently comprising 12% of global population is
the people who are aged 60 years old or above. This population is growing by the rate of
3.26% per year and expected to reach up to 1.4 billion in 2030.
With increasing number of older people, the demand for healthcare service increase
rapidly. Most of the people aged 60 or above are hospitalized due to falls. A global
report by the World Health Organization (WHO) [2] states that 28-35 percent of older
people aged 65 and above experienced fall each year and it is increasing to 32-42
percent for those 70 years and above.
Elderly people who live independently are exposed to higher risk of falls. Besides that,
falling down frequently may cause psychological and physiological damage that lead to
severe injury and even death if medical attention is not provided immediately.
In order to reduce the risk of elderly people getting harm from fall, medical attention
needs to be provided immediately. Therefore, a reliable fall detection system can help to
detect fall in elderly people and contact the nearest healthcare service for help and
support.
1
The fall detection system need to be user friendly which means it is easier to be used by
the elderly people. The system also must not interfere and disturb activities of daily
living (ADL) of elderly people. The system needs to be cost-effective and durable.
Elderly people who are living independently have a high risk of falling and injured
themselves. Falling down and become unconscious can be fatal because nobody is aware
of this falling event which may lead the faller to have more severe injuries. It is
important to have a quick response and rescue time if falling event occurs.
There are several technologies out there to help detecting fall in elderly people. One of
the fall detection systems utilized the webcam to monitor the activities of elderly people
and detecting fall. However, the cost of installation and operation is expensive and it is
only applicable for indoor environment.
Currently commercialized fall detection systems available require the user to wear a
wireless emergency transmitter such as pendant, necklace or wristband most of the time.
There are drawbacks in wearable device where elderly people tend to forget to wear the
device or unable to activate it after they become unconscious.
Therefore, there is a need for a device that can detect fall and transmit signal for help
automatically without a push of a button.
1.3 OBJECTIVES
There are few objectives to be accomplished by the end of this project. The aims of this
project are:
To develop an intelligent and effective fall detection and alert system using
smartphone and wireless sensor node
To develop a reliable and cost efficient fall detection and alert system
To develop a fall detection system that is user friendly and without causing
disturbance to activities of daily living of elderly people
2
1.4 SCOPE OF STUDY
This project mainly focuses on development of algorithm for fall detection and
alert system by using accelerometer and gyroscope.
The algorithm was designed and implemented in Arduino platform.
Selection of software and hardware was determined during the designing stage.
3
CHAPTER 2
LITERATURE REVIEW
Falling down is one of the major medical problems that faced by the elderly people. The
consequences of falling may be fatal if there is no immediate medical attention provided.
Hiring nurse and caregivers may be the best option to constantly monitor and support
activities of daily living (ADL) of elderly people, but the cost would be very expensive.
Moreover, it is difficult for the caregivers to constantly observe and assist elderly people
all the time. Falling event among the elderly people may occur when the caregivers are
not around to supervise which lead to the issue of reliability.
Therefore, an intelligent fall detection system that is reliable and cost effective must be
considered as an option to assist elderly people.
Currently available techniques that are used to design fall detection systems are
classified into three categories which are camera based method, acoustic based method
and kinematic based method. Figure 1 shows the three methods that are commonly used
for fall detection system. Each method has its own advantages and disadvantages over
another. All of these approaches helps to reduce the effort of nurse and caregivers to
monitor daily activities of the elderly people. Furthermore, they provide proper medical
attention urgently to the elderly in case of fall. Despite these advantages, there are still
many problems and the state-of-the-art in fall detection is quite premature.
There are still need for massive research in order to come up with a system that can
solve all the drawbacks of current traditional approaches. Method that can predict a fall
before it actually occurs needs to be developed so that preventive measures can be taken
quickly before any severe injuries happen.
4
Fall Detection System
This method utilized a few set of cameras and a microcontroller or a personal computer
(PC) as the dedicated server. General idea is that the camera is used to capture video or
image while transferring it to a PC for image analyzing and processing, segmenting
people from background and therefore a fall detection system. This method only
required single setup and can monitor multiple individuals.
Yu et al. [3] proposed a fall detection system using camera-based method by performing
posture recognition as shown in figure 2. In order to segment foreground region of a
person’s posture, background subtraction algorithm was implemented added with some
postprocessing to improve the results. Surprisingly, the outcome from the experiment
achieved a high rate of fall detection (97.08%) with minimum false alarm detection of
0.8%. Unfortunately, the drawback from this method is it having difficulty to detect fall
when there are multiple moving objects and occlusions occur.
5
Khawandi et al. [4] used an automated monitoring system with face recognition feature
to detect a fall in a certain area. The system utilized webcams to collect data such as the
velocity of person’s movement, position of the person, and distance between the person
and the camera. Such data was used to perform image processing in order to determine
whether the person is experiencing a fall.
Miaou et al. [5] proposed a fall detection system using a omni-direction camera and a
dedicated pc server. The benefit of using omni-camera is that it can capture image in
360° simultaneously in one shot. This eliminates the blind spots problem faced by the
conventional camera. The experimental results show a sensitivity of 78% without
personal information and rise up to 90% with personal information. The drawback of
this system is that the system requires the user to give the personal information such as
height, BMI index which will increase the implementation cost.
Nasution et al. [6] suggested a fall detection system by using a fixed camera and a
dedicated PC. Foreground is first segmented by subtracting the background from current
frame. Next, feature extraction which includes vertical and horizontal projection
histogram from the segmented foreground and angle between last standing posture with
current foreground bounding box. Although the system can recognize 90% of the falls,
occlusions problem still exists with this approach. Blind spot is also another major
concern especially for approaches that uses only single camera.
Foroughi et all [7] have developed a new approach for a fall detection system that based
on human shape variations. Combination of best-fit approximated ellipse around human
body, projection histograms of the segmented silhouette and temporal changes of head
pose are used to acquire clues for detection of different behaviors. Although the rate of
success at 88.08%, occlusion problems persists to happen.
6
2.2 ACOUSTIC BASED METHOD
Acoustic and ambience sensors are used in this method to detect falls among elderly
people. The cost for this method is relatively cheap compare to the camera based method
due to low cost hardware and implementation. Examples of the sensors used are infrared
sensors, vibration sensors and microphone. These sensors collect data and then transfer
it to a microcontroller or a PC for processing. Detection of falls only activated when the
data collected exceed a certain threshold or conditions set by the PC.
Winkley et al. [8] introduced Verity, an innovative system that utilizes state-of-the art
(SoC) to measure ambient/skin temperatures, accelerations and heart rate for real time
monitoring. The system consists of base station and direct monitoring device are able to
outperform currently available classifiers with higher distinguishing capability.
Yun et al. [9] suggested an acoustic-FADE which comprising of microphone array that
are arranged in uniform circular. Several processes include localization, beamforming
and height information are used to determine the source of the sound produced and
increase specificity and quality of the received signal. Fall detection was performed after
the process of feature extraction and classification.
7
In figure 4, small dots labelled one to eight are the omnidirectional microphones that
uniformly distributed along a circle with a radius of 0.25m. Results from the experiment
conclude that the system is not sensitive to the changing acoustic environment and floor
materials.
Alwan et al. [10] came up with a fall detection system that monitoring the floor
vibration caused by a fall. The system utilized a piezoelectric sensor coupled to the floor
by means of spring arrangement and mass. The result from the experiment shows 100
percent true positive and no false alarms. However, the drawback from this method that
it only can detect falls when elderly people fall down at that particular area. Moreover,
the vibrations cannot be detected on all types of floor materials.
Popescu et all [11] proposed a fall detection system based on array of acoustic sensors.
In order to differentiate a fall, the loudness and the height of the sound was used. The
most important step is to remove the noise by mounting two microphones on vertical z-
axis with 4 meters apart from each other. The system was able to achieve 70% with no
false alarm. However, with a bit of adjustment, the system able to detect 100% but with
penalty of 5 false alarms every hour. This shows that the system is not reliable in
detecting falls.
This method is commonly used and applicable for fall detection system. It is preferable
due to low cost hardware implementation, and wearable sensor for fall detection either
indoor or outdoor environment. Accelerometer and gyroscope are placed on part of the
person’s body in order to differentiate fall from activities of daily living (ADL). Data
collected by the accelerometer and gyroscope are transmitted to microcontroller to be
processed. Since it is a wearable device, the range of operation is not a major issue
anymore.
Li et al. [12] proposed a fall detection system that was both accelerometers and
gyroscopes. There are mainly two types of human activities namely static postures and
dynamic transitions. Examples of static postures are standing, lying, sitting and bending
8
while dynamic transitions is the motion between static postures. There are two tri-axial
accelerometers that are placed at the person’s chest and thigh respectively in order to
recognize the person’s static postures. The result of the system is 91% sensitivity and 92%
specificity. However, the drawback of this system is that it having difficulties in
distinguish jumping onto bed and falling against a wall with seated position.
Igual et al. [13] differentiated the kinematic based systems into two which are threshold-
based methods (TBM) and machine learning methods (MLM). Threshold-based
methods are much simpler compare to machine learning methods. Because of this, the
cost for implementation of TBM is cheap compare to MLM. Basic of TBM is that it uses
threshold to differentiate a fall from activities of daily living (ADL). MLM require a set
of data containing samples of falls and ADL in order to distinguish between the two.
This method is more computational intensive hence, it is costlier.
Tong et al. [14] proposed an automatic human fall detection using tri-axis accelerometer
and gyroscope. In order to retrieve acceleration data, the device have to be lightweight
and can be placed at upper trunk of a human body. When the acceleration is higher than
certain threshold, gyroscope will check for the orientation of the subject. The device
come with a button used to eliminate false positive (ADL recognized as a fall). The
result from this method is that the system has very fast response and fewer false alarms
which are negligible.
Kinematic Based
Method
9
Bai et al. [15] suggested a fall detection system based on 3-axis accelerometer that
already embedded in a smart phone which comes with GPS function. The system is a
single unit device which can detect fall and alert nearby healthcare and relatives. The
drawback from this system is that the power consumption by the smartphone is
relatively high, which make the system only be active for certain period of time.
Bourke et all [16] proposed a fall detection system which used tri-axial accelerometer to
detect fall and certain ADL. In order to determine the optimal place for the
accelerometer, there are two possible position which are thigh and chest. Young
volunteers simulate the falls and ADL were performed by 10 elderly persons. The result
shows sensitivity of 100% but a few ADL wrongly classified as falls. The study also
shows that chest is better position compare to thigh to place the accelerometer. Figure 6
shows the comparison of acceleration between chest and thigh sensor placement.
Based on figure 6, walking and running while wearing the accelerometer at the thigh
causes linear acceleration to be higher. This may due to rapid movement of the user’s
leg while running and walking. Hence, the most suitable placement of the accelerometer
is located on the chest.
10
Dinh et all [17] proposed a fall detection system using accelerometer and gyroscope
combined with acoustic sensor for heart beat detection. The device is worn on the trunk
and communicate wirelessly via Zigbee protocol. The system has a feature to alert the
user to recharge the battery via Zigbee link when the battery is low. Five different
algorithm are designed to be implemented and the result vary from 92% to 97%. It is
concluded that by coupling accelerometer and gyroscope, the rate of detection can reach
up to 97%.
Nguyen et all [18] used a mobile waist mounted device that can alert caregivers if user
encounter emergency. The device comes with dual functions which are fall detection
and heart rate monitoring. Tri-axis accelerometer and 3 channel ECG circuit are used to
detect falls and heart rate respectively. The system not only utilized simple threshold
algorithm but some supporting methods to improve the detection. The data is not
process locally which improved the response time compare to locally processed system.
11
CHAPTER 3
METHODOLOGY
This project was divided into 5 stages namely planning, design, implementation, testing
and evaluation. By splitting into 5 different stages, the flow of the project was more
organized and systematic.
The first stage of this project is planning. In order to complete the project on time with
limited budget, a proper planning is required. In this planning stage, Gantt chart and key
milestone are the essential tools used to keep the project on track. The Gantt chart and
key milestone prepared for this project are attached in the Appendix I. Besides, regular
meeting with the supervisor is compulsory to update the progress about the project.
Feedback from the supervisor helps to improve the project in term of functionality and
method used. Useful information from the previous research paper, journals and online
articles was extracted and gathered to be used as guidance for this project. During this
stage, information such as acceleration and orientation of a person falling was directly
referred to previous research paper.
Designing stage involves brainstorming ideas and solution to overcome the problem
statement by this project. After conducting research during planning stage, multiple
ideas are generated and become alternatives which each can be used to overcome the
problem. By taking consideration of factors and limitation such as budget, time, and
components availability, the best design was selected. In order to understand the process
of the fall detection and alert system, a flow chart and pseudocode was designed and
prepared. Components are selected based on their cost, availability, quality and
compatibility. Positioning of the fall detection device on a person body are determined
based on previous research paper and experimentation.
12
After finalizing the design and components selection, the next stage was the
implementation stage. Components was purchased and arrived in expected time to avoid
delay in the project. In this stage, fall detection and alert system was fabricated into a
prototype. Besides that, programming code or algorithm are designed to be programmed
into the microcontroller which in this case is Arduino UNO. It is important for the
algorithm to be simple and easy to understand because it is easier to troubleshoot when a
errors occurred.
Testing stage involves performing multiple of different test with the prototype. In order
to ensure the prototype working as per design, several number of tests are performed
includes front fall, back fall and side fall. During testing phase, acceleration and
orientation data are acquired and to be compared with the acceleration value from
previous research paper. Necessary modification and adjustment was done during this
stage to achieve the best result.
Finally, the evaluation stage ensures the functionality of the fall detection and alert
system. It is important to evaluate the performance of the prototype in term of reliability
and accuracy. In this stage, the prototype need to reliable in detecting a person fall and
accurately differentiate it from activities of daily living (ADL).
13
• Study on the previous research paper, books, journals, and online
articles to be used as guidance for this project
• Update supervisor regulary on the progress of the project
Planning • Prepare Gantt Chart and Key Milestone that are feasible for the given
time frame
• Review and finalize the design that will be used in the implementation
stage
• Fabricate the prototype as per design
Implementation • Write an algorithm that will be programmed into the microcontroller
14
3.1 FLOW CHART
15
Based on figure 8, Arduino based fall detection and alert system will start to
continuously monitor the magnitude of acceleration of the user. The component that was
used to measure acceleration is MPU 6050 Accelerometer. Since it can measure
acceleration in three axes, the algorithm used only focuses on total acceleration despite
the direction by using following formula:
When the magnitude of the acceleration is higher than the threshold, the microcontroller
will check for orientation of the user by using gyroscope that came together with MPU
6050 Accelerometer. There are two possible outcomes from the gyroscope which is
either upright or lying down. If the user is standing upright, the device will continue to
monitor the acceleration. However, when a fall occurred and the user is found to be
lying down on the ground, the buzzer will beep once to indicate initialization of the
GSM module to start sending alert to nearby healthcare centre and relatives. When there
is a false alarm, user able to reset the device once hearing the first beep from the buzzer.
When the user is unconscious after falling down, microcontroller will attempt to obtain
location data from the GPS module and send it together with the alert message to the
concerned authorities. After that, buzzer will beep continuously trying to wake up the
user. The moment when the user fell down unconsciously until alert message is sent
takes up to 20 to 30 seconds.
16
3.2 COMPONENTS SELECTION
User friendly
Easy to program
Arduino UNO Available locally
R3 Cost only RM 39
17
3.3 BUDGET
Total 317.00
Table 2: Budget
Based on the total amount calculated in the table 2, it is still within the budget (RM 500)
allocated for this project. Current commercialized mobile fall detection system provides
monthly plan with the charge of RM 200 each month. The monthly plan includes 24
hours’ command center protection, unlimited button pushes to call for help and works
on the go.
On the other hand, Arduino based fall detection and alert system only bears the yearly
cost of RM 33 to be registered on GSM network. Besides, this device also works on the
go and alert nearby healthcare center and relatives when a fall occurred.
18
CHAPTER 4
The fall detection and alert system can be divided into four subsystems which are
location tracker, device positioning, fall detection system and alert system.
USB to PC 5V Vcc
Arduino GND GND GSM/GPRS/
UNO R3 Pin 2 RXD GPS Shield
Pin 3 TXD
Figure 9 shows the connection of Arduino UNO with GSM/GPRS/GPS shield. In order
to get the location data from the shield, an algorithm is uploaded to the Arduino. This
enables the location data to be transferred from the shield to Arduino and finally
displayed in the serial monitor.
19
Figure 11: Location tracker
Therefore, this concludes that the shield is able to track the location of the device
accurately.
The positioning of the fall detection device plays an important role in this project.
Correct placement of the device will increase the reliability of the fall detection system.
Currently commercialized fall detection systems available are in the form of pendant
and wristband. Table 3 shows the advantages and disadvantages for using pendant and
wristband.
Pendant Wristband
Advantages Easy to wear and remove Easy to reach
Easy to wear and
remove
Disadvantages Affect daily life activities High false alarm rate
High false alarm rate due due to frequent hand
to device swinging movement
20
Both pendant and wristband has a high false alarm rate due to movement during
performing daily life activities although they are easy to wear and remove. Therefore, in
this project, the proposed method to be used is a body strap. The advantage of this body
strap is that it can reduce false alarm rate due to less movement from upper trunk of the
body. Besides that, it’s also easy to wear and remove especially for the elderly people
and patients.
USB to PC 5V Vcc
MPU 6050
Arduino GND GND
Pin 2 INT Acceleromet
UNO R3
A4 SDA er
A5 SCL
Pin 8 GND
Buzzer
21
Figure 14: Fall detection configuration
Figure 13 shows the connection between Arduino UNO, MPU 6050 Accelerometer and
a buzzer. These components are used to detect fall of the user before proceeding to alert
the nearby healthcare for help. Physical connection between Arduino and MPU 6050
accelerometer is shown in figure 14.
Few experiments were conducted by using MPU 6050 Accelerometer as the data
collector for acceleration and orientation while performing daily life activities and
falling scenarios. In order to obtain the data, the author is required to demonstrate some
of the common fall motions while wearing the accelerometer sensor.
Acceleration Vs Time
2
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1
Acceleration
22
Figure 15 illustrates the user standing still while holding the sensor board in order to
capture the acceleration data. Based on the graph in figure 15, the acceleration while
standing still is close to 1 G (9.81 𝑚𝑠 −2) . On the other hand, MPU 6050 Accelerometer
also comes with a gyroscope which can be used to detect the orientation of the user. In
this case, the row value reading from the gyroscope is approximately 85°.
When a fall occurred, the measured acceleration by the sensor need to be higher than a
certain threshold in order to trigger the alarm which in this case the buzzer. There are
several common fall motions that was demonstrated by the author in order to determine
the acceleration threshold which includes falling backward, falling sideway and falling
forward.
Acceleration Vs Time
2
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1
Acceleration
Figure 16 shows the user has demonstrated a falling backward while holding the sensor
board. From the graph in figure 16, the acceleration slowly increase as the user is falling
backward. The peak acceleration for falling backward can reach up to 1.62 G
( 15.89 𝑚𝑠 −2 ) . Meanwhile, the reading from the gyroscope measure row value
approximately 5°. This row value indicate that the user is lying flat on the ground.
Similar results were observed after repeating falling backward motion for 5 trials. The
results were shown in table 4.
23
Trials Peak Acceleration (G) Orientation (°)
1 1.62 4.97
2 1.60 3.89
3 1.67 6.25
4 1.57 4.36
5 1.59 5.14
Based on table 4, the average value for the peak acceleration and orientation can be
easily calculated which are 1.61 G and 4.922 ° respectively.
Acceleration Vs Time
2
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1
Acceleration
In figure 17, the user has demonstrated a falling sideway motion while holding the
sensor board. Based on plotted graph in figure 17, the acceleration increase linearly as
the user is falling sideway motion. The highest acceleration recorded for falling sideway
approximately 1.53 G (15.0 𝑚𝑠 −2 ). On the other hand, the gyroscope shows row value
of 3°. The falling sideway motion was repeated for 5 trials and the results were shown in
table 5.
24
Trials Peak Acceleration (G) Orientation (°)
1 1.53 3.02
2 1.46 5.78
3 1.59 3.24
4 1.51 3.45
5 1.48 4.88
Based on table 5, the average value for the peak acceleration and orientation was
calculated to be 1.52 G and 4.07 ° respectively.
Based on figure 18, the user has demonstrated a falling forward motion while holding
the sensor board. From the plotted graph in figure 18, the measured acceleration rises
linearly while the user is experience falling forward motion. The peak acceleration
measured for falling forward is 1.45 G ( 14.22 𝑚𝑠 −2 ) . The measured value of
acceleration is smaller compare to values from falling backward and falling sideway
motion. This may due to the acceleration reduced when the user bending his knee while
falling forward. Meanwhile, the gyroscope shows row value of 2.69°. Similar results
were shown after 5 trials of falling forward motion and tabulated in table 6.
Acceleration Vs Time
2
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1
Acceleration
25
Trials Peak Acceleration (G) Orientation (°)
1 1.45 2.69
2 1.39 3.56
3 1.49 7.13
4 1.54 4.08
5 1.43 5.22
Based on table 6, the average value for the peak acceleration and orientation was
calculated to be 1.46 G and 4.54 ° respectively.
Average peak acceleration for forward fall, backward fall and side fall were tabulated in
the table 7.
Based on table 7, the average value for average peak acceleration and orientation can be
calculated to be 1.53 G and 4.51° respectively. This means that the acceleration
threshold that to be applied is 1.53 G in order to trigger the alert system. Based on the
orientation value, it is concluded that lying down position is below 10° and standing
upright position is higher than 85°.
26
It is important for the fall detection system to be reliable in order to detect a fall
experienced by the user. Therefore, a performance evaluation was conducted in order to
test the reliability of the system. There are four possible outcomes from the reliability
test:
There are total number of 20 falling down motion which consists of falling backward,
falling forward and falling sideway are demonstrated during this reliability test. Besides
that, the user also performed 20 activities of daily life (ADL) which includes walking,
running, sitting and laying. The result were shown in Table 8.
Activity
FALL ADL
System’s FALL 19 (TP) 2 (FP)
detection ADL 1 (FN) 18 (TN)
In order to evaluate these four scenarios, there are two criteria proposed which are:
By using the above formulas, the sensitivity and specificity of the fall detection system
can be calculated.
27
19
𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦 = ( ) ∗ 100%
19 + 1
𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦 = 95 %
18
𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 = ( ) ∗ 100%
18 + 2
𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 = 90%
Based on above calculations, it is concluded that the sensitivity and specificity of the fall
detection system are 95% and 90% respectively. This means that 95% of the falls was
detected and ADL was properly classified. This test shown that the fall detection system
is reliable in detecting a fall. Besides that, a reset button can be pressed in case there is a
false alarm occurred.
After a fall is detected, it is important to alert nearby healthcare centre and the user’s
relatives regarding the fall. An example of short message service (SMS) is sent from the
GSM/GPRS/GPS shield to the relative’s phone is shown in figure 19.
28
Whenever a fall is detected, the first beep from the buzzer indicate that the initialization
of GSM/GPRS/GPS Shield to start sending SMS. However, in case of false alarm, the
user can stop sending the SMS by pushing the RESET button after hearing the first beep.
On the receiving side, user’s relatives can personalize their phone SMS notification tone
to differentiate it from normal SMS and set its priority.
29
CHAPTER 5
As conclusion, there are three techniques that are used for fall detection system which
are camera based method, acoustic based method and kinematic based method. Each
method has its own advantage and disadvantage.
The benefit of using camera based method is that the user is not required to wear any
device in order to detect fall. This method also can detect fall for multiple users in a
room where the camera is installed. However, the drawback of this method is that it only
can be used in indoor environment. In order to have a reliable detection, the cameras
have to be installed in every room. User also concern about the privacy due to placement
of camera.
Acoustic based method is cheaper and simpler compare to camera based method
because of inexpensive hardware. This method removes the privacy concerns that are
faced by the user with camera based method. The disadvantage of acoustic based
method is that there is excessive noise present in the living environment that may disrupt
and interfere with the system. The sensors use also have limited range and only feasible
in indoor environment.
The kinematic based method is best technique compared to the other two methods. The
system is inexpensive because there is no requirement for installation. The user can
freely perform activities of daily living (ADL) while being monitored without
concerning about privacy either indoor or outdoor environment. However, this method
utilized accelerometer and gyroscope which are sensitive to movement. This may cause
a few false alarms while the user is performing ADL (sitting down quickly).
30
As for this project, the fall detection device is attached to a person body using body strap.
This method is based on kinematic technique which utilized accelerometer and
gyroscope. Besides that, this project included an alert system and location tracking.
After detecting a fall, GPS was used to determine the location of the user and alert the
concerned authorities via GSM module. The device has the sensitivity and specificity of
95% and 90% respectively. This shows that the fall detection and alert system is reliable
in detecting fall and alert nearby healthcare centre and relatives. Hence, this device is a
single unit device that comprised of 3 different subsystems which are location tracker,
fall detection and alert system.
31
6.0 REFERENCES
[1] United Nations, Department of Economic and Social Affairs, Population Division
(2015). World Population Prospects: The 2015 Revision, Key Findings and Advance
Tables. Working Paper No. ESA/P/WP.241.
[2] World Health Organization: WHO Global Report on Falls Prevention in Older Age,
Nonserial Publication Series. World Health Organization (2007)
[3] Miao Yu, A. Rhuma, S. Naqvi, Liang Wang and J. Chambers, 'A Posture
Recognition-Based Fall Detection System for Monitoring an Elderly Person in a
Smart Home Environment', IEEE Transactions on Information Technology in
Biomedicine, vol. 16, no. 6, pp. 1274-1286, 2012.
[5] S. Miaou, Pei-Hsu Sung and Chia-Yuan Huang, 'A Customized Human Fall
Detection System Using Omni-Camera Images and Personal Information', 1st
Transdisciplinary Conference on Distributed Diagnosis and Home Healthcare, D2H2,
Arlington, USA, April 2-4, 2006.
[8] J. Winkley, P. Jiang and W. Jiang, 'Verity: an ambient assisted living platform', IEEE
Transactions on Consumer Electronics, vol. 58, no. 2, pp. 364-373, 2012.
32
[9] Yun Li, K. Ho and M. Popescu, 'A Microphone Array System for Automatic Fall
Detection', IEEE Transactions on Biomedical Engineering, vol. 59, no. 5, pp. 1291-
1301, 2012.
[10] M. Alwan, P. Rajendran, S. Kell, D. Mack, S. Dalal, M. Wolfe and R. Felder, 'A
Smart and Passive Floor-Vibration Based Fall Detector for Elderly', 2nd
International Conference on Information & Communication Technologies, vol.1 , pp.
1003-1007, 2006.
[11] M. Popescu, Y. Li, M. Skubic, M. Rantz, “An acoustic fall detector system that
uses sound height information to reduce the false alarm rate” Engineering in
Medicine and Biology Society, 2008. EMBS 2008. 30th Annual International
Conference of the IEEE 20-25 Aug. 2008. Pp. 4628-4631
[12] Q. Li, J. Stankovic, M. Hanson, A. Barth, J. Lach and G. Zhou, 'Accurate, Fast Fall
Detection Using Gyroscopes and Accelerometer-Derived Posture Information', 2009
Sixth International Workshop on Wearable and Implantable Body Sensor Networks,
Berkeley, CA, 2009.
[13] R. Igual, C. Medrano and I. Plaza, 'Challenges, issues and trends in fall detection
systems', BioMedical Engineering OnLine, vol. 12, no. 1, p. 66, 2013.
[14] L. Tong, W. Chen, Q. Song and Y. Ge, 'A research on automatic human fall
detection method based on wearable inertial force information acquisition system',
2009 IEEE International Conference on Robotics and Biomimetics (ROBIO), Guilin,
China, December 19-23, 2009.
[15] Y. Bai, S. Wu and C. Tsai, 'Design and implementation of a fall monitor system by
using a 3-axis accelerometer in a smart phone', 2012 IEEE 16th International
Symposium on Consumer Electronics, pp. 1-6 , Harrisburg, PA, June 4-6, 2012.
[16] Bourke AK, O’Brien JV, Lyons GM. Evaluation of a threshold based tri-axial
accelerometer fall detection algorithm. Gait Posture 2007, vol. 26, no. 2, pp. 194 -
199
33
[17] A. Dinh, D. Teng, L. Chen, Y. Shi, C. McCrosky, J. Basran, V. Del,
“Implementation of a Physical Activity Monitoring System for The Elderly People
With Built-in Vital Sign and Fall Detection”, 2009 Sixth International Conference
on Information Technology: New Generations
[18] T. Nguyen, M. Cho, T. Lee, Member, IEEE, “Automatic fall detection using
Wearable Biomedical Signal Measurement Terminal”, 31st Annual International
Conference of the IEEE EMBS, Minneapolis, Minnesota, USA, September 2-6,
2009
34
7.0 APPENDICES
APPENDIX I
GANTT CHART AND KEY MILESTONES (FYP I)
35
APPENDIX II
GANTT CHART AND KEY MILESTONES (FYP II)
36
APPENDIX III
PSEUDOCODE
1. START
2. Initialize accelerometer and gyroscope.
3. WHILE (TRUE)
Get magnitude of acceleration from 3 three axes, Ax, Ay, Az.
Get angle of rotation with respect to z-axis, θ.
Compute the sum vector of magnitude (SVM).
𝑆𝑉𝑀 = √𝐴𝑥 2 + 𝐴𝑦 2 + 𝐴𝑧 2
Buzzer beep.
WHILE (Flag = 1)
BREAK.}
Flag = 0
BREAK.}
4. STOP
37
APPENDIX IV
PROGRAM CODE
#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps20.h"
#include "SIM900.h"
#include <string.h>
#include <SoftwareSerial.h>
#include <TinyGPS.h>
#include "sms.h"
TinyGPS gps;
SoftwareSerial ss(4, 3);
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
#include "Wire.h"
#endif
SMSGSM sms;
static void smartdelay(unsigned long ms);
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
//debug begin
char sms_position;
char phone_number[20]; // array for the phone number string
char sms_text[100];
int i;
int flag=1;
//debug end
MPU6050 mpu;
//MPU6050 mpu(0x69);
#define OUTPUT_READABLE_REALACCEL
#define LED_PIN 13 // (Arduino is 13, Teensy is 11, Teensy++ is 6)
bool blinkState = false;
38
// orientation/motion vars
Quaternion q; // [w, x, y, z] quaternion container
VectorInt16 aa; // [x, y, z] accel sensor measurements
VectorInt16 aaReal; // [x, y, z] gravity-free accel sensor measurements
VectorInt16 aaWorld; // [x, y, z] world-frame accel sensor measurements
VectorFloat gravity; // [x, y, z] gravity vector
float euler[3]; // [psi, theta, phi] Euler angle container
float ypr[3]; // [yaw, pitch, roll] yaw/pitch/roll container and gravity vector
int buzzer=8;
double ax;
double ay;
double az;
double SVM;
// packet structure for InvenSense teapot demo
uint8_t teapotPacket[14] = { '$', 0x02, 0,0, 0,0, 0,0, 0,0, 0x00, 0x00, '\r', '\n' };
// ================================================================
// === INTERRUPT DETECTION ROUTINE ===
// ================================================================
volatile bool mpuInterrupt = false; // indicates whether MPU interrupt pin has gone high
void dmpDataReady() {
mpuInterrupt = true;
}
// ================================================================
// === INITIAL SETUP ===
// ================================================================
void setup() {
// join I2C bus (I2Cdev library doesn't do this automatically)
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
Wire.begin();
TWBR = 24; // 400kHz I2C clock (200kHz if CPU is 8MHz)
#elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
Fastwire::setup(400, true);
#endif
// initialize serial communication
// (115200 chosen because it is required for Teapot Demo output, but it's
// really up to you depending on your project)
Serial.begin(115200);
while (!Serial); // wait for Leonardo enumeration, others continue immediately
// initialize device
Serial.println(F("Initializing I2C devices..."));
mpu.initialize();
// verify connection
Serial.println(F("Testing device connections..."));
Serial.println(mpu.testConnection() ? F("MPU6050 connection successful") : F("MPU6050 connection failed"));
39
Serial.println(F("Initializing DMP..."));
devStatus = mpu.dmpInitialize();
// supply your own gyro offsets here, scaled for min sensitivity
mpu.setXGyroOffset(-21);
mpu.setYGyroOffset(6);
mpu.setZGyroOffset(61);
mpu.setXAccelOffset(427);
mpu.setYAccelOffset(-174);
mpu.setZAccelOffset(972); // 1688 factory default for my test chip
// set our DMP Ready flag so the main loop() function knows it's okay to use it
Serial.println(F("DMP ready! Waiting for first interrupt..."));
dmpReady = true;
// ================================================================
// === MAIN PROGRAM LOOP ===
// ================================================================
40
void loop() {
// if programming failed, don't try to do anything
if (!dmpReady) return;
// check for overflow (this should never happen unless our code is too inefficient)
if ((mpuIntStatus & 0x10) || fifoCount == 1024) {
// reset so we can continue cleanly
mpu.resetFIFO();
Serial.println(F("FIFO overflow!"));
// otherwise, check for DMP data ready interrupt (this should happen frequently)
} else if (mpuIntStatus & 0x02) {
// wait for correct available data length, should be a VERY short wait
while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount();
#ifdef OUTPUT_READABLE_REALACCEL
// display real acceleration, adjusted to remove gravity
mpu.dmpGetQuaternion(&q, fifoBuffer);
mpu.dmpGetAccel(&aa, fifoBuffer);
mpu.dmpGetGravity(&gravity, &q);
mpu.dmpGetLinearAccel(&aaReal, &aa, &gravity);
mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
Serial.print("ypr/Acce \t");
Serial.print(ypr[0] * 180/M_PI);
Serial.print("\t");
Serial.print(ypr[1] * 180/M_PI);
Serial.print("\t");
Serial.print(ypr[2] * 180/M_PI);
41
Serial.print("\t\t");
Serial.print(aaReal.x);
Serial.print("\t");
Serial.print(aaReal.y);
Serial.print("\t");
Serial.print(aaReal.z);
ax=(aaReal.x)/16384.0;
ay=(aaReal.y)/16384.0;
az=(aaReal.z)/16384.0;
float flat;
float flon;
unsigned long age, date, time, chars = 0;
unsigned short sentences = 0, failed = 0;
gps.f_get_position(&flat, &flon, &age);
Serial.print(flat,6);
Serial.print("\t");
Serial.print(flon,6);
Serial.println()
smartdelay(1);
if(started)
{
String help = "Please help me !! I just fall down, Here is my location: http://www.latlong.net/c/?lat=";
char helpp[] = "Please help me !! I just fall down, Here is my location: http://www.latlong.net/c/?lat=";
42
String help1= "&long=";
char help11[] = "&long=";
char lat[15];
char lon[15];
dtostrf(flat,5,6,lat);
dtostrf(flon,5,6,lon);
String helped = help + lat + help1 + lon;
char helpme[120];
char helpmepls[120]={0};
strcat(helpmepls,helpp);
strcat(helpmepls,lat);
strcat(helpmepls,help11);
strcat(helpmepls,lon);
helped.toCharArray(helpme,115);
Serial.println(helped);
Serial.println(helpme);
Serial.println(helpmepls);
sms.SendSMS("0163053892",helpmepls);
}
flag = 0;
break;
}
}
#endif
// blink LED to indicate activity
blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState);
}
}
static void smartdelay(unsigned long ms)
{
unsigned long start = millis();
do
{
while (ss.available())
gps.encode(ss.read());
} while (millis() - start < ms);
}
43