Uncategorized

Gimbal: Updated design

Malcolm, a talented local artist and director of the New Forms Festival came to me and asked if I could make a camera gimbal.  Can I ever!  I struggled with simplifying the old design for several days before deciding I needed to go back and do my homework.  Then I remembered this video

The original developers were balancing a robot on a ball.  …but notice the first 15 seconds when the robot is upside down and just turning the ball?  That’s exactly what I’m looking for, and almost all the parts are off the shelf. So I went back to the drawing board and came up with this

The ball in the center is a glass lamp shade. I’m going to add an X-shaped camera mount inside the globe. The Mecanum wheels can turn the globe any way I choose. I’m going to put a little 9DOF sensor inside so the Arduino can keep track of the ball’s orientation and adjust it accordingly.

Parts have been ordered, delivery is pending, and this thing should start being assembled in the next few days.

Also, I’m working a little bit every week to improve the website. Is it getting better? You tell me.

Uncategorized

Drawbot: Added Traveling Salesman Problem and Gcode generation

On the whole I’m feeling very good about today.  Here’s a little before and after. Click for a larger version.

The image on the left is the result after 20 minutes of calculating in Java with a “Greedy” TSP solution. Once it finishes generating the lines it saves it all to a gcode file.  I wrote this in about two hours with long breaks to think while I pulled weeds and mowed. It’s brutally stupid code that works. It’s not ready for production yet because it doesn’t meet my standards in two important ways:

  • Lines cross over each other.
  • I need to store information about every single possible pair of points to run my algorithm.  This eats a all the memory Java has access to, and forces me to resize images to ~250 pixels2.

Here is evidence of a solution from MakerBlock that doesn’t have either of these problems.  I haven’t deciphered the python to figure out what they’re doing….yet.  I’d like to be able to convert huge pictures in a few clicks with a nice progress bar.

On a less happy note, my Macbook Pro has finally given up the ghost and I can’t afford to replace it.  My next development machine will probably be a Mac and I’ll be working a lot more in Java.  I’m really falling in love with it’s many (many) time saving features.

Have you got pseudocode for a better TSP solver?  Please share in the comments!

Uncategorized

Drawbot: added Floyd/Steinberg dithering

A big challenge with the drawbot is that it’s still really hard to use. Wouldn’t it be great if you could just load a picture and click start? Well soon you will.

Here’s the plan:
– load a picture (done)
– make it greyscale (done)
– dither it to a set of points (done)
– connect the dots in a single line aka the traveling salesman problem.
– generate gcode
– send gcode to robot

Here’s a sample of what I’ve got so far:

(Poster by Olly Moss.)

Should I give people the power to change the picture size before starting OR should the picture automatically fit the picture to the drawing area (without stretching)?

Uncategorized

Drawbot: Pen Holder

Zen Webb asks good questions.  Take this one, for instance.

Can you elaborate a little bit on the gondola design you used? I see multiple versions in the photos, but I’m personally pretty interested in the simple ring design. It looks like it might be 3D-printed, or did you source it from someplace else?

Yes, it’s 3D printed.  So far every version has been.  While I use the ring a lot, it’s far from perfect.  A good pen holder should

…have the two strings meet at a single point, or as close as possible.  The moment they separate the math gets really ugly.

…deals with friction.  Friction causes the pen to drag and lean.  If I tell the robot to draw a square corner and it comes out rounded then I know my pen is dragging because it never reached the corner.  The pen has to stay at a right angle to the drawing surface.  So far I’ve found that having at least three points of contact is enough to eliminate the problem.  That’s why I tape my business card to an eye bolt on the bottom of the ring – the bottom edge of the card forms a large contact area with very little friction.

…deals with gravity.  If the pen is balanced wrong it may point up or down.  If it points up then it might go dry.  If it points down then it might have extra friction when moving downwards, causing the pen to skip and create a dotted line.

…make it easy to switch pens.  Not only should it be easy to replace a pen but every pen should “lock” into the pen holder at the same distance and angle from the drawing surface.  In order to simplify this problem I only use one kind of pen that comes in many colors.

…works on both vertical and slanted surfaces up to a maximum of 10 degrees.

If you have some ideas about how to make a better pen holder, please contact me.  I’d love to print your idea and try it out.

Uncategorized

Introduction to Arduino Night: Tonight, tonight!

Starting at 20:00 at the Vancouver Hack Space:

After a brief word about VHS, membership, and upcoming events I’ll be doing a quick survey of who knows what about Arduino and then tailoring the talk to the audience. Among the things my ramblings will cover:

  • serial communication and “hello, world!”
  • LED on/off with digital out pins
  • LED fading with digital out pins + PWM
  • Servos + PWM
  • switches and digital in pins
  • pots with analog in pins
  • breadboards and why you need one
  • how a multimeter can pay for itself in one use
  • shields

We’ll get as much practical hands-on experimenting as we can stand.  Q&A at any time is appreciated.

I will also be bringing the drawbot, the crab robot, a prototype home automation system, and talking a bit about the delta robot group project.

Please to be not using the Makerbot or the MAME cabinet to cut down on the noise level.

Thank you very much for this opportunity.  See you there!

PS: here is the  sample.ino code I’ll be using tonight.