Simple Wiimote Library for Linux

Introduction
Features
Examples
Download

Introduction

Libwiimote is a C-library that provides a simple API for communicating with the Nintendo Wii Remote (aka. wiimote) on a Linux system. The goal of this library is to be a complete and easy to use framework for interfacing applications with the wiimote.

Features

Currently, this library provides the following features:

Inputs:

Outputs:

Examples

 // print wiimote accelerometer data to stdout.
 // replace xx:xx:xx:xx:xx:xx with the correct bluetooth address.

 #include <stdio.h>
 #include "wiimote_api.h"
 int main() 
 {
   wiimote_t wi;
   wiimote_connect(&wi, "xx:xx:xx:xx:xx");
   wi.mode.acc = 1;		// enable accelerometer
   while (wiimote_is_open(&wi)) {
     wiimote_update(&wi); 	// synchronize with wiimote
     if (wi.keys.home) {	// check if home key is pressed
       wiimote_disconnect(&wi);
     }
     printf("x=%d y=%d z=%d\n", wi.axis.x, wi.axis.y, wi.axis.z);
   }
 }

 // print ir-sensor and nunchuk joystick states.

 #include <stdio.h>
 #include "wiimote_api.h"
 int main() 
 {
   wiimote_t wi;
   wiimote_connect(&wi, "xx:xx:xx:xx:xx");
   wi.mode.ir  = 1;		// enable ir-sensor
   wi.mode.ext = 1;		// enable nunchuk (not necessary)
   while (wiimote_is_open(&wi)) {
     wiimote_update(&wi);
     if (wi.keys.home) {
       wiimote_disconnect(&wi);
     }
     printf("joyx=%d joyy=%d\n", wi.ext.nunchuk.joyx, wi.ext.nunchuk.joyy);
     printf("irx=%d iry=%d size=%d\n", wi.ir1.x, wi.ir1.y, wi.ir1.size);
   }
 }

 // disable all leds at once
 
 wi.leds.bits = 0;

 // activate leds 1 and 2

 wi.leds.one = 1;
 wi.leds.two = 1;

 // play a short sound sample

 uint8_t tone[20] = {
 	0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
 	0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c
 };

 wiimote_speaker_init(&wiimote, WIIMOTE_FMT_S4, WIIMOTE_SPK_44800HZ);
 wiimote_speaker_play(&wiimote, tone, 20);

Download

The latest version of libwiimote is 0.4 and can be downloaded from the download section.

SourceForge.net Logo