Upload
vishal-aditya
View
78
Download
1
Embed Size (px)
Citation preview
Hand Gesture Game SimulatorA simple automation project with Raspberry Pi using ADXL345 accelerometer
to simulate better gaming experience. Supports All Windows Games, currently
functioning over Ethernet & WiFi.
Idea/Concept of this project
Expensive game simulators for Indian market.
Make open-source & cross-compatibility.
Simulate windows virtual keys.
DirectX programming.
Auto-Hot Keys for better gamming experience.
WiFi/Ethernet connection.
How it works?
Hardware Required
RaspberryPi single-board micro-controller
ADXL345 digital accelerometer
Power Bank
Jumpers, Glove
Software Required
Raspbian linux O.S
Python2.7 64-bit
RPi Gadgets
Name Specification
Pi Camera, Pi NoIR Camera•Fixed focus lens on-board•8 megapixel native resolution sensor-capable of 3280 x 2464 pixel static images•Supports 1080p30, 720p60 and 640x480p90 video•Size 25mm x 23mm x 9mm•Weight just over 3g•OpenCV using python & C++ libraries
Pi 7” LCD Touch ScreenMulti-touch capacitive touch
• 7 inch display
• 800 x 480 pixel resolution at 60 frames per second (fps)
• 24-bit RGB color
• 70° viewing angle
ADXL345 Accelerometer
The ADXL345 is a small, thin, low power,
3-axis MEMS accelerometer with high
resolution (13-bit) measurement at up
to +-16 g.
Digital output data is formatted as 16-
bit twos complement and is accessible
through either a SPI (3- or 4-wire) or I2C
digital interface.
Accelerometer Calibration
Mathematics & Calculations
#calculation of tilt
roll = y/(math.sqrt(z*z + x*x))
rolldeg = math.atan(roll)*(180/(math.pi))
rolldeg = round(rolldeg,2)
pitch = x/(math.sqrt(z*z + y*y))
pitchdeg = math.atan(pitch)*(180/(math.pi))
pitchdeg = round(pitchdeg,2)
rollpitch = str(rolldeg) + " " + str(pitchdeg)
print rollpitch
Simulating Virtual Keys
LOGIC KEY CODE KEYBOARD
if input=='up': return 0x11 //KEY_w
elif input=='lt': return 0x1E //KEY_a
elif input=='rt': return 0x20 //KEY_d
elif input=='dn': return 0x1F //KEY_s
elif input=='sp': return 0x39 //KEY_space
elif input=='rc': return 0x9D //KEY_RCTRL
How to make Connection
Hardware Connection Using Ethernet & WiFi.
Software Connection Using Python Socket Connection.
SERVER.PY
IP=getAddrIP();
sock.bind((IP,1234))
result,addr=sock.recvfrom(16)
CLIENT.PY
import socket
server_address =('192.168.182.103',1234)
sock.connect(server_address)
Thank You!
Questions?
Project By:Vishal Aditya
B.Tech(CS&E)
7th SEM
A20405213038
Links:GitHub: https://github.com/vsl-tech/hggamesimulator
Youtube: https://youtu.be/4pJtTksczvs
Blog: https://www.vslcreations.blogspot.in
LinkedIn: https://www.linkedin.com/in/vslcreations
Email: [email protected]