State University of New York at Binghamton Watson School of Engineering and Applied Science Department of Computer Science CS-480A / CS-580A Special Topics in Microcontrollers and Robotics Fall, 2002 Lecture: M,F, 2:20-3:20 P.M. , EB-N22 Laboratory, W, 2:20-5:20, EB-H1 Professor Richard R. Eckert EB-N6, 777-4365 (office), 777-4802 (CS Department) Email: reckert@binghamton.edu Web Site: http://www.cs.binghamton.edu/~reckert/ Office Hours: T 10:00-11:30 A.M., R 1:00-2:00 P.M. Class Listserv: CS480A-L@listserv.binghamton.edu Course Assistant: Daniel Goldman CA's email: goldmd@softsightinc.com CA's office hours: TBA
COURSE DESCRIPTION: Microprocessor-based systems in hardware control. Embedded microcontroller systems: Architectures and instruction sets for microprocessors and microprocessor-based control systems; memory and I/O port organization; serial and parallel I/O; timers; interrupts; ADC; DAC. Robotics: Hardware; software; motion control; interaction control; actuators and sensors; trajectory planning; behavior control; navigation; robot reasoning; image processing and vision systems; operating systems and programming languages; multitasking; robot intelligence architectures; robot kinematics and dynamics. Supervised laboratory work involves microprocessor programming, interfacing, hardware control experiments; the design and building of mobile, autonomous, microprocessor-controlled robots and their software control systems. Students work in teams. Prerequisites: CS-210, CS-220, and CS-350 or their equivalents. MOTIVATION: An important application of computer science is that of using embedded microcomputers to control hardware systems. These are ubiquitous in electronic devices found almost everywhere in modern society, and, in particular, in embedded control systems and robots used in industry, science, and defense. Many modern devices -- as common as microwave ovens or automobiles, to machines that automate and control the positioning of electronic components on printed circuit boards, to pilot-less airplanes used to spy on and/or deliver weapon systems to potential enemy targets, to something as exotic as the Mars Sojourner Rover robot -- use embedded microprocessors to control hardware. It is important that computer science students have the opportunity to learn about these devices, how they work, and how to design and program them. This course will emphasize those aspects of microprocessor-based control systems and robotics that are most closely related to computer science. These include the architecture and instruction set of a microcontroller; interfacing a microcontroller with memory and I/O; I/O techniques (serial, parallel, interrupt-driven, digital to analog conversion, analog to digital conversion); microcontroller programming languages and techniques; use of timers in responding to and controlling real-time situations; multitasking. The fundamentals learned will be applied in the context of designing, building, and programming autonomous, mobile robots whose motors and sensors are controlled by a microprocessor-based system. The robot will be programmed to perform such “intelligent” tasks such as following a path, avoiding obstacles, seeking and retrieving objects, and communicating with other robots. Several concepts from the fields of artificial intelligence and computer vision will be investigated and applied where appropriate. Student-designed robots will participate in a competition at the end of the semester. EVALUATION (CS-480A): Lab Exercises...............40% Term Examinations (2).......40% Final Project...............20% EVALUATION (CS-580A): Lab Exercises...............40% Term Examinations (2).......40% Final Project...............15% Final Paper..................5% LABORATORY: There will be a three-hour weekly scheduled laboratory. Students will work in groups of three. All students are expected to attend the lab. Attendance will be taken. Laboratory exercises in the first half of the course will consist of experiments involving a microprocessor trainer (the SDK-86). Students will design and build hardware circuits interfaced with the trainer and write software to control these circuits. In the second part of the course students will build robots and write software to control them and make them perform different tasks. The LEGOS Mindstorms Robotics Invention System (RIS) will be used. Generally there will be a short lab report required; these will be due on the date specified. If turned in late, the grade will be reduced by 5% per day up to a maximum of one week. Under no circumstances will assignments be accepted more than one week late. ANY WORK FOUND TO BE COPIED WILL BE GROUNDS FOR AN F IN THE COURSE! EQUIPMENT: Each group of three students will be required to purchase a parts kit for the lab exercises to be performed during the first half of the course. These kits are available at Unicorn Electronics, Valley Plaza Drive, Johnson City. For the second part of the course, each group will be issued a LEGOS RIS 2.0 kit. Each student will sign a statement indicating that he/she and his/her teammates are responsible for the kit and will return it, complete with all parts and in good condition, at the end of the semester. COURSE SCHEDULE (Weekly Topics): Week Lecture Material Lab Exercise 1 Introduction to Robotics and Microcontrollers --- 2 Microcontrollers: CPU Module Use of the SDK-86 Keypad Monitor 3 Microcontrollers: Memory Module Use of SDK-86 Serial Monitor 4 Microcontrollers: Basic I/O Ports Simple I/O Ports 5 Programmable Ports, the Intel 8255 Using the 8255 to control a motor 6 A/D and D/A Converters A/D and robot sensors 7 Serial I/O Serial Communication 8 Timers/Interrupts/Tasking Interrupts 9 Introduction to Lego Mindstorms and the RCX, Mindstorms Turorial, building Programming the RCX; building robots with your first robot (Roverbot: avoiding LEGO bricks obstacles, following a line/light, traversing a maze) 10 Programming the RCX using NQC, multitasking, Roverbot, continued timers, sounds, IR communication, logging data 11 Actuators and Sensors A robot that seeks, picks up, and returns objects 11 Alternative robot programming languages: programming A data logging robot the RCX with pbForth, LASM, Mindscript, Visual Basic, Visual C++ 13 Behavior control architectures: Programming the RCX A communicating robot with Java 14 Robot Navigation and Reasoning; Neural Nets Final project: Design your own in robotics Robot for a robot competition 15 Machine Vision Final project, continued 16 Kinematics and dynamics of robots (Guest lectures) Final project, continued REFERENCES ON RESERVE IN THE LIBRARY: Abel, Peter, IBM PC Assembler Language & Programming, Fifth Edition, Prentice Hall, 2001, ISBN 0-13-030655-X. Antonakos, The Pentium Microprocessor, Prentice Hall, 1997, ISBN 0-02-303614-1. Auslander, Ridgely, Ringgenberg, Control Software for Mechanical Systems, Prentice Hall, 2002, ISBN 0-13-786302-0. Baum, Gasperi, Hempel, Villa, Extreme Mindstorms: An Advanced Guide to LEGO Mindstorms, Apress, 2000, ISBN 1-893115-84-4. Brey, Barry, The Intel Microprocessors: 8086/8088, 80186/188, 80286, 80386, 80486, Pentium, and Pentium Pro Processor: Architecture, Programming, and Interfacing, Fifth Edition, Prentice Hall, 2000, ISBN 0-13-995408-2. Erwin, Benjamin, Creative Projects with LEGO Mindstorms, Addison-Wesley, 2001, ISBN 0-201-70895-7. Ferrari, Ferrari, Hempel, Building Robots with LEGO Mindstorms, Syngress, 2002, ISBN 1-928994-67-9. Fulcher, John, An Introduction to Microcomputer Systems: Architecture & Interfacing, Addison-Wesley, 1989, ISBN 0-201-41623-9. Irvine, Kip R., Assembly Language for Intel-Based Computers, Third Edition, 1999, Prentice Hall, ISBN 0-13-660390-4. Lewis, Daniel W., Fundamentals of Embedded Software, Prentice Hall, 2002, ISBN 0-13-061589-7.
LaVerde, et. al., Programming Lego Mindstorms with Java, Syngress, 2001, ISBN 1-928994-55-5. Mackenzie, I. Scott, The 8051 Microcontroller, Macmillan, 1992, ISBN 0-02-373650-X. Malvino, Digital Computer Electronics: An introduction to Microcomputers, Second Edition, McGraw Hill, 1983, ISBN 0-07-039901-8. Martin, Fred G., Robotic Explorations, Prentice Hall, 2001, ISBN 0-13-089568-7. Mazidi & Mazidi, The 80x86 IBM PC & Compatible Computers ( Volumes I & II): Assembly Language, Design and Interfacing, Third Edition, Prentice Hall, 2000, ISBN 0-13-016568-9. McComb, Gordon, The Robot Builder’s Bonanza, Second Edition, McGraw-Hill, 2001, ISBN 0-07-136296-7. Miller, Gene H., Microcomputer Engineering, Second Edition, Prentice Hall, 1999, ISBN 0-13-895368-6. Nelson, Nagle, Carroll, Irwin, Digital Logic Circuit Analysis & Design, Prentice Hall, 1995, ISBN 0-13-463894-8. Niku, Saeed B., Introduction to Robotics: Analysis, Systems, Applications, Prentice Hall, 2001, ISBN 0-13-061309-6. Predko, Myke, Programming and Customizing PICmicro Microcontrollers, Second Edition, McGraw-Hill, 2002, ISBN 0-07-136172-3. Rafiquzzaman, Fundamentals of Digital Logic and Microcomputer Design, Third Edition, Rafi Systems, 2000, ISBN 0-9664980-3-8. Triebel & Singh, The 8088 and 8086 Microprocessors: Programming, Interfacing, Software, Hardware, and Applications, Third Edition, Prentice Hall, 2000, ISBN 0-13-010560-0. Uffenbeck, John, The 80x86 Family: Design, Programming, and Interfacing, Third Edition, 2002, Pearson Education, 2002, ISBN 0-13-025711-7. Wakerly, Digital Design: Principles & Practices, Second Edition, Prentice Hall, 1994, ISBN 0-13-211459-3. Williams, Gerald, Digital Technology, SRA, 1986, ISBN 0-574-21605-7.