Embedded Systems - Shape The World: Multi-Threaded Interfacing

Go to class
Write Review

Free Online Course: Embedded Systems - Shape The World: Multi-Threaded Interfacing provided by edX is a comprehensive online course, which lasts for 8 weeks long, 8-10 hours a week. The course is taught in English and is free of charge. Upon completion of the course, you can receive an e-certificate from edX. Embedded Systems - Shape The World: Multi-Threaded Interfacing is taught by Jonathan Valvano and Dr. Ramesh Yerraballi.

Overview
  • Learn how electronic gadgets are designed, developed, and built as embedded systems that shape the world.

    This is part two of a two part sequence. In this class, we will use interrupts to design a range of real-time systems including an audio player, a data acquisition system, a control system, and an interactive game. This is a hands-on, learn-by-doing course that shows you how to build solutions to real-world problems using embedded systems. These courses use a bottom-up approach to problem solving, building gradually from simple interfacing of switches and LEDs to complex concepts like display drivers, digital to analog conversion, generation of sound, analog to digital conversion, motor control, graphics, interrupts, and communication. We will present both general principles and practical tips for building circuits and programming the microcontroller in the C programming language. You will develop debugging skills using oscilloscopes, logic analyzers, and software instrumentation. Laboratory assignments are first performed in simulation, and then you will build and debug your system on the real microcontroller. At the conclusion of this course you will possess the knowledge to build your own arcade-style game from the ground up.

    This is the fourth time we have offered this course. Since the reviews have been overwhelmingly positive we do not plan major changes over the previous offerings of the course. We did however break the large class into two smaller classes. There are eight labs in part 1 and six labs in this class. Students can pick and choose a subset of labs to achieve certification. The three labs that students found most rewarding were the hand-held video game, generating sound using a digital to analog convertor, and creating a smart object using Wifi communication.

    To complete this course, you will be required to purchase a Texas Instruments TM4C123 microcontroller kit and a few electronic components. This microcontroller has a state-of-the-art ARM Cortex-M4 processor.

    We will provide instructions about purchasing the kit and installing required software at: http://edx-org-utaustinx.s3.amazonaws.com/UT601x/index.html.

Syllabus
  • 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.

    Module 1: Welcome and introduction to course and staff

    Module 11: UART - The Serial Interface, I/O Synchronization

    Lab 11. Write C functions that output decimal and fixed-point numbers to serial port

    Module 12: Interrupts

    Lab 12. Design and test a guitar tuner, producing a 440 Hz tone

    Module 13: DAC and Sound

    Lab 13. Design and test a digital piano, with 4 inputs, digital to analog conversion, and sound

    Module 14: ADC and Data Acquisition

    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 having students watch videos of each other's’ games.

    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. Lab 16 will first fetch weather from the internet, and then you will send data to the class server.