AI Lab

Department of Informatics, University of Zurich

AILab
 
Seminar: Designing and Programming Embedded Systems for Robots (MSc)

MINFS536

Time: Fridays, 14.00 - 15.45

Location: AND 2.25

 

Computer systems fall into essentially two separate categories. The first, and most obvious, is that of the desktop computer. The second type of computer is the embedded computer, a computer that is integrated into another system for the purpose of control and/or monitoring. Embedded computers are far more numerous than desktop computers, but far less obvious. They are hidden inside TVs, DVD players, remote controls, coffee machines, cell phones, cars and of course robots. The embedded computer, in contrast to the general-purpose computer, is normally dedicated to a specific task. This seminar focuses on embedded computers (microcontrollers) that are designed to control a robot. There are many open source projects such as Arduino that provide a pre-designed embedded computer board and a library to program it. Nevertheless by using this board and its library one cannot fully understand the underlying principles of programming embedded systems. In this seminar you will learn how to design a simple PCB (printed circuit board) for an Atmel AVR microcontroller. Furthermore you will become familiar with how to program a microcontroller to use its input/output pins, timers, interrupts, Analog/Digital converters etc. You will work in groups of two people. Each group investigates a topic, such as servo motor or gyroscope. At the end of the semester each group has to present its project and a short paper has to be written. Please note: Programming microcontrollers in C (without using a library like Arduino) looks complicated at first sight. In this seminar you learn step-by-step how to access this low-level world. This will give you a better understanding of the libraries commonly used for programming embedded systems.

 

In case of a low number of participants an oral exam might be scheduled instead of a written exam.

 

IMPORTANT: Due to the limited number of students that can be accepted for this seminar, register here This e-mail address is being protected from spambots. You need JavaScript enabled to view it as soon as possible. Places will be distributed on a first come first serve basis.

 

 

Educational objective:

The goal is to understand the basic components that are needed to embed a microcontroller in a system (in this case a robot). Furthermore you will get to know how to use the main features of a microcontroller such as input/output pins, timers, interrupts, analog/digital converters etc. This knowledge will help you to understand the libraries used for programming embedded systems.


Target audience:

Recommended for students that want to take further practical classes in Artificial Intelligence and robotics or who want to deepen their knowledge on what's behind embedded systems.

Preconditions:

Master student

C programming skills (C++ useful but optional)


ECTS: 3

 

Lecturer: Prof. Dr. Rolf Pfeifer

Assistants: Dorit Assaf, Cristiano Alessandro


Language:

English

 

Recommended books:

Designing Embedded Hardware, John Catsoulis, O'REILLY
Programming Embedded Systems with C and GNU Development tools, Michael Barr & Anthony Massa, O'REILLY
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie, Schmitt, Oldenbourg (German)

 

AVR gcc tutorial in German

AVR gcc tutorial in English

 

Lecture Slides:

Atmega168 datascheet

lecture_25_2_2011

 

BoardSchematic

 

AltiumLibraries.zip

USART.zip (C code for serial communication)

 
logininternal