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
Basic Electronics theory
-voltage, current, resistance, and Ohm’s Law
-current limiting resistors
-basic load circuits
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
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 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
- 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
- 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