We’ve heard the terms “full-stack developer” or the LAMP stack. The former refers to a person who is able to program both the front-end and back-end parts of a standalone or web software application. An example might be someone who can build the user interface to a web application AND also code the financial engine that makes the web app actually take care of customer online orders. The later refers to Linux, Apache, MySQL and PHP software infrastructure powering websites, all across the internet.
A couple of years ago, TechCrunch said that the full-stack developer is on the way out. The hot-ticket today is the full stack integrator. Okay…
Hardware people have their stacks, as well.
I’ve coined my own “stack,” the physical computing stack.
Back when I started working with microcontrollers, beginning with the Basic Stamp, two books by Tom Igoe, “Physical Computing: Sensing and Controlling the Physical World with Computers” and “Making Things Talk: Practical Methods for Connecting Physical Objects” introduced me to the futuristic world of physical computing.
My physical computing stack expands on Igoe’s model, in keeping up with the times.
Physical Computing Stack Examples
Think of the physical computing stack as “where computing and everything attached to it meets the real world.” In its simplest form, like with an Arduino, you have a small computer and its firmware along with the input sensors and actuators that it controls. The Arduino reads an input, does a few calculations and may change some outputs. The same routine occurs very quickly, over and over until the device is powered off.
To field an actual functioning prototype project, you’ll have to account for many of the following physical computing stack elements (in no particular order):
Actuators - Hydraulics, Pneumatic, Magnetic, Electric
Big Data and Artificial Intelligence
The recent TNS article about electric vehicles had a physical computing spin in that it uses computing technology to control the massive electric motors, with inputs from a shaft speed sensor and a potentiometer under the gas pedal. In this case, the motor controllers are much like an industrial-strength Arduino, sensing inputs, doing some calculations and changing some outputs. You can think of the insane Zombie 222 Mustang body, frame, running gear as “aesthetics” and the “product packaging” elements of the stack.
Robots take the concept of the physical computing stack a little bit further. Robots have a computer brain, motors to make it move, sensors to detect when it’s about to run into something and software that makes it function in a productive way.
Add networking hardware (and associated software or firmware), along with back-end service like Amazon Alexa for giving the robot commands, a handful of LEDs, animated eyeballs and some kind of voice and you’ll start to get a picture of a real world physical computing stack.
Beyond Robots to Mechanisms
Our traditional concept of a robot is something with wheels that moves around on the floor. The physical computing stack certainly includes robots. It may also swerve off into the non-traditional direction of mechanisms.
My steampunk eyeball incorporates elements of the physical computing stack “mechanism” layer. It’s not really a robot. The totally self-contained device uses a specialized Pixy image sensor to follow color blobs, panning and tilting the eyeball with a couple of X-Y servos. I think of the brass eyeball frame, the eyeball itself, the base and the pan pivot as all part of the “mechanism” layer. The elements all have to work together, otherwise, it’s not a functional prototype that you can demo to an audience or sponsor.
Industrial controls, another physical computing stack, incorporate a heavy “mechanism” layer component. Certainly, moving arms, activating pumps and monitoring the number of widgets going through a chute are tied strongly to industrial mechanisms.
Go Huge or Go Home
What if you combine wheeled inventory handling robots with industrial controls on a production line and network them all to a central control server (or a container in the Cloud), that sends status updates to a little mobile app on your Android super phone? This one might include software, hardware, firmware, networking, radios, web/internet, database, mechanisms, interfaces, protocols and so on.
That’s starting to get to be a much more complex physical computing stack, wouldn’t you say?
The cool thing about all this is that as an Off-The-Shelf Hacker, you can start small and rapidly build up your expertise in each element. Start with an Arduino, a handful of LEDs and a few sensors. Get a basic project going. Then replace the Arduino with a Raspberry Pi. After that, get up to speed on networking by altering your Raspberry Pi program remotely from another machine. Next, hack your project into an old toy or into some crazy scratch-built device.
I’ve only discussed a few of the layers, here today.
Just today there was an article on Hackaday.io about using a motorized linear potentiometer. That’s definitely a unique component of the “sensor” layer. How could you use that in a project?
Or, wouldn’t it be fun to incorporate a few physical computing layers into a magic act? Maybe the quiet half of Penn and Teller can give you some ideas.
There are a million new inventions out there, just waiting for Off-The-Shelf Hackers who can build projects with the physical computing stack.
Feature Image via Pixabay.