Inspiring Hacks, Unfinished Hacks

We got a tip this week, and the tipster’s comments were along the lines of “this doesn’t look like it’s a finished work yet, but I think it’s pretty cool anyway”. And that was exactly right. The work in question is basically attaching a simple webcam to a CNC router and then having at it with OpenCV, and [vector76]’s application was cutting out freeform hand-drawn curves from wood. To amuse his daughter.

But there’s no apology necessary for presenting a work in progress. Unfinished hacks are awesome! They leave room for further improvement and interpretation. They are like an unfinished story, inviting the hacker to dream up their own end. At least that’s how this one worked on me.

My mind went racing — adding smart and extensible computer vision to a CNC router enables not only line tracing, but maybe smarter edge finding, broken tool detection, and who knows what else. With the software end so flexible these days, and the additional hardware demands so minimal, it’s an invitation. It’s like Pavlov ringing that bell, and I’m the dog-hacker. Or something.

So remember this when you get half done with a project, get to a workable first-stage demo, but you haven’t chased down each and every possibility. Leaving something up to other hackers’ imagination can be just as powerful. Your proof of concept doesn’t have to be the mother of all demos — sometimes just a working mouse will suffice.

High Noon For Daylight Savings Time

The US Senate has approved the “Sunshine Protection Act”, a bill to make Daylight Saving time the default time and do away with the annual time changes. While I can get behind the latter half of this motion, redefining Daylight Saving time as Standard time is, in my opinion, nonsense.

It’s particularly funny timing, coming right around the Vernal Equinox, when the sun stands at its highest right at Noon Standard Time, to be debating calling this time “one PM” forevermore.

Right Idea, Wrong Time

Let’s do a quick overview of the good idea here — doing away with time changes. These are known to cause sleep disturbances and this leads not just to sleepy heads on Monday morning, but to an increased risk of heart attack and accidents in general. When researchers look into the data, it’s the “springing forward” that causes trouble. People who’ve slept one extra hour don’t seem to suffer as much as people who’ve lost one. Go figure.

So maybe it makes sense to stop changing times. If we’re going to settle on one standard time, do we pick Standard time or Daylight Saving time? Admittedly, this is a totally unfair way to pose the question, but there are a number of good reasons to prefer all-year Standard time. The biggest one is winter. Basically, it’s already tough enough to get up on a cold January morning when the sun is not due to rise for another hour or two. Add another hour of darkness on top, and you know why the two previous attempts to run all-year Daylight Saving were short-lived. And why the Swedes drink so much coffee.

France-002886 – Sundial” by archer10 (Dennis) CC BY-SA 2.0.

There’s also the fundamental logic behind our measurement of time that’s stood for centuries, and is embedded in most of our cultural references to time. Ante Meridian and Post Meridian. High Noon, when the hour hand on the clock points straight up, represents the sun itself. But even before clocks, the sun’s halfway point along its daily journey marked the halfway point of the day. That’s not only why we eat lunch when we do, it’s the origin of man’s time-telling itself.

If we change the definition of noon permanently, we’ve decoupled time from the sun. How will we explain time to future children? I’ll accept Daylight Saving time when we start reprinting analog watches with 1 o’clock at the top and start referring to 12 AM as the one that’s just before the sun reaches its peak. As soon as “one noon” replaces “twelve noon”, I’ll get on board. Midnight, when the clock strikes one, just doesn’t send the same shiver down my spine. Sorry, Dracula.

If culture and physics point to Standard Time, why would you want Daylight Saving to be the new normal? When people think of Daylight Saving, they naturally think of those nice long summer days that stretch out into the night. My personal bet is that many folks are confounding summertime with Summer Time. Heck, even the name of the bill proposes to protect sunshine itself, rather than just move the hands of the clock around. These are not good reasons.

Continue reading “High Noon For Daylight Savings Time”

You Draw It, CNC Cuts It

[Jamie] aka [vector76] hit us with a line-tracing plugin for OctoPrint that cuts out whatever 2D shape you draw on a piece of wood. The plugin lets you skip the modeling step entirely, going straight from a CNC-mounted webcam that reads your scribbles and gives you a Gcode toolpath in return. The code is on GitHub and there’s a demo video embedded below.

Under the hood, OpenCV is doing a lot of the image processing, including line detection, and the iterative “find the line” and “move the toolhead” steps really show off what computer vision can do. It starts off with a fiducial arrow for scale and orientation, then it mores the webcam around the scene. The user can enter the usual milling parameters: speeds, feeds, depth of cut, tool offset, milling direction, etc. And then it gets to work.

Right now, it’s limited to paths with non-crossing lines, and probably with good contrast and a nice dark line — all the usual CV restrictions. But mounting a webcam to a CNC toolhead and using it for various pathing problems really opens up tons of possibilities: visual homing, workpiece edge finding, copying parts, custom fitting odd shapes, and more. This project is clearly an invitation to keep on hacking, an appetizer. Once you see the girl pirate robot that [Jamie]’s daughter made, you’ll get the idea.

We’ve seen a similar OpenCV approach used for center-finding bore holes, but while we’ve seen a few webcams used with laser cutters, the CNC mill applications seem largely untapped. Let us know in the comments if you’ve got some other good examples.

Continue reading “You Draw It, CNC Cuts It”

Old School Mechanical Pong Still Amazes

[Tom], of the YouTube channel ThingsTomLike, found a very sweet little mechanical Pong clone at a thrift store. It came in broken, but in only fifteen minutes of your time, [Tom] manages a complete teardown and repair. (Video, embedded below.)

The game works by balancing a lightbulb on the end of a pivot arm that projects a “ball” onto a screen, while players move their paddles up and down to hit the spring that surrounds the light assembly. The ball arm gets periodically kicked by a DC motor and cam assembly, which makes it careen wildly back and forth across the screen.

It’s a marvel of simple, no-IC engineering. Ironically, it might have been cheaper than making it out of silicon at the time, but viewed from today’s economy, just the human labor in adjusting that counterweight so that the “ball” floats would blow the budget.

Why a screen and lightbulb? Because it’s emulating Pong, a video game, the new kid on the block. But even 45 years later, we think it has got a charm all of its own that the cold digital logic of Pong lacks, even if the gameplay suffers.

Continue reading “Old School Mechanical Pong Still Amazes”

Tune Your Dish Antenna Like A Pro

It’s a problem we all have at one time or another: your five-meter radio astronomy dish gets out of calibration and you don’t have a ridiculously expensive microwave holography rig on hand to diagnose it. OK, maybe this isn’t your problem, but when [Joe Martin]’s parabolic antenna got out of whack, he set out to diagnose and repair it, and then wrote up how he did it. You can download the PDF from his radio astronomy articles collection.

At the heart of the measurement rig is a laser rangefinder connected to a Porcupine Labs interface that passes the data on to a Pi 4. This is placed on the end of a two-degree-of-freedom servo gimbal that scans over the surface of the dish, measuring its shape. After measuring and math, [Joe] found out that it’s a little bit long here and short there, he attached two cables with turnbuckles to the front of the dish and pulled it back into shape — the sort of thing that you should probably only do if you’ve got a measurement rig already set up.

The Fluke rangefinder and Porcupine labs interface combo is pretty sweet, but it comes with a fairly hefty price tag. (Nothing compared to a professional dish measurement rig, we presume.) We’ve seen a few attempt at hacking into el-cheapo laser rangefinders, but other than [iliasam]’s heroic effort where he ended up writing his own firmware, it doesn’t seem like there are any successes. A shame, because applications like [Joe]’s prove that there’s a need for one. Let us know if there’s anything we missed?

Thanks [Ethan] for the tip!

Impedance Mismatch

There are a few classic physics problems that it can really help to have a mental map of. One is, of course, wave propagation. From big-wave surfing, through loudspeaker positioning, to quantum mechanics, having an intuition for the basic dynamics of constructive and destructive interference is key. Total energy of a system, and how it splits and trades between kinetic and potential, is another.

We were talking about using a bike generator to recharge batteries on the Podcast last night, and we stumbled on a classic impedance mismatch situation. A pedaling person can put out 100 W, and a cell phone battery wants around 5 W to charge. You could pedal extremely lightly for nearly three hours, but I’d bet you’d rather hammer the bike for 10 minutes and get on with your life. The phone wants to be charged lightly — it’s high impedance — and you want to put out all your power at once — you’re a low impedance source.

The same phenomenon explains why you have to downshift your internal combustion automobile as you slow down. In high gear, it presents too high an impedance, and the motor can only turn so slowly before stalling. This is also why all vibrating string acoustic instruments have bridges that press down on big flat flexible surfaces, and why horns are horn shaped. Air is easy to vibrate, but to be audible you want to move a lot of it, so you spread out the power. Lifting a heavy rock with human muscle power is another classic impedance mismatch.

If these are fundamentally all the same problem, then they should all have similar solutions. The gear on the bike or the car, the bridge on a cello, the flared horn on the trumpet, and the lever under the boulder all serve to convert a large force over a short distance or time or area into a lower force over more distance, time, or area.

Pop quiz! What are the common impedance converters in the world of volts and amps? The two that come to my mind are the genafsbezre and the obbfg/ohpx pbairegre (rot13!). What am I missing?

Our Favorite Things: Binary Search

You might not think that it would be possible to have a favorite optimization algorithm, but I do. And if you’re well-versed in the mathematical art of hill climbing, you might be surprised that my choice doesn’t even involve taking any derivatives. That’s not to say that I don’t love Newton’s method, because I do, but it’s just not as widely applicable as the good old binary search. And this is definitely a tool you should have in your toolbox, too.

Those of you out there who slept through calculus class probably already have drooping eyelids, so I’ll give you a real-world binary search example. Suppose you’re cropping an image for publication on Hackaday. To find the best width for the particular image, you start off with a crop that’s too thin and one that’s too wide. Start with an initial guess that’s halfway between the edges. If this first guess is too wide, you split the difference again between the current guess and the thinnest width. Updated to this new guess, you split the differences again.

But let’s make this even more concrete: an image that’s 1200 pixels wide. It can’t get wider than 1200 or thinner than 0. So our first guess is 600. That’s too thin, so we guess 900 — halfway between 600 and the upper limit of 1200. That ends up too wide, so we next guess 750, halfway between 600 and 900. A couple more iterations get us to 675, then 638, and then finally 619. In this case, we got down to the pixel level pretty darn fast, and we’re done. In general, you can stop when you’re happy, or have reached any precision goal.

[Ed note: I messed up the math when writing this, which is silly. But also brought out the point that I usually round the 50% mark when doing the math in my head, and as long as you’re close, it’s good enough.]

What’s fantastic about binary search is how little it demands of you. Unlike fancier optimization methods, you don’t need any derivatives. Heck, you don’t even really need to evaluate the function any more precisely than “too little, too much”, and that’s really helpful for the kind of Goldilocks-y photograph cropping example above, but it’s also extremely useful in the digital world as well. Comparators make exactly these kinds of decisions in the analog voltage world, and you’ve probably noticed the word “binary” in binary search. But binary search isn’t just useful inside silicon. Continue reading “Our Favorite Things: Binary Search”