Wii Remotes on Linux using.NET Bindings for libcwiid Jestin Stoffel -

Slides:



Advertisements
Similar presentations
TEMPLATE DESIGN © The basic model for a trigonometric setup requires that the HID be seen by at least two cameras at any.
Advertisements

In Review JAVA C++ GUIs - Windows Webopedia.com.
Windows Programming 1 Part 1 dbg --- Getting Acquainted with Visual Studio.NET and C#
Computer Basics. The Computer (Generic) Processor executes commands. Memory stores program and data. Input devices transfer information from outside world.
Programming Our First Java Program Yingcai Xiao. What to Do Set up for Java Programming Write our first Java Program with IDE Write our first Java Program.
Data Structure and Algorithm 1 Yingcai Xiao. You Me The Course (
Power Consumption Awareness by using a Pedometer Denis Kosovich Lior Kuchinski Asaf Bar Power Consumption Awareness by using.
Programming A Historic Perspective on Code Reuse Yingcai Xiao.
Introduction to Java.
CSE 1301 J Lecture 2 Intro to Java Programming Richard Gesick.
Final Year Project: Design and Build an alternative input device Air Mouse Colin Grogan.
Introduction to VB.Net ITE-370. What is.NET? A brand of Microsoft technologies A platform for creating distributed Web applications A combination of new.
Lecture 2: An Introduction to J# and.NET. 2 MicrosoftIntroducing CS using.NETJ# in Visual Studio.NET 2-2 Objectives “Microsoft.NET is based on the.NET.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
A PRIMER ON INTEGRATING WIIMOTE FUNCTIONALITY Wiiiiii!-Mote Connections.
Introduction to Java Tonga Institute of Higher Education.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
James Augustin Benjamin Cole Daniel Hammer Trenton J. Johnson Ricardo Martinez.
Motion Capture Hardware
Introduction to .Net Framework
Architecture of.NET Framework .NET Framework ٭ Microsoft.NET (pronounced “dot net”) is a software component that runs on the Windows operating.
11 Getting Started with C# Chapter Objectives You will be able to: 1. Say in general terms how C# differs from C. 2. Create, compile, and run a.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
ISYS 573 Special Topic – VB.Net David Chao. The History of VB Early 1960s:BASIC-Beginner’s All-Purpose Symbolic Instruction Code –Teaching –Simple syntax,
Computer Programming A program is a set of instructions a computer follows in order to perform a task. solve a problem Collectively, these instructions.
A Modular and Extendable Robotics Platform for Education Ryan Connaughton and Matthew Modlin University of Notre Dame, James Whitcomb Riley High School.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Home Theater Remote Date: May 16, 2008 Team: Bryan Follis, Mike Schmidt, Dan Grissom, Jesse Butler Advisor: Dr. David Klotzkin Final Presentation.
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
Wii mote interfacing. The product It is a wireless device, using standard Bluetooth technology to communicate The Wii Remote uses the standard Bluetooth.
Introduction to VB.Net. What is.NET? A brand of Microsoft technologies A platform for creating distributed Web applications A combination of new and updated.
By: PHANIDEEP NARRA. OVERVIEW Definition Motivation.NET and J2EE Architectures Interoperability Problems Interoperability Technologies Conclusion and.
N from what language did C++ originate? n what’s input, output device? n what’s main memory, memory location, memory address? n what’s a program, data?
Open Source Software JAVA Sean Thompson Itec 400 4/5/07.
J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition Second Edition D.S. Malik D.S. Malik.
.NET Jeremy Stoltzfus Web Programming MWRF. Origins of.NET.NET originally called NGWS “Next Generation Windows Services” The term NGWS was used for Microsoft’s.
Group 7 Michael Kelly Kemal Koksal Kenneth Phelan
Lecture 4: J# Execution Model. 2 MicrosoftIntroducing CS using.NETJ# in Visual Studio.NET 4-2 Objectives “J# programs execute like any other.NET program.
“We watch so you don’t have to.” Midterm Presentation Tuesday, February 05, 2002.
JAVA Ekapap Julnonyang When it was implemented? Developed by Sun Microsystems. The first public implementation was Java 1.0 in 1995 The language.
Who Are You, Arduino? Er. Sahil Khanna
1 Introduction Read D&D Sec 1.8; Sec 1.13 THE Java tutorial -
C# SERIAL COMMUNICATION TEMPERATURE CONTROL WITH ARDUINO KAAN EREN
 Wiimote  Wiimote library  Wiimote multi pointing  System architecture  System current  System structure  Experiment  Further work  References.
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
ICP-CS Introduction to Programming Lecture 1: Introduction Abdurrahman Qadan Islamic Center of Portland Computer Science Series class Phone:
Wii Remote Zibo Zou, Daniel Maertens, Steven Duan 1.
Introduction to 1. What is Java ? Sun Microsystems Java is a programming language and computing platform first released by Sun Microsystems in The.
 This work confers an application which makes possible to use a Bluetooth enabled mobile phone to remote control home appliances such electric fan, LEDs.
Intro to ASP.NET CS-422 Dick Steflik. What is.NET As applications in the Enterprise become more and more netcentric and less and less standalone.NET is.
2007/11/16 Dinh Trong Thuy RTLab
Computer System Structures
Lecture 1: Introduction to JAVA
Introduction to.
Event Driven Programming Dick Steflik
Wireless hand game controller
Jim Fawcett CSE775 – Distributed Objects Spring 2012
Xbox Kinect (Microsoft)
JAVA TUTORIALS.
Microsoft Build /14/ :29 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Advanced Programming: C# Lecture 01: Introduction
COMPUTER SOFT WARE Software is a set of electronic instructions that tells the computer how to do certain tasks. A set of instructions is often called.
Introduction CSC 111.
Image Acquisition and Processing of Remotely Sensed Data
Visual Programming Lecture 1.
Introduction to Virtual Machines
Introduction to Virtual Machines
Computer Terms Review from what language did C++ originate?
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
ECE 445 Spring Head Orientation Tracking Module for Headphones
Presentation transcript:

Wii Remotes on Linux using.NET Bindings for libcwiid Jestin Stoffel -

Wii Remotes Multi-Input Device 7 Buttons D-Pad Accelerometer Infrared Sensor/Camera Extension Port

Wii Remotes Multi-Output Device 4 LEDs Rumbler Speaker Communicates with Wii / Computer via Bluetooth

.NET Microsoft created competitor to Sun Microsystem's Java Incorporates multiple languages that compile into the same bytecodes, meaning code written in one langauge can be called in another C# is the flagship language of the.NET platform

Mono Project Open source cross- platform runtime environment for.NET NOT created by Microsoft Enables.NET code to be run on Linux and Apple's OSX Created Gtk widget bindings (Gtk#) for cross- platform applications

cwiid Linux library for communicating with the Wii Remote Written in C Not complete (but no Wii Remote library is) Linux only

Putting It All Together.NET Bindings libbluetooth libcwiid Wrapper Class Easy to use Wiimote class

Code Example

Reporting Modes STATUS BTN ACC IR NUNCHUK CLASSIC EXT

Delegates Remote Delegates ButtonHandler RawAccelHandler BufferedAccelHandler IRHandler Extension Delegates NunchukButtonHandler NunchukAccelHandler NunchuckStickHandler No Classic Controller support yet

Interpreting Accelerometer Data 3-axis accelerometer Pitch and roll can be calculated by measuring gravity Yaw must be calculated by using the IR sensor

Calculating Pitch and Roll Pitch = asin(y / 1g) Roll = asin(x / 1g) Note: x and y need to be converted to vary between -1 and 1, otherwise asin is undefined Calibration is required

Tips and Tricks Accelerometer Buffering Normalizes input Allows higher precision Setting Minimum Response Intervals Specify the minimum time that must pass before recieving input from a delegate Never recieve an event until it's needed

Where do I get MonoWii? From the cwiid subversion repository From me

References and Thanks wiili.org Home of all things Wii on Linux wiibrew.org Website with Wii technical details for use with any operating system Donnie Smith Author of cwiid Marek Wyborski Author of.NET bindings to libcwiid