Learn how electronic gadgets are designed, developed, and built as embedded systems that shape the world.
This is a hands-on, learn-by-doing course that shows you how to build solutions to real-world problems using embedded systems. The course uses 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, 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 third time we have offered this course. Since the reviews have been overwhelmingly positive we do not plan major changes from the previous offering of the course. There are 14 labs, but students can pick and choose seven of them to achieve certification. The three labs that students found most rewarding were the finite state machine traffic light controller, generating sound using a digital to analog convertor, and creating a smart object using Wifi communication. This time we will make minor changes to a few labs to enhance the fun and focus the learning on embedded systems.
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.
What you'll learn:
- Understanding of embedded systems using modular design and abstraction
- C programming: considering both function and style
- How to build and test circuits with switches, LEDs, resistors, potentiometers, and liquid crystal displays
- Synchronizaztion of hardware and software input/output with switches, lights, sound, sensors. motors, and liquid crystal displays
- How to solve problems using a finite state machine
- Implementation of an I/O driver and multi-threaded programming using interrupts
- Debugging using oscilloscopes, logic analyzers, and software instrumentation
- How to read a data sheet
- How to construct a smart object and create a system as part of the Internet of Things
Embedded Systems: Introduction to Arm® Cortex(TM)-M Microcontrollers (Volume 1)