Skip to content


Week 1:

Class overview/logistics

-review of class outline

-review of class background

tools needed, personal toolkit list

-the book, and the class website

development environment / using your own laptop / ordering arduino kits

Presentation of my own work

– artwork I have done using microcontrollers (in a sense – also a syllabus for the class)

Read Chapter 1, 2 and 3 of “Getting Started with Arduino” for next week

Week 2:

Introduction to Arduino Working Environment

-basic programming setup / environment

-introduction to digital output

-using LEDs/ using breadboards

Project 1: Blink

Basic Electronics theory

-voltage, current, resistance, and Ohm’s Law

-current limiting resistors

-basic load circuits

Project 2: More Blinking

Project 3: Clicking

Read Chapter 4 of “Getting Started with Arduino” for next week

Week 3:

Basic Electronics theory (again)

– review of Ohm’s Law

– current limiting, revisited

– digital I/O

– the pull-up / pull-down resistor

-interfacing Switches

Basic programming ideas

– introduction to the C language – basic syntax review

– data types

– declaring variables

– macro definition – the #define statement

– the conditional statement

Project 4: Switch

Project 5: Fast / Slow

Week 4:

Getting serious about programming

– introduction to the C language – basic syntax review

– declaring variables / data types

– functions

– serial communications

– debugging techniques

– the conditional statement

– quantifying time, physical distances, position, etc.

– generating random numbers

Project 6: Faster / Slower

Project 7: Faster / Slower :: Stop / Start (within limits)

Read Chapter 5 of “Getting Started with Arduino” for next week

Week 5:

Basic Electronics theory (yet again)

– yet another review of Ohm’s Law

– current limiting, revisited

– the pull-up / pull-down resistor revisited

– variable resistors – potentiometers, photocells, thermistors, etc.

– voltage divider networks

– the AD converter

– interfacing potentiometers

Project 8: Pot controlled blinker

-Project 9: Faster / Slower :: Stop / Start (using knobs)

Week 6:

Getting even more serious about programming

– review of variables, functions, conditionals

– operators

– the “for” loop

– PWM using the built in functions

Project 10: Fading LED

-Project 11: switch controlled LED fader

-Project 12: Color Mixer using RGB LED

-Project 13: Color Fader using RGB LED

– begin work on Midterm : Interactive light/color/sound piece

Week 7:

Interfacing Motors

– the transistor

– transistor switches / the darlington array

– current limitations

Project 14: Motor on/off

-Project 15: Motor speed control

Week 8:

Advanced Motor Control

-H-bridge – controlling direction / speed in DC motors

– feedback – sensing location of physical devices

-Project 17: Reversible DC Motor

– Project 18: Random Motion

More Advanced Programming Concepts

– random numbers

– arrays

-Project 19: Random Pattern Selection


Week 9:


More Motor Control

– Stepper Motors – design and uses

– Stepper Motor controllers

Raw Stepper Motor Example

– Project 20 : Circular Motion with Stepper Motor

-Project 21: Robots R Us

Programming Random patterns

– random walks

– self-similar noise

Project 22:  Circular Random Walk – more random motion ideas

Read Chapter 6 of “Getting Started with Arduino” for next week

Week 10:


storing patterns in arrays

-Project 23 – Creating motion patterns

– passing arrays to functions

-Project 24 – Multiple motion patterns

– using variable-length arrays

-Project 25 – Multiple motions with variable lengths

-Project 26 – Generating complex pattern/behaviors

Week 11:

FINAL PROJECT PROPOSALS : Discuss in class – emailed by end of week.

– using  libraries

– the #include directive

– introduction to Object Oriented Programming ideas:

-creating objects

– methods

– instances of objects

– using character strings

– pointers and arrays of character strings

– Project 27: Using Arduino Libraries:  LCD display

– Project 28:  Text machine

-Project 29:  “testing 1 2 3……”

Week 12-14:

Work on final projects

Advanced Programming Topics (as appropriate)

– using interrupts to drive time-oriented processes


– using EEPROM to remember things

-computer programs as event sequencers

-using randomness

-simulation of human/natural actions

– more controlled randomness: random walks, brownian motion, 1/fnoise

-generating exponential and other non-linear sequences

– wireless communication using X-Bee modules

-interactive decision trees – building responsive systems

Week 15:

In-class presentation/critiques of final projects

%d bloggers like this: