Syllabus for ME/EE 477 and MME577
Embedded Computing in Electromechanical Systems
This course is an introduction to microprocessor-based measurement and control of electrical, mechanical, and electromechanical systems. Topics include microprocessor architecture, computer memory, C programming, hardware and software interfaces, and communications. Emphasis is placed on hardware and software interface design for real-time measurement, control, and user interface.
The course is designed for the Embedded Computing Laboratory, which is described in Appendix A of Embedded Computing. Note that this course was developed in collaboration with Professor Joseph L. Garbini, who has designed a similar course at the University of Washington.
- Office Hours
- WF 12–1 and MWF 1–2
- CH 105
- W 2:00–4:50
- 477/577 Website
- 477/577 Moodle
(KR) Any introduction to the C programming language. For example, Kernighan, B. W. and Ritchie, D. M., The C Programming Language. Prentice Hall, 2nd Ed. 1988.
(PH) Patterson, David A. and Hennessy, John L. Computer Organization and Design: The Hardware Software Interface ARM Edition. Morgan Kaufmann Publishers, 2016.
(RW) Derek Rowell and David N. Wormley. System Dynamics: An Introduction. Prentice Hall, 1997.
(Ni) Norman S. Nise. Control Systems Engineering. Seventh Edition. Wiley, 2015.
Partial notes will be posted on the Embedded Computing (EC) and (later in the term) the Control (CN) pages. They are being constantly updated, but I will let everyone know via Slack when each lecture is ready to be printed. Please print each lecture before class and bring it. There are fill-ins and such.
The following schedule is tentative.
|week||topics introduced||resources/reading||report/homework due|
|introduction||EC Appendix A, myRIO user guide and specifications|
|number systems, arithmetic, boolean algebra, combinational logic, memory, memory organization, memory types||EC Appendix A, myRIO user guide and specifications||Laboratory 00|
|NI myRIO-1900 introduction, Xilinx Zynq-7010 and ARM Cortex-A9 Architecture||ARM architecture, reference manual||Laboratory 01, Assignment #1|
|C programming, variables, expressions, control, CDT, debugging||C programming language text|
|C programming, variables, expressions, control, CDT, debugging||C programming language text||Laboratory 02|
|LCD and keypad hardware, data i/o interrupts, serial and parallel interfaces, low-level drivers||myRIO Shipping Personality Reference: DIO, myRIO User Guide: UART||Laboratory 03|
|instruction timing, parallel i/o, pulse modulation techniques||Cortex-A9 Technical Reference Manual Appendix B|
|instruction timing, parallel i/o, pulse modulation techniques||Cortex-A9 Technical Reference Manual Appendix B||Laboratory 04|
|interrupt driven i/o, internal and external sources, POSIX threads||myRIO Shipping Personality Reference: IRQ Digital Input Interrupt|
|programmable clocks and timing, D/A and A/D conversion, digital signal theory||myRIO Shipping Personality Reference: Timer Interrupt||Laboratory 05|
|programmable clocks and timing, D/A and A/D conversion, digital signal theory||myRIO Shipping Personality Reference: Timer Interrupt|
|serial i/o, synchronous and asynchronous||Laboratory 06|
|interface devices, TTL circuits, high-power switches, stepping motors|
|interface devices, TTL circuits, high-power switches, stepping motors||Laboratory 07|
|encoders and other sensors|
|finals week||Laboratory 08|
Laboratory exercises and reports
For each laboratory exercise listed in the schedule, perform the following tasks.
- Do the assigned reading.
- Perform the laboratory procedure described in Embedded Computing.
- Write and submit to Moodle a lab report and source code.
- Do the assigned reading.
- Do Chapter 01 problems 2, 3, 6, 7, 8, 9, 10, 11, 12.
Class resources will be posted here throughout the semester.
Most lectures will be available online on my YouTube channel. I recommend subscribing and familiarizing yourself with the playlist for this course.
Everyone is required to join the messaging service called “Slack.” We’ll use it to communicate with each other during the semester. The Slack team you need to join is called drrico. That’s a signup link.
Graduate student responsibilities
Graduate students have three additional responsibilities: (1) perform a literature search to understand an aspect of each laboratory exercise in greater depth; (2) as part of the introduction to each laboratory report (should be about a page in the standard format), summarize your research, citing least three academic sources; and (3) at the end of the semester, present an implemented functionality of the electromechanical system with its embedded controller beyond the scope of the laboratory procedures.
A laboratory report will be due on Friday of the week it is due. These reports will be submitted via Moodle and must be in accordance with the requirements provided here.
Laboratory procedures should be performed in individually, although collaboration is encouraged. That is, discussions of how to accomplish aspects of the lab are great, but everyone should write their own code.
Laboratory reports should also be prepared individually.
Homework, quiz, & exam policies
Homework & homework quiz policies
When assigned, homework will be due on Fridays.
Working in groups on homework is strongly encouraged, but work turned-in must be one’s own.
A midterm and a final exam may be given, but are not planned. If you require any specific accommodations, please contact me.
If applicable, calculators will be allowed. Only ones own notes and the notes provided by the instructor will be allowed. No communication-devices will be allowed.
No exam may be taken early. Makeup exams require a doctor’s note excusing the absence during the exam.
Total grades in the course may be curved, but individual assignments will not be. They will be available on Moodle throughout the semester.
Assuming no exams are given, the grading breakdown is simple.
- Reports, code, assignments
For graduate students, 15% of their grade will depend on their final presentation.
Academic integrity policy
Cheating or plagiarism of any kind is not tolerated and will result in a failing grade (“F”) in the course. I take this very seriously. Engineering is an academic and professional discipline that requires integrity. I expect students to consider their integrity of conduct to be their highest consideration with regard to the course material.
Correlation of course & program outcomes
In keeping with the standards of the Department of Mechanical Engineering, each course is evaluated in terms of its desired outcomes and how these support the desired program outcomes. The following sections document the evaluation of this course.
Desired course outcomes
Upon completion of the course, the following course outcomes are desired:
- students will have a clear and thorough understanding of concepts, principles, and methods of embedded computing in electromechanical systems;
- students will understand basic computer architecture;
- students will understand basic C programming;
- students will be able to program an embedded computer;
- students will be able to design a basic feedback control system; and
- students will be able to write a clear and thorough report of a laboratory exercise.
Desired program outcomes
The desired program outcomes are that mechanical engineering graduates have:
- an ability to apply knowledge of mathematics, science, and engineering;
- an ability to design and conduct experiments, as well as to analyze and interpret data;
- an ability to design a system, component, or process to meet desired needs;
- an ability to function on multi-disciplinary teams;
- an ability to identify, formulate, and solve engineering problems;
- an understanding of professional and ethical responsibility;
- an ability to communicate effectively;
- the broad education necessary to understanding the impact of engineering solutions in a global and social context;
- a recognition of the need for, and an ability to engage in life-long learning;
- a knowledge of contemporary issues; and
- an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice
Correlation of outcomes
The following table correlates the desired course outcomes with the desired program outcomes they support.
|desired program outcomes|
|desired course outcomes||1||✔||✔||✔||✔||✔||||||||||✔||✔|