The Need for Physical Computing Part 2:

Introduction:

In the previous post I brought up the concept Physical Computing and what it is and included ideas along with a post from a student project. Today, I want to go deeper and include specific technologies to use to get involved in the world of coding and physical devices.

Learning to work with the physical environment:

It is one thing to work with code and program a sprite to move on a screen or to program a ‘turtle’ to move to different coordinates. It is a whole other thing to work with a circuit board and have it interface with servos, sensors, and motors. The point is, the physical environment is tangible and we can see real, not virtual, affects the device we are programming, has upon it. So, when working with the physical environment we get to see real effects. I, being a visual learner, like to see how things work and how things are affected.
So if we are working with the physical environment, what should we work on? Well, that is up to you. You may find a need to program a servo because your Lego castle needs a working drawbridge, or maybe you are like Sam Patterson (@SamPatue) and take apart toys, see how they work, and reprogram them. Or maybe you just want to start a Christmas light show and want a system to do that. All these things are possible with devices like @arduino, @raspberrypi, and @microbit_edu.

Tasks:

Getting started need not be an overly complicated matter. Decide first what your project to is going to be. For me, I am going to take on doing a simple Christmas light show for one of our trees. The idea of setting up a program to run lights and hopefully sound is intriguing to me and I’m hoping for the best of success.
For me, Instructables tends to be one of the best sites for finding project ideas and Adafruit has a plethora of good resources and walkthroughs for Arduino, Raspberry Pi, Microbit, and other microprocessors and computers. If I don’t have an idea, I look for ideas so I can learn from other makers.

What tool do I use?

The Arduino is a microprocessor that allows for a variety of projects.

The setup is relatively basic. There are pins along the sides, a USB connector to interface with the computer and a battery port to connect a battery pack or 9V battery to run programs apart from the computer.
There are many interfaces to program the Arduino which includes the Arduino IDE, Scratch, Snap, iForge, and many other tools. The type of programming tool depends upon the level of programming ability the user has. Arduino IDE requires an understanding of programming, such as C. If you are not good with calling variables, writing loops, building and calling arrays, I suggest going with a block-style programming tool, such as iForge.
As much as the Arduino is an amazing tool, there is are external components you need to use it. By itself, it does nothing. You will need cables, sensors, a breadboard, resistors, and whatever you need to connect to it to turn on/off. The Arduino cannot do everything, but the amount of projects that can be made is astounding.
As much as I like the Arduino, there is a fairly high level of complexity with connecting components to it, whether that be sensors, motors, or servos. So, enter the HyperDuino-R:


This board is a shield that fits onto the Arduino and then allows the ability to connect to LEDs, touch sensors, servos, 3- and 4- sensors, motors, and more WITHOUT the use of a breadboard (and resistors) though if you really want to work with a breadboard you can.

Without the HyperDuino-R, connecting just ONE motor through a breadboard is an effort. The HyperDuino-R itself has a built in chip to allow for motor connection:

I think working with a breadboard is an important part of understanding circuit building. However, for getting people into physical computing, breadboards can be a pain to work with. The above image takes you to an instructable where someone used the HyperDuino-R to control temperature in a home brewery. With the introduction of the HyperDuino-R, maker projects, including robotics, is now much easier to do. Programming is still done with Arduino IDE or one of the block programming tools.
However, the level of understanding to program these devices is still rather high.

Introducing the micro:bit:

The micro:bit is a relative newcomer to microprocessor programming but it is making waves with adults and kids alike.

The micro:bit is small but built into in are sensors and bluetooth capability that allow students to do more with it out of the box than the Arduino. Students can immediately begin programming the built-in LED panel and work with the built-in A & B buttons, a compass, thermometer, and accelerometer to show data on the panel. The row of pins along the bottom allow connection with alligator clips to connect external speakers in order to play music, run a servo or small motor, or maybe a low powered (3V) sensor. If you want to work with Bluetooth controls, you can control the micro:bit to send signals to another micro:bit and control it. The ability to step into physical computing has gotten much easier!
Programming the micro:bit is easily done with Makecode from Microsoft or from a Python editor via micro:bit. Makecode allows users to code with blocks or with Javascript. The threshold to get into programming and working with the device is much lower and easier to enter into than the Arduino.
However, as much as the micro:bit allows you to get into physical computing, it is still limited in the types of maker projects that it can do.

Bring on the Makerbit:

Recently the HyperDuino-R has gone through an upgrade. There is still the HyperDuino that interfaces with the Arduino, but now there is the Makerbit:

Similar to the HyperDuino-R for Arduino, the Makerbit allows direct interface with the micro:bit and then allows for connection to LEDs, servos, 3- and 4- pin sensors and higher powered motors. The Makerbit can run the micro:bit with a 9V battery connection, bypassing the small 3.3V battery pack with the micro:bit. The motors allow for a connection with up to a 15V battery source (yes that’s high) and run various forms of motors, such as bi-directional motors. So, bring all the built-in sensors for the micro:bit, combine with the scalability of the Makerbit, and the programming ease of Makecode, and then the sky’s the limit for programming and projects.

In my next post on the micro:bit and HyperDuino, I will break down a smart car build along with a variety of other projects that can be done with these devices. Also, I will go through the coding tool to demonstrate the little to no level of programming knowledge necessary to get into programming and physical computing.