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