Bits, Nibbles, and Bytes of Physical Computing

What is Physical Computing?

From Wikipedia:

Physical computing involves interactive systems that can sense and respond to the world around them. While this definition is broad enough to encompass systems such as smart automotive traffic control systems or factory automation processes, it is not commonly used to describe them. In a broader sense, physical computing is 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.

So a broad term that involves a computer that interacts with the world and people.

Why Microcontrollers?

A microcontroller is a device that includes processing, RAM (changeable, volatile memory), "ROM" ("permanent", non-volatile memory), and input/output (I/O) circuitry in one package. Compared to say a desktop PC where the CPU, RAM, ROM, storage, I/O (e.g. USB, GPU, etc) are separate components.

It’s all Digital, even the Analog!

Quick review of how a microcontroller "thinks":

  • only two values: 0/1, True/False, on/off
  • numbers beyond 1 work in columns like our regular base 10… except it’s base 2!
    • so 0b0010 is 2 (0b is how to write binary using C++14 and beyond)
    • 0b0100 is 4
    • 0b0111 is 7
    • **So what is 0b1000?
  • a single binary digit is called a bit
  • 4 bits is called a nibble (not so commonly used- but it is also one base 16 digit, also called hexadecimal or hex)
  • 8 bits is called a byte
  • 1024 (2^10) is called a kilobyte
  • may only offer addition, subtraction, comparison, "jump to location", and "jump to subroutine"/"return from subroutine"
    • ie very simplistic instructions

As well analog values, if supported, will be digitized (converted) to a binary number. It may be a linear, or logarthmic.

e.g. a voltage of 5V might be converted to the number 1024. And 2.5V might be converted to the number 512.

The NYU Tisch School of Arts has a great introductory reference!

Aside: There are also analog computers. Veritasium has a great video on what they are and their history and another on using analog computing for energy efficient neural network processing.

Leave a Reply

Your email address will not be published. Required fields are marked *