Will JavaScript type annotations kill TypeScript?
The creators of Svelte and Turbo 8 both dropped TS recently saying that "it's not worth it".
Yes: If JavaScript gets type annotations then there's no reason for TypeScript to exist.
No: TypeScript remains the best language for structuring large enterprise applications.
TBD: The existing user base and its corpensource owner means that TypeScript isn’t likely to reach EOL without a putting up a fight.
I hope they both die. I mean, if you really need strong types in the browser then you could leverage WASM and use a real programming language.
I don’t know and I don’t care.

Off-The-Shelf Hacker: How to Make A Steampunk Eyeball – Part 2

Apr 23rd, 2016 7:13am by
Featued image for: Off-The-Shelf Hacker: How to Make A Steampunk Eyeball – Part 2

Building a new project is a lot of fun, but it can also be daunting.

Even a small project, like my new Steampunk Eyeball endeavor, offers many options and a fair number of “moving” parts. In this sense, think of “moving parts” as the different subsystems, firmware/software, and processes needed to turn the pile of parts into a working device.

Here, the moving parts include the eyeball sphere itself, the eyeball pivoting and tilt servo mechanisms, the Pixy camera and it’s mounting inside the sphere, the base, and pan servo parts, plus a whole host of other incidental bits and pieces. There’s also the software used on a Linux notebook to setup and run firmware on the Pixy, monitoring software, electronic connections and power. When you think about it, the Eyeball has most of the elements of the physical computing stack.

Yup, there’s a lot to it. If it were that easy, a fifth grader could do it.

Before we get too deep, let’s review the homework assignment from last week’s Off-The-Shelf Hacker column. Did you pick a cool part for your project? Did you start a little project notebook and jot down your ideas? What about your theme? Great. Keep up the good work.

With that out of the way, I want to cover how I arrived at the major design decisions for the Steampunk Eyeball. We’ll also look at a few fabrication issues and solutions, that surfaced, as I started the build.

No fifth graders here.

Perspective Vision

My steampunk eyeball “want” list is pretty straightforward.

  • Use the Pixy camera
  • Make it unique so it attracts attention at conferences
  • Make it fun for the readers and audiences
  • Build something cool
  • Make it move
  • Give it a strong steampunk look

Notice anything missing? How about the main driver for having a steampunk eyeball with a Pixy camera inside, in the first place?

Purpose: I’d like the audience to be impressed with a physical computing device that tracks me as I walk around during one of my tech talks.

Having a vested interest in your ideas sometimes causes you to assume that everybody else understands the big picture, without you coming right out and saying it. Clearly expressing your project vision, is important. Yes…I wasn’t clear.

A great way to keep perspective and not gloss over important points is to write out your “want list” in one sentence, which is what I did. Here’s what I want the thing to do: Build a moving steampunk device, that’s fun, attracts attention at conferences and tracks me as I move around the stage, using the Pixy camera video processing capability.

Deciding How To Get There

You could plan everything out in minute detail, then fab.

I prefer a “build, hack, mod, repeat” approach, based on a general vision of what I want in the end, like the one sentence summary. I have enough confidence in my fab skills to know I can fix, adapt or correct any problems. I mostly perform quick mental risk/benefit exercise for small projects, instead of a long, drawn-out analysis.

Bigger projects require much more planning, analysis and design discussion, particularly if it’s a team effort. I also tend to overthink options and have trouble making “decisions on paper,” thus slowing down a project. It works much better for me to use a hands-on “build, hack, mod, repeat” methodology for my small, fast-moving prototype projects.

Regardless of the fab and development methods, it’s still important to make design decisions and set priorities.

For this project, nothing else really matters until the eyeball can pivot and rotate on some kind of mounting. For a realistic effect, the Pixy also needs to be mounted inside the eyeball sphere, so the firmware can properly calculate how to move the servos to track me as I walk around in front of the device. Getting that working is the top priority.

These are the main design decisions and reasoning, so far:

  • I sourced and purchased a 4-inch diameter hollow copper lightening rod-sphere from Hinge because I wanted an authentic steampunk look. Styrofoam didn’t feel right and fabbing up an eyeball out of brass tubing or concentric rings, while super cool, was simply too much work for the project time-frame.
  • I decided to cut the back side of the copper sphere to form a removable hinged door. There needs to be a way to install the Pixy camera in the sphere. A door makes that easy. I considered splitting the sphere along it’s rolled seam, but again, that was a lot of work and the two halves wouldn’t re-align very well. To make the door I used a pencil with a 3/8” nut tapped to the end (as a spacer) to scribe a pencil line about a ½ inch from the back of the seam. As you can see in the close-up,
    Modded copper sphere

    Modded copper sphere

    I left several “bridges” along the cut, so I could securely mount the pivot and door hinge pivot points. The hinges pins will be 2 mm brass bolts. I’ll cut the bridges once the pivot and door hinge pins are in place.

  • Originally, I considered using a small servo inside the sphere for the eye tilt movement. This was overly complicated to fab, working inside the sphere, so I decided to locate the servo outside the ball and use a rod for the connection, much like how a real-life eyeball works.
  • We also need wires to pass into the tilting eyeball, to connect power, data and servo wires to the Pixy. Hollow tilt pivot points are needed for that capability. I thought separate 3/8” copper unions would work, but then realized that the pivots on both sides of the eyeball needed to be on precisely the same axis, for smooth operation. I elected to pass a piece of 1/2” copper tubing through the sphere, solder it securely, mount it on the rotating half-hoop (using 3/16” wide brass flat stock as the pivot bushings), then later cut the center part of the pipe out, by way of the removable door.
  • I thought about using a 1” x 1/8” lightened aluminum half-hoop, much like the arm on my Steampunk Presentation Machine, although that seemed like it would be tough to get a smooth bend for the hoop. Instead, I decided to make an angled half-hoop out of 3/16” brass tubing and flat stock. It’s easy to solder, and I won’t have to bend anything. It will look industrial and shouldn’t take too long to construct.
  • I used a Dremel with a cut-off blade to split the sphere. A set of shot-filled, canvas juggling balls is great to hold irregularly shaped parts. Trying to drill a 3/8” hole for the sphere pivots, didn’t work out well, so I’ll enlarge the holes with the Dremel and an assortment of small grinding stones. It’s easy to use a pencil to mark the copper sphere temporarily, for locating cuts and holes. Use a smooth shop rag to erase the marks.

On To The Next Steps

Next week, we’ll discuss the details of fabbing the half-hoop and servo mountings. We may even be able to test how the Pixy tracks a color blob. I’m looking forward to seeing the eyeball move.

Don’t forget to record your risk/benefit analysis and design decisions for your project, in your notebook. Just think, you might want to put your project up on Instructables or one of the other Maker sites. Having notes will make writing your story (or telling everybody about it a conference…hint…hint) easy.

See you next week.

Group Created with Sketch.
TNS owner Insight Partners is an investor in: Shelf.
THE NEW STACK UPDATE A newsletter digest of the week’s most important stories & analyses.