Steven Engel: Engineering Portfolio
Embedded Microcontrollers I Table of Contents
Course Description
Final Project: Fighter Jet
​
Undergraduate Table of Contents
Main Table of Contents

Embedded Microcontrollers I
Fall 2022, Professor Will
Course Description:
This project-based course taught embedded microcontrollers, including the AVR series ATtiny13a, ATtiny85, and ATmega32, as well as the ARM-based TM4C123. The course taught both Assembly and C-based programming for the purpose of creating microcontrollers-based embedded systems.
Final Project: Fighter Jet
As an example of the work completed in this course, the final project is described below. This particular project was open-ended, with some hard specifications to follow: students had to work in pairs, using four peripherals in total. Each student was to program two peripherals, and two peripherals were to be checked using polling, while two were to be used with interrupts. For our project, in the style of Top Gun, we decided to create a "fighter jet" using an ATmega32: we would have an array of LEDs utilizing complex animations to create effects for flares, missiles, and explosions, as well as a piezospeaker, which I programmed to play some random frequencies in quick succession, creating a harsh screeching/explosion sound effect. We also added a custom dashboard over our breadboard, a "throttle" (linear potentiometer), with an LED bar display updating the speed in real-time, an ultrasonic sensor to detect enemy missiles, and two buttons of our own for launching missiles and flares. We added the rule that if an object was detected within a certain range of the ultrasonic sensor ("enemy missile"), the jet would have to immediately transmit a message back to HQ (through UART to the PC), and if the user did not press the flares button within two seconds, the LEDs and speaker would enter the crash sequence, and "You Crashed!" would be transmitted through UART to the PC. However, if the user pressed the flares button within two seconds, the crash would be prevented, and the flares animation would display on the LEDs, instead. Finally, we added the rule that missiles could not be fired until 5 seconds after the flares were fired. To accomplish this, we used the Timer/Counter and Analog Comparator peripherals with interrupts, and the Analog to Digital Converter (ADC) and UART with polling.