Course Outline
Catalog Description
Credits: Lecture 3
Semester Taught: Spring
Corequisite: CS 330 or EE 371
The design and implementation of embedded and real time computing systems
including both operating and control systems. The course emphasis will be
on the hardware/software interface, programming techniques for
asynchronous methods and state-or-the-art tools for developing and
supporting embedded systems.
Course Objectives:
The objectives of this course are:
- To understand the characteristics of real-time systems and the
application of real-time software design in the development of
complex systems.
- Understand the properties and the hardware design issues
in embedded systems and alternative
strategies for the design and development of software
for such systems.
- Develop and demonstrate the skills involved in designing and
implementing real-time software systems.
- Develop and demonstrate the skills necessary to design and
implement real-time, feedback control system software.
- Understand sensor interfacing and analog-digital systems.
The assessment of these objectives will be based on:
- Exams which will measure your understanding of embedded and real-time
system concepts (1, 2, 5).
- Classroom assignments which will require you to work on
your own to collect information and organize it into
reports that are factually and conceptually correct (1,2).
- Laboratory assignments which will require you to understand the
concepts and application of real-time and embedded programming
and to demonstration the ability to implement software solutions.
(1,2,3,4).
- Laboratory assignments which will require you to work with sensor
interfacing and actuator control in an embedded system and write
software to accomplish both (1,2,3,4,5).
ABET Statement
Course Content
Specific activies related to these objectives are:
- Real-time software systems.
- Understand real-time constraints and their impact on systems.
- Feedback control systems.
- Reference models for real-time systems.
- Real-time system design tools.
- Real-time scheduling.
- Real-time operating systems.
- Real-time communication systems.
- Embedded systems.
- The organization of embedded systems.
- Embedded system architectures.
- Interfacing and sensors in embedded systems.
- Embedded software development.
- Alternatives choices in designing embedded systems.
- Alternatives choices in developing embedded systems.
- Acquire experience with real-time and embedded software development.
- Install and run a real-time operating system.
- Design, develop and implement a real-time system.
- Develop and implement alternative strategies for implementing a
real-time schedule and analyze the results.
- Develop a control system using real-time control.
- Interface a sensor system to an embedded processor.
- Develop a control system using sensors and feedback control.
Spring 2004 Details:
Meeting Time and Place:
Lecture:
Monday, Wednesday, Friday, 9:00 AM -9:50 AM,
Cheever Hall 215
Final Exam:
The scheduled final is 8:00 - 9:50 on Thursday, May 5. Instead of
a final during finals week, we will schedule demonstrations of
projects at various times to be announced.
Lab Mechanism:
The course will be centered around using the Lego Mindstorms Robotic
Invention Kit 2.0.
Each person in the class needs access to one of these systems and
they will have to be purchased. Given that cost, there will be
no textbook required. Two people will be allowed to work
together on projects, so you can share the cost. What happens to the
kit after the course is up to you.
What you need to buy is the Robotics Invention System 2, part number
3804. List price is $199 from Lego,
or you can get it cheaper from places like:
Finally, eBay seems to have a plethora of these kits, so you might
try your luck there. The differences between the 1.5 version and the
2.0 version of the kits are mostly cosmetic, but they can make quite
a difference in the ease of use. So the recommendation is to get
the 2.0 version of the kit.
There are some expanded kits that only seem to be available at the
Lego site, such as K9916, Robotics Invention System Kit and
KB565, RIS 2.0 Basics Kit. Most of the Technics parts also work
although you will need the RCX Brick.
Finally, the kit requires 6 AA batteries and you will probably want to
get rechargeable's. NiMH batteries are probably the best in terms of
the available power and the number of recharge cycles they will endure.
Some manufacturers have "high power" versions with ratings over 2000 mAH.
Textbook:
As you may have noticed, I haven't picked a book for the course.
First, there is no single book that adequately covers the material.
These are the books that I will draw on for the lecture part of the
course:
- Real-time Systems,
Liu, J., Prentice-Hall, 0-13-099651-3.
- Robotic Explorations,
Martin, F., Pearson Education, 0-13-089568-7.
- Linux for Embedded and Real-time Applications,
Abbot, D., Newnes, 0-7506-7546-2.
- Programming Embedded Systems in C and C++,
Barr, M., O'Reilly, 1-56592-354-5.
- Designing Embedded Hardware,
Catsoulis, J., O'Reilly, 0-596-00362-5.
- Building Embedded Linux Systems,
Yaghmour, K., O'Reilly, 0-596-00222-X.
Most of what we discuss in 1 you can probably get from class and
we will use only about 20% of the book. It is also relatively
expensive. I will try to get one on reserve. 2 is about Lego
robotics using the Handyboard and pertains directly to the labs.
This one you may want access to, but it is hard-bound and runs
about $60 so you might want to share a copy if you go this route.
I will have a couple on reserve. 3 is a paperback and
fairly cheap and goes into some detail on using RTAI and BlueCat
real-time Linux's (Linices?). 4, 5 and 6 are low-cost books that
do a pretty good job of covering the whole field at a reasonable
level. I don't have any of these for reserve yet.
Second, since you need to buy a Mindstorm robot I agreed to not require
a book. On the other hand, there are some good books out there
that deal specifically with the Mindstorms. Some of these are
general in nature, discussing a range of topics including programming,
mechatronics, interfacing and design. Others offer a set of designs
that you can attempt. Without any judgement, here is a list of
those that seem to be the most highly favored.
- LEGO Mindstorms Masterpieces: Building Advanced Robots,
Ferrari, M. Syngress, 1931836752.
- Building Robots With Lego Mindstorms : The Ultimate Tool for
Mindstorms Maniacs Systems,
Ferrari, M. Syngress, 1928994679.
- Building and Programming LEGO Mindstorms Robots Kit,
Ferrari, M. Syngress, 193183671X.
- Creative Projects with LEGO Mindstorms ,
Erwin, B., Addison-Wesley, 0201708957.
- Jin Sato's Lego Mindstorms: The Master's Technique,
Sato, J., No Starch (seriously, that's the name), 1886411565.
- Definitive Guide to LEGO MINDSTORMS, Second Edition,
Baum, D., Apress, 1590590635.
- Extreme Mindstorms: an Advanced Guide to Lego Mindstorms ,
Baum, D., Apress, 1893115844.
- Core LEGO MINDSTORMS Programming: Unleash the Power
of the Java Platform ,
Bagnall, B., Prentice-Hall, 0130093645.
- LEGO Mindstorms Mechatronics : Using Systems and Controls to
Build Sophisticed Robots ,
Wilcher, D., McGraw-Hill/TAB, 0071417451.
- Lego Mindstorms Interfacing,
Wilcher, D., McGraw-Hill/TAB, 0071402055. (At least one
reviewer on Amazon seriously flamed this book.)
Since I haven't seen all of these books, I can't rate them
effectively. Ferrari has 5 books (at least) on the Mindstorms
and they all seem to be rated highly. If you buy any of these,
look for used copies and try to get a mix of design, programming
and interfacing coverage. The Wilcher books are going for $2-3
on the used market so that my be an indication of their value.
There are also many good books about robotics which are shown
in the resources section.
Course Organization:
There is no formal laboratory for this course, but we there will be
assignments requiring the application of principles discussed in class.
For this year, we are going to use some very simple robots based on the
Lego Mindstorm Robotic Invention System to implement real-time,
embedded software. However, this is not a course on robotics and we
are primarily interested in the principles of embedded and real-time
systems.