The best way to understand what you will learn in this class is to list the labs you will complete and the example projects we will build. You will complete each lab first in simulation and then on the real board. For each module we will design a system and you will build and test a similar system. This 16-week class is now split into two 8-week classes. UT.6.10x Embedded Systems - Shape The World: Microcontroller Input/Output includes Modules 1 to 10. UT.6.20x Embedded Systems - Shape The World: Multi-Threaded Interfacing includes Modules 11 to 16.
Module 1: Welcome and introduction to course and staff
Module 2: Fundamental concepts: numbers, computers, and the ARM Cortex M processor
Example. Develop a system that toggles an LED on the LaunchPad
Lab 2. Run existing project on LaunchPad with switch input and LED output
Module 3: Electronics: resistors, voltage, current and Ohm’s Law
Module 4: Digital Logic: transistors, flip flops and logic functions
Lab 4. Debug a system with two inputs and two outputs
Module 5: Introduction to C programming
Example. Develop a system that inputs and outputs on the serial port
Lab 5. Write a C function and perform input/output on the serial port
Module 6: Microcontroller Input/Output
Example. Develop a system that inputs from a switch and toggles an LED output
Lab 6. Write C software that inputs from a switch and toggles an LED output
Module 7: Design and Development Process
Example. Develop a system that outputs a pattern on an LED
Lab 7. Write C functions that inputs from a switch and outputs to two LEDs, which is a simulated pacemaker
Module 8: Interfacing Switches and LEDs
Example. Design a security system with three switches and one LED
Lab 8. Interface an external switch and LED and write input/output software
Module 9: Arrays and Functional Debugging
Example. Develop a system that debugs by dumping data into an array
Lab 9. Write C functions using array data structures that collect/debug your system
Module 10: Finite State Machines
Example. Develop a simple finite state machine
Example. Develop a vending machine using a finite state machine
Example. Develop a line-tracking robot using a finite state machine
Example. Develop a stepper motor robot using a finite state machine
Lab 10. Interface 3 switches and 6 LEDs and create a traffic light finite state machine
Module 11: UART - The Serial Interface, I/O Synchronization
Example 11. Develop a communication network using the serial port. Two LaunchPads are connected and messages are sent from one to the other.
Lab 11. Write C functions that output decimal and fixed-point numbers to serial port
Module 12: Interrupts
Example 12. Develop a system that outputs a square wave using interrupts
Example 12. Develop a system that inputs from a switch using interrupts
Example 12. Develop a system that outputs to a DC motor that uses pulse width modulation
Lab 12. Design and test a guitar tuner, producing a 440 Hz tone
Module 13: DAC and Sound
Example 13. Develop a system that outputs an analog signal with a R-2R digital to analog converter (DAC). An introduction to the Nyquist Theorem.
Lab 13. Design and test a digital piano, with 4 inputs, digital to analog conversion, and sound
Module 14: ADC and Data Acquisition
Example 14. Develop a system that inputs an analog signal with an analog to digital converter (ADC), discussing the Nyquist Theorem as it applies to ADC sampling.
Example 14. Develop an autonomous robot that uses two DC motors and two distance sensors that drives down the middle of a road
Lab 14. Design and test a position measurement, with analog to digital conversion and calibrated output
Module 15: Systems Approach to Game Design
Lab 15. Design and test a hand-held video game, which integrates all components from previous labs. Lab 15 will be graded by your peers. After you complete your game, you will create a short video that will be viewed by other students.
Module 16: Wireless Communication and the Internet of Things
Lab 16. Connect a CC3100 booster pack to the LaunchPad and communicate with an access point. Students create a smart object that stores information on a central class server. Click on this link to see the class repository.