NXTiiMote is a remote control device based on
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
Bottom view. Here the remote is shown
with Li-ion battery pack, but it works fine with
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
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 showing how the remote orientation
controls rover moves.
The camera is equipped with 4 white LED headlights
to improve vision in dark corners.
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).
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
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
- 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.
- 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.