Monthly Archives: December 2010

Draftsight Review – Like AutoCAD, but free!

draftsight logoAs I took a free class on Solidworks two summers ago, I was on the Dassault Systemes mailing list.  Dassault Systemes most famously makes CATIA and Solidworks and now apparently make something resembling AutoCAD for free.  As I no longer have a copy AutoCAD at home from college, I decided this would be worth a try.  As with GIMP, the price for  “DraftSight” was very attractive at zero dollars. Read more »

Very simple cornhole toss construction project

finished cornhole toss board with bagsSo being Christmas time, I heard that someone close to me wanted a cornhole toss game.  This person thought that I could easily build one in my constantly-expanding shop, and casually mentioned to me that it might make a nice present.  Not being one to turn down a challenge (at least not a mechanical one) I decided I was going to make a set.  Looking around on the internet, I didn’t find any very complete plans that were simple to make, so I made my own instructions.  Here they are in a step-by-step format.  Also, if you’re looking for a tailgate game and are truly lazy or hard-up for cash, you should consider making a ladder toss game instead (really fun too).  Regardless, here are the steps to make your own cornhole toss game.

STEP1: GET YOUR Read more »

Illustrate and dimension your projects with GIMP

For those of you that don’t know, GIMP stands for GNU image manipulation program.  It’s free to download and could be compared to Photoshop or an extremely advanced version of paint.  For someone interested in showing off his or her project, it can be a very valuable tool.  In this post, we’ll be going over the best ways to put dimensions on your drawing.  In other words,  you’ll be describing in inches/feet/centimeters or whatever units you desire (parsecs?) how big certain elements of an object are.

gimp toolbar with letters and pencil highlighedThe simplest way to do this is to first open an existing picture of the object you wish to illustrate using GIMP.  Use the pencil and text icon (outlined in pink) to draw the lines and letters with arrows on the ends (like the blue “24″ on the right).  This works fine, and will work for simple drawings that you are never going to modify.  Save it as a new .jpg or .gif and you’re done.

The problem with this method comes when Read more »

How a Pencil Sharpener Became a Drill, or "To Grandmother’s House we Go With no Drill"

A jcopro.net reader who prefers not to register with WordPress but instead writes for Broken Bulb Comedy,  and even has a podcast – I call in on the episode linked – submitted the following story about a hack he made.  While at his Grandmother’s house, he needed to install some safety railing, but didn’t have the necessary tools.  Rather than giving up, he came up with this innovative solution.  We’ll refer to him as “Little Red” as this person was at Grandma’s house at the time.  We’ve also transposed this hack into a nursery rhyme after the video as it sounds to me like it should be one.

drill made from pencil sharpener

pencil sharpener based drill

LR: “While visiting my grandmother I realized that I needed a drill for a project. I looked all through her garage for one, but realized that the last visit we packed up all of her tools and mailed them back to my house. ”

JC:  “While off at my Grandma’s I looked all through the house, not a tool or drill press was stirring, no not even for a mouse.”

Read more »

Pegleg the six-legged (hexapod) robot – part 4 programming and servo control

We’ve gone over how to build a hexapod and how to analyze it’s motion; in this section we review how to actually program this robot.  Although there are probably better options out there (Arduino seems to be a good value although I haven’t tried it – Update: tried it recently, see my review), I used a Basic Stamp II processor for my robot.  I’d already done a project for school with a BSII, so I was pretty confident in my programming abilities with it.  It uses a version of BASIC, while Arduino uses C, so that may be something you want to consider when selecting your processor.  Before I give you the code, here is the final version of Pegleg, which is much faster than the original.  I’ve put both versions here for comparison.

[ad#Google Adsense-text leaderboard wide not home]

mini ssc2 in use

Serial SSCII

If you watch the two versions side by side, it should be evident which one is more refined from a speed point of view.  The final version also looks like it might stay together for more than a couple minutes (hopefully you agree).  Servo optimization helped of course, but using the mini SSCII servo controller pictured in use to the right had the greatest effect (one of the servos was taken off to allow you to see it).  The servo controller allowed simultaneous movement of all legs since the BSII didn’t have to send them a signal continuously while moving.

Here is the program originally used to control Pegleg, followed by a more refined version using subroutines and, of course, the serial SSC II servo controller.

Simple forward walk, no SSC II in use:

‘whole servo controller (makes the robot walk forward)
startval var bit

bs2 circuit

Wiring for Pegleg on the breadboard. The black circle is a speaker.

endval var byte
starv var nib
ending var nib
a var byte
b var nib
ending = 5
startval = 1
endval = 40
start
input 4
if in4 = 0 then loop
goto start
loop
for A = startval to endval
pulsout 12,400 ‘puts the left middle leg down
pause 25
next
pause 50
for A = startval to endval
pulsout 13,1012 ‘rotates the left back and the right forward
pulsout 14,1012
pause 25
next
pause 50
for A = startval to endval
pulsout 12, 1150 ‘puts the right middle leg down
pause 25
next
for A = startval to endval
pulsout 13, 581 ‘rotates the left leg back and the right leg forward
pulsout 14, 581
pause 25
next
pause 100
goto start
end

Walking demonstration routine.  Subroutines and serial servo controller used.

‘Subroutines:
rfwd:
serout 0,n96n,[sync,2,65]
return

rmid:
serout 0,n96n,[sync,2,155]
return

rback:
serout 0,n96n,[sync,2,255]
return

lfwd:
serout 0,n96n,[sync,1,65]
return

lmid:
serout 0,n96n,[sync,1,155]
return

lback:
serout 0,n96n,[sync,1,255]
return

rtmidup:
serout 0,n96n,[sync,0,255]
return

ltmidup:
serout 0,n96n,[sync,0,0]
return:

midmiddle:
serout 0,n96n,[sync,0,127]
return

lfwdrback:

return

rfwdlback:

return

rtturn:
gosub rtmidup
gosub lfwd
for b = startval to ending
gosub ltmidup
gosub rback
gosub lback
gosub rtmidup
gosub rfwd
gosub lfwd
next
return

forwalk:
gosub rtmidup
gosub lfwdrback
gosub ltmidup
gosub rfwdlback
return

backwalk:
freqout 11, 500, 2500, 3000
gosub ltmidup
gosub lfwdrback
gosub rtmidup
gosub rfwdlback
return

ltturn:
gosub ltmidup
gosub rfwd
for b = startval to ending
gosub rtmidup
gosub lback
gosub rback
gosub ltmidup
gosub lfwd
gosub rfwd
next
return

It’s been a long time since I programmed this, but those are the files that I had (minus some sort of freqout command – maybe I was trying out a speaker) on my computer.  If you’re somewhat familiar with programming it shouldn’t be too hard to modify my code for your use.  I don’t have any sort of buttons or sensors in these routines, but that would be pretty easy to add with if-then statements.

One very important command if you’re not using a separate servo controller is “pulsout” which sends a PWM (pulse width modulation) signal to the servos to do your bidding.  If you are using one, the command to do the same action is “serout” which signals the controller to send a PWM signal to the servos to then do what it is supposed to.  The second program also makes use of subroutines, which is highly recommended.

robot side view final assembly

So that is it, I’ve gone over everything I can think of needed to build your own hexapod robot.  There’s probably more, so leave a comment if you want me to fill you in on anything else or if I missed anything.  I may do a couple more posts on this ‘bot if I try to get it working again, or maybe I’ll do a post on some of the ideas I tried but never pursued fully.

-JC