Programação

  • Máquinas de Ciclo

    Neste módulo, vamos trabalhar com o design e implementação de máquinas de ciclo. Como diz o nome, este tipo de sistema opera em ciclo. São exemplos: vending machine, alarme eletrõnico, portões automáticos, semáforos, máquinas de café tipo nesspresso, etc.

    Para tanto, vamos desenvolver dois projetos. Em sala, vamos trabalhar no design de um alarme residencial. Em casa, individualmente, vocês vão trabalhar no design e implementação de uma vending machine.

    A metodologia de design será baseada em:

    1.Especificação de requisitos, com uso do Diagrama de Casos de Uso.

    2.Detalhamento do comportamento com uso de Diagramas de Maquinas de Estado.

    3.Concepção da implementação, com Diagramas de Componentes.

    4.Análise da implementação e timing, com Diagramas de Sequência.


    Em cada semana, dois alunos serão chamados a apresentar a evolução do projeto da Vending Machine, para discussão com a classe. Além disso, todos deverão realizar a entrega da etapa do projeto.

  • Introdução instrumental às Linguagens Formais

    Neste tópico, vamos usar o ANTLR para fazer um analisador sintático e com isso entender um pouco sobre Linguagens Formais.

  • Introdução instrumental a redes industriais

    A comunicação de dados é um dos tópicos mais importantes em Automação Industrial. Diferentemente do universo doméstico, em que as redes TCP/IP dominam, no mundo industrial a variabilidade é bastante grande. 

    Neste módulo, vamos entender um destes protocolos, o MODBUS. É um veterano na área: foi criado em 1979 e ainda é um padrão que encontramos em praticamente todos os equipamentos modernos. Aliás, esta é uma outra característica da Automação Industrial: não basta conhecer os equipamentos mais novos, é preciso saber o que se usou nos últimos 40 anos. Isso porque os investimentos na indústria tem um tempo de maturação longo e, assim, não é economicamente viável ter a tendência mais moderna, como acontece na indústria de consumo.

    Todo protocolo de comunicação tem dois lados: o transmissor e o receptor. Você poderá fazer dupla com algum colega ou trabalhar sozinho, escrevendo o programa transmissor e receptor.

    Vocês usarão o TinkerCAD para simular 2 ARDUINOS em comunicação, usando a biblioteca SoftSerial. Um exemplo de projeto usando a biblioteca encontra-se em
    https://www.tinkercad.com/things/kg6Gs32ikJg-copy-of-software-serial/editel?tenant=circuits

    O programa MASTER (transmissor) deverá enviar uma solicitação READ COIL ( function code 01), especificando um "relé de início" e pelo menos 5 outros "relés". O programa SLAVE (receptor) deverá responder, enviando o valor atual de cada um dos "relés". O programa MASTER deve exibir a resposta recebida. Os "relés" serão simulados por chaves externas.

    O relatório deverá conter:

    - códigos do MASTER e do SLAVE

    - printscreen da execução

    - link para o projeto no TinkerCAD





  • Controlador robótico

    Consistem em montar uma arquitetura de controle de trajetória, contendo um controlador de trajetória e dois controladores de junta. Todos os 3 controladores devem ser implementados no Tinkercad, usando a estrutura de task switcher discutida em aula.

    https://www.tinkercad.com/things/cDyLnxZwaEE-task-switcher

    O controlador de trajetória deverá executar uma trajetória circular, enviando os setpoints para os controladores de junta, através do protocolo Modbus. No protocolo Modbus, deverá ser implementado o function code 06 (write single register). Cada uma destas funções (comunicação e geração de trajetória) deve ser uma tarefa (task) independente.

    Os controladores de junta, além de executarem o código referente a um Modbus SLAVE, devem também realizar o controle PID de um motor CC com encoder. Cada uma destas funções (comunicação e controle PID) deve ser uma tarefa (task) independente.

    ATENÇAO: O pino Serial TX do Master pode ser ligado a ambos os pinos Serial RX dos Slaves. Mas os pinos Serial TX dos Slaves não podem, ambos, serem ligados diretamente ao Serial RX do Master! Use um transistor MOS ou um relé para fazer esta ligação, acionando somente a conexão quando o Slave for transmitir.


    Este trabalho poderá ser feito individualmente ou em dupla. Não é preciso que sejam as mesmas duplas de outros trabalhos.


    O relatório deverá ser um único PDF, contendo

    -circuito

    -diagramas de sequencia, para mostrar o funcionamento do software

    -codigo fonte

    -perguntas:

    1.Qual o tempo de execução do PID?

    2.Se você não tiver o Serial.Monitor (ou um display), como saber o tempo de execução do PID?

    3.Tente estimar o jitter (variação) do tempo de amostragem usado no PID

    4.Como calcular o tempo máximo para as interrupções do encoder?

    Adicionamente, deverá  ser enviado um video, mostrando o funcionamento. A correta execução da trajetória circular deverá ser claramente demonstrada.



  • Aulas Linguagem C

  • PROVA REC

    Desta vez, sua missão é projetar uma máquina eficiente, energética e operacionalmente, para fritar batata frita em lanchonetes.  A máquina terá 4 panelas de fritura, aonde ficará o óleo. Em cada panela, capacidade para até 2 cestinhas, cada uma com capacidade para uma porção de batatas fritas. Por simplicidade, haverá apenas um tamanho de porção. Cada cestinha será acionada por um mecanismo independente, que mergulhará a cestinha no óleo, quando este estiver na temperatura correta. E suspenderá a cestinha, quando o tempo de fritura estiver correto. A colocação e retirada das batatas (crua e frita) será feita manualmente, pelo operador, e portanto está fora da descrição do sistema.

    O sistema deverá permitir configurar a temperatura do óleo, tempo de fritura e o tempo de inatividade, em que o sistema de aquecimento de óleo para uma determinada panela será desativado, para economia de energia.

    O sistema conterá:

    -um display de 1 linha x 20 caracteres, para a configuração e monitoração (ver a seguir)

    -um botão de fritura para cada mecanismo de cestinha, para iniciar o ciclo (pode ser necessário esperar o óleo aquecer)

    -dois botões, UP & DOWN, para selecionar a opção de configuração (temperatura, tempo de fritura, tempo de inatividade)

    -dois botões, PLUS & MINUS, para variar o parâmetro sendo configurado

    O sistema terá o modo automático, no qual os botões de fritura estão ativos e os demais botões, inativos. E o modo de configuração, que será acionado através de uma chave física, que desativará os botões de fritura e ativará os botões de configuração. No modo automático, o display mostrará a temperatura em cada panela, alternadamente. No modo de configuração, o display mostrará o parâmetro sendo configurado e o valor atual do parâmetro.

    Pede-se:

    (0,5)a.Lista de requisitos do sistema

    (1,0)b.Diagrama de casos de uso

    (1,0)c.Diagrama de estados

    (1,0)d.Descrição de cada ação a ser executada em cada transição de estados

    (1,0)e.Diagrama de componentes, com identificação de cada interface de cada componente

    (1,0)f.Descrição de cada função de cada componente, mostrando parâmetros de entrada e valores de retorno, bem como uma descrição sucinta do comportamento da função (pseudo-código por exemplo)

    (4,5)g.Codificação de um simulador do sistema, usando uma tecla para representar cada botão e mostrando na tela o que seria mostrado no display. Esta codificação deverá seguir os princípios de implementação de máquinas de estado, discutidos na disciplina. Devem ser entregues todo o código utilizado e printscreens do funcionamento.





  • Tópico 10