print page

Microcontroller alarm-clock

Programming a microcontroller-based realtime alarm-clock with weather station function

Contact Christian Renner
  Jürgen Jessen
Studends Participants of the lecture Software for Embedded Systems
Year 2009
Context Software for Embedded Systems

Aims and Objectives

The Software for Embedded Systems practical course gives a step-by-step introduction into software development for microcontrollers. An board developed by the Insitute of Telematics based on an Atmel microcontroller provides the foundation for the related project. It is equipped with a display, multiple buttons and sensors measuring light, temperature and CO2. Beginning with toggeling an LED, the "hello world" in microcontroller programming, the students proceed in design and development of modular software for embedded systems. The students learn to consider layered architectures in modular design and to deal with inputs and outputs of the board such as keystroke detection, gathering sensor input and displaying system data. Results of subsequent excercises are incorporated in a library for larger applications, used by the realtime alarm-clock with integrated weather station function to be developed upon it.

The last part of the project is an introduction into the operating system TinyOS. Using existing TinyOS modules, even more complex applications like wireless distributed systems (so-called sensor networks) can be implemented easily. This course enables students to accomplish projects in the domain of embedded systems or accept interesting research tasks at our institute of telematics as student research assistant or in the context of a master thesis.

Working steps

The students work in teams of two people. The project is aligned to the lecture, so that new aspects tought in the lecture will be implemented and deepened. The work package contains the following tasks:

  1. Installation und setup of the development tools and IDE
  2. First steps in microconroller programming
  3. Controlling LEDs, e.g. for tiny traffic lights
  4. Processing interrups and reaction to keypresses
  5. Sustained interrupt processing for timers und software-timers
  6. Controlling a liquide crystal display (LCD)
  7. Using an analog-digital (A/D) converter to read and process sensor data
  8. Development of a finite-state machine for an alert-clock
  9. Introduction to TinyOS programming