-
Notifications
You must be signed in to change notification settings - Fork 4
/
README
123 lines (91 loc) · 4.53 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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 :-)