Control Lego NXT With Wiimote

Ever want to build your own RC vehicle? Now you can. Your in control of its design, and as simple to use a Legos, because it is Legos. All you need is a Lego NXT, a computer with a Bluetooth dongle, and control software
I am 17 years old.
I am 17 years old.
Materials

You will need:
*standard NXT kit
*computer with bluetooth
*wiimote
*standard NXT kit
*computer with bluetooth
*wiimote
Step 1

This part is best explained visually. View pictures for guidance.
Step 2


View pictures for guidance.
Step 3


View pictures for guidance.
Step 4


View pictures for guidance.
Step 5

View pictures for guidance.
Step 6


View pictures for guidance.
Step 7

View pictures for guidance.
Step 8

View pictures for guidance.
Step 9

View pictures for guidance.
Step 10

View pictures for guidance.
Step 11

View pictures for guidance.
Step 12

View pictures for guidance.
Step 13

View pictures for guidance.
Step 14


View pictures for guidance.
Step 15



View pictures for guidance.
Step 16

View pictures for guidance.
Step 17


View pictures for guidance.
Step 18

View pictures for guidance.
Step 19

View pictures for guidance.
Step 20




View pictures for guidance.
Step 21

View pictures for guidance.
Step 22


View pictures for guidance.
Step 23

View pictures for guidance.
Step 24

View pictures for guidance.
Step 25

View pictures for guidance.
Step 26

View pictures for guidance.
Step 27

View pictures for guidance.
Step 28

View pictures for guidance.
Step 29

Plug left cable into port b. The picture is wrong.
Step 30

Plug the right cable into port c. The picture is wrong.
Software

download glovepie from:
http://glovepie.org/glovepie_download.php
download the controller:
http://www.norgesgade14.dk/bluetoothremote.php
After downloading extract the files.
http://glovepie.org/glovepie_download.php
download the controller:
http://www.norgesgade14.dk/bluetoothremote.php
After downloading extract the files.
Turn Brick On


Find Bluetooth


use left and right keys until Bluetooth is centered.
Select Bluetooth

Once you find the Bluetooth icon hit the orange button.
Find On/Off

Use the right and left arrows to find On/Off
Turning on Bluetooth

Select On if not already.
Finding Visibility

While in the Bluetooth menu find the visibility icon.
Make It Visible

Select On if not already selected.
Start

click on the orb or hit super on your keyboard.
Control

Start the control panel.
Bluetooth

double click the Bluetooth icon.
Add Device

Select add device from the menu bar.
Find Device

After clicking on add new device a window will open. Other devices than your brick may appear. Wait until your NXT brick is found to double click on it. My bricks name was Sean, so I clicked on it.
Pairing

A window will open asking for the device's password.
Paring Password

Look at your brick. The default password is "1234." You can change the password if you want to. Once you know what password you want to use select the check mark.
Paring

Enter pairing password from NXT.
Finish Pairing

Click connect and windows will install the drivers needed.
Wait

Wait until all the drivers have been installed and the brick has been successfully paired to move on.
Pairing Wiimote

Go back to the Bluetooth window. Your brick should now appear there. Select add new device.
Pairing Wiimote

Make sure your Wii is off. Either hold down both the 1 and 2 buttons or hit sync on the back of the controller.
Find Device

After clicking on add new device a window will open. Other devices than the wiimote may appear. Wait until your wiimote is found to double click on it.
Connect Wiimote to Computer

For the password option. Select pair without password.
Finish Connecting Wiimote

The wiimote should pair with your computer and install drivers.
Getting Com Port

Go to the Bluetooth menu. Right click on your brick, select properties, then settings. After loading you will see which COM port the brick is using.
Start the Control Program

Double click on the controllers icon.
Enter COM Port

Enter the com port of the brick. Then click start.
Enable Keyboard

Click enable keyboard in lower right corner of the program.
Start Glovepie

Double click on the glovepie icon.
Program
Here is the program. Just copy and past
if var.run == FALSE then
var.run = TRUE
HidePie
var.hidden = TRUE
endif
if ((DoubleClicked(Wiimote.Home) and Wiimote.HasClassic == FALSE) or DoubleClicked(Home) or DoubleClicked(Wiimote.Classic.Home)) and (var.hidden == true) then
ShowPie
var.hidden = FALSE
elseif ((DoubleClicked(Wiimote.Home) and Wiimote.HasClassic == FALSE) or DoubleClicked(Home) or DoubleClicked(Wiimote.Classic.Home)) and (var.hidden == FALSE) then
HidePie
var.hidden = TRUE
endif
var.home = SingleClicked(Wiimote.Home)
If var.home and var.on then
var.on = FALSE
elseif var.home and var.on = FALSE then
var.on = TRUE
endif
key.u = wiimote.a
key.j = wiimote.b
key.t = wiimote.Plus
key.g = wiimote.minus
key.y = wiimote.right
key.h = wiimote.Left
var.err = 15 //edit to change intervals. (0 - 180) are possible values
if ((wiimote.roll > var.err) && (wiimote.pitch < -(var.err)))
key.w =false
key.d =false
key.s =false
key.a =false
key.e =true
key.c =false
key.z =false
key.q =false
else
key.e =false
endif
if ((wiimote.roll > var.err) && (wiimote.pitch > var.err))
key.w =false
key.d =false
key.s =false
key.a =false
key.e =false
key.c =true
key.z =false
key.q =false
else
key.c =false
endif
if ((wiimote.roll < -(var.err)) && (wiimote.pitch < -(var.err)))
key.w =false
key.d =false
key.s =false
key.a =false
key.e =false
key.c =false
key.z =false
key.q =true
else
key.q =false
endif
if ((wiimote.roll < -(var.err)) && (wiimote.pitch > var.err))
key.w =false
key.d =false
key.s =false
key.a =false
key.e =false
key.c =false
key.z =true
key.q =false
else
key.z =false
endif
if ((Abs(wiimote.roll) <= var.err) && (wiimote.pitch > var.err))
key.w =false
key.d =false
key.s =true
key.a =false
key.e =false
key.c =false
key.z =false
key.q =false
else
key.s = false
endif
if ((wiimote.roll > var.err) && (Abs(wiimote.pitch) <= var.err))
key.w =false
key.d =true
key.s =false
key.a =false
key.e =false
key.c =false
key.z =false
key.q =false
else
key.d = false
endif
if ((Abs(wiimote.roll) <= var.err) && (wiimote.pitch < -(var.err)))
key.w =true
key.d =false
key.s =false
key.a =false
key.e =false
key.c =false
key.z =false
key.q =false
else
key.w = false
endif
if ((wiimote.roll < -(var.err)) && (Abs(wiimote.pitch) <= var.err))
key.w =false
key.d =false
key.s =false
key.a =true
key.e =false
key.c =false
key.z =false
key.q =false
else
key.a = false
endif
if (((Abs(wiimote.roll) <= var.err) && (Abs(wiimote.pitch) <= var.err)) || ((Abs(wiimote.roll) <= var.err) && (Abs(wiimote.pitch) <= var.err)))
key.w =false
key.d =false
key.s =false
key.a =false
key.e =false
key.c =false
key.z =false
key.q =false
endif
Wiimote.Led1 = var.on
Wiimote.Led2 = true
Wiimote.Led3 = var.on
Wiimote.Led4 = true
if Wiimote.Battery <= 10 and var.warned == FALSE then
Say "Low Battery"
var.warned = TRUE
endif
var.bat = Wiimote.Battery / 192 * 100
debug ='Battery= '+var.bat+'%'
if var.run == FALSE then
var.run = TRUE
HidePie
var.hidden = TRUE
endif
if ((DoubleClicked(Wiimote.Home) and Wiimote.HasClassic == FALSE) or DoubleClicked(Home) or DoubleClicked(Wiimote.Classic.Home)) and (var.hidden == true) then
ShowPie
var.hidden = FALSE
elseif ((DoubleClicked(Wiimote.Home) and Wiimote.HasClassic == FALSE) or DoubleClicked(Home) or DoubleClicked(Wiimote.Classic.Home)) and (var.hidden == FALSE) then
HidePie
var.hidden = TRUE
endif
var.home = SingleClicked(Wiimote.Home)
If var.home and var.on then
var.on = FALSE
elseif var.home and var.on = FALSE then
var.on = TRUE
endif
key.u = wiimote.a
key.j = wiimote.b
key.t = wiimote.Plus
key.g = wiimote.minus
key.y = wiimote.right
key.h = wiimote.Left
var.err = 15 //edit to change intervals. (0 - 180) are possible values
if ((wiimote.roll > var.err) && (wiimote.pitch < -(var.err)))
key.w =false
key.d =false
key.s =false
key.a =false
key.e =true
key.c =false
key.z =false
key.q =false
else
key.e =false
endif
if ((wiimote.roll > var.err) && (wiimote.pitch > var.err))
key.w =false
key.d =false
key.s =false
key.a =false
key.e =false
key.c =true
key.z =false
key.q =false
else
key.c =false
endif
if ((wiimote.roll < -(var.err)) && (wiimote.pitch < -(var.err)))
key.w =false
key.d =false
key.s =false
key.a =false
key.e =false
key.c =false
key.z =false
key.q =true
else
key.q =false
endif
if ((wiimote.roll < -(var.err)) && (wiimote.pitch > var.err))
key.w =false
key.d =false
key.s =false
key.a =false
key.e =false
key.c =false
key.z =true
key.q =false
else
key.z =false
endif
if ((Abs(wiimote.roll) <= var.err) && (wiimote.pitch > var.err))
key.w =false
key.d =false
key.s =true
key.a =false
key.e =false
key.c =false
key.z =false
key.q =false
else
key.s = false
endif
if ((wiimote.roll > var.err) && (Abs(wiimote.pitch) <= var.err))
key.w =false
key.d =true
key.s =false
key.a =false
key.e =false
key.c =false
key.z =false
key.q =false
else
key.d = false
endif
if ((Abs(wiimote.roll) <= var.err) && (wiimote.pitch < -(var.err)))
key.w =true
key.d =false
key.s =false
key.a =false
key.e =false
key.c =false
key.z =false
key.q =false
else
key.w = false
endif
if ((wiimote.roll < -(var.err)) && (Abs(wiimote.pitch) <= var.err))
key.w =false
key.d =false
key.s =false
key.a =true
key.e =false
key.c =false
key.z =false
key.q =false
else
key.a = false
endif
if (((Abs(wiimote.roll) <= var.err) && (Abs(wiimote.pitch) <= var.err)) || ((Abs(wiimote.roll) <= var.err) && (Abs(wiimote.pitch) <= var.err)))
key.w =false
key.d =false
key.s =false
key.a =false
key.e =false
key.c =false
key.z =false
key.q =false
endif
Wiimote.Led1 = var.on
Wiimote.Led2 = true
Wiimote.Led3 = var.on
Wiimote.Led4 = true
if Wiimote.Battery <= 10 and var.warned == FALSE then
Say "Low Battery"
var.warned = TRUE
endif
var.bat = Wiimote.Battery / 192 * 100
debug ='Battery= '+var.bat+'%'
Controls
hold wiimote with IR camera facing away from you and level.
tilt wiimote down to go forward
tilt wiimote backward to go backward
tilt wiimote right to turn right
tilt wiimote left to turn left
tilt wiimote down and right to go forward to the right
tilt wiimote up and right to go backward to the right
tilt wiimote down and left to go forward to the left
tilt wiimote up and left to go backward to the left
plus button increases speed
minus button decreases speed
right button on gamepad increases spin speed
left button on gamepad decreases spin speed
a button increases turn ratio
b button decreases turn ratio
double click home button to reopen glove pie
tilt wiimote down to go forward
tilt wiimote backward to go backward
tilt wiimote right to turn right
tilt wiimote left to turn left
tilt wiimote down and right to go forward to the right
tilt wiimote up and right to go backward to the right
tilt wiimote down and left to go forward to the left
tilt wiimote up and left to go backward to the left
plus button increases speed
minus button decreases speed
right button on gamepad increases spin speed
left button on gamepad decreases spin speed
a button increases turn ratio
b button decreases turn ratio
double click home button to reopen glove pie
Run Glove Pie
Click run and enjoy.
I am 17 and if I can do, so can you.
I am 17 and if I can do, so can you.