WiiMaze Design Document March 13, 2008

Similar documents
Laboratory 2(a): Interfacing WiiMote. Authors: Jeff C. Jensen (National Instruments) Trung N. Tran (National Instruments)

AN-140. Protege WX SALLIS Integration Application Note

IBU3 Manual Addendum 1

USER MANUAL. Intelligent Diagnostic Controller IDC24-A IDC24-AF IDC24-AFL IDC24-F IDP24-A * IDP24-AF * IDP24-AFL * IDP24-F * 1/73

Wiimote Visualization Through Particles

Specifications and information are subject to change without notice. Up-to-date address information is available on our website.

Using the Lego NXT with Labview.

NIBP OEM Module. (Model : M_NIBP) Contents. 1. Concept 2. Composition 3. PCB Dimension 4. Specification 5. Protocol 6. Cuff & Electrical Connection

AC : MEASUREMENT OF HYDROGEN IN HELIUM FLOW

4 Making Your Robot Move

Flight Software Overview

BUYER S GUIDE AQUAlogger 530WTD

Final Report. Remote Fencing Scoreboard Gator FenceBox

New product release. Universal Rebreather Monitor (URBM) Single O2 cell and Dual HP package

Doc. no.dit om005 PRODUCT NAME. IO-Link/ELECTRO-PNEUMATIC REGULATOR. MODEL / Series / Product Number ITV*0*0-IO****-X395

Datalogging Shirt for Baseball Pitchers

Robot Soccer Challenge

The NXT Generation. A complete learning solution

New product release. Universal Rebreather Monitor (URBM) Three cell / Independent backup

Industrial Compressor Controls Standard Custom

User manual CF8-D/W-IN

Deploying the TCM-1 Tilt Current Meter in an Inverted (Hanging) Orientation By: Nick Lowell, Founder & President

PART 5 - OPTIONS CONTENTS 5.1 SYSTEM EXPANSION 5-3

Touch Screen Guide. OG-1500 and OG Part # T011

Applications & Tools. Evaluation of the selection of a safetyrelated mode using non-safety-related components

Smart Data Role computers play in Technology

IDeA Competition Report. Electronic Swimming Coach (ESC) for. Athletes who are Visually Impaired

HART Communications Board

RM-80 respiration monitor

PRODUCT MANUAL. Diver-MOD

CDR File Information. User Case Number EDR Data Imaging Date Crash Date

Quintic Automatic Putting Report

REASONS FOR THE DEVELOPMENT

APA software instruction manual

How to zero calibrate your CO2 sensor with a GSS evaluation kit

WIIMOTE IN APPLICATIONS RICH INTERNET. Timen Olthof. supervisor: Anton Eliëns co-supervisor: dr. N. Silvis. june 2008, VU Amsterdam BACHELOR PROJECT

v2.3 USER MANUAL

Rescue Rover. Robotics Unit Lesson 1. Overview

Mac Software Manual for FITstep Pro Version 2

Reliability of Safety-Critical Systems Chapter 3. Failures and Failure Analysis

Data Sheet T 8389 EN. Series 3730 and 3731 Types , , , and. EXPERTplus Valve Diagnostic

Certification Exhibit FCC ID: R7PIWRS4. FCC Rule Part: ACS Report Number: W03.11.A

Samsung SMART Hospitality Display Specification Book HE460 HE470 HE590 HE670 HE690 HE694 HE890U HE890W EU/ CIS

Samsung Hospitality Display with Manageability - HE460

Race Screen: Figure 2: Race Screen. Figure 3: Race Screen with Top Bulb Lock

LifeBeat should be worn during daytime as well as night time as it can record activity levels as well as sleep patterns.

Ranger Walking Initiation Stephanie Schneider 5/15/2012 Final Report for Cornell Ranger Research

Samsung Hospitality Display with Manageability - HE694

Tutorial: Adding Twitch ChatPlay

Rotel RX-1052 RS232 HEX Protocol

Introduction. The Shearwater Petrel is an advanced technical diving computer for open and closed circuit divers.

Lockstep. Reference Manual. Last updated on September 23, Figure 53, LLC

Technical Data Sheet MF010-O-LC

OC508 Programmable mv Calibrator

The M-Series Eletta Flow Meter High accuracy DP Flow Meter with multiple functions

BUBBLER CONTROL SYSTEM

Domino DUEMMEGI. Domino. Communication Interface DFTS User s Manual. Release September 2007

A Development of Mechanical Arm for Weight Scale Calibration

Software Design of the Stiquito Micro Robot

Department of Computer Science and Engineering The University of Texas at Arlington. Team: PAINTeK. Project: Sentinel

ZIPWAKE DYNAMIC TRIM CONTROL SYSTEM OUTLINE OF OPERATING PRINCIPLES BEHIND THE AUTOMATIC MOTION CONTROL FEATURES

FireHawk M7 Interface Module Software Instructions OPERATION AND INSTRUCTIONS

Science&Motion. SAM BalanceLab. Sports. control the invisible. Most advanced pressure plate for coaching

The HumiSys. RH Generator. Operation. Applications. Designed, built, and supported by InstruQuest Inc.

HumiSys HF High Flow RH Generator

Datasheet: K-30 ASCII Sensor

GOLFER. The Golf Putting Robot

Samsung Hospitality Display with Manageability - HE470

WalkCompass: Finding Walking Direction Leveraging Smartphone s Inertial Sensors. Nirupam Roy

Safety Manual VEGAVIB series 60

Ultima. X Series Gas Monitor

TR Electronic Pressure Regulator. User s Manual

Oxygen Meter User Manual

Technology. In the My Files [My Files] submenu you can store all the programs that you have made on the NXT or downloaded from your computer.

S-CURVE DOCUMENTATION AND TUTORIAL FOR THE S-CURVE ON THE COOL MUSCLE

Environmental Petrochemical, Pharmaceutical, Foods & Flavors, Chemicals, Personal Care, Forensics,...and more!

CONSUMER MODEL INSTALLATION GUIDE

Getting Started with the LabVIEW Toolkit for LEGO MINDSTORMS NXT

Application Notes. SLP85xD Load Cells

ARCCOS 360 NEW USER GUIDE

Viva TPS. TS11/15 Total Stations Check and Adjust Procedure. October Summary

The examples below are a starting point, and some fine tuning may be required.

SIDRA INTERSECTION 6.1 UPDATE HISTORY

Walk-O-Meter User Manual

CprE 288 Final Project Description

Average Accuracy within 0.1 mph, Calls Out Speeds, Tracks Results

TANKTRONIC. STANDARD CONFIGURATION Single Tank. ADVANCED CONFIGURATION Multiple Tanks. Twin Tank (common valve) Twin Tank (separate valves) Vent box

Troubleshooting Guide: 640 Pediatric Exam Table with Midmark Scale

THE STATCREW SYSTEM For Basketball - What's New Page 1

SPLIT HOPKINSON PRESSURE BAR OPERATIONS MANUAL 5/9/2014

NAOMI Software Design

Lab 1: Pressure and surface tension. Bubblers, gravity and the mighty paper clip.

Wiimote in Physical Etoys

ECHO MANUAL WARNING. L B A ltim e te rs. ECHO is a trademark of LB Altimeters, Denmark

XSeries G4 Plunger Application rev. AA

SUPPLEMENT MATERIALS

Software Manual for FITstep Pro Version 2

Pressure calibration. 20

Reduction of Bitstream Transfer Time in FPGA

P3000 Deadweight Tester Setup, Part 1: Limited Partial Correction Method

Transcription:

WiiMaze Design Document March 13, 2008 Yezhen Lu (yl2194) Brian Ramos (bjr2102) Shaun Salzberg (sds2110)

Introduction We are going to implement a simple maze game using the Altera DE2 Board, a Wiimote, a monitor, and some hard work. We will be using the USB Controller, the CPU, the RAM, the RAM controller, and the video controller in our design. The basic idea is that the Wiimote will communicate through a Bluetooth connection to a USB Bluetooth receiver. The receiver will then capture the inputs and write the result into memory mapped RAM. The game logic will read the contents of the RAM, update the game state, and will display the result onto a monitor using a sprite engine. Wiimote Details The Wiimote has a number of different data reporting modes which map to certain core data features of the remote, including data from external peripherals. These reports are sent as a stream of bytes with the following format: 1 byte 1 byte (1 byte each) (data input packet id) (reporting id) (data) (data)... (data) It sends these reports to the host through one of the report ID's, which are determined by the particular mode the wiimote is in. We can set the wiimote to a reporting mode that will send reports only when data has changed and what channel to use via a reporting id. A list of the reporting ids that contain accelerometer specific data are as follows: 0x31: Core Buttons and Accelerometer (a1) 31 BB BB AA AA AA 0x33: Core Buttons and Accelerometer with 12 IR bytes (a1) 33 BB BB AA AA AA II II II II II II II II II II II II 0x35: Core Buttons and Accelerometer with 16 Extension Bytes (a1) 35 BB BB AA AA AA EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE 0x37: Core Buttons and Accelerometer with 10 IR bytes and 6 Extension Bytes (a1) 37 BB BB AA AA AA II II II II II II II II II II EE EE EE EE EE EE 0x3e / 0x3f: Interleaved Core Buttons and Accelerometer with 36 IR bytes (will not be used since this contains a lot of superfluous data) Each triple AA AA AA corresponds to the acceleration in the x, y and z directions, respectively. The axes can be seen in the figure below.

The linear accelerometer (Analog Devices ADXL330) measures linear acceleration relative to a free fall frame of reference. Thus, the acceleration data returned by the wiimote will have to be translated at the host to correspond to moves on the screen. In addition to relying raw acceleration data provided by the wiimote, the motion calculations will have to make use of the zero point and gravity values that the particular wiimote is calibrated for. This calibration data is stored on the wiimote's onboard flash memory, which can be read in a similar fashion to the accelerometer data. The output report must first be set to 0x17, which tells the wiimote that the host will be reading data. This command is formatted as follows: (52) 17 MM FF FF FF SS SS where MM is a bitmask that selects the address space (flash or control registers) FF FF FF is the offset SS SS is the size to read in bytes Once this is set, the data can be read through input report 0x21 in the following format: (a1) 21 BB BB SE FF FF DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD where BB BB is the state of the wiimote buttons SE is the size in bites and error flag respectively FF FF is the offset DD.. DD is the actual data The calibration data that we need will have to be read from the following addresses: 0x16: 0 point for X axis 0x17: 0 point for Y axis 0x18: 0 point for Z axis 0x1A: +1G for X axis 0x1B: +1G for Y axis 0x1C: +1G for Z axis There are some C api's that enable a programmer to read accelerometer data, as well as flash memory, from a bluetooth connected wiimote, such as libwiimote and cwiid. They provide basic connectivity to a wiimote (given an established HID bluetooth connection) but have limited functionality that we will have to expand on.(for example, libwiimote can read accelerometer data but provides no functionality for reading flash memory). Wiimote References: http://wiibrew.org/index.php?title=wiimote http://www.wiili.org/index.php/motion_analysis http://libwiimote.sourceforge.net/ http://abstrakraft.org/cwiid/

Software Details We will be communicating with the Wiimote through a Bluetooth USB receiver. We will write a program that uses the open source Bluez stack to 1) establish a Bluetooth connection with the Wiimote and 2) use the HID profile of the Bluetooth spec to receive inputs from the accelerometer. We're interested specifically in the accelerometer inputs and will intercept this with software and write to a memory-mapped SRAM location that can be accessed directly by the hardware. Game Logic The game that we create will be a simple, on-screen maze game. Each level will consist of a maze in the background with a Wiimote-controlled character. The character will begin in the upper left corner; when the player tilts the Wiimote to the right, the character will move right, and when the player tilts the Wiimote left, the character will move left. If the character ever stands directly on top of an opening in the ground, it will fall down until it reaches the next solid floor. There will also be colored keys and colored doors throughout the maze. When the player moves on top of a colored key, it collects it and all doors of that particular color will open. Each level will essentially be a puzzle the player will have to navigate the character through the maze to the endpoint without getting stuck. We will implement the majority of this game in hardware. We will have multiple areas of the hardware devoted to storing our pre-programmed maze tiles, object sprites, and character sprites. There will also be an area to store the layout of the current board (i.e. which maze tiles go where), as well as a memory location which will store the current location of the player. All of these things will interact with a module containing the actual game logic.

Block Diagram Wiimote RAM Control Software Bluetooth Driver USB Driver uclinux Object Sprites Character Sprites Maze Tiles RAM Controller CPU Game Logic & Sprite Engine Player Location Level Descriptor Monitor VGA Controller Milestones The first milestone for the project will be to compile a version of uclinux for the DE2 board with drivers for Philips ISB1362 USB Controller as well as the Bluez bluetooth stack so the Bluetooth tools are present. The second milestone of the project is to be able to write a program in uclinux that could use the Bluez stack and tools to establish a connection to the Wiimote and also to display the game board sprites onto the screen The third milestone for the controller part of the project is to be able to intercept accelemeter motions from the Wiimote and display a simple sprite moving on the screen. The final deliverable of the controller part will be a program that can respond to the Wiimote input, write it correctly to a memory location that will be picked up by the game logic, and can correctly display the sprites correctly based on the input.