Weekly Syllabus


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