Physical Computing

Beyond the code

What is Physical Computing?

In a nutshell, physical computing is taking code and having it merge and then interact with the physical environment. If you build a robot, this is a form of physical computing. However, it doesn't need to be a big and lofty as a robot, it can be something like a water level, temperature sensor, that interacts with the environment. I have a reef aquarium at home and it is always important that I monitor water level. I can create a program that will monitor water level and then top the aquarium off if it gets too low. This is an example of physical computing: the sensor interacts with the physical environment and triggers something: an alert, a text message, or a water pump to add water to the aquarium.
Big image

What is the Microbit?

The microbit from BBC (at www.microbit.org) is an amazing microcontroller that is 1) easy to use, 2) has a lot of options, and 3) has a high ceiling for creativity. Basically it is easy to work with and code but you have the flexibility of creating highly complicated programs that interact with the physical environment.

The microbit has 25 built-in red LEDs along with built-in sensors and pins to connect motors, servos, speakers, and external sensors. The built-in components include:

  • Bluetooth
  • thermometer
  • accelerometer
  • compass

Coding the microbit

There are quite a few tools to code the microbit. Go to these tools to get started immediately:


Coding the microbit can be done in Blockly and Javascript through Makecode and Python through the Microbit site. If you are adventurous, you can also code it using tools like mbed and program it in 'C.'

The Arduino

Big image
The Arduino is a microcontroller like the microbit. It does program differently but has some similarities. It has pins to program sensors and components that you plug into them. The basic Arduino board does not have much and will need cables, a breadboard (if you want to do more), and sensors, LEDs, and other components to make it do something. The purpose behind the Arduino is to all people to enter into physical computing and do a large variety of projects. This is a verb high ceiling device and I've seen simple to incredibly difficult coding projects with it.

List of useful links to get started

Getting started with the Arduino is easy. I suggest starting with block coding and looking up projects through Arduino, Instructables, and Adafruit. However, because of the flexibility and widespread use, you can find projects just about anywhere.


Big image

Using iForge to program the Arduino

Arduino uses a form of the 'C' language. Many of the libraries are in C++ or C (https://arduino.stackexchange.com/questions/816/c-vs-the-arduino-language.) The Arduino IDE is the program used to code it. The basic form of it is not incredibly difficult. You do need to understand how to turn pins on and off, create variables, and run loops and if/then statements. If, however, this is daunting to you (as it was to me at the beginning, jump in with iForge.)


What is iForge?

It is from Genesis Learning, a company promoting STEM and CS. The head of the company, Trevor Shaw, has created iForge as a Web-based Arduino tool. What is unique with this tool is that it is block coding, but it shows you the Arduino C. It also has a 'Serial Monitor' to allow you to print out data for monitoring what a program is doing. It can create simple programs or go super complicated, based on your needs. What is nice about using iForge is that you can easily access tutorials built in and email the company if you have questions about the code. They are constantly making improvements and adding features. The most recent allows for coding of different Arduino devices beyond the Arduino Uno including the Little Bits Arduino board. This is a level-up especially for younger people who want to work with Arduino.

Microbit or Arduino: Why not both?

In the end, both of these components are great to jump into physical computing. Personally, I think the microbit is easier to get started because it has built in LEDs and sensors and only requires imagination and some spare items (like Legos) to build around it. The Arduino is very flexible and gives users many different project ideas. There really shouldn't be a competition because each device can cater to a different audience. I will stick with both because I like working with both types of languages and then challenges of building devices to work with them. In the future, I'll jump into interface boards for both that up the game and allow us to move into robotics and other projects much easier.