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)
    Web Site:
    Office Hours: T 10:00-11:30 A.M., R 1:00-2:00 P.M.
    Class Listserv:
    Course Assistant: Daniel Goldman
    CA's email:
    CA's office hours: TBA

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.


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.


Lab Exercises...............40% 
Term Examinations (2).......40% 
Final Project...............20% 


Lab Exercises...............40%
Term Examinations (2).......40%
Final Project...............15%
Final Paper..................5%


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 


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

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


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.