2. A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
3. Yes ! It is
possible.
In this project, we plan to build a gesture build control
computer by combining the power of Arduino and
Python.
The user will be able to control the computer screen
without any physical interaction with keyboard or
mouse.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
4. • Hand gesture-controlled laptops utilize advanced technology.
• Instead of traditional input methods, enable users to interact with their
laptops using hand gestures. This makes the interaction with laptop more
interesting.
• This innovative approach offers numerous benefits and opens up exciting
possibilities across various domains.
• There are many applications like media player, MS-office, Windows
picture manager etc. which require natural and intuitive interface.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
5. Human Computer Interface
The hardware or software through which a human
interacts with a computer. It allows human operators to
:
• Monitor the state of a process under control.
• Modify control settings to change the control objective.
• Manually override automatic control operations in the
event of an emergency.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
6. Human-Computer Interface (HCI) applications are designed to facilitate
interaction between humans and computers, aiming to make technology
more intuitive, user-friendly, and accessible.
HCI Applications :
• User-Friendly Interaction: HCI applications prioritize creating
interfaces that are intuitive and easy to use, reducing the learning
curve for users.
• Multimodal Interaction: HCI applications aim to support multiple
modes of interaction, such as touch, voice, gestures, and even eye-
tracking.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
7. • Accessibility and Inclusivity: HCI applications strive to accommodate users
with diverse needs and abilities.
• Natural Language Processing: This allows users to interact with systems
in a more conversational and natural manner.
• Security and Privacy: HCI applications prioritize the security and privacy of
user data.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
8. • To make the machine more interactive and user friendly.
• A step to minimize the use of mouse and keyboard.
• Recently developed gesture controlled systems are famous and
also expensive.
Therefore we tried our own implementation of hand gestures
by using Arduino and Python.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
9. Block Diagram
Hand Gesture
Computer +
Ultrasonic sensors
and Arduino
Processing using
Arduino coding
and Python
Perform functions
accordingly
input
Detect the gesture
output
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
11. Arduino Mega
• The Arduino Mega 2560 is a microcontroller board based on
the ATMega2560.
• It has 54 digital input/output pins (of which 15 can be used as PWM outputs),
16 analog inputs, 4 UARTs (hardware serial ports), a 16 MHz crystal
oscillator, a USB connection, a power jack, an ICSP header, and a reset
button.
• It contains everything needed to support the microcontroller; simply connect it
to a computer with a USB cable or power it with a AC-to-DC adapter or
battery to get started. The Mega 2560 board is compatible with most shields
designed for the Uno and the former boards Duemilanove or Diecimila.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
12. • Microcontroller: A microcontroller is a compact integrated circuit
(IC) that contains a processor core, memory, and input/output
peripherals.
• PWM (Pulse Width Modulation): The Arduino Mega has 15 pins
(labeled with "~" symbol) capable of generating a PWM signal.
• Serial Communication: The Arduino Mega supports serial
communication, This enables communication and data transfer
between the Arduino and external devices.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
13. • Sketch: In Arduino, a sketch refers to the code that runs on the
microcontroller.
• Reset Button: The reset button on the Arduino Mega 2560 allows
you to restart the microcontroller and start executing the program
from the beginning.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
14. A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
15. • An ultrasonic sensor is an instrument that measures the distance to
an object using ultrasonic sound waves.
• An ultrasonic sensor uses a transducer to send and receive
ultrasonic pulses that relay back information about an object's
proximity.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
16. Here are some common terminologies associated with ultrasonic
sensors:
• Ultrasonic Waves: These are sound waves with frequencies higher
than the upper limit of human hearing, typically above 20,000 hertz
(Hz).
• Transducer: It is the component that converts electrical energy into
ultrasonic waves and vice versa.
• Frequency: Ultrasonic sensors typically operate at a specific
frequency, Common frequencies used in ultrasonic sensors are 40
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
17. • Pulse-Echo Principle: Ultrasonic sensors operate based on the
pulse-echo principle. A short ultrasonic pulse is emitted, and the
sensor measures the time it takes for the echo to return after
bouncing off an object. The time difference is used to calculate the
distance.
• Detection Range: This refers to the maximum distance at which the
sensor can detect objects.
• Sensing Resolution: It refers to the smallest detectable change in
distance that an ultrasonic sensor can measure.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
18. • Sensing Resolution: It refers to the smallest detectable change in
distance that an ultrasonic sensor can measure.
• Echo Processing: Once the echo is received, it undergoes signal
processing to extract relevant information such as distance,
presence, or absence of objects. This processing may include
amplification, filtering, and thresholding.
• Trigger and Echo Pins: These are the electrical connections on an
ultrasonic sensor that interface with a microcontroller or other
control circuitry.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
19. Propagatio
n of sound
waves
Interaction
with objects
Echo
detection
Measuring
the time of
flight
Emitting an
ultrasonic
pulse
Distance
Calculatio
n
Output
Working of US Sensor
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
20. A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
21. • Jumper wires are simply wires that have connector pins at each end.
• It rough them to be used to connect two points to each other
without soldering.
• Jumper wires typically come in three versions: male-to-male, male-
to-female and female-to-female. The difference between each is in
the end point of the wire.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
22. Jumper wires
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
23. • Python is a robust programming language that is simple to learn. Its
object- oriented programming methodology is straightforward but
efficient, and it includes good high-level data structures.
• Python is a fantastic language for scripting and quick application
development in many domains on most platforms.
• Python is dynamically typed, meaning you don't need to declare
variable types explicitly.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
24. • Object-oriented: Python supports object-oriented programming
(OOP) principles. It allows you to define classes, create objects,
and use inheritance, encapsulation, and polymorphism.
• Large standard library: Python comes with a comprehensive
standard library that provides numerous modules and functions for
a wide range of tasks.
• Third-party libraries and frameworks: Python has a vast ecosystem
of third-party libraries and frameworks, such as NumPy, Pandas,
TensorFlow, Django, Flask, and many more.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
25. Version used : Python 3.11
Features:
• Fine-grained error locations in tracebacks
• Exception groups
• Exception notes
• Negative zero formatting
• Dead batteries
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
26. • Other improvements
• Faster code execution
• Improved error messages
• Support for TOML configuration parsing
• New modules and improvements to existing
modules
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
27. 1. PIP Package Installer: Installation, deletion, and maintenance of
packages can be done in python using the Pip package installer.
2. PyAutoGUI Library: To automate mouse and keyboard interactions
with other applications and also their operations we use
PyAutoGUI package which helps the python scripts to control
these operations.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
28. 3. PySerial Library: This package is used to encapsulate the access
for the serial port and also provide backend support for python on
various operating systems. The "serial" module helps in
automatically finding a suitable backend.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
29. • Open source software called Arduino IDE mostly used for authoring
and compiling code into Arduino modules.
• Because it is an official Arduino program, code compilation is so
simple that even an average individual with no prior technical
expertise may get started learning.
• The Arduino IDE is compatible with multiple operating systems,
including Windows, macOS, and Linux.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
30. • The IDE includes a code editor with features like syntax
highlighting, auto-completion, and code formatting. It helps users
write and edit Arduino sketches (programs) efficiently.
• The primary code, often referred to as a sketch, written on the IDE
platform will eventually produce a Hex File, which is transported to
and uploaded into the controller on the board.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
31. Tinkercad :
• Browser-based 3D modeling tool that allows users to create and
design 3D models easily.
• It's a great tool for beginners and educators who want to introduce 3D
design concepts to students.
Creality Ender-3 3D Printer:
• Renowned brand in the 3D printing industry, widely recognized for
manufacturing some of the most reliable and popular 3D printers
on the market.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
32. 3D Design
3D model
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
33. Circuit Diagram
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
US Sensor
1
US Sensor
2
Arduino
Mega
34. • Two Ultrasonic sensors will be placed on top of the monitor.
• Using an Arduino, we will measure the distance between the
monitor and our hand. Serial port is used by Arduino to
communicate orders to the computer.
• Using the Python pyautogui module, we may conduct operations on
our computer.
• Python, which is currently running on the computer, will then read
this data, and based on the read data, an action will be taken.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
35. A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
36. 1. Simply connect the two Ultrasonic sensors to an Arduino to control
the PC with hand gestures.
2. Since we are aware that US sensors require a voltage of 5 volts,
the Arduino's internal voltage regulator supplies their power.
3. For both serial communication and powering the module, the
Arduino can be connected to a PC or laptop.
4. Connect the prototype with the laptop using Arduino-USB cable
and place it nearby as indicated in the figure.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
37. Prototype connected to laptop
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
38. 5. In order to send commands to the serial port, the gesture motion
has been transformed into commands.
6. A Python application is created to control specific Keyboard
Functions using these commands in order to complete the
necessary task.
7. Upon identifying the proper hand gestures, the Arduino uses the
Serial Port to transmit various texts or commands. These
instructions are
• Next/Previous
• VolumeUp/VolumeDown
• Change
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
39. 8. These commands, coupled with a few PyAutoGUI routines (such
as hotkey, keyDown, press, and keyUp), are used to create a
straightforward Python script that performs keyboard and mouse
operations.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
40. 1. Slowly move your both hands away from each ultrasonic sensors
after briefly placing it in front of the sensor. Volume will be
increased by this motion.
2. Slowly move your both hands towards each ultrasonic sensors.
Volume will be decreased by this motion
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
41. 3. Move your hand in front of the right ultrasonic sensor in this
gesture. The next slide will be reached by this action or video will
be forwarded by 5 seconds.
4. Move your hand in front of the left ultrasonic sensor in Gesture 4.
The previous slide will be reached with this motion or video will be
taken backward by 5 seconds.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
42. Application
• Presentations and Multimedia: Hand gesture control can be used to
control presentations or multimedia applications, providing a more
dynamic and engaging presentation experience.
• Assistive Technology: Hand gesture control can be beneficial for
individuals with physical disabilities who may have limited mobility or
difficulty using conventional input devices.
• Gaming: Hand gesture control can be used in gaming applications to
provide a more immersive and interactive gaming experience.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
43. • Home Automation: Hand gesture control can be integrated into
home automation systems. For example, adjusting lighting intensity,
controlling the thermostat, or opening/closing curtains with
gestures.
• Robotics and Automation: Hand gesture control can be used to
control robots and automation systems.
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R
44. 1. Sawardekar, Gaurav and Thaker, Parthil and Singh, Rishiraj and
Gaikwad (Mohite), Vaishali, Arduino Based Hand Gesture Control
of Computer Application.
2. Udit Kumar, Sanjana Kintali, Kolla Sai Latha, Asraf Ali, N. Suresh
Kumar, “Hand Gesture Controlled Laptop Using Arduino”.
3. Sarita K., Gavale Yogesh, S. Jadhav, “HAND GESTURE
DETECTION USING ARDUINO AND PYTHON FOR SCREEN
CONTROL”
A R D U I N O B A S E D H A N D G E S T U R E C O N T R O L O F C O M P U T E R