Skip to content

Syllabus:

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

CONTINUE WORK ON MIDTERM PROJECT


Week 9:

MIDTERM PROJECTS DUE

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:

Arrays

- 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

project30

- 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

Follow

Get every new post delivered to your Inbox.