Introduction: Lego CNC/3D Printer/plotter

Hey guys, second instructable here. This time, I decided to have a Lego CNC machine.  I had originally planned this for the makeitreal competition, and I thought the deadline had passed, but apparently not.

Anyway, I'll be updating this instructable as I make more progress on it.  It won't be entirely done by the time the competition ends, but you should at least able to build the machine and control the axis (axii?)

There are 747 pieces total. The only non-Lego part is the drill bit.

Basic requirements:
  • 2 lego NXT sets along with 4 touch sensors
  • Various other lego parts, specifically the gear-track pieces and worm gears, and probably more
  • A computer with LDD, or Lego Digital Designer
  • A drill bit to sacrifice
  • Some green floral foam
  • A little bit of time
When I finally make it, I'll put a video up here. Sorry it's not up now, I'm having a rough time finding the time to record it.

Anyway, on to the first step!

Step 1: Creating the Parts From the LDD Files

Attached are all of the Lego Digital Design files (models.zip)  Load these into the LDD software program, and create the build guide.  Or, if you don't know how to do that, the HTML files are included as well.  Each of those are in their own html file, so "base html.zip" refers the html build guide of the base part.  Also note, that for some reason it won't upload "base html.zip".  I'll figure it out later.

There are 4 parts total:
  • base
  • Y axis
  • X axis
  • Z axis
I would create them in that order.  While creating the Z axis, the X axis has to slide onto it, and it can't slide on if the Z axis is completed.  There is also a glitch in the LDD software which prevents me from making the Y axis perfectly right.  Please view the pictures as to how each part should look when completed.  The assembly of the parts is also given there.  Please, remember to ask questions if you're lost!

Step 2: Wiring!

Yes, it's not my favorite part either.  Personally, I wish it was totally wireless, but whatever. You need 9 cables total: 2 long ones, 5 medium ones, and 2 short ones.

So, from here on out, I'll be referencing the two NXT "brains" as nxt1, and nxt2.  I actually named the devices the same to not get them confused.

nxt2:
  • Motor A: Long cable to the motor on the X axis that drives the drill piece. (Note, that in the model, the drill is replaced by a lego piece) This is the side opposite the gear-track side.
  • Motor B: Medium cable to the motor on the base that is sitting on its side.  If you are facing the side with the motors, it is the motor on the left.
  • Motor C: Medium cable to the motor on the base that is sitting on its side.  If you are facing the side with the motors, it is the motor on the left.
nxt1:
  • Motor A: Long cable to the motor on the X axis that drives, well, the X axis.  This is the one on the side of the worm gear, and is closer to the gear-track side.
  • Motor B: Short cable connected to Y motor in center of base part.
  • Sensor Port 1: Medium cable connected to touch sensor on the Z axis.  This is the one on the right side if you are facing the x axis motor or the motors on the base.
  • Sensor Port 2: Medium cable connected to the other touch sensor on the Z axis.
  • Sensor Port 3: Medium cable connected to the touch sensor on the far side of the base.
  • Sensor Port 4: Short cable connected to the closer of the two touch sensors on the base.
Excellent, now that that's all wired, on to the next step.  If you're still confused, please refer to the pictures.  If you're confused after that, please leave a comment.

Step 3: The End?

Yay, now that you have the machine built, it's time to control it.  Unfortunately, I don't really have much right now.  I have attached two programs, both in Java, written in netbeans, that use lejos (http://lejos.sourceforge.net/).  Basically, the one for the computer controls it, and the the one for the device has a few functions like auto calibrating the X and Y axis, and manually calibrating the Z axis, but it mostly just accepts commands from the computer program.  These were both only test programs.

I'm currently trying to write more advanced software, but I don't have the time to do it all before the competition ends, so I will be updating this accordingly.

Please vote for my contest entry, as I know I can do some pretty awesome things with a 3d printer. Thanks if you've already voted!