Phone Fall Detection

Skill LevelArea of FocusOperating SystemPlatform/Hardware
IntermediateHealthcare, IoT, SensorsLinuxDragonBoard 410c

This project is a system service designed to detect phone drops and falls, and report data from an accelerometer back to a central server. This data could be used by phone manufacturers to develop a profile of how often and when users drop their phones, thus facilitating future improvements in phone design. The data can also be used to identify when elderly individuals have fallen and initiate the response of medical professionals.

This project aims to use sensor technology in a unique and practical way. Collecting fall data to be recorded on an external server seemed to both fit this condition and use the skillsets of each member of our team.

  • Connect the sensor mezzanine to the DragonBoard 410c through the 40-pin connector.
  • Connect the accelerometer to the ATMEGA I2C Grove Connector on the sensor mezzanine.
  • Power up the DragonBoard 410c and connect it to the internet using Wi-Fi.
  • Clone the project from the above GitHub repository, and navigate to the project directory.
  • Copy BMP180.cpp, BMP180.h, I2Cdev.cpp, I2Cdev.h, MPU9250.cpp, and MPU9250.h into the libraries/ directory in the path of the Arduino IDE.
  • After copying is finished, open IMU_10DOF_Test.ino in the Arduino IDE and click Upload. Once successfully uploaded, run make to build all targets.
  • If desired, make clean can then be used to remove all generated executable and object files.

After running make, there should be two executables produced:

  1. evil-server and
  2. f_track.

Running ./evil-server on the DragonBoard 410c or any machine on the local network will start a process that listens for connections on port 8000.

Running ./f_track <server IP address> will start a process that will detect falls using accelerometer data, and write accelerometer readings and timestamps to the file status.log whenever a fall occurs. If the process can connect to the server, it will then send the same data to the server, which then writes it to the file srv-status.log on the server host. Connection issues may occur when trying to connect to a server running on another system. If this happens, the server can always be run on the DragonBoard 410c itself, with localhost IP address used as the command line argument to f_track.

Dylan Hatch[email protected]InternQualcomm Technologies, Inc.
Dhaval Vilas Waghulde[email protected]InternQualcomm Technologies, Inc.
Merin Santhosh[email protected]InternQualcomm Technologies, Inc.
Zachary Zhou[email protected]InternQualcomm Technologies, Inc.