Arduino Programming in Spr '11

CIS is offering an innovative undergraduate special topics course on embedded software development using the Arduino open-source microcontroller in Spring 2011. This course is being developed and taught by PhD student Ben Pharr, who is also an embedded software engineer at Global Technical Systems in Oxford.

Embedded systems are all around us and are becoming more common by the day. Embedded systems typically perform a few dedicated functions as a part of a larger system such as a vehicle, an appliance, or a vending machine. They are often resource-constrained in some way, yet must react in real-time to events occurring in the physical world. Clearly, developing software for embedded systems can be quite different from developing software for a desktop or enterprise application.

This class will use the Arduino hardware to explore embedded development. The Arduino is a development board powered by an Atmel AVR ATmega328 microcontroller. It runs at 16 MHz and has 2K bytes of SRAM and 32K bytes of flash memory.

Instead of the usual Arduino language, the class will use ANSI C in order to build skills that are transferable to other embedded platforms.

The textbook is David Russell's Introduction to Embedded Systems: Using ANSI C and the Arduino Development Environment (Morgan and Claypool Publishers, 2010, ISBN: 978-1608454983). The book should be available in the Ole Miss Bookstore and at online retailers (e.g., Amazon).

The topics covered in the course are expected to include:

  • C programming language
  • data representation
  • computer architecture
  • general-purpose Input/Output
  • basic electronic concepts
  • timers
  • pulse-width modulation
  • analog-to-digital conversion (ADC)
  • interrupts
  • serial communication
  • embedded debugging and troubleshooting

Related links include: