The NURG met at the Aero Court campus at 5 p.m. to start the journing of learning
and using physical computing.
MORE ABOUT the meeting (collapse)
The text being used initially is Jeremy Blum's, "Exploring Arduino", Wiley, 2013.
Anna Tanguma opened the session telling us how to form the group to match NU guidelines, which we have now
done. Professor Ali Frahani is the group's lead and is carrying the administrative duties so far. We will
have officers and become more formal over time. But the main focus is learning about how robotic projects
Our tech guide for the meetings is adjunct professor John(Jack) Wolf whose background is electrical engineering
and who has taught several microprossor, networking, and electrical courses at NU. Jack picked up working with
several microcontrollers as a hobby in the last three years and has concluded the Arduino family of devices is
the best to get started and in fact covers most of what is needed to successful complete many varieties of robotics
This first session, Jack demoed the projects in the book up to page 35. The code to download the Arduino Integrated
Development Environment (IDE) was used to manipulate breadboard components via an Arduino Uno microcontroller to turn
on an LED, use a pushbutton to cause the LED to be turned on and off and how to "debounce" a button or relay contact
to avoid confusing the software with multiple logic changes on the I/O pin.
Pulse-Width Modulation was explained to vary the apparent intensity of the LED. In the process of setting up
a PWM controlled LED, use of pull-up (or pull-down) resistors, analog inputs, and several C++ code statements were
introducted. See the slides (some new material here as well), click here.
The Arduino family uses a professional level IDE based on C++. The "main()" function and several classes are actually
working in the background, which makes the IDE very easy to use and understand from first time use. The Arduino.h
class encapsules the normal C++ main() function and has methods so the Arduino pin-out can be programmed and manipulated
with easy to use statements like pinMode(pin3, OUTPUT);, which says pin 3 will be use in this program (called a sketch in
Arduino parlance) as an digital output(either made HIGH or LOW). The IDE has three areas that every sketch addresses.
First is an area to define variables, a method called setup(), which is used to initialize the project, and the loop(),
which is the polling interval activity the sketch will be doing over and over unless stopped at some point. These are
the essential ingredients, but interrupts can be define along with adding any number of user defined functions. But
this is all the is needed to run all the various Arduino projects.
The next session will move much faster by building on each project already accomplish, i.e., if a button is needed, we
already know how to debounce the input, we know how to use 'if' statements and 'for' statement, and how to set up and
run a sketch to include uploading the sketch to the microcontroller board and running the program. In the next session
we will work with analog inputs and do more controlling via the software. Hope to see you there.