Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
178 | Alpin | 1 | /* ============================================================================ |
2 | * v0.1 |
||
3 | * |
||
4 | * *****MoteCtrl***** |
||
186 | Alpin | 5 | * written by AndreasB (aka Alpin) |
178 | Alpin | 6 | * |
7 | * lets you control your MikroKopter with a Wiimote! |
||
8 | * |
||
9 | * |
||
10 | * Copyright December 2008 |
||
11 | * |
||
12 | * #Credits & Thx: |
||
13 | * - Holger & Ingo for the MikroKopter Project (www.mikrokopter.de) |
||
14 | * - ExternalControl implementation of the FlightControl |
||
15 | * - Ligi for RIDDIM, proof of external control concept |
||
16 | * - Documentation of the MK's SerialProtocol (www.mikrokopter.de/ucwiki/en/SerialProtocol) |
||
17 | * - Michael Laforest for the wiiuse API |
||
18 | * |
||
19 | * #WEBSITE: http://www.mikrokopter.de/ucwiki/en/MoteCtrl |
||
20 | * |
||
21 | * *****Use at your own risk! No warranty. Only for private usage.***** |
||
22 | * |
||
23 | * #LICENSE: Released under the GNU General Public License Version 2 or |
||
24 | * (at your option) a later version of this license. |
||
25 | * |
||
26 | * This program is distributed in the hope that it will be useful, |
||
27 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
28 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
29 | * GNU General Public License for more details. |
||
30 | * For further details see <www.gnu.org/licenses/>. |
||
31 | * |
||
32 | * #DISCLAIMER: Use this project at your own risk! |
||
33 | * No warrenty. |
||
34 | * Only for private usage. |
||
35 | * |
||
36 | * ============================================================================ |
||
37 | */ |
||
38 | |||
39 | ***** Table of Contents ***** |
||
40 | |||
41 | 1. Description |
||
42 | 2. What you need |
||
43 | 3. Short checklist |
||
44 | 4. Controls |
||
45 | 5. Usage of MoteCtrl - Step by Step |
||
46 | 6. Useful Tips & Practical Experiences |
||
47 | |||
48 | |||
49 | |||
50 | == 1. Description ============================================================== |
||
51 | |||
52 | MoteCtrl is a small terminal-based programm, which acts as an |
||
53 | interface to the Wiimote and the MikroKopter platform. |
||
54 | The MikroKopter is usually controlled by a normal 35MHz remote control. |
||
55 | However, the FlightControl software also allows you to control your MikroKopter |
||
56 | with a so called ExternControl struct, which is send via the serial |
||
57 | communications line. |
||
58 | MoteCtrl.exe, running on your windows pc, exactly does this. It captures the |
||
59 | Wiimote's and Nunchuck's (extension to the wiimote) data and transfers it to the |
||
60 | FlightCtrl. |
||
61 | |||
62 | |||
63 | == 2. What you need ============================================================ |
||
64 | |||
65 | - MikroKopter with at least FlightCtrl firmware version 0.71h running |
||
66 | - wireless serial communication to the FilghtCtrl via Bluetooth |
||
67 | (I use the F2M03GXA Bluetooth modul, with the wireless UART service activated, |
||
68 | see <http://www.mikrokopter.de/ucwiki/F2M03GXA> for more information) |
||
69 | - Wiimote with Nunchuck extension |
||
70 | - Laptop running windows xp |
||
71 | - Bluetooth-dongle or build-in bluetooth communications in your laptop |
||
72 | - Since I use the wiiuse lib v0.12 to connect to the Wiimote, your bluetooth |
||
73 | stack should be compatible with the wiiuse lib |
||
74 | On their page wiiuse.org they say, they successfully tested wiiuse with |
||
75 | BlueSoleil, Windows XP SP2 stack and Widcomm |
||
76 | (my BT-dongle uses the BlueSoleil stack and it works fine) |
||
77 | - Backup Pilot at the 35MHz Remote Control (see =Usage=) |
||
78 | - MoteCtrl.exe along with the wiiuse.dll file (both in one folder) |
||
79 | |||
80 | |||
81 | == 3. Short Checklist =========================================================== |
||
82 | (for more detailed step by step instructions, see =Usage of MoteCtrl=) |
||
83 | |||
84 | -MK ready?, ExternalControl switch assigned?, Backup pilot ready? |
||
85 | -Nunchuck plugged in to Wiimote? (software check does not work yet, seems to be |
||
86 | a bug in the wiiuse API) |
||
87 | -BT connections to Wiimote (HID service running) and MikroKopter (Serial Port |
||
88 | Service running) established? |
||
89 | |||
90 | |||
91 | == 4. Controls ================================================================ |
||
92 | |||
93 | GAS: Controlled by the two buttons on the Nunchuck extension ('c' and 'z'). |
||
94 | Press 'c' = Increment(++) gas value by 1 |
||
95 | Press 'z' = Decrement(--) gas value by 1 |
||
96 | |||
97 | YAW(GIER): Controlled by the Nunchuck's joystick. |
||
98 | Pressed to the right half = yaw to the right |
||
99 | Pressed to the left half = yaw to the left |
||
100 | The more you push the joystick to one of the two directions, the |
||
101 | MK yaws faster. |
||
102 | |||
103 | NICK(PITCH): Controlled by the Wiimote's pitch-tilt. |
||
104 | Tilting your Wiimote to the left means, tilting the Quadro left. |
||
105 | To the right accordingly. |
||
106 | |||
107 | ROLL: Controlled by the Wiimote's roll-tilt. |
||
108 | Same like with pitch. |
||
109 | |||
110 | SPECIAL: You can reset the GAS value immediatly to ZERO (==no gas!!) with the |
||
111 | HOME-Button. Be carefull with that! |
||
112 | |||
113 | |||
114 | == 5. Usage of MoteCtrl - Step by Step ========================================= |
||
115 | |||
116 | Preparations: |
||
117 | 1. Make sure your all the items listed under "What you need" work |
||
118 | |||
119 | 2. To allow external control you have to allocate a switch of your normal |
||
120 | 35MHz RemoteCtrl to the "External Control" variable in the MikroKopter-Tool. |
||
121 | You should find this option in the MK Tool -> Configuration/Settings |
||
122 | Explanation: |
||
123 | Your normal Remote Control is always used as a backup device, in case the |
||
124 | operator at the Wiimote looses control of the Quadrokopter or the Bluetooth |
||
125 | connection is somehow interruted. Therefore the backup pilot at the 35MHz |
||
126 | control can pass the control to the pilot with the Wiimote via his "external |
||
127 | control" switch. If he feels that the Quadro is out of control or the |
||
128 | connection is interrupted he just flips the switch back, gets control himself |
||
129 | again and can rescue the poor -out of control- MikroKopter ;) |
||
130 | |||
131 | Flight: |
||
132 | 1. Turn your MikroKopter and your normal remote on. Make sure everything is |
||
133 | running perfectly (perhaps do a "normal" test flight to check everything's ok) |
||
134 | 2. Establish the wireless UART connection to your Mikrokopter with your |
||
135 | Bluetooth stack. The BT stack should assign a windows COM Port to the |
||
136 | established connection, so you can access it (make sure Serial Port Service |
||
137 | is running). You need to remember the NUMBER OF THE COM PORT, e.g COM4. |
||
138 | So you established the link to your MK. |
||
139 | 3. Next establish the connection to the Wiimote: |
||
140 | - Press both, the 1 and 2 Button at the same time. All the 4 LEDs should be |
||
141 | blinking now. Your wiimote is now in "discovery mode", which means it is |
||
142 | searching for a little Nintendo Wii to pair with it. |
||
143 | - Now we are (or our BT stack is) the Wii: While the wiimote is in discovery |
||
144 | mode search for devices in your BT stack program. You should find the wiimote |
||
145 | now. Do NOT pair with it. Rather search for services the wiimote offers. |
||
146 | This should bring up the HID (Human Interface Device) service offer. |
||
147 | Check that the wiimote is still in discovery mode (only 30 seks active) and |
||
148 | activate the HID service. You should now be connected with the wiimote and |
||
149 | the 4 leds of the wiimote should still blink but shouldn't stop blinking |
||
150 | anymore. |
||
151 | 4. So the BT stack is now connected to both, the Wiimote and the MK (BT can |
||
152 | connect up to 7 devices at a time). Now start the MoteCtrl.exe via a |
||
153 | windows commandline. Make sure you put the wiiuse.dll in the same folder |
||
154 | like MoteCtrl.exe, otherwise the program will return immediatly without |
||
155 | an error message (and you think huh?). |
||
156 | 5. Next you should be asked for your COM Port number, which is linked to your MK. |
||
157 | Type in the number, hit enter. |
||
158 | 6. Next is the Wiimote initalizaition. If you your HID service is running every- |
||
159 | thing should be fine now and MoteCtrl connects to it. |
||
160 | 7. Your Wiimote should rumble now for a sek and the LEDs should have stopped |
||
161 | blinking (now only LED 1 is permanently on). |
||
162 | --> This tells you, that MoteCtrl established the connection to the |
||
163 | Wiimote successfully. |
||
164 | 8. You should now see the DEBUG Output scrolling down your terminal screen. |
||
165 | 9. First familiarize yourself with the new Wiimote's and Nunchuck's controls, |
||
166 | with the engines of the MK deactivated. Watch the Debug output changing |
||
167 | its values while you play with the Wiimote & Nunchuck. |
||
168 | For Controls, see the chapter =Controls=. |
||
169 | 10. Flight: Your MAX GAS is always limited by the gas value, which is set at |
||
170 | the backup pilot's 35MHz remote. So the backup pilot "gives you a limit" |
||
171 | of the GAS value. |
||
172 | The backup pilot can now pass the control up to you by using his |
||
173 | "External Control" switch ;) |
||
174 | |||
175 | |||
176 | == 6. Useful Tips & Practical Experiences ====================================== |
||
177 | |||
178 | - It happens often hat the connection to the Wiimote or the MK can't be |
||
179 | established with your bt stack. Just disconnect everything then and try to |
||
180 | reconnect all the devices. |
||
181 | - While paring your MK's bluetooth with the one of your laptop place the |
||
182 | MK text to your laptop. Bluetooth has a very limited range. |
||
183 | - The Bluettoth's range is very limited. Don't fly far away from your MK! This |
||
184 | will definitely interrupt or cancel your connection (at least your backup |
||
185 | pilot will have a bit of fun then ;) |
||
186 | - Don't go far away from your laptop with you wiimote in hand. Same like above. |
||
187 | |||
188 | |||
189 | --EOF 26th of December 2008, Andreas Benzin |