NXT Peeping Tom
Simple Bluetooth-controlled chassis for a smartphone acting as a live feed camera. Features two motors with independent analog steering, and a third one controlling camera elevation.
Datasheet:
Completion date: 20/10/2012
Power: electric (NXT brick)
Language: ROBOTC
Bricks: 1
Motors: 3 x NXT motor
Sensors: none
I always liked the idea of controlling MOCs from the front of a computer. A while ago I tried this with PF-controlled MOCs and wireless camera, but the PF range was very limited, and the quality of camera transmission was very low. Having found an Android app called IP Webcam, I decided to give it another try, this time with a Bluetooth link for remote control and a Wi-Fi link for video feed.
The whole chassis was extremely simple, with just a handful of parts built around the NXT unit. Two motors with a single wheel each were providing propulsion – I found wheels to run smoother than treads – and another motor was controlling camera’s elevation. The first two motors had analog control enabled from a control pad, while the third was operated by buttons. I have created a simple smartphone holder with rubber connectors, that should fit most of typical smartphones.
The model was fun to drive around, and the video quality was very good. There was a noticeable delay in the video feed though, which made steering a little awkward, and the Bluetooth range was not so impressive – I could hardly drive to another room, just a single wall between the model and the computer was troublesome.
Control program:
#include "JoystickDriver.c"
task main()
{
bMotorReflected[motorA] = false;
bMotorReflected[motorB] = true;
while(true)
{
getJoystickSettings(joystick);
motor[motorA] = 0;
motor[motorB] = 0;
motor[motorA] = joystick.joy1_y1 / 1.28;
motor[motorB] = joystick.joy1_x2 / 1.28;
nxtDisplayCenteredTextLine(0, "BATTERY: %3.1fV", nImmediateBatteryLevel / (float) 1000);
nxtDisplayTextLine(2, "B: %d", motor[motorA]);
nxtDisplayTextLine(3, "C: %d", motor[motorB]);
if(joy1Btn(5) == 1)
motor[motorC] = -5;
else if(joy1Btn(7) == 1)
motor[motorC] = 5;
else
motor[motorC] = 0;
}
}
@Old Man Jenkins
And I quote: “Having found an Android app called IP Webcam…”
So what do you need on your computer to view from the camera?
I guess this is the Metal Gear mk.III! 😀
Nice, maybe you should give more strength to the parts. Also i have tried with my NXT, it could ranged between 40-30 meters in open space (i tried in a hall) but nice. Only one weakness in an NXT – it was heavy and took so much space.
@Sandesan
Stealth mode would go nicely with that 😉
What to do whit this nifty little device? Increase range and find some womens skirts to peek under? 😉