USB Virtual Reality HID. by Weston Taylor and Chris Budzynski Advisor: Dr. Malinowski

Similar documents
Inertial Measurement Units I!

XDK HARDWARE OVERVIEW

Satellite and Inertial Navigation and Positioning System

9 Degrees of Freedom Inertial Measurement Unit with AHRS [RKI-1430]

Selection and Integration of Sensors Alex Spitzer 11/23/14

DETERMINING ANGLE POSITION OF AN OBJECT USING ACCELEROMETERS

Towards the Consumerization of Smart Sensors

GPS + Inertial Sensor Fusion

DriftLess Technology to improve inertial sensors

Managerial Design Review - Senior Design II

IMU6420 V0.98 Data Logger Release Notes January 12, 2013

Accelerometer with Analog and Digital I/O for StackableUSB USB1600

Table of Contents 1 Typical Applications General Description Block Diagram Pinout System Connections Typical A

Using the MPU Inertia Measurement Systems Gyroscopes & Accelerometers Sensor fusion I2C MPU-6050

2011 FIRST Robotics Competition Sensor Manual

AN 038. Getting Started with the KXTJ2. Introduction

AVR4018: Inertial Two (ATAVRSBIN2) Hardware User's Guide. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

navigation Isaac Skog

ECV ecompass Series. Technical Brief. Rev A. Page 1 of 8. Making Sense out of Motion

Monitoring Human Body Motion Denis Hodgins

Modular Rapid Monitoring System

Embedded Navigation Solutions VN-100 User Manual

EE 570: Location and Navigation: Theory & Practice

AN055. Replacing KX023, KX123, KX124 with KXG07. Introduction

Camera Drones Lecture 2 Control and Sensors

Pedometer 3 Click. PID: MIKROE 3259 Weight: 24 g

DE2.3 Electronics 2. Lab Experiment 3: IMU and OLED Display

Testing the Possibilities of Using IMUs with Different Types of Movements

Me 3-Axis Accelerometer and Gyro Sensor

Inertial Navigation Systems

Parallax LSM9DS1 9-axis IMU Module (#28065)

LPR530A ±300 /Second, ±1200 /Second Analog Pitch-Roll Gyroscope Module

Team: XeroDual. EEL 4924 Electrical Engineering Design. Final Report 3 August Project Ehrgeiz. Team Name: XeroDual

Embedded Navigation Solutions. VN-100 User Manual. Firmware v Document Revision UM001 Introduction 1

Bluetooth Embedded Inertial Measurement Unit for Real-Time Data Collection for Gait Analysis

Sensor Toolbox (Part 2): Inertial Sensors

BNO055 Quick start guide

Gyroscope Module 3-Axis L3G4200D (#27911)

ECG (EKG) Primer Jingxi Zhang ABSTRACT

AC : THE INERTIAL NAVIGATION UNIT: TEACHING NAVIGATION PRINCIPLES USING A CUSTOM DESIGNED SENSOR PACKAGE

Inertial Measurement Units II!


ELET114A Bluetooth Module DATASHEET. Website: / 7

Wireless Data Acquisition System (WiDAS)

Mio- x AHRS. Attitude and Heading Reference System. Engineering Specifications

CSE 466 Exam 1 Winter, 2010

KXCJK AN 039. Getting Started with the KXCJK. Introduction

3DM-GX1 Data Communications Protocol

Contents. The USB Logic Tool... 2 Programming... 2 Using the USB Logic Tool... 6 USB Logic Tool Features... 7 Device Hardware...

EE 267 Virtual Reality Course Notes: 3-DOF Orientation Tracking with IMUs

Movit System G1 WIRELESS MOTION DEVICE SYSTEM

Real-time Gesture Pattern Classification with IMU Data

Collaboration is encouraged among small groups (e.g., 2-3 students).

CHARACTERIZATION AND CALIBRATION OF MEMS INERTIAL MEASUREMENT UNITS

Navigational Aids 1 st Semester/2007/TF 7:30 PM -9:00 PM

Combined GPS and Inertial Navigation System

TEST RESULTS OF A GPS/INERTIAL NAVIGATION SYSTEM USING A LOW COST MEMS IMU

Use of Image aided Navigation for UAV Navigation and Target Geolocation in Urban and GPS denied Environments

Application basics/handbook

Inertial Navigation Static Calibration

AN Theory of Operation. Abstract. 1 Introduction. Using the AS5046 Rotary Encoder in 3D Joystick Applications APPLICATION NOTE

MEMSENSE. AccelRate3D. Triaxial Accelerometer & Gyroscope Analog Inertial Sensor

On a daily basis, first responders are tasked with entering dangerous, often unknown environments

Low Power Gesture Recognition

New paradigm for MEMS+IC Co-development

Indoor navigation using smartphones. Chris Hide IESSG, University of Nottingham, UK

Error Simulation and Multi-Sensor Data Fusion

Dynamic Modelling for MEMS-IMU/Magnetometer Integrated Attitude and Heading Reference System

Electronics Design Contest 2016 Wearable Controller VLSI Category Participant guidance

The Heart Buddy. Andrew Pagan, Andrew Villagomez, Jose Reyes, Jairo Hernandez

Micro Inertial Navigation System. - Present Status and Development at Imego AB.

Lab 8: Sensor Characterization Lab (Analog)

ECE251: Thursday November 8

Calibration of Inertial Measurement Units Using Pendulum Motion

MEMS & Advanced Analog

Motion-sensing Devices in the Assistive Technology Arena

Lecture 13 Visual Inertial Fusion

DYNAMIC POSITIONING CONFERENCE September 16-17, Sensors

HCOMM Reference Manual

Wireless-Tag WT51822-S1

Cross-Domain Development Kit XDK110 Platform for Application Development

CENG4480 Embedded System Development and Applications The Chinese University of Hong Kong Laboratory 6: IMU (Inertial Measurement Unit)

Sensing our world PRODUCT OVERVIEW

Development of Data Logger for Non-Wired Sensing and Recording of Small Lateral paths

Performance Evaluation of INS Based MEMES Inertial Measurement Unit

Satellite Attitude Determination

Serial Peripheral Interface Bus SPI

Use of ISP1880 Accelero-Magnetometer, Temperature and Barometer Sensor

Application Note AN10 RTLS TDOA Platform Components Comparison

CyberAtom X-200 USER MANUAL. Copyrights Softexor 2015 All Rights Reserved.

ARK. SDP18 Team 21 FPR 4/11/2018

This document gives details on hardware and software for using and testing Insight SiP Bluetooth Low Energy module ISP1302-BS.

SMART HOME SYSTEMS. Group 10. Daniel Moody CpE Thien Luu EE Joel LeGros EE Vu Ha EE

LSM303 Tilt Compensated Compass(SEN0079)

Charlotte Treffers Luc van Wietmarschen. June 15, 2016

POINT Gyro-Stabilized Compass Module HMR3601

LPMS-B Reference Manual

BLE MODULE SPECIFICATIONS

IMU06WP. What is the IMU06?

Sphero Lightning Lab Cheat Sheet

Transcription:

USB Virtual Reality HID by Weston Taylor and Chris Budzynski Advisor: Dr. Malinowski

Project Summary Analysis Block Diagram Hardware Inertial Sensors Position Calculation USB Results Questions === Agenda

Project Summary Purpose: To create a USB HID that translates user movements into onscreen actions to provide a realistic interactive platform for PC games and other virtual environments. Why?: To show that low-cost MEMS inertial sensors capable of providing accurate position data for a complex interactive experience.

Previous Work MetaMersion Immersive Gaming System

Goals List of project goals: Translate sensor readings into a 3-D position Send 3-D position to PC using USB (gamepad) Use low-cost 8-bit embedded systems Embedded programming = C language Wireless communication between subsystems

Analysis Stationary INS (Inertial Navigation System) No Linear Movement Only Angular Movement (Pitch, Yaw) Gyroscopes measure angular velocity

Analysis Gyroscopes Measure /sec 1 integration to get position (absolute angle) Frames of Reference Mathematical Transformations (Trig Functions) Yaw Dependent on Pitch Cosine Lookup Table

System Specs System Requirements Hardware 300-400 /second do not want saturation Temperature Range 0 C to 40 C Software Position calculation every 10ms Human Reaction Time (100ms) Monitor Refresh Rate = 60 Hz (16.7ms)

Hardware Human Movement Handheld Device 5DOF Analog Data Serial Data I2C Analog Data C8051F120 ZigBee Compass Wireless ZigBee (Send Position) USB Device PIC18F14K50 System Diagram ZigBee Serial Analog Data USB Communication (Send Position) Personal Computer

Software HL Software Flowchart Human Movement Sensor Data HID Software (Handheld Device) Collect Sensor and Switch Data Calculate Pitch Calculate Yaw Send Position To USB Board USB Board Software (PIC18F) USB ISR (Slave): Wait Wait for Send Request Received Put Data in USB Buffers Translate Position to USB Protocol Take Derivative for Direct Input Receive Position Send USB Data Host Personal Computer Monitor/ Headset

Hardware IMU 5 DOF 2-axis gyroscope = 500 /sec 2-axis accelerometer = ±3g Analog Outputs Electronic Compass HMC6352 I2C Interface

Hardware Inertial Board - Silicon Labs C8051F120 8-bit processor 98MHz 12-bit A/D

Hardware Wireless ZigBee - XBee 1mW Chip Antenna UART to ZigBee Conversion 2.4 GHz Range = 300ft Baud = 9600 bits/sec Transparent Mode Problem Interference with analog

Hardware USB Board Microchip LPC USB Dev. Kit PIC18F14K50 8-bit, 48MHz

Parts List Parts List Table: Equipment Part Description Quantity Cost Supplier Personal Computer With USB and Half-Life 2 1 $0.00 Personal Laptop USB Board Microchip LPC USB Dev. Kit 1 $60.00 www.microchip.com Main Board SiLabs C8051F120 Dev. Kit 1 $99.00 In Lab Gyro + Accelerometer IMU 5 Degrees of Freedom SEN-00741 1 $100.00 www.sparkfun.com Compass Module - HMC6352 SEN- 07915 1 $60.00 www.sparkfun.com Electronic Compass Level Converter Logic Level Converter BOB-08745 1 $2.00 www.sparkfun.com Wireless / ZigBee XBee 1mW Chip Antenna WRL-08664 2 $25.00 www.sparkfun.com Total Price: $346.00

Schematic Inertial Board Schematic

Schematic USB Board Schematic

Inertial Sensors Inertial Sensor Inherent Problems High Frequency Noise Scale Factor Variations Offset causes Drift (significant)

Noise Problem High Frequency Noise Solution LPF Gyroscopes 80Hz Accelerometers 500Hz

Scale Factors Problem Scale Factor Variations Datasheet = not exact + and directions different Accumulated error = drift Solution Feedback

Offset Problem Offset, zero-rate voltage Causes drift from integration Solution Calibration routine = 1024 sample average Adaptive zero-rate voltage Window filter Feedback

A/D steps Sensor Data HyperTerminal (.txt) MATLAB Raw A/D Data 1958 Raw Data 1957 1956 1955 1954 1953 1952 1951 1950 0 1 2 3 4 5 6 7 8 9 10 Time (s)

A/D steps Sensor Data Data after calibration and adaptive zero-rate After Moving Average 3 2 1 0-1 -2-3 0 1 2 3 4 5 6 7 8 9 10 Time (s)

A/D steps Sensor Data Data after window filter no drift at rest 2 A/D steps = ±1.6mV ±0.8 /sec After Window Filter 3 2 1 0-1 -2-3 0 1 2 3 4 5 6 7 8 9 10 Time (s)

Position Basics Gyroscopes measure /sec A/D reads steps Find conversion factor ( /sec)/step Want an absolute angle in degrees ( ) Calculation / Position = [A/D steps] [( /sec)/step] dt / Position = [ /sec] dt / Position = #

Position Software Conversion Factors / Constants Conversion from A/D Value to /s: Summation As Approximation of Integration T = 1/200Hz = 0.005 so Position Approx. is: Angular Position = Previous Position + (Current ADC/496)

Code Integration Summation Backward Rectangular Rule kt-t kt

Code Window Filter Adaptive Zero-Rate Offset Only runs inside Window Filter

Feedback Integration of error Drift Open Loop System Feedback Pitch Drift Correction (accelerometer) Yaw Drift Correction (electronic compass)

USB USB Basics Master / Slave Polling (choose interval) Human Interface Device (HID) Mouse + Keyboard or Gamepad Flexible Report Descriptor Our Report Descriptor Rx Rotation around x-axis Pitch Ry Rotation around y-axis Yaw Buttons (6)

USB Silicon Labs C8051F340 = USB Dev. Kit Mouse and Keyboard Working Gamepad Error Code 10

USB Microchip LPC USB Dev. Kit Gamepad working in one week

USB Problems Direct Input Cannot actually send absolute position Absolute # of units / axis Translate to angle Needs derivative = send Δ position Multiple software layers / interpretations Embedded USB Software Windows Driver Direct Input Video Game

Results MEMS = good / accurate position Software limitations No absolute position No software feedback

Results Future Suggestions Write own Windows driver Patch to game Direct Input Step pad / Buttons for spatial movement

Video

References [1] Silicon Labs, C8051F34x Data Sheet, https://www.silabs.com/products/mcu/usb/pages/c8051f34x.aspx [2] Wikipedia, Inertial Navigation System, http://en.wikipedia.org/wiki/inertial_navigation_system [3] GeneSys Engineering Department, Inertial Sensors and Systems An Introduction, http://www.genesys-offenburg.de/genesyse.htm [4] D. Schertz, EE565 Fall 07 Lectures Notes 20 24, Bradley University [5] Device Class Definition for Human Interface Device (HID) Version 1.11 http://www.usb.org/developers/hidpage/ [6] HID Usage Tables Version 1.12 http://www.usb.org/developers/hidpage/

Questions

Test Platform Yaw = 0 360 Rotation Pitch = 0 180 Rotation

void main(void) SW Flowcharts

ADC0 Interrupt SW Flowcharts

USB Board SW Flowcharts