Let's Make Robots!

OK~ This was original build in Tetrix pack from LEGO NXT MINDSTORM. The total weight was about 3.5Kg and it was a bit heavier then what blimp could carry. The blimp is 4M long and could carry about 2.5~3Kg with Helium.

I never had a chance to fill it up with Helium cuz I don't want to freak my neibours out with these big gas tank looking thing in my yard and also I fell my blimp is leaking somewhere that if I left it overnight I can see the bid difference from the way it looks.

So I decide to loss its weight by remake its body, or you might call it Gandora? is it called gandora?

original

 

Start of cutting holes for servo placement.

 

Servo with the gear so it can turn over 360 degree from 180.

 

Put the brushless motor and prop.

 

Wireing...

 

2 Motors ready to test...

 

I have to screw some copper panel in order to have "stablize frame" solder on encase the strong exhust power might damage the joint.

 

Soldering the frames...

You get my ideas? Because the wind power from these motors is very strong that I afraid the joint couldn't take it much longer, or gears might lose contacts.

 

Ok~ 2 sets are done for both side.

 

Now start to put all these NXT module, battery, controller and reciever etc into the box.

 

The NXT is facing down.

 

Cut the hole for NXT and install a illuminate switch.

 

So far that's what I got...

 

Haven't got any chance to attache them yet. It just regular air inside for leaking test. and....it's leaking some where, very slow thou.

 

Here is the spec for the project:

Hardware:

>1 LEGO mindstorm NXT2 with rechargeable battery set

>Lipo 3S 5200Mah battery

>Tetrix servo controller from Hitecle

>PS2 wireless controller from Mindstorm sensors(I am a bot worry about remote distance might too short)

>2 HS-965MG

>2 Airscrew 9x7 3-Bladed Propeller (1 MA0970T & 1 MA0970)

>2 A2217-9 Brushless Outrunner Motor

>2 40A Brushless ESC

>Tetris aluminum parts: gears and some joints.

The tricky part for me. 1st: I didn't realize the motor can be spin around the other way by reverse the red and black wire from moter to ESC to balance the direction from 2 side of props. Thanks to Jim@ BP hobbies. 2nd: The Servo only spin about 180 degree so I have use gear set from Tetris to have it spin 360 degree, so I can have free angle of exhaust direction. You can see my photo there are 1 big and small gears. 3rd diffcult part is the soldering metal parts. Since the aluminum is way too diffecult to solder it(The guy in HomeDepot told me that). so I decide to screw the copper panel in the joint where needs soldering works.

Again, I am really a beginner so you may see lot of fault design and shortcoming. Please point me out so will benefit other people too.

Any ideas and suggestions are more than welcome. It will be a big help for a beginner like me. Remember, I have no background of electronic enginnering or whatsoever. I only build these stuff within my spare time after work.

 

___________about coding in ROBOTC__________This is the part I am a bit nervous cuz I am not really a programmer either:

#pragma config(Hubs,  S1,   HTServo,  none,  none,     none)
#pragma config(Servo,  srvo_S1_C2_1,    servo1,                     tServoNormal)
#define Addr 0x02
#include "drivers/PSP-Nx-lib.c"
#define SensorPort S2

task PS2Control(){
 psp currState;
  nI2CBytesReady[SensorPort] = 0;
  SensorType[SensorPort] = sensorI2CCustom9V;
  int ButtonSet1;
  int ButtonSet2;
  int speed_R;
  int speed_L;
  //int l_spin;
 while (true){
  PSP_ReadButtonState(SensorPort, Addr, currState);
  speed_R = currState.r_j_x+100;
  //speed_L = currState.l_j_x+100;

  //if(currState.r_j_x>50){
   //speed = currState.r_j_x/5 + 110;
  //}else{
    //speed=0;
  //}

  //l_spin = (int)(currState.l_j_x+100)*1;
    nxtDisplayTextLine(0,"LB: %d   RB: %d   ", (char)currState.l_j_b,(char)currState.r_j_b);
    nxtDisplayTextLine(1,"b1: %d", (char)currState.b1);
    nxtDisplayTextLine(2,"b2: %d", (char)currState.b2);
    //nxtDisplayTextLine(3,"b2: %d", (char)currState.b2);
    nxtDisplayTextLine(3,"l_j_x: %d", (int)currState.l_j_x);
    nxtDisplayTextLine(4,"l_j_y: %d", (int)currState.l_j_y);
    nxtDisplayTextLine(5,"r_j_x: %d", (int)currState.r_j_x);
    nxtDisplayTextLine(6,"r_j_y: %d", (int)currState.r_j_y);
    ButtonSet1 = (char)currState.b1;
    ButtonSet2 = (char)currState.b2;
    nxtDisplayTextLine(7,"speed: %d", speed_L);
    if(ButtonSet2==-33){
      //PlaySound(soundFastUpwardTones);
      motor[motorC] = 100;
    }else if(ButtonSet2==-17){
      motor[motorC] = -100;
    }else if(ButtonSet2==-1){
      motor[motorC] = 0;
    }

    if(ButtonSet1==-1){
      servo[servo1] = 100;
      servo[servo2] = 100;
    }else if(ButtonSet1==-17){//UP
      servo[servo1] = 150;
      servo[servo2] = 50;
    }else if(ButtonSet1==-2){//DOWN
      servo[servo1] = 40;
      servo[servo2] = 160;
    }else if(ButtonSet1==-65){//BACK
      servo[servo1] = 210;
      servo[servo2] = 210;
    }else if(ButtonSet1==-33){//RIGHT
      servo[servo1] = 100;
      servo[servo2] = 210;
    }else if(ButtonSet1==127){//LEFT
      servo[servo1] = 210;
      servo[servo2] = 100;
    }

    servo[servo3] = speed_R;
    //servo[servo4] = speed_L;
    //motor[motorC] = (int)currState.l_j_x;
    //servo[servo4] = (int)currState.r_j_x;
    //motor[motorD] = (int)currState.r_j_y;    // Motor D runs at 75 power level.
    //motor[motorE] = -(int)currState.l_j_y;    // Motor E runs at 75 power level.

 }
}

task main(){
  StartTask(PS2Control);
  /*
  int delta = 2;                        // Create int 'delta' to the be Servo Change Rate.

  while(true)  {
    servoChangeRate[servo1] = delta;          // Slow the Servo Change Rate down to only 'delta' positions per update.

    if(ServoValue[servo1] < 128){
      while(ServoValue[servo1] < 255){
        servo[servo1] = 255;                              // Move servo1 to position to 255.
        servo[servo2] = 0;
      }
    }

    wait1Msec(1000);                          // Wait 1 second.

    if(ServoValue[servo1] >= 128) {
      while(ServoValue[servo1] > 0){
        servo[servo1] = 0;
        servo[servo2] = 255;          // Move servo1 to position to 0.
      }
    }

    wait1Msec(1000);                  // Wait 1 second.
  }
  */
}

_________________________________________________________________________

This is exactly what I have in NXT module. I know~ I know~ it's a crapy code man!! Perhaps some people can make it clear to share with others. I basically modified from the original sample code and did some "copy & paste", plus few short code. Okie...welcome and feel free to modify the code and.....Let's make robots!!

I will have this updated.

 

Comment viewing options

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

So cool!

I want to do something similar, just bit windy indoors (caves).

Your work is phenomenal

I'm new in this site, but NXT can control every ESCs?

OddBot's picture

Welcome to LMR.

This looks great! Please post more photos and details of contruction.

LMR is not just a place to show off your creations. We want this site to be educational as well as inspiring.

If possible attach files such as datasheets/specifications of any special parts used and code.

hardmouse's picture

I am just a bit shy to post the code cuz it's kinda crapy. It's written in ROBOTC.

I will edit the spec soon and let me know what's the best way to post the code?

hardmouse's picture

Gondola it is!! Teehee~~

Yeah, this is not the 1st bot (2nd actually) but this is my first metal work~ solding, cutting, drilling etc...Learned a lot thou. The weight now is about 2.2kg including 3S 5500mah lipo battery.

The first bot was build in lego nxt tetrix, as known as Mantis. the 2nd one is the original of this "Gondola" thing. 3rd is a Secruity Tank build in Phidgets(I might post it later). The 4th is Phenix (hexapod) and the 5th one I am working on now is the Quadbot that I post as other project.

Basically, I have no fundation of electronic background, therefore I really wish could start over my teens and I can study more electronic knowledge.

So, if anyone could give me suggestions or ideas to guide me are much much appriciated!!

JAX's picture

It's a "gondola." We all know what you mean though ;)

Very nice metal work. I must say I'm a little envious. You may not have electronics experience but I can tell this isn't your first time at the techno-rodeo.

How the weight compare between the old and new so far?