Fall detection utilizing Indusboard entails monitoring the accelerometer knowledge to detect when an individual falls. Upon detecting a fall, the system prompts a blue LED to visually point out the autumn occasion. Concurrently, a message is printed to the serial monitor, notifying caregivers or monitoring programs {that a} fall has been detected, prompting them to examine on the person.
After a while, the accelerometer senses that the individual is not transferring considerably, indicating that they’re at relaxation. At this level, the system switches the blue LED off and prompts a crimson LED. The crimson LED serves as a secondary visible indicator that the individual is now at relaxation. One other message is distributed to the serial monitor, confirming that the individual is now in a secure state.
This dual-LED system and serial communication make sure that caregivers or monitoring programs are constantly up to date concerning the individual’s standing, facilitating well timed responses to fall incidents and offering reassurance when the individual is resting peacefully.
Functions of fall detection system
- Aged Care: Ensures speedy response to falls amongst seniors, lowering the chance of accidents and guaranteeing well timed medical consideration.
- Dwelling Monitoring: Supplies peace of thoughts to relations by alerting them to falls or emergencies once they happen.
- Hospital Settings: Enhances affected person security by alerting healthcare suppliers to falls in real-time, facilitating swift intervention.
- Distant Monitoring: Permits for steady monitoring of people in distant or remoted places, guaranteeing help is dispatched promptly.
Invoice of Supplies (BoM)
Parts | Description | Amount |
IndusBoard | 3cm sized dev board | 1 |
LED | 5mm LED | 2 |
Resistor | 1Kohm | 2 |
Zumper wires | As required |
Coding
#embody
#embody
#if outlined(ARDUINO_SAM_DUE)
#outline DEV_I2C Wire1 //Outline which I2C bus is used. Wire1 for the Arduino Due
#outline SerialPort Serial
#else
#outline DEV_I2C Wire //Or Wire
#outline SerialPort Serial
#endif
// Parts.
LSM303AGR_ACC_Sensor Acc(&DEV_I2C);
LSM303AGR_MAG_Sensor Magazine(&DEV_I2C);
int fall=7;
int relaxation=6;
// Threshold values for fall detection (could be adjusted)
const float fallThreshold = 2.5; // Alter this threshold primarily based on testing
const float restThreshold = 0.5;
void setup() {
// Led.
pinMode(fall, OUTPUT);
pinMode(relaxation, OUTPUT);
// Initialize serial for output.
SerialPort.start(9600);
// Initialize I2C bus.
DEV_I2C.start();
// Initlialize parts.
Acc.start();
Acc.Allow();
Acc.EnableTemperatureSensor();
Magazine.start();
Magazine.Allow();
}
void loop() {
// Learn accelerometer LSM303AGR.
int32_t accelerometer[3];
Acc.GetAxes(accelerometer);
// Calculate the magnitude of the acceleration vector
float magnitude = sqrt(sq(accelerometer[0]) + sq(accelerometer[1]) + sq(accelerometer[2])) / 1000.0; // Convert to g
// Test for fall detection
if (magnitude > fallThreshold) {
SerialPort.println("Fall detected!");
digitalWrite(fall, HIGH);
delay(5000);
digitalWrite(fall, LOW);
delay(5000);
// Wait till the sensor detects the individual is at relaxation
whereas (magnitude > restThreshold) {
Acc.GetAxes(accelerometer);
magnitude = sqrt(sq(accelerometer[0]) + sq(accelerometer[1]) + sq(accelerometer[2])) / 1000.0;
delay(100);
}
SerialPort.println("Particular person is at relaxation.");
digitalWrite(relaxation, HIGH);
delay(1000);
digitalWrite(relaxation, LOW);
delay(1000);
}
// Output knowledge.
SerialPort.print("| Acc[mg]: ");
SerialPort.print(accelerometer[0]);
SerialPort.print(" ");
SerialPort.print(accelerometer[1]);
SerialPort.print(" ");
SerialPort.print(accelerometer[2]);
SerialPort.println(" |");
}
Connection
Testing
Join the indusBoard with the USB and add the code. And open the serial monitor to see the output. Maintain the IndusBoard in your hand and examine the autumn detection system. Should you fall then the blue LED is “ON”.
Creator(s): Manjeet Vishwakarma, Abhay Verma and Satywanti Kundu are B.Tech ECE college students at GJUS&T HISAR