Enunciado do projecto

Transcrição

Enunciado do projecto
Laboratórios Integrados II
LECom (1o ano)
Projecto
Ano Lectivo de 2004/05
1 Objectivos
Com este projecto integrado pretende sedimentar-se os conhecimentos relativos a:
• Microprocessadores: arquitectura e diagrama de blocos dum sistema,
princípio de funcionamento, conjunto de instruções dum micro-controlador,
comunicação série entre hardware e software.
• Estruturas de dados lineares e algoritmos básicos, numa abordagem
imperativa, e sua implementação em Assembly e Java.
• Diagramas de estados e uxogramas.
2 Organização e Funcionamento
O projecto será desenvolvido em grupos de 4 alunos dentro e fora das aulas
da disciplina (2 sessões semanais de 2 horas cada).
Nos pontos de controlo (ver calendário abaixo) e no m do semestre, cada
grupo apresentará à equipe docente e à turmapara discussão oral alargada
o trabalho realizado e os resultados obtidos, devendo entregar um relatório
técnico de desenvolvimento devidamente estruturado e fundamentado.
Em cada aula estarão presentes dois docentes que irão esclarecendo questões
especícas dentro da sua área de trabalho.
1
2.1 Calendarização
O projecto deve ser executado ao longo de todo o semestre (o 2o do 1o ano),
com 13 semanas, estando a entrega agendada para a última semana de aulas
(30/Mai a 04/Jun).
Para controlo da situação e avaliação intermédia, haverá 2 apresentações intercalares do projecto, aos docentes perante a turma em geral, nas semanas
7 (de 4 a 9 Abr) e 11 (de 02 a 07 Mai). Na terceira semana (7 a 12 de Mar)
será pedido na aula um planeamento do projecto.
Na semana 7 pretende-se uma apresentação da solução, algoritmos, uxogramas ou diagramas de estado, esquemas de hardware, diagramas de blocos.
Cada grupo faz uma apresentação de 10-15 minutos à turma.
Na semana 11 deverá ser apresentado um protótipo (com hardware e software) que implemente as funcionalidades básicas pedidas. Será efectuada
uma apresentação (10-15 minutos) seguida de algumas questões. Deverá ser
entregue um relatório preliminar que inclua: diagramas de blocos, diagramas
de estados/uxogramas, algoritmos, programas Java e Assembly, esquemas.
Relativamente às comunicações, deverá ser apresentado um esboço do protocolo a implementar.
2.2 Avaliação
Existirão três pontos de avaliação, correspondentes às 3 apresentações do
projecto:
• Apresentação 1 (semana 7) : 10%
• Apresentação 2 (semana 11) : 20%
• Apresentação nal (semana 14) : 55%
Os restantes 15% serão atribuídos à avaliação contínua ao longo do projecto,
incluindo a avaliação do planeamento do projecto.
Em cada ponto de avaliação serão apreciados os resultados (o protótipo apresentado), a apresentação efectuada, o empenho e participação de cada elemento no projecto, o relatório, a criatividade e inovação, a aplicação das
matérias leccionadas.
2
3 Enunciado
Neste projecto pretende implementar-se o sistema de controlo duma máquina de venda automática de bebidas e outros produtos alimentares, designada a partir daqui apenas por posto de venda. O posto de venda
a controlar possui espaço para vários tipos de produtos. Produtos com o
mesmo preço serão colocados no mesmo tabuleiro circular que pode rodar
sob controlo dum motor. Para fornecer produtos, existe uma portinha por
tabuleiro. O posto de venda possui um botão, por tabuleiro, para fazer rodar
esse tabuleiro. O posto de venda dispõe ainda de uma ranhura para introduzir moedas, um botão para pedir a devolução de troco e uma abertura para
devolver o troco (ver gura 1).
O sistema de controlo deve ser implementado com uma parte de software
(programa em Java) e uma parte de hardware (onde deve constar um microcontrolador programado em assembly), que comunicam pela porta série.
Apresenta-se agora uma descrição mais detalhada do sistema de controlo.
O posto de venda aceita apenas 4 tipos de moedas (10 cêntimos, 20 cêntimos, 50 cêntimos e 1 euro) e dispõe de 8 tabuleiros para produtos. Em cada
tabuleiro é possível colocar até 16 produtos.
A cada tabuleiro está associado um motor que o faz rodar e permite assim os
produtos passarem pela portinha de saída. Cada motor trabalha independentemente dos outros motores, sempre na mesma direcção. O motor associado
ao tabuleiro X trabalha enquanto o utilizador premir o botão associado a
esse tabuleiro. O controlo dos motores é feito externamente ao controlador
a implementar, pelo posto de venda.
A portinha associada ao tabuleiro X abre se (i) o utilizador dispuser de um
saldo suciente para adquirir um produto do tipo colocado no tabuleiro X e
(ii) o utilizador forçar a portinha desse tabuleiro. Associada a cada portinha
existe um sensor que detecta se ela está a ser forçada a abrir, activando neste
caso um sinal que funciona como sinal de selecção do produto desejado.
Para simplicar o projecto, cabe ao utilizador vericar que existem produtos
do tipo desejado e que existe um produto alinhado com a portinha antes de
a abrir.
3
Botão para Rodar
o Tabuleiro
Nº do Tabuleiro
Janela para visualizar os
produtos dum Tabuleiro
1
...
2
...
3
...
4
...
5
...
6
...
7
...
8
...
Portinha de
Saída do
Produto
Ranhura para
Inserir Moedas
Botão para
Devolver
Troco
Gaveta de
Troco
Figura 1: Painel frontal do posto de venda de produtos.
Em dado momento, o saldo é igual ao valor total das moedas introduzidas
até esse instante e não devolvidas sob a forma de troco ou dum produto.
O troco é devolvido após o fornecimento dum produto X (valor_do_troco =
saldo−valor_do_produto_X ) ou após premir o botão de devolução de troco
(valor_do_troco = saldo).
4
3.1 Tarefas a Desenvolver
No projecto a desenvolver, a parte de software deve realizar as seguintes
tarefas, relativas à gestão do posto de venda:
1. Registar a colocação de produtos novos nos tabuleiros, por parte do
operador/vendedor;
2. Permitir ao operador denir o preço dos produtos disponíveis em cada
tabuleiro, com um valor que seja múltiplo de 10 cêntimos;
3. Actualizar o stock de produtos disponíveis quando um produto é vendido, o que implica comunicação com o hardware pela porta série RS232.
No projecto a desenvolver, a parte de hardware vai realizar as seguintes
tarefas básicas: (i) ler e escrever todos os sinais de ligação com o posto
de venda e (ii) estabelecer a comunicação com o PC através da porta série
RS-232. Com mais detalhe, o hardware deve:
1. Registar o total de moedas introduzidas (saldo);
2. Gerar o sinal de enable da abertura das portinhas, de acordo com (i)
o tipo de produto seleccionado, (ii) o stock de produtos disponíveis
(comunicação com o software para saber se existem produtos desse
tipo) e (iii) o saldo actual;
3. Comunicar ao software que tipo de produto foi vendido;
4. Gerar os sinais de controlo necessários para devolver troco, de acordo
com: (i) o pedido de devolução de troco, (ii) o saldo actual e (3) o
produto fornecido (ou não). Para simplicar, considera-se que existem
sempre moedas para fornecer troco e que o troco é feito com os mesmos
4 tipos de moedas (10 cêntimos, 20 cêntimos, 50 cêntimos e 1 euro).
Na implementação da parte de hardware, assuma que as entradas (sinais de
selecção, sensores de moedas) são gerados em interruptores e as saídas (sinais
de enable da abertura das portinhas e sinais de troco) vão ligar a LEDs.
Para que a corrente a fornecer a um LED seja de 10mA, dimensione a resistência a colocar em série/paralelo com cada LED.
5
4 Material Necessário
Qt.
1
1
1
1
1
1
1
1
1
1
1
2
1
12
2
2
1
Descrição
PC com Windows
SW MPLab
SW MindPicProg
SW JDK/SDK da Sun
SW BlueJ
Micro-Controlador PIC16F84A
Programador de PIC
Cabo Série
Cristal 8MHz
Regulador de tensão 7805
Driver RS-232 LT1181
Ficha RS-232 para Bread-Board
Bread-Board
CI Codicador 8:3 74LS148
CI Descodicador 3:8 74LS138
Conjunto de 8 interruptores agrupados
Botão de pressão
Leds
Resistências
Condensadores 22pF
Condensadores 100nF
Diodo 1N4001
5 Bibliograa
1. Programação Orientada aos Objectos em Java 2, F. Mário Martins,
Editora FCA, 2a edição, 2001.
2. Bibliograa das disciplinas de Métodos de Programação e Microprocessadores.
3. Microcontroladores PIC (livro on-line)
www.mikroelektronika.co.yu/portuguese/product/books/picbook/00.htm
4. Datasheet do micro-controlador PIC16F84A.
5. Datasheet do Circuito Integrado LT1181.
6