Centro Universitário Positivo - UNICENP Núcleo de Ciências Exatas e Tecnológicas – NCET
Engenharia da Computação Sérgio Vieira Rolanski
Painel Reconfigurável Aplicado à Indústria Automotiva
Curitiba 2005
Centro Universitário Positivo - UNICENP Núcleo de Ciências Exatas e Tecnológicas – NCET
Engenharia da Computação Sérgio Vieira Rolanski
Painel Reconfigurável Aplicado à Indústria Automotiva
Monografia apresentada à disciplina de Projeto Final, como requisito parcial à conclusão do Curso de Engenharia da Computação. Orientador: Prof. Alessandro Zimmer.
Curitiba 2005
ii
TERMO DE APROVAÇÃO
Sérgio Vieira Rolanski
Painel Reconfigurável Aplicado à Indústria Automotiva
Monografia aprovada como requisito parcial à conclusão do curso de Engenharia da
Computação do Centro Universitário Positivo, pela seguinte banca examinadora:
Prof. Alessandro Zimmer (Orientador) Prof. Edson Pedro Ferlin Profª. Adriana Cursino Thomé
Curitiba, 12 de dezembro de 2005
iii
AGRADECIMENTOS
Agradeço principalmente ao suporte dos meus pais, Sérgio e Regina, por
terem pagado a faculdade e me encorajando na minha profissão. Nos momentos dificeis,
quando passava a noite em claro fazendo trabalhos, eles sempre me lembravam que
aquilo que vale a pena não vem facil é preciso esforço.
Aos meus colegas de faculdade, que me ajudaram durante a faculdade nos
trabalhos e nos estudos para as provas. Um agradecimento especial para Luiz Marthos e
Fernando Corso, que eram os colegas que eu sempre fazia os trabalhos em equipe, cada
um fazendo sua parte conseguimos terminar os trabalhos.
Ao Maurício Perretto por me ajudar em alguns casos quando tinha dúvidas
que não fossem facilmente respondidas. Por último, ao meu orientador por dar a idéia do
projeto e mostrar o caminho ao qual trilhar durante a implementação do projeto.
iv
SUMÁRIO
LISTA DE FIGURAS ........................................................................................................................ vi
LISTA DE TABELAS .......................................................................................................................vii
LISTA DE SIGLAS..........................................................................................................................viii
LISTA DE SÍMBOLOS ..................................................................................................................... ix
RESUMO ............................................................................................................................................ x
ABSTRACT........................................................................................................................................ xi
1. INTRODUÇÃO .......................................................................................................................... 1
1.1 Motivação ............................................................................................................................... 2
2. ESTUDO TEÓRICO ................................................................................................................. 4
2.1 Microcontrolador ATmega64L .................................................................................... 4
2.2 Gravação do ATmega64L ........................................................................................... 5
2.3 Display gráfico LCD...................................................................................................... 5
2.4 Conversor USB/Serial.................................................................................................. 6
3. ESPECIFICAÇÃO TÉCNICA.................................................................................................. 8
3.1 Módulo de software ...................................................................................................... 8
3.2 Módulo de hardware .................................................................................................. 12
3.3 Firmware ...................................................................................................................... 14
3.4 Comunicação software x hardware ......................................................................... 15
3.5 Interação com o usuário ............................................................................................ 16
4. PROJETO ................................................................................................................................ 17
4.1 Hardware...................................................................................................................... 17
4.1.1 Entrada/Saída ............................................................................................................. 17
4.1.2 Controlador LCD ......................................................................................................... 18
4.1.3 Comunicação .............................................................................................................. 19
4.2 Software ....................................................................................................................... 19
4.2.1 Diagrama de Classe................................................................................................... 19
4.2.2 Casos de Uso.............................................................................................................. 21
4.2.2.1 Configurar Comunicação........................................................................................... 21
4.2.2.2 Configurar Mostradores............................................................................................. 22
4.2.2.3 Manter Projeto............................................................................................................. 23
4.2.2.4 Configurar Menu ......................................................................................................... 24
v
4.2.3 Protocolo de Comunicação....................................................................................... 25
4.3 Firmware ...................................................................................................................... 28
4.4 Cronograma................................................................................................................. 35
4.5 Estimativa de Custo ................................................................................................... 35
4.6 Módulos de expansão................................................................................................ 36
5. VALIDAÇÃO ............................................................................................................................ 39
5.1 Validação do software................................................................................................ 39
5.2 Validação do hardware .............................................................................................. 40
6. RESULTADOS........................................................................................................................ 41
6.1 Hardware...................................................................................................................... 41
6.2 Software ....................................................................................................................... 42
6.3 Resultado da validação ............................................................................................. 43
7. CONCLUSÕES ....................................................................................................................... 44
8. REFERÊNCIAS BIBLIOGRÁFICAS .................................................................................... 45
9. GLOSSÁRIO ........................................................................................................................... 46
ANEXOS ........................................................................................................................................... 47
vi
LISTA DE FIGURAS
Figura 1 – Diagrama em blocos do projeto.......................................................................... 1
Figura 2 – Painel desenvolvido pela Siemens VDO Automotive. ........................................ 3
Figura 3 – Configuração dos pinos do ATmega64L. ........................................................... 4
Figura 4 – Funcionamento básico do Conversor USB/Serial. ............................................. 7
Figura 5 – Tela principal do software................................................................................... 8
Figura 6 – Mostrador analógico. .......................................................................................... 9
Figura 7 – Mostrador Digital. ............................................................................................... 9
Figura 8 – Mostrador com indicação usando barras.......................................................... 10
Figura 9 – Mostrador com indicador. ................................................................................. 10
Figura 10 – Texto estático. ................................................................................................ 11
Figura 11 – Menu. ............................................................................................................. 11
Figura 12 – Diagrama em blocos do hardware.................................................................. 13
Figura 13 – Protocolo de comunicação do software com o hardware e vice-versa. .......... 15
Figura 14 – Diagrama de Classe. ...................................................................................... 20
Figura 15 – Diagrama de Casos de Uso. .......................................................................... 21
Figura 16 – Diagrama de Seqüência para Caso de Uso Configurar Comunicação........... 22
Figura 17 – Diagrama de Seqüência para Caso de Uso Configurar Mostradores............. 23
Figura 18 – Diagrama de Seqüência para Caso de Uso Manter Projeto. .......................... 24
Figura 19 – Diagrama de Seqüência para Caso de Uso Configurar Menu........................ 25
Figura 20 – Protocolo de comunicação. ............................................................................ 25
Figura 21 – Fluxograma quando microcontrolador recebe reset. ...................................... 29
Figura 22 – Fluxograma do desenho da interface na tela. ................................................ 30
Figura 23 – Fluxograma para monitoração entrada do usuário. ........................................ 31
Figura 24 – Fluxograma para comunicação serial............................................................. 33
Figura 25 – Fluxograma para receber valores para atualização dos mostradores. ........... 34
Figura 26 – Diagrama de estados do firmware.................................................................. 35
Figura 27 – Telas de validação do software. ..................................................................... 39
Figura 28 – Foto do hardware na caixa com uma das interfaces de validação no LCD. ... 41
Figura 29 – (A) Janela de edição do menu. (B) Dois projetos de validação abertos no
software...................................................................................................................... 43
vii
LISTA DE TABELAS
Tabela 1 – Parâmetros máximos de operação do ATmega64L........................................... 5
Tabela 2 – Pinagem do LCD. .............................................................................................. 6
Tabela 3 – Parâmetros de operação do controlador do LCD [2]. ........................................ 6
Tabela 4 – Propriedades do mostrador analógico. .............................................................. 9
Tabela 5 – Propriedades do mostrador digital. .................................................................... 9
Tabela 6 – Propriedades do mostrador de barras. ............................................................ 10
Tabela 7 – Propriedades do mostrador com indicador. ..................................................... 11
Tabela 8 – Propriedades do mostrador de texto................................................................ 11
Tabela 9 – Propriedades do item do menu........................................................................ 11
Tabela 10 – Lista de ações de um item do menu. ............................................................. 12
Tabela 11 – Propriedades comuns a todos os mostradores.............................................. 12
Tabela 12 – Comandos da comunicação software X hardware......................................... 16
Tabela 13 – Sinais de Entrada/Saída. ............................................................................... 17
Tabela 14 – Barramentos de entrada/saída com seu tipo e tamanho. .............................. 18
Tabela 15 – Sinais de Controle. ........................................................................................ 18
Tabela 16 – Sinais do controlador LCD. ............................................................................ 19
Tabela 17 – Tabela do tipo do mostrador. ......................................................................... 26
Tabela 18 – Informações comuns aos mostradores.......................................................... 26
Tabela 19 – Propriedades enviadas do mostrador analógico............................................ 26
Tabela 20 – Propriedades enviadas do mostrador com barras. ........................................ 27
Tabela 21 – Propriedades enviadas do mostrador com indicador..................................... 27
Tabela 22 – Propriedades enviadas do mostrador de texto. ............................................. 27
Tabela 23 - Propriedades enviadas do mostrador digital. ................................................. 27
Tabela 24 – Propriedades enviadas do menu. .................................................................. 27
Tabela 25 – Propriedades enviadas do item do menu. ..................................................... 27
Tabela 26 – Descrição dos estados do firmware............................................................... 35
Tabela 27 – Estimativa de custos...................................................................................... 36
viii
LISTA DE SIGLAS
Bps – bits per second.
EEPROM – Electrically Erasable Read-Only Memory.
LCD – Liquid Crystal Display.
LED – Light Emission Diode.
MISO – Master Input Slave Output
MOSI – Master Output Slave Input
RAD – Rapid Application Development.
RAM – Random Access Memory.
SCK – Source Clock
USB – Universal Serial Bus.
ix
LISTA DE SÍMBOLOS
µS – Microssegundos.
Cm – Centímetros.
GHz – Gigahertz.
Kbytes – Kilobytes.
Mb – Megabytes.
MHz – Megahertz.
mW – Miliwatts.
º C – Graus centígrados.
V – Volts.
x
RESUMO
O projeto criar uma interface de mostradores que pode ser personalizada
pelo projetista, transferida para um hardware externo e então ser visualizada em um
display LCD gráfico. Usando um conjunto de mostradores predefinidos, o usuário monta a
interface que desejar.
O conjunto de mostradores inclui os mais comuns da indústria automotiva,
como, por exemplo, mostrador analógico, entre outros. Um menu de seleção também está
disponível. Cada item do menu pode ter uma ação predefinida e a seleção do menu será
controlada por três botões.
Um programa de computador ajuda o usuário a montar a interface usando
mostradores predefinidos e então transferi-la para o hardware. O usuário associa cada
mostrador a uma das dezesseis (16) entradas digitais multiplexadas de 8 bits cada ou a
uma das duas entradas analógicas.
O projeto foi divido em duas partes principais: o módulo de software e o
módulo de hardware. O módulo de software é o programa de computador no qual o
usuário vai montar a interface e então transferi-la para o hardware pela porta USB do
computador. O módulo de hardware constitui-se, principalmente, do LCD gráfico, do
microcontrolador ATmega e do conversor USB/Serial que usa o componente TUSB da
Texas Instruments. Quando a interface for transferida para o hardware, este pode agir
independentemente, pois a interface é gravada na memória não-volátil do
microcontrolador.
Palavras-chaves: LCD, “reconfigurable display”, ATmega, USB e TUSB.
xi
ABSTRACT
The project creates an interface of components that can be personalized by
the user, transferred to an external hardware and then be visualized on a graphical LCD
display. Using pre-defined components, the user will be able to build the interface he
wishes.
The pre-defined components include the most common in the automotive
industry, for example, an analog display, or a digital display and others. A menu
component is also available. Each item of the menu may have pre-defined actions and
three buttons will help the user to control it.
A computer software assist the user to build the interface using the pre-
defined components and then transfer it to the hardware. The user associate each
component to only one of the sixteen (16) 8 bits multiplexed digital inputs or to one of the
two analog inputs.
The project has two main modules: the software module and the hardware
module. The software module will let the user build the interface and then transfer it to the
hardware using an USB connection. The graphical LCD display, the microprocessor and
the USB/Serial converter, which uses TUSB component from Texas Instruments, basically
make the hardware module. When the interface is transferred to the hardware, this may
act independently, since the interface will be in the microprocessor non-volatile RAM
memory.
Key words: LCD, “reconfigurable display”, ATmega, USB e TUSB.
1
1. INTRODUÇÃO
A idéia é desenvolver um projeto que substitua os painéis de instrumentos
comumente usados nos carros, onde o usuário monta a interface com os instrumentos
que ele deseja no computador e então transfere para um hardware que desenha a
interface em um display LCD gráfico (Figura 1).
Velocidade RPM motor Combustível
Hora
Projeto da interface com os mostradores no PC
Hardware Comunicação USB Velocidade
RPM motor Combustível
Hora
Visualização no display LCD
Figura 1 – Diagrama em blocos do projeto.
Primeiro serão abordados alguns aspectos teóricos do projeto, recursos que
os componentes principais disponibilizam. Em seguida vem a especificação técnica, que
explica aspectos do módulo de software e do módulo de hardware, como estes serão
implementados e quais os recursos que estarão disponíveis para o usuário.
O item a seguir é o projeto, onde este é delineado a um nível mais baixo. No
projeto de hardware é explicado como os componentes se conectam e o nome dos sinais
do controle, de dados e de endereço, enquanto que o projeto de software é detalhado
mostrando diagramas de classe, de casos de uso e de seqüência. O funcionamento do
firmware é descrito usando um diagrama de estado e fluxogramas.
O próximo item fala da validação do projeto. Explicam-se como serão
validados os módulos de software e de hardware. Detalhes são dados para essa
validação, usando todos os recursos que o projeto visa a disponibilizar para o usuário final
do sistema.
2
Os resultados do projeto são discutidos, como o objetivo foi atingido e quais
foram os resultados perante o item de validação do projeto. Por último, fala-se das
conclusões sobre o projeto.
1.1 Motivação
A escolha deste projeto se deu por causa da possibilidade de se fazer
alguma coisa que, em sua área de utilização, é personalizável, dando ao usuário do
projeto a possibilidade de criar algo que supra suas necessidades. Caso suas
necessidades eventualmente mudem, é possível modificar o painel, reconfigurando-o para
satisfazer as novas necessidades do usuário.
O uso de painéis desse tipo vem crescendo lentamente na indústria
automotiva. Automóveis de luxo usam painéis para dar aos usuários mais opções de
visualização, assim como, mostrar as informações de maneiras mais amigáveis ou com
uma melhor aparência.
A subsidiária de automotiva da Siemens, a Siemens VDO Automotive [7],
desenvolve este tipo de painel (Figura 2), e outras empresas como a BMW [3] e a General
Motors [4] também vêm usando nos últimos anos este tipo de painel em seus carros
conceito.
A aplicação do projeto se estende para outras áreas como, por exemplo,
aviação. Há algum tempo, os aviões de grande porte, onde existe uma grande quantidade
de instrumentos que precisam ser monitorados pelo piloto, e aviões de combate, onde o
espaço é pequeno para vários instrumentos, usam versões simples de painéis
reconfiguráveis, onde o apertar de um botão muda a imagem no display e este ganha uma
nova função.
3
Figura 2 – Painel desenvolvido pela Siemens VDO Automotive.
4
2. ESTUDO TEÓRICO
O estudo teórico analisa as características dos componentes principais que
serão usados no projeto.
2.1 Microcontrolador ATmega64L
Este microcontrolador possui várias características que facilitam o projeto do
hardware. O modelo ATmega64L é da empresa Atmel, o ‘L’ no final do código do modelo
identifica que este roda no máximo a 8 MHz, que foi a velocidade usada no projeto. Um
conversor A/D embutido tem resolução de 10 bits e a memória EEPROM interna tem 2
Kbytes [1].
O microcontrolador possui duas portas seriais, sete sinais de interrupção, 64
Kbytes de memória de programa e 4 Kbytes de SRAM [1]. Tem seis ports de oito pinos e
mais um port de 5 pinos. A Figura 3 mostra a configuração dos pinos do ATmega64L [1].
A Tabela 1 mostra os parâmetros de operação do ATmega64L [1].
Figura 3 – Configuração dos pinos do ATmega64L.
5
Tabela 1 – Parâmetros máximos de operação do ATmega64L.
Parâmetro Valor mínimo Valor máximo Unidade Temperatura de operação -55 +125 º C Tensão em todos os pinos (exceto RESET) -0,5 VCC+0,5 V Tensão no pino RESET -0,5 +13 V Tensão de operação máxima -- 6 V Corrente DC por pino de Entrada/Saída -- 40 mA Corrente nos pinos de VCC e GND 200 400 mA
A gravação do programa nesta versão da série de microcontroladores
ATmega é feita de forma diferente. Outros modelos da mesma linha usam os pinos MISO,
MOSI e SCK para comunicação com o programa de gravação. Neste modelo em vez de
usar o MISO e o MOSI são utilizados o TX e o RX, respectivamente.
O software usado para fazer o firmware em linguagem C é um pacote
distribuído gratuitamente. O nome do pacote é WinAVR [6], e vem com um conjunto de
ferramentas básico de diferentes autores, mas que atende todas as necessidades do
projeto.
As ferramentas que foram usadas são o compilador de código C e o
programa de gravação no microprocessador.
2.2 Gravação do ATmega64L
A gravação no microcontrolador ATmega64L é feita por meio da porta
paralela do computador, mas ainda assim em transmissão serial. No Anexo 3 se encontra
o esquemático para gravação do microcontrolador.
2.3 Display gráfico LCD
O modelo escolhido é o modelo SS24E12DLNW-E, que tem um
custo/benefício razoável para o projeto. Além disto, ele tem um controlador embutido,
simplificando e diminuindo o tamanho do circuito do hardware. Este LCD tem resolução de
240x128 pixels e tela com tamanho de 10 cm de largura por 5,6 cm de altura. O LCD
também possui backlight que sempre está ligado.
6
O controlador embutido é o modelo T6963C da Toshiba. O controlador
possibilita usar modo gráfico, texto ou ambos ao mesmo tempo. A pinagem do LCD é
mostrada na Tabela 2. Na Tabela 3 mostra-se os parâmetros de operação do LCD.
Tabela 2 – Pinagem do LCD.
Pino Função Pino Função 1 GND 11 Linha de dado 2 GND 12 Linha de dado 3 Alimentação lógica 13 Linha de dado 4 Alimentação para Contraste 14 Linha de dado 5 Write 15 Linha de dado 6 Read 16 Linha de dado 7 Chip enable 17 Linha de dado 8 Comando/Dado 18 Linha de dado 9 Tensão de entrada negativa 19 Seleção fonte texto 10 Reset 20 Sem conexão
Tabela 3 – Parâmetros de operação do controlador do LCD [2].
Função Mínimo Típico Máximo Unidade Alimentação 4,75 5,0 5,25 V Tensão para nível lógico alto 0,7 -- VDD V Tensão para nível lógico baixo 0 -- 0,3 V
-- -- 12 mA Corrente de alimentação -- -- 2,0 mA
2.4 Conversor USB/Serial
O conversor USB/Serial é uma placa desenvolvida no Departamento de
Engenharia de Computação do UNICENP (Centro Universitário Positivo). Ele se conecta
na porta USB do computador. Um driver especial deve ser instalado no computador que
reconhece o conversor como uma nova porta de comunicação serial (COMx).
A placa é de uso simples (Figura 4), sendo somente necessário colocar o
terra da placa em comum com o terra do circuito no qual vão se conectar as linhas de
transmissão e recepção serial no microcontrolador [5].
7
A placa possibilita usos mais complexos de comunicação serial, como
controle de fluxo por hardware, entre outras funções. No projeto esses recursos não foram
usados e um controle de fluxo por software foi implementado.
Figura 4 – Funcionamento básico do Conversor USB/Serial.
8
3. ESPECIFICAÇÃO TÉCNICA
A especificação técnica descreve detalhes técnicos dos módulos de software
e hardware, que serão comentados a seguir.
3.1 Módulo de software
O módulo de software será implementado em C++, usando o Borland C++
Builder 6 para facilitar o projeto de software, pois é uma ferramenta RAD. Para
desenvolver a interface o software vai usar o conceito de arrastar e soltar os mostradores.
Uma barra de ferramentas traz a lista de mostradores e um painel, à
esquerda da tela virtual de LCD, mostra as propriedades do mostrador selecionado
(Figura 5). O usuário projetista pode gravar a interface em um arquivo no computador, e,
querendo, abri-lo mais tarde. O mesmo pode ser feito com a interface gravada no
hardware, onde o usuário pode ler a interface da memória e editá-la no software.
Figura 5 – Tela principal do software.
Os mostradores são listados a seguir:
Mostrador analógico: mostrador analógico comum com escala graduada determinada
pelo projetista. A Figura 6 mostra um exemplo. As propriedades específicas do mostrador
9
são descritas na Tabela 4. O ângulo zero é a reta que aparece na Figura 6 e o valor do
ângulo aumenta no sentido horário.
Figura 6 – Mostrador analógico.
Tabela 4 – Propriedades do mostrador analógico.
Propriedade Descrição Graduação Número de divisões da escala graduada Escala Valor somado ao tamanho padrão do mostrador Ângulo Inferior Ângulo inferior para o indicador Ângulo Superior Ângulo superior para o indicador Valor Valor atual do mostrador Valor mínimo Valor mínimo da escala Valor máximo Valor máximo da escala
Mostrador digital: mostrador que pode ter vários displays de sete (7) segmentos (Figura
7), um ao lado do outro, dentro da sua área interna. As propriedades específicas do
mostrador são descritas na Tabela 5.
Figura 7 – Mostrador Digital.
Tabela 5 – Propriedades do mostrador digital.
Propriedade Descrição Valor Valor atual do mostrador Valor mínimo Valor mínimo da escala Valor máximo Valor máximo da escala Dígitos O número de dígitos que o mostrador digital possui
10
Mostrador com indicação usando barras: este mostrador segue a idéia de uma barra
de LEDs (Figura 8). Retângulos fazem o papel dos LEDs. As propriedades específicas do
mostrador são descritas na Tabela 6.
Figura 8 – Mostrador com indicação usando barras.
Tabela 6 – Propriedades do mostrador de barras.
Propriedade Descrição Largura Largura do mostrador Altura Altura do mostrador Orientação Indica se o mostrador tem orientação vertical ou horizontal Número de retângulos Indica o número de retângulos no mostrador Valor Valor atual do mostrador Valor mínimo Valor mínimo da escala Valor máximo Valor máximo da escala
Medidor com indicador: Um indicador mostra o valor atual (Figura 9). O mostrador
possui escala graduada ajustável. As propriedades específicas do mostrador são descritas
na Tabela 7.
-
-
-
-
-
-
-
-
-
-
- Figura 9 – Mostrador com indicador.
11
Tabela 7 – Propriedades do mostrador com indicador.
Propriedade Descrição Largura Largura do mostrador Altura Altura do mostrador Graduação Número de divisões da escala graduada Orientação Indica se o mostrador tem orientação vertical ou horizontal Valor Valor atual do mostrador Valor mínimo Valor mínimo da escala Valor máximo Valor máximo da escala
Texto estático: representa um texto estático que é definido pelo usuário, sendo mostrado
na Figura 10 de forma meramente ilustrativa, que não corresponde à fonte usada no
microcontrolador. A fonte do texto é fixa no firmware e não possui qualquer tipo de estilo
de texto. O texto é limitado a trinta (30) caracteres. A única propriedade deste mostrador é
mostrada na Tabela 8.
Texto
Figura 10 – Texto estático.
Tabela 8 – Propriedades do mostrador de texto.
Propriedade Descrição Texto Texto que vai ser colocado no display
Menu de seleção: A tela do usuário pode ter somente um menu (Figura 11), o qual possui
até cinco itens. Cada item do menu tem uma única ação (Tabela 10) e um texto
associados. O texto do item do menu comporta no máximo trinta (30) caracteres. A Tabela
9 descreve as propriedades que um item do menu possui.
Menu
Figura 11 – Menu.
Tabela 9 – Propriedades do item do menu.
Propriedade Descrição Texto Texto do item do menu
12
Ação Especifica qual ação o item deve fazer quando selecionado ComutarItem1 Primeiro item para comutar a visibilidade ComutarItem2 Segundo item para comutar a visibilidade
Visibilidade Item para alterar a visibilidade
Tabela 10 – Lista de ações de um item do menu.
Ação Descrição Comutar visibilidade Troca o valor de visibilidade de um mostrador Troca de mostrador Alterna a visibilidade de dois mostradores na tela
Gerar sinal externo Manda para o mundo externo qual item foi selecionado
O usuário vai associar cada mostrador colocado na tela a uma das
dezesseis (16) posições de memória ou a uma das duas entradas analógicas disponíveis.
Algumas propriedades são comuns a todos os mostradores e estão descritas na Tabela
11.
Tabela 11 – Propriedades comuns a todos os mostradores.
Propriedade Descrição Posição de memória Posição de memória a qual o mostrador está associado
Visibilidade Indica se o mostrador está visível ou não Posição X Número de pixels que o mostrador está deslocado da
margem esquerda do display Posição Y Número de pixels que o mostrador está deslocado da
margem superior do display
Todos os mostradores têm um tamanho padrão, exceto o mostrador de
texto, cuja largura depende do número de caracteres, e o mostrador digital, que tem altura
fixa e a largura varia com o número de dígitos escolhidos. Mostradores com tamanho
padrão têm seu tamanho alterado pela propriedade de escala no mostrador analógico, ou
pelas propriedades de largura e altura, nos mostrador com barras e com indicador.
3.2 Módulo de hardware
O módulo de hardware será independente de um computador, tirando o fato
de que a interface terá que ser projetada em um computador e então transferida para o
13
hardware. Os componentes principais do hardware serão um LCD gráfico,
microcontrolador, memória EEPROM e o conversor USB/Serial. Um potenciômetro vai
ajustar o contraste do LCD.
O hardware (Figura 12) disponibilizará dois barramentos para entrada de
dados digitais. Um barramento será para o endereço, com quatro linhas, e outro para o
barramento de dados, com oito linhas. Um sinal de interrupção sinalizará para o
microcontrolador que existe um dado que deve ser lido.
Um terceiro barramento com quatro linhas indica para o mundo externo que
um item do menu foi selecionado. Outro sinal de controle indica que este barramento
possui um novo valor, permitindo que o usuário selecione varias vezes o mesmo item e
que um circuito externo consiga detectar isto.
O usuário também terá a seu dispor duas entradas analógicas. O valor de
tensão vai poder variar de 0V a 5V. Uma proteção, em cada uma das entradas, evitará
que o circuito do hardware seja danificado. O limite máximo da proteção é de 15V.
Figura 12 – Diagrama em blocos do hardware.
A memória EEPROM interna do microcontrolador vai ser usada para
armazenar as informações dos mostradores quando estes forem transferidos do
14
computador para o hardware. Com tamanho de 2 Kbytes, esta memória EEPROM pode
ter dezenas de mostradores. Cada mostrador tem seu tamanho específico na memória,
pois alguns mostradores têm mais propriedades do que outros.
O LCD será conectado diretamente nos ports do microcontrolador. Somente
as 8 linhas de dados e 3 sinais de controle são necessários. Os sinais de controle
necessários são chip-enable, write e comando/dado.
O sinal chip-enable (/CE) habilita o controlador de modo geral, para qualquer
operação envolvendo o LCD este sinal deve estar em nível baixo. O sinal de write (/WR)
habilita a escrita no LCD através do controlador, este também é ativo em nível baixo. O
sinal de comando/dado sinaliza ao controlador do LCD se o valor que está no barramento
de dados do LCD é uma instrução (comando) ou um parâmetro de um comando.
3.3 Firmware
O firmware será implementado na linguagem C, usando-se o programa
WinAVR. Ficarão a cargo do firmware as seguintes tarefas:
1. Desenhar e atualizar a tela;
2. Monitorar os botões para acesso ao menu;
3. Monitorar porta serial do microcontrolador;
4. Receber valores para os mostradores pelas entradas digitais e
analógicas.
Quando o microcontrolador sofrer um reset ou o sistema for ligado, um
processo de inicialização vai ocorrer e este vai configurar a comunicação serial, o
conversor analógico/digital e inicializar variáveis.
A partir de rotinas predefinidas, o firmware desenha e atualiza a interface no
LCD. O firmware lê as informações de cada mostrador da memória e desenha os
mostradores em um buffer na memória do controlador.
15
Os indicadores foram projetados para serem apagados sem interferir no
resto do desenho do mostrador. Assim, quando for necessário mudar o indicador,
somente este é apagado e então redesenhado na posição devida. Isto poupa o trabalho
de desenhar os mostradores toda vez que se precisar atualizar a tela com novos valores
dos mostradores.
Para entrada de dados, os sinais de interrupção do microcontrolador serão
usados. A entrada digital de dados será feita usando dois ports do microcontrolador. Um
deles refere-se ao dado de 8 bits e o outro a qual posição de memória esse dado
pertence. Neste caso serão usados somente 4 bits do port.
3.4 Comunicação software x hardware
A comunicação do software, no computador, e do hardware, é do tipo serial
por uma conexão USB. O software pode ler, gravar, apagar ou pedir o tamanho de uma
interface que está na memória. Quatro comandos vão controlador o vetor de valores do
hardware no software. Outro comando vai permitir o software detectar se o hardware está
presente. O protocolo de comunicação é mostrado na Figura 13. Os comandos que serão
aceitos são descritos na Tabela 12
Figura 13 – Protocolo de comunicação do software com o hardware e vice-versa.
O firmware sempre faz um eco do comando para servir como confirmação,
deste jeito, além de servir como confirmação do comando, o software pode saber que o
hardware ainda está conectado, respondendo e funcionando.
16
Tabela 12 – Comandos da comunicação software X hardware
Letra do Comando
Ação Direção (hardware para software)
Bytes
L Leitura da interface na memória. Envia Variável*
G Gravação de uma interface na memória. Recebe Variável*
C Limpa a memória. -- Nenhum
X Comando para eco (verifica se o hardware está presente) -- Nenhum
E Envia o último endereço em uso da EEPROM. Envia 2
R Lê uma posição do vetor de valores. Envia 1
W Escreve em uma posição do vetor de valores. Recebe 2
S Envia o tamanho do vetor de valores.
Envia 1
*O número de bytes varia conforme o numero de mostradores contidos na interface.
3.5 Interação com o usuário
O sistema tem dois tipos de usuários: o usuário projetista, que projeta a
interface no computador; outro que usa o sistema como usuário final do produto. O
usuário que projeta a interface usa o software do computador e então gravar a interface
na memória do hardware.
Este usuário projetista também fornece as entradas para atualizar os
mostradores da interface. O usuário final pode interagir com o sistema, caso o projetista
tenha colocado um menu na interface. Três botões fornecem acesso ao menu: um botão
vai selecionar o item atual e os outros dois vão fazer a navegação pelo menu.
17
4. PROJETO
O projeto é divido em módulo de hardware, software e firmware. Todas as
partes são esclarecidas a seguir. Depois disso, detalhes como cronograma, estimativa de
custo e possíveis expansões do projeto são discutidas.
4.1 Hardware
O projeto do hardware tem três principais objetivos:
� Entrada e saída de dados;
� Controle do LCD;
� Comunicação com o computador.
4.1.1 Entrada/Saída
O Anexo 3 mostra o diagrama esquemático do circuito do hardware. Os
sinais de entrada e saída do projeto no diagrama são descritos na Tabela 13.
Tabela 13 – Sinais de Entrada/Saída.
Sinal Direção Descrição 12V Entrada Entrada de alimentação do circuito. GND Entrada Referência de 0V do circuito (terra).
M Saída Barramento que indica qual item do menu foi selecionado.
MCHG Saída Indica que o item do menu foi selecionado. E Entrada Endereço do dado digital. D Entrada Dado digital.
BCIMA Entrada Push-button para controlar o menu. BBAIXO Entrada Push-button para controlar o menu.
BSEL Entrada Push-button para selecionar item do menu. DA Entrada Entrada analógica.
INTA Entrada Interrupção indicando novo valor analógico. INTD Entrada Interrupção indicando novo valor digital.
RESET Entrada Push-button para reiniciar o sistema.
18
A Tabela 14 descreve os sinais de endereços e dados quanto ao tipo e tamanho (número de linhas). Na Tabela 15
Tabela 15 – Sinais de Controle.
os sinais de controle e seus níveis de ativação são descritos.
Tabela 14 – Barramentos de entrada/saída com seu tipo e tamanho.
Sinal Tipo Tamanho M Endereço 4 DA Dados 2 E Endereço 4 D Dados 8
Tabela 15 – Sinais de Controle.
Sinal Ativação MCHG Borda de Subida INTA Borda de Subida INTD Borda de Subida
BCIMA Nível Baixo BBAIXO Nível Baixo
BSEL Nível Baixo
Os sinais de controle do menu (BCIMA, BBAIXO e BSEL) estão sempre em
nível alto e vão para nível baixo quando o push-button correspondente é apertado. É
gerado um pulso de 1 µS no sinal MCHG, quando um novo valor estiver disponível no
barramento M. As entradas analógicas possuem proteção de 15V, podendo o sinal variar
de 0V a 5V e tendo como referência 0V.
4.1.2 Controlador LCD
O controle do LCD é feito usando os sinais descritos na Tabela 16. A ligação
é direta do microcontrolador com o controlador do LCD. Os sinais de leitura (/RD) e escrita
(/WR) do controlador são ativos em nível lógico baixo e o sinal A0 (C/D) indica se o valor
do barramento D é um dado ou uma instrução.
19
Tabela 16 – Sinais do controlador LCD.
Sinal Tipo Descrição Tamanho Ativação D Barramento Dados/Instrução. 8 --
/EN Controle Chip enable. 1 Nível baixo /WR Controle Sinal de escrita 1 Nível baixo
C/D Controle Indica se está sendo enviado um dado ou uma instrução.
1 --
4.1.3 Comunicação
A comunicação com o computador é feita por USB. Os sinais TX e RX são
ligados na placa do TUSB e o terra da placa do TUSB é ligado em comum com o terra do
circuito do microcontrolador. O TUSB se encarrega de encaminhar para o computador o
que o microcontrolador enviar para ele e de encaminhar para o microcontrolador o que o
computador lhe enviar. Os pinos de TX e RX do microcontrolador operam no nível de
tensão TTL.
4.2 Software
O software do computador tem como objetivo dar ao usuário a possibilidade
de montar visualmente a interface, arrastando os mostradores e editando suas respectivas
propriedades. O projeto do usuário pode ser gravado no computador, usando um arquivo
XML – exemplo do formato pode ser encontrado no Anexo 1.
4.2.1 Diagrama de Classe
O diagrama de classe é mostrado na Figura 14.
20
Figura 14 – Diagrama de Classe.
Na classe base para os mostradores, a IMostrador tem um atributo que
guarda as propriedades do mostrador. As propriedades são mantidas em um vetor de
objetos da classe CPropriedade.
O método virtual “Desenhar” da classe de interface IMostrador deve ser
implementado nas classes específicas. Este método vai retornar uma imagem bitmap que
é mostrada na tela simulando um mostrador ou o menu.
21
Uma classe de comunicação será desenvolvida (CComunicacao). Ela
simplesmente envia um conjunto de bytes para a porta serial e também receber um
conjunto de bytes dela.
4.2.2 Casos de Uso
A Figura 15 mostra o diagrama de casos de uso do software. Quatro casos
de uso foram identificados e cada um deles é desenvolvido em diagramas de seqüência
nos próximos capítulos.
ud Casos de Uso NOVO
Sistema
Projetista
Configurar Comunicação
Manter Projeto
Configurar Mostradores
Configurar Menu
Figura 15 – Diagrama de Casos de Uso.
4.2.2.1 Configurar Comunicação
A Figura 16 mostra o diagrama de seqüência para este caso de uso. O
propósito deste caso de uso é configurar a porta de comunicação.
22
sd Configurar Comunicação
Projetista
Interface CProjeto CComunicacao
SetPorta(Porta)
SetPorta(Porta)
SetPorta(Porta)
SetVelocidade(Velocidade)
SetVelocidade(Velocidade)
SetVelocidade(Velocidade)
Figura 16 – Diagrama de Seqüência para Caso de Uso Configurar Comunicação.
4.2.2.2 Configurar Mostradores
A Figura 17 mostra o diagrama de seqüência para este caso de uso. Este
caso de uso serve para adicionar, remover ou alterar propriedades de mostradores, assim
como desenhar os mostradores na tela do programa.
23
sd Config Mostradores
Projetista
CProjeto IMostradorInterface
AdicionarMostrador(Tipo, X, Y)
AdicionarMostrador(Tipo, X, Y)
*GetDesenho(Index)
GetDesenho
RemoverMostrador(Index)
RemoverMostrador(Index)
*GetDesenho(Index)
GetDesenhoAlterarPropMost(Propriedade,NovoValor)
AlterarPropMost(Propriedade,NovoValor)
AlterarPropMost(Propriedade,NovoValor)
*GetDesenho(Index)
GetDesenho
Figura 17 – Diagrama de Seqüência para Caso de Uso Configurar Mostradores.
4.2.2.3 Manter Projeto
A Figura 18 mostra o diagrama de seqüência para este caso de uso. O
projeto será gravado no computador usando um arquivo XML. Um exemplo de formato
está no Anexo 1. Este caso de uso ajuda o usuário a gravar o projeto, para abri-lo mais
tarde, ou enviá-lo para o hardware, podendo também ler a interface diretamente do
hardware mais tarde.
24
Figura 18 – Diagrama de Seqüência para Caso de Uso Manter Projeto.
4.2.2.4 Configurar Menu
A Figura 19 mostra o diagrama de seqüência para este caso de uso. Este
caso de uso tem como objetivo específico permitir adicionar e configurar um menu.
25
sd Config Menu
Projetista
Interface CProjeto CMenu
AdicionarMenu(posX, posY)
AdicionarMenu(posX, posY)
RemoverMenu
RemoverMenu
AlterarMenu(posX, posY)
AlterarMenu(posX, posY)
AlterarMenu(posX, posY)
AdicionarItemMenu(Texto)
AdicionarItemMenu(Nome)
AdicionarItemMenu(Nome)
AlterarItemMenu(Posicao,NovaPos, Texto, Acao,
ComutarItem1, ComutarItem2,VisibilidadeItem)
AlterarItemMenu(Posicao,NovaPos, Texto, Acao,
ComutarItem1, ComutarItem2,VisibilidadeItem)
AlterarItemMenu(Posicao,NovaPos, Texto, Acao,
ComutarItem1, ComutarItem2,VisibilidadeItem)
RemoverItemMenu(Posicao)
RemoverItemMenu(Posicao)
RemoverItemMenu(Posicao)
Figura 19 – Diagrama de Seqüência para Caso de Uso Configurar Menu.
4.2.3 Protocolo de Comunicação
O protocolo de comunicação é mostrado na Figura 20. O fim de transmissão
é identificado por três caracteres com valor ASCII 10 (line feed). A parte de dados do
protocolo inclui informações como tipo do mostrador e suas propriedades. O campo de
tipo do mostrador será feito como descrito na Tabela 17. A parte do protocolo (dados)
onde os mostradores são enviados varia de tamanho.
Figura 20 – Protocolo de comunicação.
26
A parte de dados depende do número de mostradores que o usuário coloca
na interface e também quais mostradores o usuário utilizou.
Tabela 17 – Tabela do tipo do mostrador.
Mostrador Valor do byte Digital 1 Analógico 2 C/ Barras 3 C/ Indicador 4 Texto 5 Menu 6 Item do Menu 7
A ordem de envio dos mostradores é a mesma ordem que está no software.
Assim os itens do menu podem referenciar os mostradores sem problemas. A Tabela 18
mostra as informações que sempre são enviadas junto com as informações específicas de
cada mostrador. O valor zero será usando para indicar que o mostrador não está visível e
qualquer valor diferente será usado para indicar que o mostrador está visível.
Tabela 18 – Informações comuns aos mostradores.
Propriedade Tamanho (bytes) Tipo mostrador 1 Posição de memória 1 Visibilidade 1 Posição X 2 Posição Y 2
As Tabela 19 a Tabela 25 mostram a configuração específica de cada
mostrador.
Tabela 19 – Propriedades enviadas do mostrador analógico.
Propriedade Tamanho (bytes) Graduação 1 Escala 1 Ângulo Inferior 2 Ângulo Superior 2 Valor 1
27
Valor mínimo 2 Valor máximo 2
Tabela 20 – Propriedades enviadas do mostrador com barras.
Propriedade Tamanho (bytes) Largura 2 Altura 2 Orientação 1 Número de retângulos 1 Valor 1 Valor mínimo 2 Valor máximo 2
Tabela 21 – Propriedades enviadas do mostrador com indicador.
Propriedade Tamanho (bytes) Largura 2 Altura 2 Graduação 1 Orientação 1 Valor 1 Valor mínimo 2 Valor máximo 2
Tabela 22 – Propriedades enviadas do mostrador de texto.
Propriedade Tamanho (bytes) Texto 30
Tabela 23 - Propriedades enviadas do mostrador digital.
Propriedade Tamanho (bytes) Valor 1 Valor mínimo 2 Valor máximo 2 Segmentos 1
Tabela 24 – Propriedades enviadas do menu.
Informação Tamanho (bytes) Número de itens 1
Tabela 25 – Propriedades enviadas do item do menu.
Informação Tamanho (bytes)
28
Texto 30 Ação 1
Comutar item 1 1 Comutar item 2 1 Visibilidade item 1
A orientação de mostrador que aparece na Tabela 20 e Tabela 21 funciona
com valor zero para orientação vertical e qualquer outro valor para orientação horizontal.
A ordem de envio das propriedades segue a ordem das Tabelas. Primeiro
são enviadas as propriedades da Tabela 18 e em seguida as propriedades específicas de
cada mostrador.
4.3 Firmware
O firmware vai executar quatro tarefas principais:
1. Desenhar e atualizar a tela;
2. Monitorar os botões para acesso ao menu;
3. Monitorar porta serial do microcontrolador;
4. Receber valores para os mostradores pelas entradas digitais e
analógicas.
A Figura 21 mostra o fluxograma para quando o sistema é ligado ou sofre
uma operação de reset. O processo de configuração consiste em inicializar ports, o
conversor A/D interno e a serial do microcontrolador.
Depois dessas tarefas feitas, o algoritmo vai verificar se existe uma interface
na memória interna do microcontrolador. Se houver uma interface, o microcontrolador a
desenha e depois disso vai monitorar os botões de acesso ao menu. Caso contrário, uma
mensagem de erro aparece no display LCD.
29
Figura 21 – Fluxograma quando microcontrolador recebe reset.
A Figura 22 mostra como o firmware vai desenhar a interface na memória do
controlador do LCD. A memória é limpa, preenchida com valor zero, e então os
mostradores são o desenhados conforme eles estão na memória.
30
Figura 22 – Fluxograma do desenho da interface na tela.
A Figura 23 mostra o fluxograma para o algoritmo que vai monitorar os
botões que o usuário vai poder usar para mexer no menu.
Basicamente, precisa-se observar se os botões para cima ou baixo foram
apertados e se o item atual selecionado é o primeiro item do menu ou o último. Isto deve
ser observado para que o contador que indica qual o item atual que está ativo não saia
dos limites do número de itens do menu.
31
Figura 23 – Fluxograma para monitoração entrada do usuário.
32
A Figura 24 mostra como será tratada a leitura da serial quando o
microcontrolador recebe dados pela sua porta serial. Como se pode ler ou gravar uma
interface na memória do microcontrolador, o comando que identifica isto é um ponto
importante.
A partir deste ponto o que vai acontecer são operações de leitura da
memória e envio de dado ou recebimento de dado e escrita na memória.
33
Figura 24 – Fluxograma para comunicação serial.
34
A Figura 25 mostra como o microcontrolador vai receber os valores com que
o usuário deseja atualizar os mostradores.
Figura 25 – Fluxograma para receber valores para atualização dos mostradores.
A Figura 26 mostra o diagramas de estado do firmware. A descrição dos
estados encontra-se na Tabela 26.
35
Tabela 26 – Descrição dos estados do firmware.
Estado Descrição
Configurando Inicializando variáveis, verificando EEPROM por interface, configurando a porta serial e o conversor A/D.
Monitorando Botões Monitora os pinos específicos do microcontrolador esperando que o usuário aperte um dos botões.
Armazenando Valor Armazena o valor dado pelo usuário. Atualizando Interface Neste estado o display LCD é atualizado.
Executando Ação Quando o botão de seleção é pressionado pelo usuário. Neste estado a ação associada ao item menu atual é executada.
Lendo Serial Este estado acontece quando a interrupção da serial é acionada. Enviando Interface A interface na memória vai ser enviada para o computador.
Recebendo Interface O microcontrolador vai receber uma interface.
sm Diagramas
Configurando
Executando Ação
Monitorando Botões
Atualizando Interface
Armazenando Valor
Enviando Interface
Recebendo Interface
Inicio
Lendo Serial
Comando Ler
Comando Gravar
Comando Desconhecido
Fim Atualização
Int. Digital/Analógica
Pressionado Botãopara Cima/Baixo
Pressionado BotãoSelecionar
Int. Serial
Ação executada
Fim Configuração
Dado Armazenado
Figura 26 – Diagrama de estados do firmware.
4.4 Cronograma
O período de realização do projeto se encontra no Anexo 2.
4.5 Estimativa de Custo
A Tabela 27 mostra os custos estimados para o projeto caso este fosse
desenvolvido para se tornar um projeto comercial. Os custos de matérias do projeto foram
36
baixos para o desenvolvimento, pois o microcontrolador e o display gráfico, que são itens
mais caros e precisariam ser adquiridos, foram disponibilizados pelo UNICENP.
Além destes, outros itens como computador, multímetro, fonte analógica,
osciloscópio e gerador de funções também foram fornecidos pelo UNICENP. Tais itens
aumentariam o custo do projeto em alguns milhares de reais.
Para uma produção em série, alguns itens só seriam pagos uma única vez,
como, por exemplo, fonte, osciloscópio etc. Assim, o custo inicial do projeto seria alto, mas
a longo prazo, como esperado, o custo tenderia a cair.
Tabela 27 – Estimativa de custos.
Recurso Qt. Custo Unit. (R$) Custo do Recurso (R$) ATmega64L 1 80,00 80,00 LCD Gráfico 1 250,00 250,00 Push-Buttons 3 0,10 0,30 Cristal 8 MHz 1 2,28 2,28 Potenciômetro 3 4,00 12,00 Dip-Switch 2 0,30 0,60 Placa TUSB 1 33,20 33,20 Protoboard 1 69,00 69,00 Soquete 8 pinos 1 0,10 0,10 LM358 1 0,3 0,30 Placa padrão 1 14,00 14,00 Horas de Trabalho 800 40,00 32.000,00 Total 32.461,78
4.6 Módulos de expansão
Vários recursos adicionais poderiam ser adicionados ao projeto. Um recurso
útil seria a adição de páginas na interface, que seriam alteradas por botões ou por itens do
menu. Isto levaria o projeto a um novo nível, mais complexo, possibilitando maior
liberdade ao usuário.
Módulos de expansão para o projeto seriam possíveis tanto na parte de
hardware, quanto na parte de software. Para expansão do hardware:
1. Uma interface genérica para utilização de LCD;
37
2. Adicionar mais entradas analógicas no sistema;
3. Aumentar a proteção nas entradas analógicas;
4. Sistema de segurança.
Como quase todos os controladores de display gráfico usam, basicamente, o
mesmo tipo de sinais de controle e dados é possível fazer uma interface genérica para
facilitar a mudança de um display gráfico para outro. Um exemplo seria comunicar o
ATmega a um outro microcontrolador, onde o ATmega só enviaria comandos como
“inicializar LCD”, “ligar pixel na posição x/y qualquer” etc., em um protocolo.
Caso o LCD mude a única que seria alterada é este microcontrolador
intermediário que interage com o LCD diretamente, única regra que deveria ser obedecida
é o protocolo de comunicação entre os dois microcontroladores.
O aumento da proteção nas entradas analógicas poderia envolver um
circuito mais complexo que aumentaria a corrente e tensão máximas que poderiam ser
aplicadas fora do limites de 0V e 5V.
O hardware não impede de nenhuma maneira que a interface gravada na
memória seja lida por alguém não autorizado, basta usar o software ou saber o protocolo
de comunicação. Um sistema de segurança poderia ser implementado no firmware em
conjunto com os bits de configuração do ATmega64.
Seria fácil adicionar novos mostradores para expandir o software, em razão
de como este foi implementado, mas isto implicaria em alterações no firmware. Outras
idéias seriam:
1. Uma janela de personalização para a fonte do texto e para a fonte usada
no mostrador digital;
2. Configuração da velocidade de comunicação variável;
3. Adição de recursos para facilitar a vida do usuário.
38
Possibilitando-se ao usuário projetista configurar as fontes, o projeto se
tornaria ainda mais flexível. Velocidade de comunicação configurável (9600 bps, 19200
bps, 38400 bps, 57600 bps...) poderia ser realizada com simples alterações no firmware.
Os recursos como “copiar e colar” e a múltipla seleção de mostradores
poderiam ser adicionados ao software, como funcionalidades não essenciais mais para
facilitar a vida do usuário na hora de projetar a interface.
39
5. VALIDAÇÃO
A validade se dá em duas partes: Hardware e Software. Cada uma delas é
explicada a seguir.
5.1 Validação do software
As duas interfaces que serão projetadas são mostradas na Figura 27.
Figura 27 – Telas de validação do software.
A interface da direta, mostrada na Figura 27, testa o mostrador analógico, o
mostrador digital e o texto estático. Um menu, com três itens, comuta a visibilidade dos
dois mostradores e o terceiro item do menu gera um sinal externo. O mostrador analógico
será associado com a entrada analógica “1” do hardware e o mostrador digital à posição 6
da memória.
A segunda interface, à esquerda na Figura 27, testa o mostrador com
indicador e o mostrador com barras. Textos estáticos também são usados nesta tela.
Sempre existe um mostrador de cada tipo visível na tela, enquanto que o mostrador com
orientação diferente permanece ou não visível, quando um item do menu for selecionado.
Os mostradores com indicador são associados à posição três (3) da
memória e os medidores com barras à posição nove (9) da memória.
40
5.2 Validação do hardware
A validação do hardware usou as interfaces projetadas no software. Um
potenciômetro é conectado à entrada analógica 1 e uma chave é conectada à interrupção
analógica. Os 5 bits menos significativos e o bit mais significativo são ligados a chaves.
Quatro chaves são conectadas às linhas de endereço e uma chave é
conectada ao sinal que indica que um novo valor está disponível no barramento de dados.
Com isto feito, torna-se possível testar o hardware e o design feito no software, variando o
valor do potenciômetro e gravando esse valor em uma posição de memória associada
com um componente.
41
6. RESULTADOS
Os resultados obtidos nos projetos do hardware e do software são discutidos
nos próximos itens.
6.1 Hardware
O hardware teve o comportamento esperado, cumprindo o que foi projetado
para fazer. A entrada e a saída de dados foram realizadas com sucesso, tanto na parte
digital, como na parte analógica do projeto.
A velocidade de atualização máxima não pode ser testada, mesmo porque o
LCD gráfico usado não possui uma taxa de atualização adequada para uma velocidade
muito rápida de atualização da tela.
Figura 28 – Foto do hardware na caixa com uma das interfaces de validação no LCD.
42
De qualquer maneira o firmware foi projetado para ter a maior velocidade
possível, somente atualizando a tela nas partes que forem necessárias, evitando que
outras partes da tela fiquem “piscando”.
A velocidade de comunicação serial é fixa em 38.400 bps. Isto faz com que
uma interface com cinco mostradores e um menu com três itens demore
aproximadamente quatro segundos para ser gravada na memória EEPROM do
microcontrolador.
Uma interface com esta configuração teria valor perto de 100 bytes,
dependendo de quais mostradores fossem usados. A gravação demora vários segundos
devido ao fato de que o microcontrolador leva alguns milisegundos para gravar o conteúdo
transmitido na memória EEPROM.
O software do computador espera o sinal do microcontrolador para enviar
um novo pacote de bytes logo depois que o pacote anterior foi gravado. Este pacote tem
3 bytes de tamanho, mas o firmware pode ser alterado para usar um pacote maior,
podendo assim aumentar o desempenho nesta parte.
Um fato que foi notado é a corrupção dos dados na memória EEPROM do
microcontrolador quando este é ligado ou desligado. Isto é uma característica da memória
por ela ser embutida no microcontrolador. Uma pesquisa na referência [1] revelou que isto
não pode ser evitado de forma 100% eficaz, mas pode ser abrandado.
A proteção para as entradas analógicas fica em 15V no máximo, uma tensão
maior que 15V queima a proteção sem danificar o microcontrolador. Neste caso somente
é preciso trocar o componente que faz a proteção, cujo preço é baixo e fácil de ser
encontrado.
6.2 Software
O software foi implementado conforme o projeto sem problemas. É possível
configurar a interface do jeito que o usuário desejar, dentro dos limites preestabelecidos,
43
como é mostrador por dois projetos diferentes na Figura 29B, a Figura 29A mostra a
janela de edição de menu. O software tem desempenho rápido. Isto se deve ao fato de
que a atualização da tela é desenhada completamente na memória para depois ser
mostrada na tela.
Figura 29 – (A) Janela de edição do menu. (B) Dois projetos de validação abertos no software.
Para comunicação com o hardware foi lançada mão do recurso de threads.
Isto evitou que o programa travasse enquanto a transferência da interface estava sendo
feita. Este recurso possibilitou que fosse adicionada uma opção para o usuário cancelar a
transferência a qualquer momento.
6.3 Resultado da validação
Os resultados obtidos na validação do projeto foram os esperados. As
interfaces foram projetadas no software e cada uma das interfaces foi transferida para o
hardware e testada, como descritos na parte de validação do projeto.
Usando as chaves e o potenciômetro foi possível fazer alteração dos valores
dos mostradores e usando os botões de controle do menu a interação do usuário com o
sistema teve êxito.
44
7. CONCLUSÕES
O projeto teve uma grande dificuldade com o LCD que seria usado
inicialmente, que não chegou a funcionar, até mesmo quando testados dois modelos
iguais. Um tempo considerável foi utilizado neste problema, mas em paralelo o software e
partes do firmware eram implementados.
Um segundo modelo de LCD gráfico foi usado. Problemas na inicialização do
LCD aconteceram, mas após duas semanas de tentativa ele veio a funcionar a contento.
O microcontrolador parou de trabalhar três vezes, sem motivo aparente. Isto
não atrasou o projeto, mas causou certa apreensão, dando a idéia de que o
microcontrolador tinha queimado. Apesar de todos os contratempos o projeto foi
executado como planejado e os resultados esperados foram os desejados. A idéia do
projeto foi implementada com sucesso.
O projeto pode ser expandido para outras áreas além da área automotiva.
Aviação é um bom exemplo, agrupar os vários instrumentos que o painel do piloto possui
em alguns painéis reconfiguráveis. Qualquer área que utilize vários instrumentos, como
monitoração em uma usina nuclear (hidroelétrica, geotérmica, etc) pode utilizar vários
painéis reconfiguráveis.
Vários os conhecimentos adquiridos. Até então os microcontroladores da
linha ATmega eram desconhecidos. O microcontrolador usado, apesar de um ou outro
problema, provou que tem grande potencial, oferecendo vários recursos para o usuário.
A implementação do software também foi proveitosa. O fato de construir algo
que pode ser alterado pelo próprio usuário a seu bel-prazer, onde cada objeto pode ser
alterado diretamente por ele, com várias propriedades diferentes, tornou a implementação
do software um desafio que foi vencido.
45
8. REFERÊNCIAS BIBLIOGRÁFICAS
[1] Atmel Corporation. Datasheet ATmega64L. Disponível em <http://www.atmel.com>.
Acesso em 12 de mar. de 2005.
[2] Toshiba Semiconductors. Datasheet T6963C. Disponível em
<http://pdf.alldatasheet.com/datasheet-pdf/view/31129/TOSHIBA/T6963C.html>. Acesso em 15
de set. de 2005.
[3] “The Human/Machine Interface”. Disponível em <http://www.ai-
online.com/issues/article_detail.asp?id=56>. Acesso em 5 de mai. de 2005.
[4] “GM’s reconfigurable displays allow personalization, minimize distraction”. Disponível
em <http://features.conceptcar.co.uk/gm2001/inst_panel.php>. Acesso em 6 de mai. de 2005.
[5] Cendon, Rodrigo Villaverde. Conversor USB-Serial. Disponivel em <
http://engcomp.unicenp.edu.br/>. Acesso em 24 abr. 2005.
[6] “WinAVR” <http://winavr.sourceforge.net/>. Acesso em 10 abr. de 2005.
[7] Media Center, Siemens VDO Automotive.
<http://www.usa.siemensvdo.com/media/images/ii/list.htm>. Acesso em 5 dez. 2005.
46
9. GLOSSÁRIO
Software – Programa de computador.
Hardware – Conjunto de componentes eletrônicos e (ou) elétricos.
Bit – Um valor binário.
Byte – Um número inteiro composto por oito bits.
Buffer – Um pedaço de memória temporário usada para armazenar dado.
String – um vetor de caracteres terminando com o valor zero.
Protocolo – Linguagem de comunicação entre dois ou mais sistemas.
Firmware – Programa residente no hardware.
Reset – Ato de reiniciar um dado sistema.
Bitmap – Um formato de imagem no computador.
Driver – Software de computador que disponibiliza um conjunto com funções para acesso
a hardware.
ANEXOS
Anexo 1 – Exemplo de arquivo XML para gravação do projeto no computador.
<interface> <most Tipo="1" X="100" Y="100" Visivel="1" Memoria="4" Escala="10" AngInf="45"
AngSup="270" /> <most Tipo="2" X="10" Y="10" Visivel="1" Memoria="4" Escala="10" NrDisplay="4"
/> <most Tipo="5" Texto="RPM (x1000)" /> <menu X="10" Y="10" > <item Acao="1" ComutaItem1="1" ComutaItem2="2" Visibilidade="-1" /> </menu>
</interface>
Anexo 2 – Cronograma.
Anexo 3 – Diagrama esquemático do hardware
Anexo 4 – Manual Técnico
Anexo 5 – Manual do Usuário
Anexo 6 – Artigo
Id Nome da tarefa1 Aquisição dos componentes
2 Elaboração diagramas esquemáticos de teste
3 Testes com componentes
4 Definição do programa CAD
5 Elaboração diagramas esquemáticos
6 Documentação do projeto
7 Montagem do Diagrama esquemático do projeto
8 Programação do microcontrolador(s)
9 Teste usando configuração pré-definida
10 Implementação programa CAD
11 Teste funcional do programa
12 Teste prog. CAD + Hardware
13 Validação
14 Elaboração documentação+artigo
27 3 10 17 24 1 8 15 22 29 5 12 19 26 3 10 17 24 31 7 14 21 28 4 11 18 25 2 9 16 23 30Abr 05 Maio 05 Jun 05 Jul 05 Ago 05 Set 05 Out 05
Tarefa
Divisão
Andamento
Etapa
Resumo
Resumo do projeto
Tarefas externas
Etapa externa
Prazo final
cronograma
Página 1 de 1
Projeto: cronogramaData: Dom 15/5/05
5
5
4
4
3
3
2
2
1
1
D D
C C
B B
A A
1 1
Microcontrolador ATmega64
A4
1 5Thursday, December 08, 2005
Title
Size Document Number Rev
Date: Sheet of
XTAL1
XTAL2
GND
GN
D
BCIMA
VC
C
VC
C
BBAIXO
GN
D
VC
C
BSEL
GN
D
GND
VC
C
RESET
GN
D
XTAL2
M1M0MCHG
M2M3
VCCGNDXTAL1
RXTX
D2
D7D6D5D4D3
D0INTDINTA
BCIMABBAIXOBSEL
LEDRESET
LED
E2E1
E3
E0
DLCD5
DLCD0DLCD1DLCD2DLCD3
DLCD6
DLCD4
DLCD7
DA0DA1
VCC
VCC
SELA
/WR
C/D/EN
D1
SCKSCK2
SELAINTA
RESET
TX
SCK2
RX
TX
GND
MCHG
D[0..7]
12V VCC
INTD
GND
RX
E[0..3]
12V
EX_DA0EX_DA0
GNDEX_DA0
12V
EX_DA1
M[0..3]
GND
VCC
DLCD0
DLCD3
DLCD1DLCD2
DLCD6DLCD7
DLCD5DLCD4
C/D
/WR/EN
DA1DA0
gravTX
SCK2
gravRXRESET
tsubRX
EX_DA0EX_DA1
tsubTXtusbGND
12VGNDEX_DA0EX_DA1
VCC
DLCD1
DLCD3
DLCD0
DLCD2
DLCD6DLCD5
DLCD7
DLCD4
C/D
/WR/EN
protDA0protDA1
SW2 SW4
SW5
SW_T_SPDT1
32
SW3
U6 LM7805CT
1 3
2
IN OUT
GN
D
C1
22pF
C34.7u
Y1
8Mhz
R5 1K5
D2
LED
R3 1K5
C2
22pF
R2 1K5
R1
1K5
SW1
U1
ATmega64
123456789
1011121314151617181920212223242526272829303132
6463626160595857565554535251504948474645444342414039383736353433
PENPE0 (RXD0/PDI)PE1 (TXD0/PDO)PE2 (XCK0/AIN0)PE3 (OC3A/AIN1)PE4 (OC3B/INT4)PE5 (OC3C/INT5)PE6 (T3/INT6)PE7 (ICP3/INT7)PB0 (/SS)PB1 (SCK)PB2 (MOSI)PB3 (MISO)PB4 (OC0)PB5 (OC1A)PB6 (OC1B)PB7 (OC2/OC1C)PG3 TOSC2/PG3PG4 TOSC1/PG4RESETVCCGNDXTAL2XTAL1PD0 (SCL/INT0)PD1 (SDA/INT1)PD2 (RXD1/INT2)PD3 (TXD1/INT3)PD4 (ICP1)PD5 (XCK1)PD6 (T1)PD7 (T2)
AVCCGND
AREF(ADC0) PF0(ADC1) PF1(ADC2) PF2(ADC3) PF3
(ADC4/TCK) PF4(ADC5/TMS) PF5(ADC6/TDO) PF6(ADC7/TDI) PF7
GNDVCC
(AD0) PA0(AD1) PA1(AD2) PA2(AD3) PA3(AD4) PA4(AD5) PA5(AD6) PA6(AD7) PA7(ALE) PG2(A15) PC7(A14) PC6(A13) PC5(A12) PC4(A11) PC3(A10) PC2(A9) PC1(A8) PC0
(/RD) PG1(/WR) PG0
R4 1K5
INTASELA
INTD
E[0..3]
GND12V
D[0..7]
M[0..3]
MCHG
5
5
4
4
3
3
2
2
1
1
D D
C C
B B
A A
1 1
Esquema de gravacao do ATmega ligado na porta paralela do computador
A4
2 5Monday, November 07, 2005
Title
Size Document Number Rev
Date: Sheet of
GND
RX
TX
RESET
SCK
TXRX
RESET
SCKGND
gravRXRESET
gravTX
SCK2GND
U2
74LS244
2468
1
18161412
11131517
9753
19
A1A2A3A4
1OE
Y1Y2Y3Y4
A5A6A7A8
Y5Y6Y7Y8
2OE
J2
CON25
12345678910111213141516171819202122232425
5
5
4
4
3
3
2
2
1
1
D D
C C
B B
A A
1 1
Conexão do LCD Gráfico
A4
3 5Monday, November 07, 2005
Title
Size Document Number Rev
Date: Sheet of
/WR
C/DDLCD3
GND
DLCD2
GND
PIN9 VCCDLCD1DLCD0
DLCD5
C/D
VCCGND
/EN
GND
DLCD7DLCD4
GND/WRPIN4
DLCD0
DLCD4DLCD5
DLCD7
DLCD1DLCD2DLCD3
DLCD6DLCD6
/EN
GNDPIN9
PIN4
VCC
GND
C/D
/WR
DLCD7
DLCD0
DLCD5DLCD6
DLCD2
DLCD4
DLCD1
DLCD3
/EN
VCC
GND
J8
CON20A
1 23 45 67 89 10
11 1213 1415 1617 1819 20
R6 10KOHM
5
5
4
4
3
3
2
2
1
1
D D
C C
B B
A A
1 1
Conexão TUSB
A4
4 5Monday, November 07, 2005
Title
Size Document Number Rev
Date: Sheet of
RXRX
GNDTX
RX
U10
TUSB
21
3TXRX
GND
5
5
4
4
3
3
2
2
1
1
D D
C C
B B
A A
1 1
Proteção entradas analógicas
A4
5 5Monday, November 07, 2005
Title
Size Document Number Rev
Date: Sheet of
VC
C_8V
GN
D
EX_DA1DA1
EX_DA0
DA0
GN
DV
CC
_8V
12V
EX_DA1
GNDEX_DA0
VCC_8V12V
DA1DA0
GND
GND
EX_DA1
12V
EX_DA0protDA1protDA0
-
+U7B
LM358/CYL
5
67
84
U9 LM7805CT
1 3
2
IN OUT
GN
D
-
+U7A
LM358/CYL
3
21
84
C44.7u
Top Related