Introduction to Embedded Systems

Introduction to Embedded Systems. Instructor: Dr. Robert Paz. This course provides an introduction to embedded systems, especially related to Arduino boards. At the conclusion of this class, students should be able to: 1) interface a microcontroller to a variety of analog and digital input and output devices; 2) program a microcontroller to implement a closed-loop automatic control; 3) write and troubleshoot assembly language code for a microcontroller; 4) analyze a problem to determine appropriate microcontroller user.


Lecture 01 - Course Overview and Introduction
Lecture 02 - Introduction to Arduino
Lecture 03 - Arduino Overview: Programming IDE, Serial Communications
Lecture 04 - Appropriate Microcontroller Use
Lecture 05 - Interfacing Circuits
Lecture 05b - Background Circuits
Lecture 06 - Overview of the ATMega328
Lecture 07 - Arduino General Purpose I/O Pins
Lecture 08 - Arduino Timers and Counters
Lecture 09 - Arduino Analog Inputs
Lecture 10a - Arduino Interrupt Processing
Lecture 10b - Arduino Interrupts
Lecture 11a - Serial Communications - USART
Lecture 11b - Serial Communications - I2C and SPI
Lecture 12 - Introduction to Assembly Language
Lecture 13 - Arduino Assembly Language Commands
Lecture 14 - Assembly Resisters, Functions and the Stack
Lecture 15 - Assembly Functions, Arrays, and Indirect Addressing
Lecture 16 - Arduino Assembly Program Flow, Timers, and I/Os
Lecture 17a - Arduino Assembly Math
Lecture 17b - Arduino Assembly Math (cont.)
Hands On Arduino 1: Timers and Interrupts
Hands On Arduino 2: Incremental Encoders
Hands On Arduino 3: Incremental Encoders (cont.)
Hands On Arduino 4: I2C Communication
Hands On Arduino 5a: SPI Communication
Hands On Arduino 5b: Arduino to Arduino SPI Communication
Hands On Arduino 5c: A Teleoperator using SPI
Hands On Arduino 6: Loads of LEDs
Hands On Arduino 6b: 7 Segment LEDs