For detailed information on this course please see the course syllabus in html or pdf format.
In this course you will learn the basics of designing, interfacing, configuring, and programming embedded systems. We will make use of the Arduino platform, which is an inexpensive, popular embedded system used by hobbyists, researchers, and in industry, to implement the techniques learned in class. By the end of the course you will have mastered the basics of embedded system design and programming. This course will help to prepare you for cutting edge careers in industry and research.
Assignment | Due Date |
Course Survey | Weds, Jan 14th, 5pm |
HW 0 (pdf) | Start of class, Tuesday, Jan 20 |
HW 1 (pdf,code) | Start of class, Tuesday, Jan 27 |
HW 2 (pdf) | Start of class, Thursday, Feb 5 |
Lab 1 (pdf,html*) | Thursday, Jan 29 |
HW 3 (pdf,code) | Start of class, Tuesday, Feb 17 |
Pre-Lab 2 (pdf,html*,code) | Start of class, Thursday, Feb 12 |
Lab 2 (pdf,html*) | Thursday, Feb 12 |
Lab 3 (pdf,html*,manual delay,pwm) | Thursday, Feb 19 |
Test1 from prior years: 2012, 2013, 2014 | For review |
HW 4 (pdf,code) | Start of class, Thursday, March 12 |
Lab 4 (pdf,html*) | Thursday, March 5 |
Project 1 (pdf) |
Checkpoint, Thursday, March 12 (in class) Competition, Thursday, March 19 (Schorr 2nd floor, 8:00-10:00) Written report, Thursday, April 2 start of class Project 1 Results (top 10) |
HW 5 (pdf) | Start of class, Thursday, April 16 |
Lab 5 (pdf,html*,blink irq)
VCNL4000 Ranger Info: Sparkfun, Datasheet, Application Note, Sample Code | Thursday, April 9 |
Project 2 (pdf) | Checkpoint Wall Following: Thursday, April 16 in class
Checkpoint Obstacle Avoidance: Thurs, April 23 in class Competition: Tuesday and Thursday, April 28 + 30 in class Written Report, Video, and Survey: Friday, May 2nd by noon |
Lab 6 (pdf,html*) | Thursday, April 16 |
Test2 from prior years: 2012, 2013, 2014 | For review |
Week | Class Topics | Labture | Reading |
Week 1, Jan 12 | course intro, c programming | R2.1, R2.2, R2.4 | |
Week 2, Jan 19 (NO CLASS Monday) | embedded system design, arduino intro, basic circuit diagrams | R2.5, R2.6, R2.7, R2.8, W1.1, W1.2 | |
Week 3, Jan 26 | instruction sets, registers and mem access, digital I/O | Arduinos | W2.1, W2.2, R6.* |
Week 4, Feb 2 | timers, debugging | W3.1, R7.* | |
Week 5, Feb 9 | debugging, pulse width modulation (PWM) | timers and I/O | R4.* |
Week 6, Feb 16 | PWM and analog to digital converters (A2D) | PWM and servos | |
Week 7, Feb 23 | review | R8.* | |
Week 8, March 2 | CPU bus, communication protocols (UART, SPI, RS485) | A2D | W4.1, R10.1 to R10.1.3 |
Week 9, March 9 | interrupts | ||
Week 10, March 16 | project 1 competition | W3.1.4, W3.2, R9.* | |
NO CLASS SPRING BREAK | |||
Week 11, March 30 | I2C, peripherals, sensors | interrupts, communication | R10.1.2 |
Week 12, April 6 | Embedded Operating Systems | i2c | W6.1, W6.2, W6.3 |
Week 13, April 13 | embedded systems applications, review | project checkpoints | |
Week 14, April 20 | power management, embedded algorithms, program optimization | W5.5, W5.6, W5.7 | |
Week 15, April 27 | final project competition | final project competition |