Introduction: [EMG] Muscle Activated Switch
This prototype demonstrates the potential of low-cost and open-source hardware/software to enable computer control through electrical muscle activity.
The cost associated with the off-the-shelf devices restricts access to this technology, which can be essential for people with disabilities access a computer. Or just for fun!
The EMG switch uses BITalino hardware combined with Myoware EMG sensor. With this sensor, the user can adjust the sensitivity, using a potentiometer.
For this setup, a similar procedure to the one used in this DIY heart monitor was implemented to assemble BITalino's components and Myoware sensor.
Beyond the materials described on the DIY heart monitor, the following materials were used:
- 4x3mm screws and 4x3mm nuts
- The Grid 3 (was the software used, but any communication software can be used)
Step 1: Building the Electronics of the EMG Switch
To connect the Myoware to BITalino MCU the following connections need to be made:
- (+) to AVCC
- (-) to AGND
- SIG to A1
- RAW to A2
You could also use the DVCC pin, although this could introduce noise to the signal acquired.
The channel A1 will provide the post-processed signal, where you can get the EMG envelope, and the channel A2 will provide the raw signal.
The 3-lead cable is connected in any order, but it needs to be identified.
Step 2: 3D Printed Case
Now is time to assemble the electronics in the 3D printed enclosure.
The .stl files are available in this section.
The top enclosure has an insert for an elastic strap so that it can be easily used on an arm, leg or any other areas of the body.
Now everything is ready for testing!
Step 3: EMG Switch Demo
Using OpenSignals, you can now visualise the EMG signal acquired in both A1 and A2 channels. Beyond visualising and recording the EMG signal, you can set actions for the signal acquired. For the video presented, the action configured is a keystroke, which matches with the switch activation configured in The Grid 3. To activate this keystroke, a threshold with a specified duration needs to be set in OpenSignals - under the 'Event Emulation' section. This way, The Grid 3 is going to interpret a muscle contraction as a switch press.
The video was made for a demo, where a similar setup is used. The Myoware EMG sensor is connected to BITalino Plugged kit with the communication software The Grid 3.
With this setup, you can also make EMG signal acquisition for further analysis of muscle fatigue and workload levels!
Drop me a message if you want to know more details :)
The project is published here.