Let's Make Robots!

Guard

 
Cat Splat

I've spent 24 hours (when not at work / asleep) building a Cat-Splat entry. I didn't intend to do this next, but couldn't resist. We've just been trying it out - no cats so used the children - and it's a wee cracker.

This Lego nxt stuff is marvelous - so quick to reconfigure ...

Update

Razorz51 was kind enough to say that Guard looked like a cat. Well, maybe it does, but it walks like a constipated dog. If you watch the video you'll see that it trips over it's own feet pretty often. What you won't see is that it also throws its gears off pretty often too.

My daughter is complaining about the bruises on her legs and arms - she fell off a chair trying to reset the thrower and simultaneously avoid getting hit by a flying ball. Unfortunately I didn't get video of my son trying to hit the balls with a cricket bat. Maybe next time.

This bot doesn't exactly splat, but I think it scores in terms of interacting with the domestic environment and getting noticed.

Note: design credit for this bot must go to David J. Perdue. I only built it from his instructions.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Here is the code I promised you.

You will need RobotC (v1.46), a blutooth stick, and a gaming controller.
Connect your Robot via USB then press alt + r then Download firmware. Do it then try to copy the code and download it. (f5)
After you have download the program (f5) press alt + r then press NXT Brick then Joystick controll (Your gaming controller is not 100% sure to work but in most cases it will work. (If it looks similar to the one showing the chances is that it will work.)) try to move the joysticks forward and backward and see if your robot moves.
Soon I will put up the RobotC Tip/Walkthrugh as working.

 

#pragma config(Motor,  motorA,          Leftmotor,     tmotorNormal, PIDControl)
#pragma config(Motor,  motorB,          Rightmotor,    tmotorNormal, PIDControl)
#pragma config(Motor,  motorC,          Catapult,      tmotorNormal, PIDControl)
//*!!Code automatically generated by 'ROBOTC' configuration wizard               !!*//

//This Program will work if you press the button the whole time while shooting.     //
//A motor is the left motor while B motor is the right. The C motor is the catapult.//
//Remember to set the sound to max to be able to hear the sound.                    //
//Emil Hemdal                                                                       //


#include "JoystickDriver.c" //is being downloaded at the same tome to make it work properly

task main() //main task that is going to be runned
{
  while (true) //Creates a loop
  {
    getJoystickSettings(joystick);
    motor[motorA] = joystick.joy1_y1; //locates where the joystick is pointing and how hard and the motor follows the movement.
    motor[motorB] = joystick.joy1_y2; //locates where the joystick is pointing and how hard and the motor follows the movement.

    if(joy1Btn(1) != 0)  //If Joy1-Button1 is pressed all the time run next
    {
      motor[motorC] = 100;// Turn Motor A On at full power
      wait1Msec(100); //might have to be changed to make it shoot properly.
      motor[motorC] = -100; //Turn Motor A On at full power reversed
      wait1Msec(100); //might have to be changed to make it shoot properly.
      motor[motorC] = 0; //Don't change or the robot will crack.
      PlayTone(2500, 1000); //Playing a sound that it's finished.
      wait10Msec(1000); //This is ten secon when you can drop the button, the signal before will make you understand when to drop it.
    }
    else                 //If Joy1-Button1 is NOT pressed
    {
      motor[motorA] = 0;  // Turn Motor A Off
    }
  }
}

 

/Emil Hemdal (SWE)

Thanks Emil

Mike

You're welcome.

/Emil Hemdal (SWE)

I tried the code and have now changed it. This will work better and you just have to touch the button once to run the catapult function.

 

#pragma config(Motor,  motorA,          Leftmotor,     tmotorNormal, PIDControl)
#pragma config(Motor,  motorB,          Rightmotor,    tmotorNormal, PIDControl)
#pragma config(Motor,  motorC,          Catapult,      tmotorNormal, PIDControl)
//*!!Code automatically generated by 'ROBOTC' configuration wizard               !!*//

//This Program will work if you press the button the whole time while shooting.     //
//A motor is the left motor while B motor is the right. The C motor is the catapult.//
//Remember to set the sound to max to be able to hear the sound.                    //
//Emil Hemdal                                                                       //


#include "JoystickDriver.c" //is being downloaded at the same tome to make it work properly

task main() //main task that is going to be runned
{
  while (true) //Creates a loop
  {
    getJoystickSettings(joystick);
    motor[motorA] = joystick.joy1_y1; //locates where the joystick is pointing and how hard and the motor follows the movement.
    motor[motorB] = joystick.joy1_y2; //locates where the joystick is pointing and how hard and the motor follows the movement.

    if(joy1Btn(1) != 0)  //If Joy1-Button1 is pressed run next
    {
      motor[motorC] = 100;// Turn Motor A On at full power
      wait1Msec(100); //might have to be changed to make it shoot properly.
      motor[motorC] = -100; //Turn Motor A On at full power reversed
      wait1Msec(100); //might have to be changed to make it shoot properly.
      motor[motorC] = 0; //Don't change or the robot will crack.
    }
    else                 //If Joy1-Button1 is NOT pressed
    {
      motor[motorA] = 0;  // Turn Motor A Off
    }
  }
}

 

/Emil Hemdal (SWE)

You should add a pneumatic cylinder at 200pounds per square inch and then you will get the "splat" part :D
i love the catapult on the tail,  how did you get the catapult to spring like that? i would like to see some close up shots of it if possible

If you look at the first few seconds of the vid, you can see the throwing mechanism at the back of the bot (left end on the vid).

There's a gear-head motor (the white blob half way down its back) mounted vertically, with a two gear pairs that effectively double or treble its speed (you can see the outer black pair above the motor). These drive an axle onto which is attached a "hand" that holds the ball. When the motor spins, the hand comes up and over the back of the bot  to hit some bumpers just above the nxt brick and the ball flies out.

The hand then returns to the start position and the bot waits for the ball to be reloaded and a button pushed to reset it. It says "thank you" when this happens, but you may hear my son saying: "but, it says road kill" several times.

I may pop a hi-res picture up later.

Mike

PS: the sound track is Star Wars Battlefront II on PS/2

this is sick!! I like the way it moves!!  :)
Even copying you have made one cool bot, and I believe you were very creative in all the process, to copy stuff is good because we learn a lot, so keep it going  ;-)

Nice shooting!!!

Try to use RobotC if you like. It might be useful if you want to controll your robot with a gaming controler plus bluetooth.
I can give you a RobotC file that you can use to control the robot and when it's going to shoot.
Are probably going to make a tutorial later about controlling a robot with RobotC but not now I'm sick so I can't speak.

/Emil Hemdal (SWE)

That's great Mike! I have my first contestant! What get's me is you had all that trouble making a robot with 4 wheels, but you have no problems with 6 legs and giving your kids a bath!

Hmm.. are you sure the kids didn't give you help, unaware that they were potential targets? :p