Skip to content

mich-j/EMG_HID_mouse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hands-free computer pointing device:

Engineer's Thesis

Pointing device for people with mobility disabilities of the upper limbs     

Abstract

Main goal was to design a pointing device for people with motor disabilities of the upper limbs, dedicated to be used with personal computers and construction of a functional prototype. Device uses head movement tracking and reads electromyographic voltage from user’s forehead. It is a substitute of generic computer mouse – it has the ability to move cursor, simulate left and right mouse buttons and scroll through pages. With this device, it is possible to handle basic tasks, such as typing address and visiting websites, writing short messages using communicator.

Features

  • Head rotation is transformed into cursor movement
  • Left mouse button click is triggered by muscle contraction, readen by EMG sensor
  • Head gestures allow to use right mouse button and scroll

1-minute demonstration https://www.youtube.com/watch?v=y53N9A561EY

What should be improved

  • 'Dry' electrodes tended to move during muscle contraction, which caused high (although easy to detect) EMG signal peaks
  • Electrodes should be pressed pretty firmly to user's forehead, which could be uncomfortable during long periods of device usage
  • There was a constant threshold EMG value defined in program, which was used to determine muscle contraction. Because of this, device had to be often recalibrated.

Model

3D CAD model

Hardware

  • Works under control of STM32L432KCU microcontroller
  • Acts as a HID device after plugging into USB port - classic PC mouse emulation
  • Bosch BNO055 IMU sensor for measuring head rotations
  • Surface EMG electrodes placed on forehead, connected to a differential amplifier
  • PCB board fits into 3D-printed case

bot

Software

  • I2C bus used to communicate between IMU and MCU
  • Timers utilized for program flow control (no delays)
  • DMA feature used for efficient ADC conversion
  • Raw EMG signal processed using Root Mean Square method
  • FPU coprocessor improves floating point calculations

EMG signal processing

  • Root Mean Square was used to smoothen data
  • Muscle contraction was successfully recognized, although system was very sensitive to disruptions

bot

Frontalis muscle was chosen as a action trigger

raw EMG

EMG signal before processing

RMS EMG

EMG signal after processing

PCB Design

bot

PCB Bottom layer

top

PCB Top layer

About

Hands-free computer pointing device

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages