README
February 13, 2011 ยท View on GitHub
This is Arduino library for WiiRemote Bluetooth stack which supports minimum HCI and L2CAP layer for HID profile.
== First of all == This program is based on <wiiblue.pde> which is developed by Richard Ibbotson. This program also needs MAX3421E and USB libraries for Arduino written by Oleg Mazurov. The source codes can be grabbed from https://github.com/felis/USB_Host_Shield.
== Hardware Requirement == * Arduino * USB Host Shield * USB Bluetooth Device
== Software Requirement == * MAX3421E and USB library for Arduino written by Oleg Mazurov
== GNU GPL == WiiRemote Bluetooth stack on Arduino with USB Host Shield Copyright (C) 2010 Tomo Tanaka
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
== Files == WiiRemote/ +- WiiRemote.h +- WiiRemote.cpp +- keywords.txt | +- Max3421e_constants.h // written by Oleg +- Max3421e.h // written by Oleg +- Max3421e.cpp // written by Oleg +- ch9.h // written by Oleg +- Usb.h // written by Oleg +- Usb.cpp // written by Oleg | +- examples/ +- SteeringWii/ +- SteeringWii.pde
== Usage ==
=== Modify USB Device Descriptors === The values of CSR_VID and CSR_PID described in WiiRemote.h need to be modified to match descriptors of USB Bluetooth Device to be used.
== WiiRemote Class ==
=== Methods === * void init(void)
* void task(void (*pFunc)(void))
* uint8_t getStatus(void)
This returns unsigned int as the status of USB Bluetooth Device and
WiiRemote connection. Bit field shows as follows:
bit 0: WIIREMOTE_STATE_USB_AUTHORIZED
USB BT Device is authorized as the library expects.
bit 1: WIIREMOTE_STATE_USB_CONFIGURED
USB BT Device is plugged into the USB port on the Shield.
bit 2: WIIREMOTE_STATE_CONNECTED
WiiRemote has been connected to USB BT Device.
bit 3: WIIREMOTE_STATE_RUNNING
WiiRemote has been established L2CAP connection.
* void setBDAddress(uint8_t *bdaddr, int size)
* void setBDAddressMode(eBDAddressMode mode)
This selects how to acquire BD_ADDR to establish HCI connection.
The mode can be set:
BD_ADDR_FIXED: Use specified BD_ADDR set by setBDAddress().
BD_ADDR_INQUIRY: Discover BD_ADDR of WiiRemote to be connected.
* void getBDAddress(uint8_t *bdaddr, int size)
* uint8_t setLED(uint8_t led)
This turns on/off LEDs of WiiRemote. setLED(0x0) turns off all LEDs,
setLED(0x10) turns on LED1 and setLED(0xf0) turns o all LEDs.
These enum can be used:
WIIREMOTE_LED1 = 0x10,
WIIREMOTE_LED2 = 0x20,
WIIREMOTE_LED3 = 0x40,
WIIREMOTE_LED4 = 0x80,
* bool buttonPressed(uint16_t button)
This returns the state of WiiRemote button specified in the call.
True if the button pressed. Buttons are:
WIIREMOTE_LEFT = 0x0001,
WIIREMOTE_RIGHT = 0x0002,
WIIREMOTE_DOWN = 0x0004,
WIIREMOTE_UP = 0x0008,
WIIREMOTE_PLUS = 0x0010,
WIIREMOTE_TWO = 0x0100,
WIIREMOTE_ONE = 0x0200,
WIIREMOTE_B = 0x0400,
WIIREMOTE_A = 0x0800,
WIIREMOTE_MINUS = 0x1000,
WIIREMOTE_HOME = 0x8000,
* bool buttonClicked(uint16_t button)
This checkes whether a specified WiiRemote button is clicked.
True if the button clicked. Buttons are the same as above.
=== Member Variables === * Report_t Report
== Hint == Hints from PS3 and Wiimote game controllers thread in Circuit@Home. - Bluetooth 1.x seems not work on this library.
== ACKNOWLEDGEMENT == I appreciate the gread codes developed by Richard and Oleg :-)