Computing stuff tied to the physical world

Brutally Bare Basics

There is a lot to be said for the Arduino and its Integrated Development Environment – which is why the original JeeNode and numerous other boards are designed to be highly compatible with it in terms of software. Batteries included, hitting the ground running, a vibrant community – it all helps to get people up to speed in no time.

But there’s also a lot going on under the hood which is at least as fascinating. When you peel away the layers from the hardware and software side, you end up with the key ingredient of physical computing: the microcontroller (often abbreviated as “µC”) which is driving today’s revolution behind all those smart products, from the coffee machine to the internet-enabled home thermostat.

This chapter aims to start with the simplest setup which could possibly work, and build up from there. By understanding what goes on inside (up to a point, clearly) we can gain a better understanding and appreciation of what all those extra layers of comfort and abstraction give us. And with open source, the whole point is not just that software is free and hardware designs can be replicated at very low cost, but that it’s all in(tro)spectable. Given the interest and the time, you can figure out anything – there are no barriers, the knowledge is yours.

There is complexity, of course, and there are many trade-offs in the creation of any project or product, whether hardware or software, but open source is fundamentally different from commercial “closed source”, where use and consumption are usually the only options. With open source physical computing, you can discover, explore, re-purpose, combine, invent, and build new solutions as much as you like. Whether for fun or for profit is up to you.

Here is the definition of the term “physical computing” from Wikipedia:

[…] a creative framework for understanding human beings’ relationship to the digital world. In practical use, the term most often describes handmade art, design or DIY hobby projects that use sensors and microcontrollers to translate analog input to a software system, and/or control electro-mechanical devices such as motors, servos, lighting or other hardware.

The “digital world” in this context really means “computing”, so we’re going to have to dive into a lot of inter-related topics: 1) the µC itself, which is an integrated circuit, 2) how to connect it to a power source, 3) the way to make it do something intelligent, i.e. its software, 4) how to get that software into the µC, and 5) how to connect the µC to the outside world of sensors and other “electro-mechanical devices”.

And that’s just a first iteration, really. As you’ll see, physical computing is an endless world, bound only by (your!) imagination, inspiration, and yes… also a smudgeon of perseverance.

Again, courtesy of Wikipedia, a quick overview of what physical computing is about:

Bi-directional system interaction with the real world

Let’s start from scratch. No sketches. No IDE’s. No kits. Just a µC plus some components.

[Back to article index]