Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Proceedings of the 2011 ASEE North Central & Illinois-Indiana Section Conference
Copyright © 2011, American Society for Engineering Education
Interdisciplinary Sophomore Design at Oakland University
Osamah Rawashdeh, Dave Schall, and Richard Haskell
School of Engineering and Computer Science
Oakland University, Rochester, MI 48309
Email: {rawashd2, schall2, haskell} @oakland.edu
Abstract A new core course, Design and Analysis of Electromechanical Systems, was taught for
the first time in the fall of 2006. This course is taken by all engineering students as part of a core
engineering course sequence in their sophomore year. Since then, this course has been offered
twice a year and has evolved into an interdisciplinary design experience, i.e., similar to a cap-
stone experience that students complete in their sophomore year before advancing to their major
specific coursework. This now unofficially known as the sophomore design course has become
very popular and produces exciting projects that are showcased every semester in a public event
together with our interdisciplinary senior design projects. Through these sophomore design
experiences, students gain great insights into all areas of engineering in addition to allowing
them to make a more informed decision on their major selection. This paper outlines the course
structure; topics covered, laboratory assignments, and descriptions of a set of selected projects
that resulted from this sophomore design course to illustrate the valuable experiences our
sophomore students are receiving.
Introduction All engineering students at Oakland University go through a common set of courses
before separating into their major related courses required by their respective programs of study.
The core courses cover various topics deemed necessary by ABET, our faculty, and our advisory
committees to provide a well rounded education to today’s engineering students. Another reason
behind the philosophy of the course was the need to increase student retention. All engineering
departments are involved in offering this set of courses.
The core course sequence is concluded with “EGR280 - Design and Analysis of
Electromechanical Systems.” It is offered twice a year (winter and fall semesters) and has an
average enrollment of 58 engineering and computer science students. The course was initially
developed and offered for the first time in the fall term of 2006 as an engineering statics and
dynamics course that uses computer technology to provide a more modern coverage of the topics
[1]. Traditional statics and dynamics courses are often “dry,” limiting the illustration of concepts
on pen and paper problems. EGR280 was developed to allow the use of sensors to measure
distance, speed, acceleration, etc. and processing these data in real-time by a microcontroller and
MATLAB to illustrate concepts in live demos and laboratory assignments.
After a few offerings of EGR280 and by allowing for more freedom on final project
ideas, we were surprised by the student’s abilities and enthusiasm. Students were putting great
pride and significant time and effort into completing their final projects. The results were
rivaling our senior design projects, which are similarly multidisciplinary in nature [2]. EGR280
is now unofficially known as the sophomore design course. The course instructors are making
Proceedings of the 2011 ASEE North Central & Illinois-Indiana Section Conference
Copyright © 2011, American Society for Engineering Education
the final project a significant focus of the course and teaching assistant, machine shop, and
electronic shop resources were provided to the course to raise the limits of what is possible.
The official course objectives have not changed, however. These are:
• Write C programs to interface a microcontroller to external devices and to download the
program to flash memory in a microcontroller using modern development tools.
• Solve statics problems involving particles and rigid bodies.
• Solve kinematic and kinetic dynamics problems involving particles and rigid bodies
using Newton's Second Law, Work and Energy, and Impulse and Momentum principles.
• Explain and illustrate the basic concepts of engineering ethics and apply them in practice.
• Work constructively in a multidisciplinary team to design, analyze, and describe an
electromechanical system subject to specific constraints.
This paper describes this course in detail. First, the course content is described, which
covers the first three course objectives above. Then the requirements and mechanics of the final
project are described followed by two sample final projects from resent semesters. A discussion
section describes course outcomes and some shortcomings in some detail. The ethics related
objective of the course is beyond the scope of this paper.
Course Content The course is divided into three parts. In the first five weeks, which are primarily
instructed by an Electrical and Computer Engineering (ECE) faculty member basic
microcontroller programming and interfaces are covered. In the next 6 weeks, a Mechanical
Engineering (ME) faculty member covers mechanical design topics. Throughout these first two
phases, discussed concepts are reinforced through weekly homework and lab assignments.
Finally, students work for 2 to 3 weeks on their final projects.
Electrical and Computer Engineering Part – The course starts out with an introduction to
microcontroller programming and interfacing. Students come in with a background in MATLAB
and at least one other high-level programming language in addition to having completed an intro
to ECE course, which covers basic analog and digital circuits. In EGR280, the Embedded C
language using the CodeWarrior complier is used to program an HCS12 microcontroller on a
Wytec Dragon12+ development board [5] shown in Fig. 1. The textbook used [5] provides a
library of pre-written functions for interfacing to various I/O devices using a learning-by-
example approach.
Proceedings of the 2011 ASEE North Central & Illinois-Indiana Section Conference
Copyright © 2011, American Society for Engineering Education
Fig. 1: Photo of Dragon12+ development board used in class showing the various peripherals
available.
Every topic in this portion is started with a high-level description followed by an in-class
code development and demonstration of concepts. This is achieved by using a projector to
display the complier, debugging, and programmer software tools on a screen in addition to an
overhead camera that shows the hardware running the developed code. All topics are reinforced
using homework assignments and weekly 3-hour lab sessions. Specifically the topics covered
are:
1. Introduction to electromechanical and embedded systems: The course starts out with
introductions and a video presentation of last year’s sophomore design projects in action.
2. General purpose I/O: Initializing port pins to a specific I/O mode and interfaces to
switches, pushbuttons, a hex-keypad, LEDs, four multiplexed 7-segemnt displays are
covered. All these peripheral I/O devices are provided on the Dragon12+ development
board.
3. LCDs: Students learn about ASCII characters and strings as well as common interfaces to
liquid Crystal displays (LCDs). Functions are used to control the 16x4 alphanumeric
displays provided on the development board.
4. Serial communication: The RS232 standard is covered and code is developed for
bidirectional serial Communication with a PC running HyperTerminal and MATLAB.
5. Data conversions: conversion of data between the binary format and ASCII string format
is discussed. A simple add-subtract calculator is implemented using the hex keypad and
the LCD provided on the development board.
6. Analog to digital conversion (ADC): Basics of analog to digital conversion are discussed
including resolution, quantization errors, and step sizes. Prewritten functions are used to
read the voltage of a linear potentiometer set up as a voltage divider on the development
board. In addition, a phototransistor is wired in class and code is written to implement a
simple light intensity meter.
7. Pulse width Modulation (PWM): The concept of PWM is reinforced and the selection and
driving of “toy” DC motors and hobby servos are discussed and demonstrated in class.
8. Interrupts: The concept of interrupts is covered and two examples are discussed in class
that makes use of the real-time-interrupt (RTI) peripheral on the HCS12. The first is a
traffic light controller that steps through a software encoded state machine. The second is
Proceedings of the 2011 ASEE North Central & Illinois-Indiana Section Conference
Copyright © 2011, American Society for Engineering Education
a Morse code generator, which flashes an LED and produces sounds using the onboard
buzzer driven using a square wave signal.
9. Conclusion: The ECE portion is concluded with a discussion of interfaces to various
sensors, such as a thermistor, and analog IR distance sensor, an analog 3-axis
accelerometer, a PWM ultrasonic distance sensor, and an analog resistive force sensor.
The class discussion is geared towards the use of such sensors and leads into a discussion
of ideas for final projects and how they could be realized.
Mechanical Engineering Part - The second six weeks of the semester covers some of the basic
concepts required for mechanical design. The topics are broken down into the two fundamental
areas of mechanics, namely statics and dynamics. The course is not intended to cover these
topics comprehensively; rather a survey of topics is presented that is broadly accessible to all
engineering majors. Mechanical Engineering students for example take a full statics and
dynamics course later in their studies. The following topics are covered:
1. Free-body Diagrams: The statics component starts by teaching students to draw free-
body diagrams for simple mechanical systems and introduces the concepts of reaction
forces, moments, and distributed forces.
2. Newton’s First Law: Students learn to balance force and moment equations. These
concepts are then used to solve problems involving reactions, trusses, machines and
frames.
3. Friction: Basic laws of friction are discussed and students are shown how to incorporate
friction into force and moment balance equations. As discussed below, examples from
previous projects are used to illustrate these concepts.
4. Kinematics: Projectile and relative motion are discussed. To stimulate student interest in
this topic, problems are derived in class from bicycle crash videos obtained on
YouTube™.
5. Kinetics: Topics including rigid-body dynamics (Newton’s Second Law), impulse-
momentum, and work-energy are presented.
6. Gears and motors: Because many of the student designs involve the use of gears and
motors, concepts such as torque-power curves, gear ratio, and servo selection are also
covered. Again, examples from previous courses are used as examples.
As indicated in the topics list above, previous projects are used to illustrate various concepts
whenever possible. In some cases, questions brought up by students concerning current
projects are addressed in class as well. For example, in the Fall of 2009, a group of students
created a final project entitled “Nerds dispensing Nerds”. In this project a proximity sensor
was employed to detect the presence of a hand. If a hand is present, a servo actuates and
dispenses a box of candy, as illustrated in Fig. 2a. In later classes, the project was used to
illustrate a number of concepts, namely the construction of simple free-body diagrams (Fig.
2b and c), reaction forces, friction, and torque. The students are also shown, based on the
mechanical design, how to pick a servo using the calculated torque and an appropriate safety
factor.
Proceedings of the 2011 ASEE North Central
Copyright © 2011
Fig. 2: a) Photo of the mechanical component of the
hidden from view moves the arm to the left which then drops the box of candy through the slot in
to a hand waiting below. b) Free
Integrated Laboratories The mechanics portion of the class also includes a series of laboratory exercises that build upon
the skills developed in the electrical and c
laboratory exercise, the microcontroller and a sensor are used to capture data. In one laboratory,
students measure the static coefficient of friction of an object using an inclined plane, an exercise
commonly conducted in elementary physics classes. The friction coefficient is given by the
equation µs=tan(θ), where θ is the angle of the inclined plane when the object begins sliding.
Rather than use a protractor to measure the angle, an accelerometer is mo
plane. The students must use the microcontroller to capture data output from the accelerometer.
This data is then converted into an angle and used to calculate the friction coefficient. In a
separate laboratory exercise, students use
data. Position, velocity, and acceleration are related through the definitions:
The accelerometer captures discrete numerical data which can be integrated numerically to
determine the velocity.
−)( 2 vtv
When integrated a second time the
collect their own acceleration data and write a MATLAB code to do the numerical integration to
obtain the velocity and position as a function of time. To test their code, the students are given a
data set created by the instructor and are asked to decode it by twice integrating to get the
relative position of the accelerometer as a function of time. When the y position is
function of the x position, the data spells out a secret message “Go OU”. Each of the laboratories
in the course builds upon the last. For example, the first mechanics lab utilizes the skills
developed during the microprocessor programming portion of the course to program the
ASEE North Central & Illinois-Indiana Section Conference
Copyright © 2011, American Society for Engineering Education
Photo of the mechanical component of the “Nerds Dispensing Nerds” project. A servo,
hidden from view moves the arm to the left which then drops the box of candy through the slot in
Free-body diagram of the bottom box of candy.
diagram of the actuator arm.
The mechanics portion of the class also includes a series of laboratory exercises that build upon
electrical and computer engineering portion of the course. In each
laboratory exercise, the microcontroller and a sensor are used to capture data. In one laboratory,
students measure the static coefficient of friction of an object using an inclined plane, an exercise
only conducted in elementary physics classes. The friction coefficient is given by the
is the angle of the inclined plane when the object begins sliding.
Rather than use a protractor to measure the angle, an accelerometer is mounted to the inclined
plane. The students must use the microcontroller to capture data output from the accelerometer.
This data is then converted into an angle and used to calculate the friction coefficient. In a
separate laboratory exercise, students use the accelerometer to capture and analyze acceleration
data. Position, velocity, and acceleration are related through the definitions:
v = dx/dt a = dv/dt
The accelerometer captures discrete numerical data which can be integrated numerically to
∫ ∑ ∆+≈=+
2
1
2
1
)()()( 121
1
t
t
t
t ii taadttatv
When integrated a second time the relative position as a function of time are obtained. Students
collect their own acceleration data and write a MATLAB code to do the numerical integration to
position as a function of time. To test their code, the students are given a
data set created by the instructor and are asked to decode it by twice integrating to get the
relative position of the accelerometer as a function of time. When the y position is
function of the x position, the data spells out a secret message “Go OU”. Each of the laboratories
upon the last. For example, the first mechanics lab utilizes the skills
developed during the microprocessor programming portion of the course to program the
Conference
ispensing Nerds” project. A servo,
hidden from view moves the arm to the left which then drops the box of candy through the slot in
body diagram of the bottom box of candy. c) Free-body
The mechanics portion of the class also includes a series of laboratory exercises that build upon
portion of the course. In each
laboratory exercise, the microcontroller and a sensor are used to capture data. In one laboratory,
students measure the static coefficient of friction of an object using an inclined plane, an exercise
only conducted in elementary physics classes. The friction coefficient is given by the
is the angle of the inclined plane when the object begins sliding.
unted to the inclined
plane. The students must use the microcontroller to capture data output from the accelerometer.
This data is then converted into an angle and used to calculate the friction coefficient. In a
the accelerometer to capture and analyze acceleration
The accelerometer captures discrete numerical data which can be integrated numerically to
position as a function of time are obtained. Students
collect their own acceleration data and write a MATLAB code to do the numerical integration to
position as a function of time. To test their code, the students are given a
data set created by the instructor and are asked to decode it by twice integrating to get the
relative position of the accelerometer as a function of time. When the y position is plotted as a
function of the x position, the data spells out a secret message “Go OU”. Each of the laboratories
upon the last. For example, the first mechanics lab utilizes the skills
developed during the microprocessor programming portion of the course to program the
Proceedings of the 2011 ASEE North Central & Illinois-Indiana Section Conference
Copyright © 2011, American Society for Engineering Education
microcontroller to read acceleration data. The second lab uses the code developed in the first lab
to capture acceleration data which is then analyzed using an external software package.
Final Projects About half-way through the term, students are asked to form multidisciplinary groups of 3 or 4
members. There are about 60 students every term of which about half are ME majors. An effort
is made that each team is equally balanced in terms of the majors represent. It should be noted
however that although the majority of students have declared a specific major when they take
this course, they all have taken the same engineering core courses and are equally prepared to
tackle the final project. In practice, however, we find that most students do have specific
strengths in their declared majors, which makes mixing majors in groups reasonable.
The assignment is simply to “design and implement a non-trivial system that interfaces at
least one sensor and one output device to a microcontroller.” A project planning form is
completed by each group that contains the specification of a group leader, some background and
goals, and some information on the propose project in form of high-level block diagrams with
some explanation. The two faculty members review the submitted planning form to insure that
all projects are acceptable and achievable. Written comments are provided to all groups and
personal meetings are conducted to discuss any issues. The main two issues are usually the lack
of detail or being too ambitious. During the meetings, the project plans are modified or refined
and to ensure that the group members have a good understanding and appreciation of their
project and the steps it will take to complete it.
Although students are encouraged and usually do start working on their projects well in
advance, only about 2 weeks of assignment-free time is allocated at the end of the semester for
students to focus on their final projects. Students have 24/7 access to a lab that uses a keypad for
entry control. TAs and instructors are to advise and help the students during regular lab hours
only.
Besides a final demonstration, students are required to prepare a poster as well as a full
written report. To assess group member participation and fair grading, anonymous peer
evaluations forms are completed by every student. Each group completes the semester by giving
a formal 10 minute poster presentation and demonstration to a group of faculty member
volunteers.
Sample Final Projects Over the past years, the resulting final projects have spanned a wide range of
applications. Variations of an autonomous canon (e.g., ping-pong ball or NERF launchers) have
been a favorite project theme. This probably is a direct result of explicitly covering projectile
motion and the interfacing of distance sensors (used for target distance detection) and servos (for
canon azimuth and elevation control) in lectures and labs. Another common project is the
implementation of small robots that respond to gesture control and/or utilize distance sensors for
obstacle avoidance or target tracking. This is a direct result of covering MEMS accelerometers,
distance sensors, and PWM DC motor control in the course.
Proceedings of the 2011 ASEE North Central
Copyright © 2011
There are about 14 sophomore
spanning various applications. For illustration proposes, two final projects are
detail. The first is an implementation of laser range finder that is mounted on an XY gimbal
using two servos. The second is remotely operated, gesture
Fig. 3: a) Photo showing wireless digital video camera and laser mounted in the multi
gimbal. b) Schematic diagram showing the geometry used to determine the targeting distance.
Project 1 - Laser Targeting System:
using a laser and a camera mounted
part to fulfill design requirements for an upcoming collegiate
The device is constructed using a wireless
multi-axis gimbal system (see Fig
two servos. Each servo was control
Java and Bluetooth to a Dragon 12+ Board.
video feed. The distance to the target was then determined via a real
using MATLAB. The MATLAB code determines the pixel location of the laser spot and uses
this information and the camera-laser separation distance to calculate the angle between the laser,
target, and camera (as illustrated in Fig
geometry, D = h / tan (θ). The students made use of an existing code [3]
The students wrote the control code for the servos and the interface for the Bluetooth device and
the Dragon 12+ board. In addition the student
determine the torque required for each servo to rotate the gimbal.
ASEE North Central & Illinois-Indiana Section Conference
Copyright © 2011, American Society for Engineering Education
There are about 14 sophomore design projects that result from this course every term,
For illustration proposes, two final projects are described
detail. The first is an implementation of laser range finder that is mounted on an XY gimbal
remotely operated, gesture-controlled paintball gun.
Photo showing wireless digital video camera and laser mounted in the multi
Schematic diagram showing the geometry used to determine the targeting distance.
Laser Targeting System: The purpose of this project was to identify
mounted on an unmanned aerial vehicle. The project was designed in
part to fulfill design requirements for an upcoming collegiate-level First Robotics competition.
The device is constructed using a wireless digital video camera and laser mounted coaxially in a
axis gimbal system (see Fig 3a). The camera and laser orientation were controlled using
controlled using a wireless Xbox controller broadcasting through
Java and Bluetooth to a Dragon 12+ Board. The target was located by visual inspection of the
video feed. The distance to the target was then determined via a real-time digital image analysis
MATLAB. The MATLAB code determines the pixel location of the laser spot and uses
laser separation distance to calculate the angle between the laser,
target, and camera (as illustrated in Fig 3b. The distance to the target fo
). The students made use of an existing code [3] for the image analysis.
The students wrote the control code for the servos and the interface for the Bluetooth device and
In addition the students utilized equations of rotational motion to
determine the torque required for each servo to rotate the gimbal.
Conference
sult from this course every term,
described in more
detail. The first is an implementation of laser range finder that is mounted on an XY gimbal
controlled paintball gun.
Photo showing wireless digital video camera and laser mounted in the multi-axis
Schematic diagram showing the geometry used to determine the targeting distance.
to identify a target range
The project was designed in
l First Robotics competition.
and laser mounted coaxially in a
a). The camera and laser orientation were controlled using
led using a wireless Xbox controller broadcasting through
The target was located by visual inspection of the
time digital image analysis
MATLAB. The MATLAB code determines the pixel location of the laser spot and uses
laser separation distance to calculate the angle between the laser,
llows by simple
or the image analysis.
The students wrote the control code for the servos and the interface for the Bluetooth device and
s utilized equations of rotational motion to
Proceedings of the 2011 ASEE North Central & Illinois-Indiana Section Conference
Copyright © 2011, American Society for Engineering Education
Fig. 4: Photos showing the Remote Turret with labeling of main components.
Project 2 – The Remote Turret: In this second sample project, students designed and
implemented a remotely operable paintball gun. As shown in Fig. 4, the paintball gun has a laser
pointer and webcam mounted on its barrel to allow remote viewing of the target area. The
HCS12 microcontroller drives a servo to operate the gun’s trigger as well as a second servo to
adjust the elevation of the barrel using a ball-bearing linkage rod. A DC motor is used to control
the azimuth angle. The turret is operated using a plastic toy gun that has and embedded
accelerometer for and a pushbutton for a trigger sensing. By watching the video feed from a
remote location, the user can control the azimuth and elevation of the paintball gun by gesturing
with the plastic toy gun and firing by pressing the push button. In this project, students gained an
understanding and experience in different aspects of designing an electromechanical system.
They had to solve the mechanical challenges involved in the 2-dimentional manipulation of the
gun and wrote software that samples several sensory inputs to control the action of the turret.
Discussion The sophomore design course has been a great success so far and has been perceived well
by the students, the engineering faculty, and visitors. The final projects are showcased in a public
event that includes our multi-disciplinary senior design competition event [2].
Based on student feedback and course evaluations, this course is perceived by the
majority of students as a “fun” and great learning experience. Two interesting phenomena have
been observed over the years this course has been offered. The first is that when the students are
presented with an overview and some videos of last term’s projects at the beginning of the
semester, many have a feeling of disbelief concerning their ability to build such systems. This
fear is gone by the end of the semester and is replaced with a feeling of accomplishment and
pride. We believe this is one of the most valuable outcomes of this course and has an impact on
student retention and performance in subsequent coursework, as they separate into their major
specific academic paths. The second is that we often hear during the semester from a student of
a specific major complaining about the necessity of learning about the other fields. Most often,
students with a declared ME major question the need for them to learn how to program and
interface I/O devices to a computer system. While we don’t succeed convincing every student
Proceedings of the 2011 ASEE North Central & Illinois-Indiana Section Conference
Copyright © 2011, American Society for Engineering Education
about this necessity, we are having good success in illustrating through this course the need for
today’s engineers to have skills that span multiple disciplines and possess multidisciplinary team
working abilities. The benefits of this course can be summarized as follows:
• Sophomore students gain hand-on experiences applying basic knowledge they learned
so far.
• Student gain a design experience on a project that allows them to learn about the
different areas of engineering.
• Students are given the opportunity to reconsider or confirm their declared choice of
major.
• Students gain written and oral communication skills through group discussions, final
reports, and poster presentations on the day of public demonstrations.
• The excitement and confidence students gain from completing final projects may help
retention.
• The final projects serve an important role for recruitment and publicity events.
As in all schools, curriculum development is an ongoing effort in our school. While the
sophomore deigns experience is generally well perceived and has be praised by recent ABET
reviewers, there are some critiques that arise in our committee meetings. The main critique is the
negative impact that this course has on our transfer student rates. It is feared that the uniqueness
of this course may cause some students to reconsider transferring to our university. In fact, we
have had several junior and senior transfer students in this course because they did not have an
equivalent course in their course of studies elsewhere. The second issue that is occasionally
discussed concerns the limit amount of credit hours available in our programs of studies, of
which this course takes four. While the course does introduce programming, computer control,
statics and dynamics, among other topics, they do not cover them in the depth a dedicated class
to any of these topics would do. The general consent is, however, that the benefits of this
sophomore design experience far outweigh the raised concerns.
Conclusion This paper described the sophomore design experience engineering students at Oakland
University complete in their second year, before going into the chosen major fields. The delivery
of ECE and ME topics is described as well as the mechanics of the final project. The two sample
projects provided illustrate the capabilities and achievements of the students at this level in their
educational careers. Faculty committees and external advisors are in agreement about the great
educational experience student are receiving in both a technical as well as in team-working
sense. Students get to apply knowledge they learn in class by developing an exciting system of
their choice. In student course evaluations and senior exit survey, the course is commonly
described as one of the best classes they had.
Acknowledgements The success of this course is in great part a result of the efforts and dedication of the
capable teaching assistants as well as the support of the staff in the Electronics Workshop and the
Machine Shop at the School of Engineering and Computer Science at Oakland University. Other
Faculty members that have taught and contributed also to the evolution of this course are: Dr.
Proceedings of the 2011 ASEE North Central & Illinois-Indiana Section Conference
Copyright © 2011, American Society for Engineering Education
Mike Latcha, Dr. Lorenzo Smith, Dr. Chris Kobus, and Dr. Beth Zou. The authors and students
owe them gratitude.
References [1] R. Haskell, M. Latcha, and O. Rawashdeh, "Do Microcontrollers Belong in a Sophomore Course on Statics and
Dynamics?," ASEE Annual Conference and Exhibit, June 2008.
[2] Latcha, M.A., Debnath, D., Elhajj, I., Gu, E., Haskell, R.E., "Melting-Pot Design at Oakland University,"
Proceedings of the National Senior Design Conference, Boulder, CO, June 2007.
[3] Danko, Todd, "Webcam Based DIY Laser Rangefinder." Webcam Based DIY Laser Rangefinder,” accessed 30
Nov. 2010, <https://sites.google.com/site/todddanko/home/webcam_laser_ranger?AuthEventSource=SSO>.
[4] Wytec Company, “HCS12/9S12: Dragon12-Plus-USB Trainer Board,” accessed 14 Ferbuary 2011, <
http://www.evbplus.com/9s12/9s12_hcs12.html>.
[5] Richard E. Haskell and Darrin M. Hanna, Learning By Example Using C - Programming the DRAGON12-Plus
Using CodeWarrior, LBE Books, Rochester, MI, 2008.