MIT emphasizes smart design.
Realizing these systems requires a design team that understands software and interface electronics as well as it understands gears and motors. Additionally, to design effectively at the system level requires that at least one member of the design team be able to move easily across the boundaries that traditionally divided the electrical from the mechanical engineer.
The Department of Mechanical Engineering at MIT offers a graduate-level course titled Designing Smart Machines, in which mechanical engineers are taught the basics of microprocessors and interface electronics in the context of completing a creative design project.
Designing Smart Machines is taught once each semester; its enrollment is limited by lottery to 20 students. Almost all participants are graduate students in mechanical engineering, although students from electrical and aeronautical engineering and a few fourth-year undergraduate students occasionally enroll. The course prerequisites are some experience with programming and some with design. Very few of the students have had any exposure to electronics or to real-time programming in either high-or low-level languages.
The course is structured as an immersion experience. In the third of 14 weeks, teams of three students are formed. Each team selects a product, device, or system to design and build during the semester. The only limits on a project are that it contain an embedded processor and that it can be completed and demonstrated in a formal presentation at the end of the semester.
Lectures are a small but integral part of the course. Topics covered include CPU architecture, assembly language programming, digital and analog electronics, sensor and actuator interfacing, and real-time programming. Each topic is covered superficially, with the objective of providing the students with sufficient information to guide them in whatever self-instruction is required to implement a particular development task for their projects. A series of introductory programming assignments that introduce the students to assembly language, analog and digital I/O, real-time clocks, and interrupts is synchronized to the early lectures.
The bulk of the course takes place in the lab. Toward the beginning of the course, lab work consists of completing the programming assignments. The remainder of the lab work concentrates on the term project. Although there are formal lab sessions each week, the laboratory is available to the students at all times.
The course uses the Department of Mechanical Engineering Prototype Lab, which has resources for electronic hardware and software development, light machining, and mechanical assembly. The programming assignments run on eight VMEbus systems with CPU boards containing Motorola 68010 processors and various I/O boards for interfacing external devices. The systems are relatively "packaged," which means that although the students do not have the protective layer of an operating system, they do not have to confront details such as connecting an analog-to-digital converter to the CPU. The software development environment for the systems includes an assembler, a C cross-compiler, and a rudimentary monitor-level debugger.
Most of the term projects result in stand-alone smart products that incorporate the Intel 8051 series of 8-bit microcontrollers. This processor family was chosen because of the relative ease of interfacing peripherals, the manageable assembly language, the low cost, and the body of experience with the 8051 from past projects. Although the use of an 8-bit chip limits the computational complexity that can be achieved in real time, this is generally not a problem given the limits on overall project complexity that can be achieved in a one-semester course. Despite this limitation, the 8051 does surprisingly well in real-time code for controlling an inverted pendulum. Other microprocessors supported by the lab include the Motorola 680x0 series, the Texas Instruments TMS320Cx5 DSP series, and the Intel 8096 series.
The C and assembly language software development packages used by the students run on Project Athena, MIT's networked system of more than 1000 academic computing workstations located throughout the campus. This eases the load on limited lab resources since source code can be edited, compiled, and assembled on any Athena workstation. The final destination of the executable code is an EPROM, which is burned in the lab. Students use an in-circuit emulator to facilitate the debugging of real-time code, although the embedding of debug statements (such as the periodic turning of I/O bits on and off) in the code is encouraged to enable problem diagnosing with just a logic probe. Wire-wrapping and soldering tools, power and hand tools for light machining, a stock of mechanical and electronic components, and a good selection of vendor catalogs, data books, and trade journals are all available for use. An active e-mail network among students and course instructors also serves to facilitate the flow of information.
During the second week of the course, two enabling exercises are run with the students. The first is a software crash course in which students go through a self-paced exercise that familiarizes them with the basics of assembly language and the logistics of using the compiler and assembler tools. This is an efficient way of bringing all students up to speed with the operational details of developing real-time code.
The second exercise is a crash course in electronic assembly. Students start with a paper bag fun of electronic components including a perf board, a microprocessor, resistors, a switch, a battery, and a wire-wrap tool; they end the evening with a fully functioning embedded processor board that connects to a system that implements a marble race. Again, this is an efficient means of teaching the basics of electronic assembly to students with no prior experience. it instills a sense of confidence in the students because each builds a working system containing a computer. It also provides a dose of reality on what is appropriate for a term project, since before the session few students can understand the level of effort required to create even a simple board.
Projects from Designing Smart Machines have included:
* An autonomous vehicle based on Lego building blocks and motors. The vehicle is driven via an infrared (IR) link and uses IR sensors to avoid obstacles placed on the floor.
* An autonomous broomstick-balancing cart with optical encoders for sensing cart and broom position, a battery-driven dc servo motor coupled to the drive shaft with a gear train, and a full-state feedback controller running on the microprocessor.
* A home-shopping system based on a bar-code wand unit that interfaces to the telephone and communicates with a central database located in a store. (This project is the basis of a startup company founded by two former students.)
* A smart caliper system for portrait sculptors created under contract to Madame Tussaud's wax museum in London. The artist records a facial measurement of a subject by placing the calipers and pressing a button. The distance measurement is communicated to a laptop PC by a radio-frequency (RF) link.
* A dry-ingredient dispensing system for home bakers. The user places a bowl on the platform of the unit, punches in a recipe as prompted on the LCD screen, and flour and sugar are dispensed automatically and in the correct proportions into the bowl.
* A carpenter's marker. The user enters a distance and then slides the device along the wood. When the correct distance is reached (as monitored through an optical encoder coupled to a wheel rolling along the wood), a solenoid snaps a marker down on the wood.
* A handlebar-mounted bicycle performance computer that provides the rider with pedal torque and power readouts along with speed and distance information. Pedal torque is measured with strain gages placed on the pedal cranks and signals are transmitted to the bicycle frame by an RF link.
If the course is to thrive, the host department must be committed to a hands-on approach to design, and instructors must be committed to providing students with the necessary guidance to ensure that all projects are successful. Once capital costs to build a lab infrastructure have been expended, supply costs can be minimized. Many vendors are willing to donate components, and other costs can be recovered with a modest student lab fee. The cost of specialized parts for projects can be covered by the project sponsors, which might be the department, a research contract, an industrial sponsor, or the students themselves. If students are sponsoring their own projects, they tend to be extremely careful about budgets, a trait shared by all good designers.
The essence of the course is to get students motivated by a project of their own choosing, to provide them with easy access to the tools to implement the project, and to provide sufficient guidance so that their project experience is successful. This type of design experience can be replicated at the undergraduate level, although the project selection should be scaled back to match the students' experiences and skills. Given the computer literacy of most incoming engineering students, a modified version of the course could also be taught to freshmen. The particular choice of CPU and other electronic or mechanical components does not matter so long as the barriers to their use are minimized. This can be achieved with appropriate instructional material tailored to the needs and experiences of the students (the vendor data books are not adequate in this regard) and with examples of use from past projects.
Because embedded processor technology is evolving rapidly, it is impossible for a course to stay at the leading edge. Each change of CPU requires an enormous change to the lab infrastructure. Not only must new software development tools be purchased and installed, but there is no experience base for the students to build upon. One of the best ways for students to learn the use of microprocessors is to look at past projects, where details of interfacing electronics and real-time code can be studied, modified, and applied. Switching processors renders most of this history worthless.
Instead of attempting to remain at the forefront, instructors must determine what is most important to teach their students. For some courses, this might be real-time operating systems, including multiple tasking, multiple processors, and fault-tolerant control. This requires selecting a high-end system for use by the students, probably based on an industry-standard bus. The principles of real-time operating systems, however, are the same across a wide variety of CPU systems, with added cost usually only improving the computation speed. Thus, if the systems to be controlled are matched to the available processing power, the students will learn the fundamentals, which they can easily transfer to the more powerful systems they may encounter in industry.
In Designing Smart Machines, the creation of simple stand-alone systems that use embedded processors is stressed. Again, the choice of processor does not matter if the projects are matched to the processor capabilities. Since new projects are generated each year, cost and simplicity drove the decision to stay with 8-bit processors. Students learn the basics of real-time software linked to actuators and sensors in the context of an entire design. In this regard, the projects are driven by the same design goals that constrain most high-volume low-cost smart products.
It is more important to remain current in sensors, actuators, and interfacing methods. Inexpensive new sensors, new actuators, and new interfacing chips are being introduced at a rapid pace. Integrating these technologies into a course generally requires lower overhead than changing processors.
|Printer friendly Cite/link Email Feedback|
|Title Annotation:||special section: Teaching Mechanical Engineers to use Microprocessors|
|Author:||Durfee, William K.|
|Date:||Apr 1, 1994|
|Previous Article:||Purdue looks beyond the 1990s.|
|Next Article:||Bringing rocket testing down to earth.|