LCD and Keyboard controller for TinyOS 2.x

Project Details

Goal: Pretende-se o desenvolvimento de uma driver genérica de dispositivos de LCD alfa-numéricos para TinyOS 2. Seguindo o modelo de HIL que o TinyOS utiliza nativamente, deverá ser desenvolvida uma interface independente da implementação, permitindo a utilização de vários tipos de LCD sem mudar a aplicação. Além disso, pretende-se o desenvolvimento de uma driver genérica de dispositivos de Teclado "Keypad" para TinyOS 2. De acordo com o mesmo modelo, deverá ser desenvolvida uma interface independente da implementação, permitindo a utilização de vários tipos de Teclado sem mudar a aplicação.

O trabalho envolve as seguinte sub-tarefas:

  • Pesquisa bibliográfica e contextualização no modelo de drivers do TinyOS.
  • Análise de requisitos.
  • Desenvolvimento de uma interface genérica para controlo de LCDs incluindo:
    • Métodos para ler e escrever de/para o ecrã.
    • Métodos para personalização avançada do desenho dos caracteres no ecrã.
    • Métodos para interrogar a driver sobre as capacidades do dispositivo (dimensões, quantidade de caracteres personalizáveis, etc.).
  • Desenvolvimento de uma interface genérica para controlo do Teclado incluindo:
    • Geração de eventos quando as teclas são pressionadas, levantadas, ou mantidas em baixo por um certo período de tempo.
    • Métodos para interrogar a driver sobre as capacidades do dispositivo (teclas disponíveis, possibilidade de combinar múltiplas teclas, etc.).
  • Desenvolvimento de uma implementação específica para um teclado e para um dispositivo LCD.
  • Desenvolvimento de um demonstrador para ilustrar a funcionalidade desenvolvida.

Assigned to: Pedro Diogo

Project Report: Report

Project Poster: Poster

Interface Board Code: Code (tested with the C30 compiler)

TinyOS Code: Code (Example application - TOSConsoleTest*.nc. Tested on a MicaZ.)