Electrical and Electronic Engineering allows me to explore creative solutions to modern dilemmas. I have always had an interest in the human body, how it works, what makes it tick, but I also love mathematics and problem-solving. I wanted to find a degree that would work as a solid foundation to build on and further my interests.
In my final year project, I made use of many of the subjects studied in my degree, specifically sensor design, analogue circuit design, and embedded systems engineering. Contributing to the ongoing development of assistive devices and improving people's quality of life is a significant motivation for me.
Design and Build of a Myoelectric Control Circuit for a Prosthetic Hand
Introduction
In 1948 the first myoelectric prosthesis was developed with the use of electromyography (EMG) (Reaz, Hussain and Mohd-Yasin, 2006). a myoelectric prosthesis amplifies the surface electrical signals generated by muscle contractions in the remaining part of an amputee's limb. Development has rapidly increased in the sector with modern prostheses having incredible functionality, however this comes at great monetary cost.
The aim of the project is to design the hardware and software required to control a prosthesis using electromyography for a budget of under £75 capable of proportional movement and multiple gestures.
Project overview
The project is split into hardware and software.
Included in the hardware are the EMG sensor and the microcontroller and associated features.
The software design consists of two main parts. First, developing the signal required to control the prosthetic hand from the EMG sensor Secondly, code associated with the other features such as the pressure sensor, freeze switch, LEDs and motor providing haptic feedback.
EMG sensor design
The EMG sensor is composed of several stages. EMG signals have an amplitude of 0 to 10mV peak to peak with most information between 50-150Hz (J. De Luca, 2002). Due to the very low amplitudes, one of the main issues with signal acquisition is the signal to noise ratio, this must be considered during the design
process.
Electrodes are used to detect the tiny EMG signals produced by muscle contractions. The electrodes are connected to the sensor via a shielded cable.
The first step in retrieving a usable signal for the microcontroller is to use an instrumentation amplifier. Then a 50Hz second order high pass filter removes motion artefacts and DC offset. Active rectification is used to make the negative part of the signal positive and to minimize signal loss. A 150Hz lowpass filter is used as the second to last stage to filter out any high frequency interference. Finally, variable gain allows amplitude of the signal to fit within the required input to the microcontroller.
Controller design
The Microcontroller chosen is the PIC18F25K22. It is programmed in embedded C using MBLABX, xc8 compiler and Microchip's MPLAB Code Configurator (MCC). It runs on 5V and has 28 pins with multiple peripheral features.
There are two indicator LEDs, used for diagnostic purposes. A vibration coin motor providing feedback to the user in the form of vibrations generated in response to pressure detected by a pressure sensor. A third LED is used to give visual feedback indicating pressure magnitude. The pressure sensor is included to allow the user to be active without seeing the arm and to inform the level of grip strength being used. The servos are controlled in response to the signal generated by the EMG sensor connected to a governing muscle. The 'freeze' switch allows the user to hold the hand in position, this is useful for holding items while the governing muscle is still active.
Implementation
Due to time constraints, implementation was carried out using breadboard and a premade PIC development board. A PCB was unable to be made.
The hardware elements used in the project include an EMG sensor, PIC development board, additional breadboard, 3D printed arm with servos, batteries, EMG cable and electrodes.
The finalised Ultiboard PCB design includes both the EMG sensor, PIC, and all the additional features. It measures 127mm by 55mm so that, if necessary, the board could fit within the prosthesis forearm. This was not constructed due to time constraints.
Software design
The software was designed as indicated by a code flow. This includes:
- Generating the signal to control the servo responses from the EMG sensor output
- The 'Freeze' switch action
- Implementing the visual and haptic feedback mechanisms in response to pressure
Testing and results
Testing was conducted using an oscilloscope to check sensor and controller outputs generated in code.
The EMG sensor oscilloscope showed three clear contractions and the result of filtering and rectification.
The software-generated signal that controls the servo position showed the signals for minimum and maximum rotation as a response to 0 and 5V inputs, proving that the software written works.
Discussion
The EMG sensor did successfully acquire and condition an EMG signal to be used with a microcontroller. Though the quality of the signal was not suitable for the software written without first undergoing some digital signal processing.
Component costs came to approximately £58; this is within the £75 budget.
The software written did provide proportional control to the 3D printed prosthesis, provided the EMG sensor supplied a smooth DC signal, emulated by a potentiometer. This was not the case, so the control provided limited. An alternative would have been to use a thresholding approach to the software design but, the proportional control would be sacrificed.
Whether the prosthesis was capable of multiple gestures was left unconfirmed due to time and resource constraints.
Conclusion
To conclude, an analogue EMG sensor was designed and built on breadboard. Results of simulations and implementation proved it successfully acquired, filtered, rectified, and amplified the electrical signal generated by muscle contractions. The signal produced however was not suitable for the PIC18F25K22, it was determined that purely analogue signal processing was insufficient and digital signal processing was essential.
A PIC18F25K22 was used to control visual and haptic feedback indicators managed by the input of a pressure sensor. A freeze feature was implemented to force the prosthesis to hold position, ignoring the input from the EMG sensor while maintaining feedback. With use of a development board and breadboard the software written was tested and shown to be working as desired.
Future development
- Implement digital signal processing
- Test for multiple gestures
- Add input protection to the microcontroller
- Refine feedback quality
- Complete PCB construction