Introduction
How can people alert their friends that they have been attacked, or are in danger, without alerting the attacker? We need a way to discreetly communicate with a smartphone or other communications device! The communications device can then notify a network of trusted friends of the attack.
So we want to trigger an alert of an emergency situation using a discreet trigger. And then notify the person in danger that the alert has been sent to their network of trusted friends. In the case of a false-positive, the person in danger should be able to cancel the alert by entering a passcode to their smartphone.
Solution
So, the alert trigger in this solution is clench fist for 10s. We use EMG acquired from forearm to detect this. The user is informed of alert trigger by vibrate smartphone or vibrating a motor on an armband. The user would then have a set amount of time (e.g. 60 seconds) to cancel via entering a passcode to smartphone software. If the user doesn't cancel, then the alert is sent to network of trusted friends, and the user would get further haptic feedback from armband vibrate that the alert was been RXed by one of the trusted friends. The alerts will include location data from GPS. The alerts continue to be sent until cancelled by the user. Each alert including location data for tracking (e.g. if user is kidnapped).
General overview of solution:
1. Trigger: The trigger is clenching fist for 10s. Sensor is EMG attached to forearm via fabric band.
2. EMG sensor to Feather (wired)
[EMG sensor: supply voltage +3.3V or +5V , output EMG envelope so rectified; using MyoWare™ Muscle Sensor (AT-04-001) ]
[ Adafruit Feather 32u4 Bluefruit (which is referred to as arduino mostly)]
So all we are doing is read voltage from the EMG sensor using the Feather e.g.
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.println(voltage);
}
So, we are going to get different voltages for non fist-clenched conditions, and fist-clenched conditions. Once we get the voltage we expect for fist-clenched occurring for the 10 seconds, we know to trigger the alert. Unfortunately, whilst the voltages for fist-clenched and non fist-clenched (relaxed hand) are likely to be significantly different. The voltages for other hand actions (e.g. shaking hands, holding a pen, gripping a mouse) might not be so different to the voltages we get for fist-clenched!! See the problems section for more on this.
3. It's just some python code on Feather to say if we got that fist-clench. If we did we can give haptic feedback from actuator on fabric band that alert is now triggered. And Feather will bluetooth comm to smartphone app that alert triggered. Smartphone can go ahead and vibrate too. Say we have a 60s cool-down for user to deactivate if this is false-positive. Deactivation would be via smartphone app, after which the Feather is again waiting for the fist-clench voltage.
4. Now smart-phone will go ahead and see what kind of connections it has, and send out the alert!
5. Then smartphone can notify Feather via Bluetooth that alert received successfully by trusted friends. And the Feather turns on the motor for haptic feedback to alert user (discreetly) that the alert has been sent out and received!
Overview of hardware:
##
Outline of system flow
###
Haptic Feedback
So, the idea is to provide haptic feedback for the user when an alert is triggered, and when...
Read more »