Courses
Major Design Experience Courses (MDE)
-
EECS 498 (Special Topics) - Advanced Embedded Systems:
Advanced Embedded Systems was a very lab centered class which focused on the process and issues associated with embedded
system design. As a major design course, it gave valuable experience working in a group through the entire end-to-end process of
designing, implementing, and testing a complex embedded application. The course gave experience developing on multiple embedded
platforms, ranging from simple prototyping platforms like Arduino or TI's MSP430 to using embedded Linux which ran a RTOS
(real-time operating system). The end goal of the class was to be prepared for real-world design (i.e. be able to take specifications and requirements
from a customer and produce a finished product which met all of their needs).
One of the only necessary components of the project was that each group had to design a custom printed circuit board (PCB)
to be used in their project. This involved learning the CadSoft program EAGLE, and applying circuit and system architecture
concepts to create a PCB capable of controlling your embedded system.
Aside from the heavy hands-on aspect of the course, another point stressed was the ability to read, understand,
and explain complex documents and concepts. Very often we would be given documentation on anything ranging from different types of
batteries, new embedded platforms, or various sensors and be asked to interpret this information and apply it towards a goal:
such as optimization of a system, implementation of an application for a specific task, or overall comprehension and understanding of various
aspects of embedded technologies.
I believe the most valuable skill learned in this course was overall system integration. Seeing a project go from an idea on paper to a full
scale running application is extremely rewarding, and does not come without dedicated time management, constructive teamwork, and
strong understandings of how numerous aspects of embedded technology work.
The project my group and I constructed was the Autonomous Robot Line Painter.
-
EECS 452 - Digital Signal Processing Laboratory:
I am currently enrolled in my second MDE course, which is the DSP Laboratory. After learning the theory
and techniques of digital signal processing, I have been very anxious to combine this with my extensive knowledge
of embedded systems. This course shows how to combine FPGA's and DSP's together by providing a lab based environment
which teaches about real-time signal processing, using A/D and D/A conversion, and how to implement different FIR and IIR filters.
This course also helps teach the use of Verilog HDL, used to program our FPGA and create powerful and optimized hardware. It also gives great
experience working with state-of-the-art fixed-point processors.
The project my group and I constructed was Television Commercial Detection.
Other Relevant Courses
-
EECS 461 - Embedded Control Systems:
After learning Control Systems theory, much like DSP, I had a strong desire to apply it to my growing knowledge base
of embedded systems. This course introduces how control systems can be utilized in embedded design, and gives
experience in lab using sensors and actuators, quadrature decoding, pulse width modulation (PWM), and DC motors.
It also gives plenty of theory and implementation background for real-time operating systems and scheduling algorithms.
This is a course which utilizes MATLAB and its various toolboxes (i.e. FDATool, Simulink, StateFlow) often.
-
EECS 373 - Design of Microprocessor Based Systems:
Design of Microprocessor Based Systems was an incredibly useful class; Not only did it
provide background on numerous aspects of FPGA programming, but it also revolved around lab based experiences
which proved extremely vital in our final group project (which consisted of making a prototyped embedded system application).
These seven labs focused on memory-mapped I/O, application binary interface issues, interrupts, and interfacing with multiple peripherals which
all involved using our Actel SmartFusion FPGA. The class moved very quickly and covered a huge amount of material, which served as
fantastic background information for my first MDE , Advanced Embedded Systems.
Verilog HDL was used exclusively to generate the hardware used on our FPGA, but we also got a taste of embedded
programming using assembly.
As mentioned, this class also involved a final group project, in which my group designed a Rubik's Cube Solver.
-
EECS 451 - Digital Signal Processing and Analysis:
This was a Digital Signal Processing theory course, which taught numerous aspects about digitally
processing continuous and discrete time signals. It provided strong insight into using signal processing
algorithms, such as the Fast Fourier Transform and the Discrete Fourier Transform, to solve
complex problems like signal sampling and reconstruction.
Along with a very strong conceptual understanding of digital signal processing theory, I also left the course
knowing how to use MATLAB's various toolboxes to aid in digital filter design.
Very often we were asked to build filters using FDATools, a progam which I am now very familiar with.
-
EECS 460 - Control Systems Analysis and Design:
This class focused on the theory behind Control Systems, and gave insight on how to not only
analyze the behaviour of closed-loop feedback systems, but also how to design them using various
techniques. We learned how to design controllers in the time and frequency domains and
theoretically test these controllers using root locus, as well as using MATLAB's Simulink to run simulations on P, PI,
PID controllers. There was also one laboratory where we got to design a controller for a magnetic levitation device, and
test its effectiveness on a real life application.
|