|
|
NXTiiMote

NXTiiMote is a remote control device based on
a MindSensors
acceleration sensor. You may control a vehicle through Bluetooth
by tilting the remote, forward/backward and left/right. Additionally,
a wheel and push button can control supplementary actions.

|
Right view. The wheel drives motor
encoder whose position is transmitted to the remote
controlled vehicle. I use it to change the azimuth
of the wireless camera
built on the rover. |

|
The trigger button is also used at
the beginning of the program to calibrate the joystick
(set the zero position).
It might also be used as a "shift key",
to control two actions when the trigger is released,
two other actions when pressed.
Here it simply triggers a R2D2 sound played by
the rover |

|
Bottom view. Here the remote is shown
with Li-ion battery pack, but it works fine with
regular batteries! |

|
Close-up on the acceleration sensor.
I used the ACCL-Nx-3g3x
(3G sensitivity, 3 Axis readings), but since only
two axis are used here, the slightly cheaper 2 axis
version (ACCL-Nx-2g2x) would work fine too. |

|
The rover is a slightly modified
version of my Spy
Camera Rover. |

|
A third motor was added to allow
the camera to look up and down. It is controlled
by the position of the wheel on the remote. |
Video

|
Video showing how the remote orientation
controls rover moves.
The camera is equipped with 4 white LED headlights
to improve vision in dark corners. |
Building
instructions
Programs

|
The NXTiiMote
NXC program sends the controller orientation
and wheel position to a remotely controlled NXT
robot. I choose NXC because when I wrote this program
NXT-G blocks to control acceleration sensors were
not available. It also allowed me to experiment
with NXC to NXT-G Bluetooth communications. The
only catch is mailbox numbering (NXC maibox n matches
NXT-G mailbox n+1).
June
2008 update: Daniel Sirota sent me a
version of NXTiiMote program adapted for LEGO/HiTechnic
acceleration sensor. Also included here. |

|
Use the "remote-z"
program on the modified Spy
Camera Rover. |
Bluetooth mailbox usage:
- Forward/Backward joystick value is sent as a signed
value in mailbox 1 (0 in NXTiiMote NXC program)
- Left/Right is sent as a signed value in mailbox 2 (1
in NXTiiMote NXC program)
- Trigger button sends a message in mailbox 3 (2 in NXTiiMote
NXC program)
- Azimuth wheel sends a signed value in mailbox 4 (3 in
NXTiiMote NXC program). The value is clipped to avoid mechanical
lock of the camera orientation motor.
Usage
- Level the camera a
- Start the "remote-z"
program on the rover NXT.
- Establish Bluetooth link between both NXTs from the
NXTiiMote (the link must be established from joystick, using
slot 1 to use the programs without modifications)
- Start the NXTiiMote program (the program first checks
for a valid Bluetooth connexion).
- Level the NXTiiMote
- Press trigger button
- You are now controlling the remote robot.
|