MINIPROJECT_REPORT
MINIPROJECT_REPORT
on
“Neuromouse”
Submitted in partial fulfillment of the requirements for the award of the degree of
BACHELOR OF TECHNOLOGY
in
ELECTRONICS AND COMMUNICATION ENGINEERING
by
Ms. B. Sathwika -21WH1A0472
Ms. A. Sonika -21WH1A0474
Ms. D. Bhashitha -21WH1A04B0
Ms. M. Jayakeerthana -21WH1A04C7
under the guidance of
Place: Hyderabad
Date:
Ms. B. Sathwika -
Ms. A. Sonika -
Ms. D. Bhashitha -
Ms. M. Jayakeerthana -
Department of Electronics and Communication Engineering
BVRIT HYDERABAD College of Engineering for
Women(UGC AUTONOMOUS)
(Approved by AICTE, New Delhi and Affiliated to JNTUH, Hyderabad)
Accredited by NBA and NAAC with A Grade
Bachupally, Hyderabad – 500090
2024-25
Certificate
This is to certify that the mini project report, entitled “Neuromouse” is a record of
bonafide work carried out by Ms. B. Sathwika [21WH1A0472], Ms. A. Sonika
[21WH1A0474], Ms. D. Bhashitha [21WH1A04B0], Ms. M.Jayakeerthana
[21WH1A04C7] in partial fulfilment for the award of the degree of Bachelor of
Technology in the department of Electronics and Communication Engineering at
BVRIT HYDERABAD College of Engineering for Women, affiliated to Jawaharlal
Nehru Technological University Hyderabad, Kukatpally, Hyderabad – 500085.
External Examiner
ACKNOWLEDGMENT
The satisfaction that accompanies the successful completion of the task would
be incomplete without the mention of the people who made it possible.
We wish to express our deep sense of gratitude to our guide Mr. N. M. Sai
Krishna, Assistant professor, Department of Electronics and Communication
Engineering, BVRIT HYDERABAD College of Engineering for Women, for his able
guidance and suggestions, which helped us in completing this project work on time.
We would like to thank Dr. Nagesh Deevi, Associate Professor and Head,
Department of Electronics and Communication Engineering for his guidance, support
and encouragement.
We also thank all the faculty and non-teaching staff members of the
Electronics and Communication Engineering department, who supported us directly or
indirectly in the successful completion of this project work.
Finally, we thank all our friends and family members for their continuous
support and help.
Ms. B. Sathwika
Ms. A. Sonika
Ms. D. Bhashitha
Ms. M. Jayakeerthana
ABSTRACT
Approximately 60 million people worldwide experience tremors, which can
greatly hinder their ability to use traditional computer input devices. Tremors, caused
by involuntary muscle contractions, affect millions of people worldwide and are
frequently associated with neurological conditions such as Parkinson’s disease.
Parkinson’s is a progressive neurodegenerative disorder that impairs motor functions
and worsens over time, significantly affecting an individual’s ability to perform
everyday tasks. For many individuals with such conditions, using traditional computer
input devices becomes challenging, limiting their independence and digital
engagement. To address these difficulties, a specialized joystick mouse has been
developed to improve accessibility and quality of life. This device is designed to be
both affordable and easy to assemble using readily available materials, while offering
a high degree of customization to accommodate the specific needs of diverse users. It
integrates seamlessly with various computer systems without requiring additional
drivers, ensuring compatibility across different platforms. By providing a low-cost and
userfriendly alternative to expensive commercial solutions, this joystick mouse
enhances digital interactions , promotes independence, and empowers both users and
caregivers, making it a significant advancement in assistive technology.
CONTENTS
1 Introduction 1
1.1 Objectives 2
1.2 Scope of the Project 3
2 Literature survey
2.1. The evolution of Assitive technologies for tremor
management 4-6
2.2. Emerging techniques 6
2.3. Future prospects of NeuroMouse 7-8
4 Implementation
4.1 Hardware Implementation 13
4.2 Workflow 14-18
4.3 Characteristics 18-19
5 Result 20
6 Conclusion 21
7 References 22-23
8 Appendix 24-27
LIST OF FIGURES
1. Introduction
Involuntary tremors are rhythmic movements that commonly affect the hands
and wrists, causing individuals to struggle with tasks such as pointing, clicking, and
dragging the mouse. This can result in frustration and reduced independence. With an
aging global population and a rise in conditions like Parkinson’s disease, there is an
increasing demand for assistive devices that allow those affected to effectively use
technology.
1.1. Objectives
The main objective is to create an assistive device utilizing a joystick as a replacement
for a computer mouse. This will greatly benefit individuals with tremors.
By incorporating an accelerometer and an Arduino Uno microcontroller, the joystick
can detect and process hand movements caused by tremors. The resulting data will then
control the movement of a cursor on the screen, enabling users to interact with the
computer with greater ease.
Specific objectives of the project include:
• Creating the Joystick-based Device: Designing a joystick interface with an
accelerometer for detecting hand movements, even during tremors.
• Refining Tremor Detection: Implementing noise-filtering algorithms to
differentiate tremors from regular hand movements and facilitate precise cursor
control.
• Integrating Software for Mouse Control: Utilizing Arduino to read
accelerometer data and transmit it to a Python-based program that translates it
into mouse motions on the computer screen.
2. Literature Survey
Hand tremors, often caused by neurological disorders like Parkinson's disease,
can significantly impair the ability to perform daily tasks, especially those requiring
fine motor control, such as using a computer mouse. Over the years, assistive
technologies have evolved to address this challenge, enabling individuals with tremors
to regain independence in using digital interfaces and performing other daily activities.
This section explores the historical advancements in assistive devices and technologies
designed for tremor management.
• IoT-Enabled Solutions: With the rise of the Internet of Things (IoT), researchers
began to develop connected devices that could monitor and manage tremor activity.
These solutions used cloud-based analytics to track tremor patterns and provide
real-time feedback. IoT-enabled solutions allowed users to adjust their devices
remotely, offering a higher degree of customization and remote control, though they
were still in the early stages of adoption.
flexibility in design, making devices more portable and user-friendly for individuals
with different needs.
like the Neuromouse would assist not just in controlling the cursor but also in the
rehabilitation of fine motor skills.
6. Collaborative Efforts in Research and Development: Research collaborations
between universities, assistive technology companies, and medical organizations
will likely result in significant breakthroughs. These partnerships could lead to the
development of more affordable, robust, and effective solutions for a wide range of
users with different impairments, including those with severe tremors or other
neurological conditions.
4. Implementation
4.1. Hardware Implementation:
The hardware implementation centers around developing a joystick-based
interface that effectively replaces a conventional computer mouse. This
implementation involves several key components, including the accelerometer module,
the Arduino Uno microcontroller, and the physical assembly of the device.
4.2. Workflow
Neuromouse
The Neuromouse system aims to provide an alternative means of controlling a
computer cursor for individuals with hand tremors. By using an MPU6050 sensor, the
device tracks the user’s hand movements and converts them into precise cursor
motions. The following workflow outlines the sequence of steps, starting from the
sensor’s initialization to the final interaction with the computer system.
Step 1: Sensor Initialization and Calibration
The first step in the process is initializing the MPU6050 sensor. This sensor is
designed to measure acceleration along two axes (X, Y) in real time. The sensor must
be calibrated to ensure that it accurately detects the user's hand movements, particularly
tilt.
• Configuration:
The sensor is configured to output real-time data, which includes both
accelerometer readings (to measure tilt). The system is set to capture X and Yaxis
movements, which correspond to horizontal and vertical hand gestures
respectively.
• Stabilization:
Before any meaningful data can be captured, a short period of stabilization is
needed. During this time, the system performs calculations to determine the offset
values for the sensor readings, ensuring the data is not skewed by any initial
sensor drift.
• Calibration:
Calibration of the sensor is crucial for eliminating any potential biases in the
system. This process involves setting the baseline for when the user's hand is at
rest and ensuring that any tilt is correctly interpreted relative to this resting
position.
Step 2: Conversion of Data to Cursor Movements
The next step in the workflow involves converting the sensor data into specific
actions that will control the mouse cursor on the computer screen. The processed tilt
data is used to calculate the corresponding horizontal (X-axis) and vertical (Y-axis)
movements of the cursor.
• Movement Detection:
As the user moves their hand, the tilt angle is continuously monitored. When a
tilt is detected, the system converts the angular displacement into a proportional
cursor movement. For example, a tilt to the right will result in a rightward
movement of the cursor, and a tilt forward will move the cursor upward on the
screen.
• Thresholding:
To avoid unnecessary cursor movements caused by minor hand tremors, a
threshold is applied to the detected tilt. The system only responds to movements
where the tilt angle exceeds a predefined threshold. This ensures that small,
involuntary hand shakes do not cause erratic cursor movement.
Step 3: Data Transfer to Computer via Serial Communication
Once the data has been processed and converted into cursor movements, it
needs to be transferred from the Arduino Uno to the computer. This is done using serial
communication, where the processed data is sent to the computer via a USB
connection.
• Serial Communication:
The Arduino uses serial communication protocols to send the tilt data and
corresponding cursor movement commands to the connected computer. The data
is sent in a readable format, typically as a series of X and Y angle values that
represent the amount of movement required for the cursor.
• Python Script:
On the computer side, a Python script listens for the incoming serial data and
interprets the X and Y angle values. The script then uses the pyautogui library to
move the mouse cursor according to the received data. Pyautogui is a Python
library that allows for automation of keyboard and mouse control, making it ideal
for this device.
Step 4: Interaction and User Control
Once the system successfully translates the sensor data into cursor movements, the user
can begin interacting with the computer. The system allows for continuous monitoring
of the X and Y angles, enabling the cursor to move in real-time in response to the user’s
hand gestures.
Step 6: Looping
To maintain continuous functionality, the system operates in a continuous loop.
After processing the current sensor readings and sending the corresponding cursor data
and click commands, the system returns to the sensor reading phase to prepare for the
next set of data.
• Looping:
The system constantly reads new data from the MPU6050 sensor, processes it,
and sends it to the computer. This loop ensures that the user can maintain control
of the cursor without any interruptions.
4.3. Characteristics:
The joystick serves as a pivotal component designed to offer a more manageable
and accessible alternative to the traditional computer mouse, particularly for
individuals experiencing hand tremors due to conditions like Parkinson’s disease or
essential tremor.
1. Enhanced Control and Precision:
The joystick provides a stable and ergonomic way to control the computer cursor.
The joystick accommodates a broader range of motion, allowing users to control
the cursor with less precision. The accelerometer within the joystick captures the
direction and intensity of movements which are then processed to ensure smooth
and accurate cursor navigation.
2. Design and Comfort:
The joystick is designed to be easy to grip which helps in reducing the strain on
the user's hand and wrist. Its design ensures that users can comfortably operate
the device for extended periods without discomfort, making it a more practical
solution for everyday computer tasks.
3. Customizable Sensitivity:
Users can adjust the sensitivity of the joystick to match their specific needs. This
customization allows the device to respond to varying degrees of hand
movement, making it adaptable for users with different levels of tremor severity.
5. Result
The device successfully transformed sensor data into precise cursor motions on
the computer screen. It responded promptly to joystick movements in every direction
up, down, left, and right facilitating effortless user interaction. Its sensitivity could be
adjusted to suit different needs, making it a versatile tool. What's more, this adaptable
prototype was also compatible with various systems without the need for additional
drivers. This cost-effective and customizable solution effectively fulfilled the project's
objective of empowering individuals with motor disabilities to use technology
independently.
6. Conclusion
The Neuromouse showcases the development of a sensor-based system
designed to enhance accessibility for individuals with nerve-related disabilities. By
converting sensor inputs into mouse controls, it demonstrates the potential of
integrating hardware like sensors and microcontrollers with software solutions to create
user-friendly interfaces for those with motor impairments. This highlights the role of
embedded systems and sensor technologies in developing cost-effective assistive
devices. Key features include the ability to filter unintended movements, ensuring
precise control, and customizable settings that adapt to various user needs making the
device suitable for individuals with different levels of tremors. Its compact and portable
design enhances its practicality for everyday use in multiple environments.
Emphasizing the importance of creating intuitive and efficient assistive devices that
bridge the gap between advanced technology and user accessibility, the scalable design
opens up possibilities for future improvements such as wireless capabilities, machine
learning integration, and broader platform compatibility. Overall, this demonstrates
how technological innovations can foster inclusivity and independence, contributing
significantly to the field of accessible and assistive technologies.
7. Reference
[1] L. Aljihmani, Y. Zhu, H. T. Abbas, R. Mehta, F. Sasangohar, and M.
Erraguntla, "Spectral analysis of hand tremors induced during a fatigue test,"
Proc. IEEE, 2020. [Online]
[2] Ferencik, N., Jascur, M., Bundzel, M., & Zolotova, I. (2018). “Measurement of
hand tremors”. 2018 IEEE 16th World Symposium on Applied Machine Intelligence
and Informatics (SAMI), 7–10 February 2018, Kosice and Herlany, Slovakia, pp.
245-250. doi: 10.1109/SAMI.2018.8323996.
[3] Koller, W. C., & Trimble, M. (2018). The impact of essential tremor on quality of
life: A cross-sectional study. Frontiers in Neurology, 9, 628.
Doi.org/10.3389/fneur.2018.00628
[4] Pinto, A. G., & de Souza, C. A. (2019). The impact of essential tremor on the
quality of life of patients and caregivers: A systematic review. Arquivos de
Neuro-Psiquiatria, 77(5), 340- 346,doi.org/10.1590/0004-282X20190004
[6] Tsai, Y. S., & Lee, S. Y. (2019). Design of a Joystick for Disabled People
with Tremors. Proceedings of the 2019 IEEE International Conference on Systems,
Man, and Cybernetics (SMC), 7–11 October 2019, Bari, Italy, pp. 3242–3247. doi:
10.1109/SMC.2019.8914545.
[7] Hsieh, Y. T., & Chiu, S. H. (2018). Real-time Tracking of Tremor Movements
Using Accelerometers for Assistive Mouse Devices. 2018 IEEE International
Neuromouse Symposium on Signal Processing and Information Technology (ISSPIT),
17–19, December 2018, Abu Dhabi, UAE, pp. 123–128. doi:
10.1109/ISSPIT.2018.8685601
[8] Wang, H., & Xu, X. (2017). Development of a Virtual Mouse Based on Hand
Tremor Detection for Parkinson’s Disease Patients. Proceedings of the 2017
IEEE International Conference on Robotics and Automation (ICRA), 29 May– 3
June 2017, Singapore, pp. 1982–1987. doi: 10.1109/ICRA.2017.7989324.
[9] Berard, A., & Petit, E. (2020). Assistive Joystick for People with Parkinson’s
Disease: Enhancing Fine Motor Control. 2019 IEEE International Conference
on Human-Computer Interaction (HCI), 13–15 July 2019, Las Vegas, USA, pp.
431–436. doi: 10.1109/HCI.2019.00083.
[10] Lee, C., & Yu, T. (2021). Design of a Novel Joystick Interface for TremorDriven
Mouse Control. IEEE Access, 9, 29335–29345. doi:10.1109/ACCESS.2021.3058001.
8. Appendix
Python Script:
import serial
import pyautogui
while True:
try:
# Read and decode data from Arduino
line = arduino.readline().decode(errors='ignore').strip()
if line.startswith("MOVE"):
_, y_move, x_move = line.split()
try:
y_move = int(y_move)
x_move = int(x_move)
pyautogui.moveRel(x_move, y_move, duration=0.1)
except ValueError:
# Ignore invalid movement values
pass
elif line == "CLICK LEFT":
pyautogui.click(button='left')
elif line == "CLICK MIDDLE":
pyautogui.click(button='middle')
elif line == "CLICK RIGHT":
pyautogui.click(button='right')
except serial.SerialException as e:
print(f"Serial error: {e}")
break
except KeyboardInterrupt:
print("Exiting...")
break
Arduino:
#include <Wire.h>
#include <MPU6050_light.h>
MPU6050 mpu(Wire);
unsigned long timer = 0;
int Xang = 0, Yang = 0;
int prevXang = 0, prevYang = 0;
const int threshold = 3; // Minimum change to register movement
// Button pins
const int leftButton = 7;
const int middleButton = 8;
const int rightButton = 9;
// Button states
bool leftButtonPressed = false;
bool middleButtonPressed = false;
bool rightButtonPressed = false;
void setup() {
pinMode(leftButton, INPUT_PULLUP);
pinMode(middleButton, INPUT_PULLUP);
pinMode(rightButton, INPUT_PULLUP);
Serial.begin(9600);
Wire.begin();
Department of ECE, BVRIT HYDERABAD CEW Page 25
Neuromouse
mpu.begin();
delay(1000);
mpu.calcOffsets();
}
void loop() {
mpu.update();
Serial.println("CLICK MIDDLE");
middleButtonPressed = true;
} else if (digitalRead(middleButton) == HIGH) {
middleButtonPressed = false;
}
timer = millis();
}
}