Date |
Topic |
Notes |
January 18 |
Course overview: -- Programming in the physical world |
Introductory notes |
January 20 | Introduction to the Arduino: -- Hardware / IDE overview |
Introduction to the Arduino |
January 25 |
Arduino IDE walkthrough: -- Getting started with hardware -- Examples: Blinking LEDs |
Arduino notebook (Download and install IDE s/w on laptop or use lab machines) Lab 1 |
January 27 | Microcontroller overview: -- Atmel ATmega 328 / AVR family -- Timers, PWM, analog / digital IO |
MegaAVR Family microcontroller
notes |
February 1 |
Class assignment: -- Complete and test robot -- Basic motion control -- H-bridge driver / motor controller logic/programming |
Lab 2 |
February 3 |
Electronics 101 for CS Majors: -- Basic circuit theory, KCL, KVL, Ohm's Law -- Components: Resistors, capacitors, transistors, etc --Op Amps, ADCs, DACs, and H-bridge motor controllers |
Intro notes on electronics |
February 8 |
Actuators: -- Basics of DC motors, ... |
Notes on motors/actuators |
February 10 |
Hardware timers, watchdogs and interrupt handling -- Example AVR timing -- PWM signal generation -- Arduino PWM support versus low-level code for signal generation |
Notes on timing |
February 15 | Class assignment: -- PWM generator / motor speed controller -- Interrupt handler / timer problem |
Lab 3 Notes on PWM, advanced timing and interrupts |
February 17 | Input / output -- Analog vs digital -- Examples (e.g., resistive touchscreens as analog sensors, light and temperature sensing, ...) |
Notes on touchscreen sensors |
February 22 |
-- No class -- -- Monday schedule -- |
|
February 24 |
Class assignment: -- Touchscreen input |
Lab 4 |
March 1 |
Class assignment: -- Light / temperature sensing |
Datasheets for LM35 temperature
and GL5528
light sensors |
March 3 |
Serial communication revisited -- Background -- TTY driver for PC communication -- UARTs / RS232 |
Lab 5 Example serial communication files (ssc.c and ssc.h) |
March 8 |
Class assignment: -- Minicom-style serial communication driver |
Notes on serial
communication |
March 10 |
Fun with Arduinos -- DFRobot Rover -- Writing libraries -- Basic robot control (e.g., forward, reverse, path following) Spring Assignment: -- Behaviors library for robot (motion and speed control) |
Behaviors Library assignment
for robot |
March 15 | -- Spring Recess -- |
|
March 17 |
-- Spring Recess -- |
|
March 22 |
Wireless communication -- WiShield overview -- Setting up / configuration |
|
March 24 | Class assignment: -- wireless robot control |
Lab
6 |
March 29 |
uIP overview / protosockets / protothreads |
Source code for protothreads/coroutines See also: |
March 31 |
Class assignment: -- socket versus web interfacing for wireless robot control |
|
April 5 |
Class assignment: -- Telemetry system -- Sensor readings relayed to remote PC |
|
April 7 |
IR line detection and motion control |
SINGLE IR-sensor line-following example sketch Another version of the above, using interrupts rather than periodic sampling |
April 12 |
Class assignment: -- line following |
Instructor traveling Lab 7 |
April 14 |
TBA |
Instructor traveling |
April 19 |
Group-based project: -- Cat-and-mouse -- Maze solver -- Capture the flag -- Leader-follower -- Etc. |
Group project description |
April 21 |
-- No class -- -- Monday Schedule -- |
|
April 26 |
Team challenge: -- develop strategy for group project |
|
April 28 |
Team challenge: -- cont'd development |
|
May 3 |
Team challenge: -- compete against opposite team(s) |
|
May 5 |
Team presentations: -- Approach -- Lessons learned -- Problems and solutions |