Innovative Embedded Systems Project

The goal of an Embedded Design course is to teach programming, embedded circuits and software algorithms. There are also related goals, such as learning to use development tools, lab equipment and proper debugging techniques. There are tangential goals such as working in teams and preparation for senior/capstone projects. And while there are a variety of approaches to teaching, the common theme is that you want the students to be successful and understand the material as thoroughly as possible. Each year, there are new peripherals, new processors and most engineering departments do not take a static approach to education and try to include more information in their classes. Technology students (in general) require a more hands on approach in that learning is accomplished via lab projects as opposed to lectures and homework. Thus an Embedded Design course with the proper lab work is the best way to achieve all of the associated goals. This paper details an approach that I have used in my (junior level) microprocessor course in which the students (some with a strong interest in programming, some with less) all learn to program in ‘C’, and interface the PIC processor to a wide variety of peripherals using a development board that they build themselves. What is unique is that the PCB was designed in-house using Eagle Cad and contained a wide variety of components not present in typical off-the-shelf development products. This allows us to teach a wide range of sensors (temp, light, range, etc.) and a variety of protocols (RS232, SPI) as well as software debouncing and filtering algorithms. The final part of the course was to let the students come up with their own ideas for a final lab project and each student took a unique approach in applying their hardware and software skills. With the success of this course, it is hoped that the information provided here could be used as a framework for other classes with similar goals and objectives.