Lab: 12:00-1:00pm Wed in B24. Note: The TF office hours will
overlap with the lab session
Lab sessions will be announced ahead of time, starting from the
second week of class
Recommended Text: There is no textbook requirement for this
course although the following books are worthwhile background reading:
"Physical Computing - Sensing and Controlling the Physical
World with Computers," Dan O'Sullivan and Tom Igoe, Course Technology,
CENGAGE Learning, ISBN-13: 978-1-59200-346-4
"Practical Arduino - Cool Projects for Open Source Hardware,"
Jonathan Oxer and Hugh Blemings, Apress, ISBN-13: 978-1-4302-2477-8
This course focuses on physical computing. This involves the
study and interaction of hardware and software to sense and respond to
the physical world. We extend the idea of a computer as a black box
operating in isolation of its environment, to one in which it plays a
central role in actions and reactions to external physical phenomena.
The course will be lab-centric, with an emphasis on software
development for microcontroller boards, such as Arduino-based platforms
that leverage multiple sensors and actuators.
The aim of this course is to introduce students to low-level
programming skills by peeling away the layers of software, and related
abstractions, that currently exist in today's development environments.
If you've ever really wondered what happens during program execution,
right down to the electrical signal level, when you write your first
"hello, world!" program, this is the place to start.
Topics include a study of microcontrollers, sensors, actuators,
analog and digital I/O, wireless and serial communication, hardware
timing, pulse-width modulation (PWM), interrupt handling, and
co-routines/proto-threading, amongst others. Design projects,
team challenges and student project presentations may also be covered.
Further Information:
Prerequisites: CS210 or consent of instructor.
Book and supplies: There is no text-book requirement for this
course. Electronic and printed materials will be provided as necessary.
The development platforms used in the course will be available for
purchase and are expected to be on par with the price of a typical
text-book.
Useful links:
The Arduino website has an
abundance of information on various boards, IDE software (for
Windows, Mac OS X, Linux) and the Arduino programming
language. Be sure to check out the learning section for
programming examples, library information, details of the Atmel
microcontrollers and libc functionality.
The Atmel AVR datasheet
for the entire family of 8-bit microcontrollers, including the ATmega
328(P).
The AVR libc homepage
has a useful online user manual and library reference.
The Arduino
playground is a public wiki with further information on electronic
parts, projects, tutorials and development tools.
The user guide to building and using the DFRobot
Rover.
Below is a youtube link to our DFRobot Rover working via
wireless PC control, using an Arduino-compatible WiFi shield from
AsyncLabs.
Here are two example line following videos from one of the class
assignments. The videos show student-built robots following a line using
two IR sensors per robot.