Thursday, November 24, 2011

metal Makerbot spool holder

A common issue with the Makerbot 3D printer is setting up something to hold the spool of plastic as it is being fed into the machine. I decided to cut a spool stand out of metal using a CNC plasma cutter that I have access to.

The spool is about 8 inches across, with a 2 inch hole in the middle (I know, metric measurements are preferable, but the plasma cutter workflow is easier in inches). I wanted something quick and easy that would hold the spool vertically, so I came up with this:


I drew it in Inkscape for cutting out of flat sheet of 1/8th inch steel, exported the drawing using Better DXF Output for SheetCam to turn it  into g-code for the CNC plasma cutter. I'm currently looking into PyCAM, heekscnc, and PartKAM as free alternatives to SheetCam, but that's another post.

After cutting it out, I bent it on a brake to an angle of about 135 degrees (about 3π/4 radians) and cleaned up the edges using a bench grinder. In hindsight it would have been easier to do those steps in the opposite order, but I guess that's part of the learning process.



And here's the (mostly) finished product. I still need to add a piece of plastic or slippery tape where the spool rests on the metal in order to allow it to spin more freely.

If I build another version of this, I'll round the corners a little more and cut some sort of design into the base.

Plasma Cutting with Inkscape, SheetCam, and Mach3


1. Start up Inkscape and under the File menu choose Document Properties. Change the default units and the document size units to Inches (in). Then close that window.

2. Make your drawing, the colors don't matter.

3. Select everything you've drawn and under the Path menu choose Object to Path.


4. Save your drawing as a Better DXF Output file.

5. Start up SheetCam. It should already be set up for plasma cutting, but check this by clicking on the Options menu and choosing Machine. The Machine type should be Jet Cutting and the Post Processor should be Mach 3 plasma pauses. Click OK.



6. Under the File menu choose Import drawing. Find your drawing (you may need to change the Files of type to DXF files). You can leave the default scaling as 1 (metric) on the next screen that comes up.



7. Under the Options menu select Job options and click the checkbox for Use drawing.

8. You should now have a preview of what your work will look like once it has been cut.

9. If for some reason you don't have any tools defined on the left side of the screen, under the Tools menu select New jet cutting tool and set the options as you see in the image below.

10. We're now set to create a new cutting operation. Under the Operation menu select Plasma cut. Decide whether you want an Inside Offset where the tool cuts on the insides of your lines, or an Outside Offset where it does the opposite.
Inside Offset
Outside Offset

11. I'd recommend a 0.2 inch lead in and lead out, as shown in the image below. Check with your teacher on what the feed rate should be for the material you're cutting and the torch setting.

12. Click the P button at the top left to run the post processor which outputs the Gcode for Mach 3. Save it as a .tap file. Put that .tap file on a USB drive if you're not sitting at the plasma controller computer.


13. On the plasma controller computer, start up Mach 3. Under the File menu, choose Load G-Code and find the .tap file that you had just created.

14. Line up the machine as demonstrated by your teacher, make sure everything is ready and safe, and start the cycle. You'll have to start it again each time it pauses. Remember to follow all of the proper safety procedures.

Friday, November 11, 2011

100 posts

Not specifically technology related, but an interesting convergence of numbers that I'm making my 100th post on this blog on the date 11/11/11.

Fun stuff.

Thursday, November 10, 2011

ideas for sending multiple text messages

A quick summary of a conversation I had today about sending text messages to multiple recipients.

Remind101.com is set up more for individual teachers, but it may do what you need.

Twilio is a platform for building sms and phone call apps/applications.

If you know which wireless provider each of them subscribes to, you can use email to sms, and even set up a Google Spreadsheet to do that.

Or you could build an Android App (using the App Inventor if you need) that sends multiple messages from your smartphone.

Just a few of my thoughts, hopefully that helps.

Edit: I was reminded that Edmodo allows students and parents to subscribe via email or SMS.

Sunday, October 23, 2011

a fix for PowerPoint slideshows

If you find yourself using PowerPoint's feature to show on one screen while you edit on the other, you may get tired of having to switch to the "show" program to advance slides. I wrote a little AutoHotkey scrip that will switch to the PowerPoint slideshow before firing the page or arrow keys:



#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.


MsgBox, The PgDn, PgUp, and arrow keys will now switch to the PowerPoint show before enacting. Close the H in the taskbar to quit.


PgDn::
WinActivate, PowerPoint Slide Show
Send {PgDn}
Return


PgUp::
WinActivate, PowerPoint Slide Show
Send {PgUp}
Return


Right::
WinActivate, PowerPoint Slide Show
Send {PgDn}
Return


Left::
WinActivate, PowerPoint Slide Show
Send {PgUp}
Return


Down::
WinActivate, PowerPoint Slide Show
Send {PgDn}
Return


Up::
WinActivate, PowerPoint Slide Show
Send {PgUp}
Return


WheelDown::
IfWinActive, PowerPoint Slide Show
{
Send !{TAB}
}
Send {WheelDown}
Return


WheelUp::
IfWinActive, PowerPoint Slide Show
{
Send !{TAB}
}
Send {WheelUp}
Return

Tuesday, September 27, 2011

spreadsheet formula for getting domains from email addresses

In case you're using Excel, Google Spreadsheets, or another spreadsheet program and you have a list of email addresses that you'd like to use to get a list of domains, you can use the formula:

=RIGHT(A1, (LEN(A1)-(FIND("@", A1))))


What this gives you is the characters from the RIGHT of the text in cell A1 up to the @ sign. FIND tells the equation where the @ symbol is from the left, which is then subtracted from the LENgth of the text in cell A1.

Thursday, September 8, 2011

Vernier Sensors and Arduino (or Teensy) for Data Logging

I've been thinking for a while about inexpensive data logging with Vernier educational sensors and a microcontroller development board. I played around with the TI MSP430 LaunchPad for a while, since it is only $4.30, but it's not quite as beginner-friendly as the Arduino. I eventually settled on the Arduino-compatible Teensy for its low price ($16) and small size.

Vernier does a good job of documenting sensor pinouts and calibration values in each sensor's manual, so I knew that this was a fairly easy project.

Unfortunately the sensors use a BT631A connector, which is difficult to find outside of the UK. I ordered this BT to RJ11 adaptor from DealExtreme, but unfortunately it's only 6P4C and we need 6P6C (6 conductors). All six pins are used by the sensor, but we really only need pins 2, 5, and 6. I'll try ordering something from UXCell or Vernier, but for now I've just used some breadboarding wires stuck into the back of the connector.

The required connections from the sensor are
pin 2 to ground (GND)
pin 5 to +5V (VCC)
pin 6 to an analog in (A0)
(I haven't gotten around to trying out the auto-ID function, but that's not an extremely useful function for my purposes anyway.)

Since this my first real microcontroller project, I followed the tutorials on the Teensy site regarding connecting something to the analog input. I modified some example code by Tom Igoe and came up with:

/*
 Analog input, serial output
 Reads an analog input pin and prints the results to the serial monitor.
 The circuit:
 Vernier probe pin 2: Ground (GND)
 Vernier probe pin 5: +5 V (VCC)
 Vernier probe pin 6: Sensor output (A0)

 created 2011-09-08 by David Hay (misterhay)
 Some code borrowed from example by Tom Igoe

 This code is Creative Commons Attribution (http://creativecommons.org/licenses/by/3.0/)
*/

// Constants, used to give names to the pins used
const int analogInPin = A0;  // Analog input pin that the probe is attached to
const int ledPin = 11; // The Teensy on-board LED is on pin 11

// Variables
int sensorValue = 0;        // value read from the probe

// The setup, which runs once when the sketch starts
void setup()
{
  Serial.begin(38400);     // initialize serial communications at 38400 bps,
                           // not that this matters since it runs at USB speed
  pinMode(ledPin, OUTPUT);  // set the digital pin as an output
}

// The actual loop that does the sampling and output to the serial monitor
// This will continue to run as long as the Teensy is plugged in
// Use the Arduino Serial Monitor or some fancy GUI to see the output
void loop()
{
  // read the analog in value:
  sensorValue = analogRead(analogInPin);           
  // print the results to the serial monitor:
  Serial.println(sensorValue);     

  // wait 10 milliseconds for the analog-to-digital converter to settle
  delay(10);
}


Watch the output in a serial monitor program on your computer, and paste it into a spreadsheet program for graphing. Eventually I'll build a GUI for adjusting sample rates and number of sensors and maybe some live graphing, add some calibration, and put it in a better enclosure.