Projeto Integrador

Este documento apresenta todas as informações que você precisa conhecer sobre o Projeto Integrador da disciplina de Arquitetura e Organização de Computadores. Leia-o com atenção antes do início das atividades práticas, pois aqui você encontrará orientações sobre a dinâmica de trabalho, os entregáveis de cada módulo, os critérios de avaliação e as dicas para alcançar excelência em seu projeto.

O Que é o Projeto Integrador

O Projeto Integrador representa o eixo central de toda a sua experiência de aprendizagem nesta disciplina. Diferentemente de abordagens tradicionais onde teoria e prática ocupam momentos separados e desconectados, o Projeto Integrador foi concebido para que você aplique imediatamente cada conceito estudado em um sistema computacional real e tangível. Esta conexão direta entre o que você estuda e o que você constrói transforma conhecimento abstrato em competência concreta, preparando você para os desafios profissionais que encontrará em sua carreira.

O projeto consiste no desenvolvimento de um sistema embarcado completo utilizando o KIT ACEPIC PRO V8.2 equipado com o microcontrolador PIC18F4550 e o módulo de display LCD Sunstar 2004A. Este sistema não será um exercício acadêmico isolado, mas uma plataforma onde cada módulo teórico da disciplina ganha vida através de implementação prática. Ao final do semestre, você terá construído um sistema funcional que demonstra domínio sobre arquitetura de processadores, organização de memória, sistemas de entrada e saída, interfaces de comunicação e técnicas de otimização de desempenho.

A escolha do microcontrolador PIC18F4550 não é acidental. Este dispositivo incorpora uma arquitetura Harvard modificada que ilustra perfeitamente os conceitos teóricos estudados na disciplina. Sua estrutura permite observar diretamente como separação de memória de programa e dados afeta o desempenho, como pipeline de execução processa instruções, como periféricos interagem com o núcleo do processador e como diferentes modos de endereçamento são implementados em hardware real. O KIT ACEPIC PRO V8.2 fornece todos os recursos periféricos necessários para explorar estes conceitos, incluindo displays, botões, LEDs, sensores e interfaces de comunicação serial.

flowchart TB
    subgraph PI["Projeto Integrador"]
        direction TB
        SIS["Sistema Embarcado Completo"]
        HW["Hardware: KIT ACEPIC PRO V8.2"]
        SW["Software: Linguagem C"]
        INT["Integração: Teoria + Prática"]
    end
    
    subgraph MOD["15 Módulos Teóricos"]
        direction LR
        M1["Módulo 1-5: Fundamentos"]
        M2["Módulo 6-10: Componentes"]
        M3["Módulo 11-15: Integração"]
    end
    
    subgraph RES["Resultados de Aprendizagem"]
        direction TB
        R1["Competência Técnica"]
        R2["Habilidade Prática"]
        R3["Pensamento Sistêmico"]
    end
    
    MOD --> PI
    PI --> RES
    
    M1 --> SIS
    M2 --> SIS
    M3 --> SIS

Por Que o Projeto Integrador é Fundamental

A pedagogia contemporânea reconhece que aprendizagem significativa ocorre quando o estudante consegue estabelecer conexões entre novos conhecimentos e situações práticas de aplicação. O Projeto Integrador materializa este princípio ao criar um contexto autêntico onde cada conceito teórico encontra aplicação imediata. Esta abordagem fundamenta-se em diversas metodologias ativas que orientam toda a disciplina.

A Cultura Maker constitui o primeiro pilar metodológico do Projeto Integrador. Esta filosofia educacional preconiza que aprendizagem profunda acontece através do fazer, do construir, do experimentar. Quando você programa o microcontrolador para implementar um algoritmo de conversão de dados, não está apenas memorizando passos de um procedimento. Você está desenvolvendo compreensão intuitiva sobre representação numérica em sistemas digitais, enfrentando diretamente as consequências de overflow e underflow, descobrindo empiricamente as limitações de precisão em aritmética de ponto flutuante. Este conhecimento conquistado através da experiência direta permanece com você de forma muito mais duradoura que qualquer memorização de fórmulas ou definições.

A Aprendizagem Baseada em Projetos complementa a Cultura Maker ao estruturar o processo de aprendizagem em torno de um objetivo concreto e desafiador. O Projeto Integrador não apresenta um caminho linear e previsível. Você encontrará obstáculos, precisará pesquisar soluções, testará hipóteses que falharão e precisará reformular abordagens. Este ciclo de tentativa, erro e refinamento reproduz fielmente a dinâmica real do desenvolvimento de sistemas computacionais. Ao final do projeto, você terá desenvolvido não apenas conhecimento técnico, mas também resiliência, capacidade de resolução de problemas e autonomia intelectual.

A Sala de Aula Invertida redefine os papéis de estudo individual e atividade em sala. Antes de cada módulo prático, você estuda o material teórico disponibilizado, chegando às aulas com dúvidas específicas e prontos para aplicar os conceitos. O tempo presencial torna-se momento de construção ativa, onde o professor atua como mentor orientando seu trabalho no projeto. Esta inversão maximiza o aproveitamento do tempo em que você tem acesso direto ao professor e ao kit de desenvolvimento, reservando para estudo individual aquilo que pode ser feito de forma autônoma.

O Design Thinking permeia toda a concepção do projeto ao enfatizar empatia com o usuário final, definição clara de problemas, ideação de soluções criativas, prototipagem rápida e teste iterativo. Embora você esteja desenvolvendo um sistema técnico, deve sempre considerar como este sistema será utilizado, quais problemas resolve e como pode ser aprimorado. Esta perspectiva humaniza o desenvolvimento técnico e desenvolve habilidades transferíveis para qualquer contexto profissional.

A Aprendizagem Baseada em Problemas emerge naturalmente durante o desenvolvimento do projeto. Cada módulo apresenta desafios específicos que você deve resolver utilizando os conceitos recém-estudados. A motivação para aprender surge da necessidade de solucionar problemas reais, não de imposição externa. Quando você precisa implementar comunicação serial para conectar sensores ao seu sistema, a teoria sobre protocolos de comunicação ganha relevância imediata e pessoal.

Finalmente, a Aprendizagem Baseada em Times reconhece que desenvolvimento de sistemas complexos raramente é atividade solitária. Trabalhando em grupo de quatro ou cinco colegas, você desenvolve habilidades de colaboração, comunicação técnica, divisão de responsabilidades e integração de contribuições individuais. Estas competências interpessoais são tão valorizadas no mercado de trabalho quanto expertise técnica.

mindmap
    root((Projeto Integrador))
        Cultura Maker
            Aprender Fazendo
            Experimentação Direta
            Conhecimento Empírico
        Aprendizagem Baseada em Projetos
            Objetivo Concreto
            Resolução de Problemas
            Autonomia Intelectual
        Sala de Aula Invertida
            Estudo Prévio
            Aplicação Presencial
            Professor como Mentor
        Design Thinking
            Empatia com Usuário
            Prototipagem Rápida
            Iteração Contínua
        Aprendizagem Baseada em Problemas
            Motivação Intrínseca
            Relevância Imediata
            Contextualização
        Aprendizagem em Times
            Colaboração
            Comunicação Técnica
            Integração

O KIT ACEPIC PRO V8.2 e o Microcontrolador PIC18F4550

O KIT ACEPIC PRO V8.2 constitui a plataforma de hardware sobre a qual você desenvolverá todo o seu projeto. Este kit educacional foi projetado especificamente para ensino de microcontroladores e sistemas embarcados, oferecendo conjunto abrangente de periféricos e interfaces que permitem explorar praticamente todos os aspectos de arquitetura de computadores abordados na disciplina.

O coração do kit é o microcontrolador PIC18F4550, fabricado pela Microchip Technology. Este dispositivo pertence à família PIC18, caracterizada por arquitetura Harvard modificada onde memória de programa e memória de dados são fisicamente separadas, permitindo acesso simultâneo a instruções e dados. Esta separação ilustra diretamente os conceitos de arquitetura Harvard que você estudará no primeiro módulo da disciplina, permitindo observar as vantagens de desempenho que esta abordagem proporciona.

O PIC18F4550 opera com palavras de instruções de 16 bits, enquanto o barramento de dados trabalha com 8 bits. Esta assimetria entre largura de instruções e dados exemplifica decisões de projeto comuns em arquiteturas de microcontroladores, onde otimização do conjunto de instruções pode diferir das necessidades de manipulação de dados. O processador implementa pipeline de dois estágios, permitindo que busca de instrução e execução ocorram simultaneamente na maioria dos casos. Você observará diretamente os efeitos deste pipeline ao analisar tempos de execução de diferentes sequências de instruções.

A memória de programa Flash de 32 kilobytes armazena permanentemente o código que você desenvolverá. Esta tecnologia de memória não-volátil permite reprogramação repetida durante desenvolvimento sem degradação perceptível. A memória de dados RAM de 2 kilobytes proporciona armazenamento temporário para variáveis e estruturas de dados do seu programa. Adicionalmente, 256 bytes de memória EEPROM permitem armazenamento persistente de configurações e dados que devem sobreviver a ciclos de desligamento do sistema.

Os periféricos integrados no chip incluem módulos que você utilizará extensivamente ao longo do projeto. O módulo USART permite comunicação serial assíncrona com outros dispositivos e com computadores pessoais para depuração e monitoramento. O módulo MSSP suporta protocolos I2C e SPI para comunicação com sensores, memórias externas e outros componentes. Os temporizadores Timer0, Timer1, Timer2 e Timer3 oferecem capacidades de temporização, geração de PWM e captura de eventos externos. O conversor analógico-digital de 10 bits permite interface com sensores analógicos do mundo real.

O display LCD Sunstar 2004A conectado ao kit oferece interface visual com quatro linhas de vinte caracteres cada. Este display utiliza controlador HD44780 compatível, permitindo exibição de texto e caracteres personalizados. A comunicação com o display ocorre através de interface paralela de 4 ou 8 bits, proporcionando oportunidade para você compreender diferenças entre comunicação paralela e serial, além de técnicas de temporização necessárias para interface com periféricos externos.

O kit também inclui conjunto de LEDs, botões e chaves que permitem entrada e saída digital simples. Estes recursos aparentemente básicos são fundamentais para depuração durante desenvolvimento e para criação de interfaces de usuário funcionais. A matriz de contatos presente no kit permite conexão de componentes externos adicionais quando necessário para expandir funcionalidades do projeto.

flowchart TB
    subgraph KIT["KIT ACEPIC PRO V8.2"]
        direction TB
        
        subgraph MCU["Microcontrolador PIC18F4550"]
            CPU["CPU 8-bit<br/>Pipeline 2 estágios"]
            FLASH["Flash 32KB<br/>Programa"]
            RAM["RAM 2KB<br/>Dados"]
            EEPROM["EEPROM 256B<br/>Persistente"]
        end
        
        subgraph PERIPH["Periféricos Integrados"]
            USART["USART<br/>Serial Assíncrono"]
            MSSP["MSSP<br/>I2C / SPI"]
            TIMERS["Timers<br/>0, 1, 2, 3"]
            ADC["ADC<br/>10 bits"]
        end
        
        subgraph EXT["Componentes Externos"]
            LCD["Display LCD<br/>Sunstar 2004A"]
            LEDS["LEDs"]
            BTNS["Botões/Chaves"]
            PROTO["Matriz de Contatos"]
        end
    end
    
    CPU --> FLASH
    CPU --> RAM
    CPU --> EEPROM
    CPU --> PERIPH
    PERIPH --> EXT

Organização e Dinâmica de Trabalho em Grupo

O trabalho colaborativo constitui elemento essencial do Projeto Integrador. Você formará grupo com três ou quatro colegas, totalizando equipes de quatro ou cinco integrantes. Esta estrutura reproduz a realidade de equipes de desenvolvimento de software e hardware na indústria, onde projetos complexos são realizados por grupos de profissionais com competências complementares.

A formação dos grupos deve considerar diversidade de habilidades e estilos de trabalho. Idealmente, cada grupo deve incluir integrantes com diferentes forças, como facilidade com programação, aptidão para organização e documentação, habilidade para depuração de problemas e capacidade de comunicação clara. Esta heterogeneidade enriquece o processo de desenvolvimento e garante que todas as dimensões do projeto recebam atenção adequada.

Cada grupo deve estabelecer internamente divisão clara de responsabilidades. Recomenda-se a identificação de papéis específicos que rotacionem ao longo do semestre, permitindo que todos os integrantes desenvolvam experiência em diferentes aspectos do projeto. Um integrante pode assumir coordenação do módulo atual, outro pode ser responsável pela documentação, um terceiro pode liderar implementação de código e outro pode focar em testes e validação. A rotação destes papéis a cada módulo ou conjunto de módulos assegura desenvolvimento equilibrado de competências para todos os membros.

A comunicação interna do grupo deve ser constante e estruturada. Estabeleçam canal de comunicação que todos monitorem regularmente, seja grupo de mensagens instantâneas, fórum online ou reuniões presenciais frequentes. Decisões importantes devem ser documentadas e compartilhadas com todos os integrantes. Problemas devem ser comunicados imediatamente ao surgir, não deixados para se acumularem e criarem situações críticas próximo aos prazos de entrega.

O compartilhamento de conhecimento dentro do grupo é responsabilidade de todos. Quando um integrante descobre solução para problema técnico, deve explicá-la aos demais em vez de simplesmente implementá-la sozinho. Esta prática assegura que todos compreendam completamente o sistema sendo desenvolvido, evitando dependência excessiva de qualquer indivíduo e preparando o grupo para responder questões durante apresentações.

Conflitos interpessoais podem surgir em qualquer trabalho colaborativo. Abordem divergências de forma construtiva, focando em soluções técnicas e não em personalidades. Se diferenças persistirem e afetarem o progresso do projeto, consultem o professor para mediação antes que a situação se agrave. O professor está disponível para orientar não apenas em questões técnicas, mas também em dinâmica de grupo quando necessário.

flowchart LR
    subgraph GRUPO["Estrutura do Grupo"]
        direction TB
        G1["Integrante 1"]
        G2["Integrante 2"]
        G3["Integrante 3"]
        G4["Integrante 4"]
        G5["Integrante 5<br/>(opcional)"]
    end
    
    subgraph PAPEIS["Papéis Rotativos"]
        direction TB
        P1["Coordenação"]
        P2["Implementação"]
        P3["Documentação"]
        P4["Testes"]
    end
    
    subgraph COMUNICACAO["Canais de Comunicação"]
        direction TB
        C1["Reuniões Presenciais"]
        C2["Mensagens Instantâneas"]
        C3["Documentação Compartilhada"]
    end
    
    GRUPO --> PAPEIS
    PAPEIS --> COMUNICACAO

Estrutura de Cada Módulo de Trabalho

Cada um dos quinze módulos da disciplina segue estrutura consistente que integra estudo teórico e desenvolvimento prático. Compreender esta estrutura permite que você organize seu tempo e esforço de forma eficiente ao longo de todo o semestre.

Antes do início de cada módulo, você receberá acesso ao material didático correspondente. Este material deve ser estudado individualmente durante a semana que precede as aulas presenciais. O estudo prévio não é opcional nem superficial. Você deve ler o material completo, anotar dúvidas, experimentar os exemplos apresentados quando possível e preparar questões específicas para discutir em sala. Chegando às aulas sem ter estudado o material, você não conseguirá acompanhar as explicações do professor nem aproveitar o tempo de desenvolvimento do projeto.

As duas primeiras aulas de cada módulo, totalizando oitenta minutos, são dedicadas a explanação teórica e esclarecimento de dúvidas. O professor não repetirá todo o conteúdo do material escrito, assumindo que você já o estudou. O foco será em aprofundar conceitos particularmente complexos, apresentar exemplos adicionais, responder dúvidas dos alunos e estabelecer conexões explícitas entre a teoria e as tarefas práticas que você realizará no projeto. Aproveite este tempo para esclarecer qualquer aspecto que tenha permanecido obscuro após seu estudo individual.

As quatro aulas seguintes de cada módulo, totalizando cento e sessenta minutos, são dedicadas integralmente ao desenvolvimento do Projeto Integrador sob tutoria do professor. Este é o momento em que você trabalha ativamente com seu grupo na implementação das tarefas correspondentes ao módulo. O professor circula entre os grupos, oferecendo orientação, esclarecendo dúvidas técnicas, sugerindo abordagens e verificando progresso. Utilize este tempo de forma produtiva, tendo sempre planejado previamente o que pretende realizar e identificado os pontos onde precisa de auxílio.

Durante as aulas de desenvolvimento, cada grupo deve trabalhar focadamente em suas tarefas, evitando distrações ou atividades não relacionadas ao projeto. O tempo disponível é limitado e precioso. Chegue preparado com ambiente de desenvolvimento configurado, código anterior revisado e compreensão clara do que precisa ser implementado naquele módulo. Não desperdice minutos iniciais decidindo o que fazer ou resolvendo problemas de configuração que deveriam ter sido tratados antes.

sequenceDiagram
    participant E as Estudante
    participant M as Material Didático
    participant P as Professor
    participant G as Grupo
    participant PI as Projeto Integrador
    
    Note over E,M: Semana Anterior ao Módulo
    E->>M: Estudo Individual
    M-->>E: Compreensão Teórica
    E->>E: Preparação de Dúvidas
    
    Note over E,P: Aulas 1-2
    P->>E: Explanação Teórica
    E->>P: Esclarecimento de Dúvidas
    P->>E: Conexão Teoria-Prática
    
    Note over G,PI: Aulas 3-6
    G->>PI: Desenvolvimento Prático
    P->>G: Tutoria e Orientação
    G->>PI: Implementação de Tarefas
    G->>G: Documentação e Diário

Tarefas por Módulo e Conexão com Conteúdo Teórico

Cada módulo teórico da disciplina possui conjunto específico de tarefas a serem realizadas no Projeto Integrador. Estas tarefas foram cuidadosamente elaboradas para que você aplique diretamente os conceitos estudados, estabelecendo conexão visceral entre teoria e prática. A seguir, apresentamos detalhadamente o que você desenvolverá em cada módulo e como estas atividades se relacionam com o conteúdo teórico correspondente.

Módulo 1: Fundamentos de Arquitetura e Organização de Computadores

O primeiro módulo estabelece as bases conceituais que fundamentarão todo o restante do projeto. Você estudará a distinção entre arquitetura e organização de computadores, a evolução histórica dos sistemas computacionais, os modelos Von Neumann e Harvard, e as métricas de desempenho utilizadas para avaliar sistemas computacionais.

Durante as aulas práticas deste módulo, seu grupo realizará a configuração inicial do ambiente de desenvolvimento e familiarização com o KIT ACEPIC PRO V8.2. Você instalará e configurará o compilador XC8 e o ambiente MPLAB X IDE em seus computadores. O grupo conectará o kit de desenvolvimento e verificará comunicação adequada com o computador. Em seguida, você criará a estrutura de diretórios do projeto conforme especificado no template fornecido, inicializando o repositório de controle de versão.

A primeira tarefa técnica consiste em desenvolver programa simples que demonstre funcionamento básico do microcontrolador, acendendo e apagando LEDs em sequência determinada. Este programa aparentemente trivial serve para validar que todo o ambiente está corretamente configurado e que você compreende o ciclo básico de desenvolvimento, incluindo edição de código, compilação e gravação no microcontrolador.

A segunda tarefa exige documentação da arquitetura do PIC18F4550 em comparação com modelo Von Neumann tradicional. Você elaborará diagrama identificando elementos característicos da arquitetura Harvard modificada presente no dispositivo, explicando por escrito as vantagens que esta arquitetura proporciona em termos de desempenho. Esta análise demonstra compreensão dos conceitos teóricos através de aplicação a sistema concreto.

A terceira tarefa requer medição do tempo de execução de sequência simples de instruções, permitindo verificação empírica das métricas de desempenho estudadas. Você desenvolverá metodologia para medir tempos de execução utilizando osciloscópio ou porta de saída monitorada, documentando os resultados obtidos e comparando com valores teóricos esperados baseados na frequência de clock e número de ciclos por instrução.

O entregável deste módulo consiste em relatório documentando a configuração do ambiente, a análise arquitetural e as medições de desempenho realizadas, acompanhado do código-fonte desenvolvido e do diário de atividades do grupo atualizado.

Módulo 2: Representação de Dados e Aritmética Computacional

Este módulo aprofunda a compreensão de como dados numéricos são representados e manipulados em sistemas digitais. Você estudará sistemas de numeração, representação de inteiros em complemento de dois, representação de ponto flutuante segundo padrão IEEE 754, e implementação de operações aritméticas em hardware.

As tarefas práticas deste módulo focam em implementação e validação de rotinas de manipulação numérica no microcontrolador. A primeira tarefa solicita desenvolvimento de biblioteca de funções para conversão entre diferentes bases numéricas, permitindo que o sistema receba valores em formato decimal ou hexadecimal e os converta para representação interna adequada. O display LCD será utilizado para exibir valores em diferentes formatos, demonstrando compreensão prática das conversões.

A segunda tarefa exige implementação de operações aritméticas com tratamento adequado de overflow e underflow. Você desenvolverá funções de soma, subtração e multiplicação de inteiros de diferentes tamanhos, incluindo detecção e sinalização de condições de overflow. O tratamento correto destas situações excepcionais é frequentemente negligenciado por programadores inexperientes, e esta tarefa desenvolve consciência sobre as limitações da aritmética computacional.

A terceira tarefa envolve experimentação com aritmética de ponto flutuante, demonstrando os efeitos de precisão limitada e arredondamento. Você criará programa que evidencie casos onde operações aparentemente simples produzem resultados inesperados devido a limitações de representação. Esta experiência prática ilustra vividamente por que compreensão de representação numérica é essencial para desenvolvimento de software robusto.

O entregável deste módulo consiste nas rotinas de conversão e aritmética desenvolvidas, relatório documentando os casos de overflow, underflow e imprecisão identificados, e diário de atividades atualizado.

Módulo 3: Conjunto de Instruções e Modos de Endereçamento

O terceiro módulo explora o conjunto de instruções do processador, os modos de endereçamento disponíveis e a filosofia de projeto RISC que caracteriza a família PIC18. Você compreenderá como instruções são codificadas, como operandos são especificados e como a escolha de modos de endereçamento afeta tamanho de código e desempenho.

A primeira tarefa prática consiste em análise detalhada do código assembly gerado pelo compilador C para funções específicas. Você escreverá funções em C e examinará o assembly correspondente, identificando as instruções utilizadas, os modos de endereçamento empregados e a eficiência do código gerado. Esta análise desenvolve habilidade para compreender o que realmente acontece no nível do processador quando seu código de alto nível é executado.

A segunda tarefa solicita implementação de função crítica de desempenho em assembly puro, comparando o resultado com versão gerada pelo compilador. Você escolherá função relevante para o projeto, implementará versão otimizada em assembly e medirá diferença de desempenho. Esta experiência demonstra quando otimização em baixo nível é justificável e quando a produtividade do desenvolvimento em alto nível é preferível.

A terceira tarefa exige documentação sistemática dos modos de endereçamento utilizados em seu projeto até o momento, analisando em quais situações cada modo é mais apropriado. Você produzirá tabela correlacionando padrões de código C com modos de endereçamento resultantes e instruções assembly correspondentes.

O entregável consiste no código assembly analisado e desenvolvido, relatório comparativo de desempenho entre versões C e assembly, análise de modos de endereçamento e diário atualizado.

Módulo 4: Unidade Central de Processamento - Caminho de Dados

Este módulo examina a estrutura interna do processador, focando especificamente nos componentes do caminho de dados: unidade lógica e aritmética, banco de registradores, barramentos e multiplexadores. Você compreenderá como dados fluem através do processador durante execução de diferentes tipos de instruções.

A primeira tarefa prática solicita desenvolvimento de programa que demonstre utilização eficiente dos registradores de trabalho do PIC18F4550. Você otimizará seção de código para minimizar acessos à memória RAM, mantendo dados frequentemente utilizados em registradores sempre que possível. Esta otimização requer compreensão de como o compilador aloca registradores e de técnicas para influenciar esta alocação.

A segunda tarefa envolve análise do ciclo de execução de diferentes classes de instruções através de simulação e medição de tempos. Você categorizará instruções por número de ciclos de execução, construindo tabela de referência para instruções mais utilizadas em seu projeto. Esta tabela será ferramenta útil para estimativas de desempenho em módulos subsequentes.

A terceira tarefa exige implementação de função que evidencie as fases do ciclo de instrução, utilizando pontos de observação externos para visualizar a sequência de busca, decodificação e execução. Embora o acesso direto aos barramentos internos não seja possível, você pode inferir comportamento através de temporização de sinais de entrada e saída.

O entregável consiste no código otimizado para uso de registradores, tabela de ciclos de instruções e análise do ciclo de execução, acompanhados do diário atualizado.

Módulo 5: Unidade Central de Processamento - Unidade de Controle

O quinto módulo complementa o estudo do processador examinando a unidade de controle, responsável por orquestrar todas as operações do sistema. Você compreenderá como máquinas de estados e microprogramação implementam a lógica de controle, e como técnicas como pipelining aumentam a eficiência de execução.

A primeira tarefa prática solicita implementação de máquina de estados finitos para controlar comportamento complexo do sistema. Você desenvolverá autômato que gerencia diferentes modos de operação do seu projeto, com transições claramente definidas entre estados. Esta implementação demonstra aplicação prática dos conceitos de controle estudados teoricamente.

A segunda tarefa exige análise do pipeline de dois estágios do PIC18F4550 e identificação de situações onde a técnica de prefetch falha. Você desenvolverá sequências de código que demonstrem comportamento do pipeline em diferentes situações, incluindo instruções de desvio condicional que causam penalidades de pipeline.

A terceira tarefa envolve otimização de sequências de código para minimizar penalidades de pipeline, reorganizando instruções quando possível para maximizar throughput efetivo. Você documentará as técnicas de otimização aplicadas e os ganhos de desempenho obtidos.

O entregável consiste na máquina de estados implementada, análise de comportamento de pipeline documentada e código otimizado, acompanhados do diário atualizado.

Módulo 6: Pipeline - Conceitos e Implementação Básica

Este módulo aprofunda o estudo de pipeline, explorando os estágios clássicos de um pipeline de cinco estágios e os ganhos teóricos de desempenho que esta técnica proporciona. Você compreenderá como o pipeline do PIC18F4550, embora simples, incorpora princípios fundamentais aplicáveis a processadores mais complexos.

A primeira tarefa prática solicita desenvolvimento de benchmark para medir throughput efetivo de diferentes sequências de instruções. Você criará conjunto de testes que caracterizam o desempenho do processador em diferentes cenários, estabelecendo baseline para comparações futuras.

A segunda tarefa exige criação de visualização esquemática do fluxo de instruções através do pipeline ao longo do tempo, para sequência específica de código do seu projeto. Esta visualização pode ser diagramática ou tabular, mas deve demonstrar compreensão clara de como múltiplas instruções progridem simultaneamente através dos estágios.

A terceira tarefa envolve identificação e documentação de todas as instruções em seu código que potencialmente causam stalls ou bolhas no pipeline, estimando o impacto total no desempenho do sistema.

O entregável consiste nos benchmarks desenvolvidos, visualização de pipeline e análise de impacto de hazards, acompanhados do diário atualizado.

Módulo 7: Pipeline - Hazards e Técnicas de Mitigação

O sétimo módulo aborda os desafios práticos de implementação de pipeline, incluindo hazards estruturais, de dados e de controle, além das técnicas desenvolvidas para mitigá-los. Você compreenderá forwarding, stalls, predição de desvios e técnicas avançadas como execução fora de ordem.

Este módulo coincide com a entrega parcial do Projeto Integrador, o que requer atenção especial à consolidação de todo o trabalho realizado até o momento. A primeira tarefa é preparar entrega parcial abrangente, incluindo toda a documentação, código-fonte e diários produzidos nos seis módulos anteriores. O sistema deve estar funcional e demonstrável, mesmo que ainda incompleto.

A segunda tarefa prática solicita implementação de técnicas de otimização que reduzam impacto de hazards de dados em seções críticas do código. Você aplicará reorganização de instruções, utilização eficiente de registradores e outras técnicas para minimizar dependências problemáticas.

A terceira tarefa exige análise de instruções de desvio condicional em seu código, documentando previsibilidade de cada branch e propondo reorganização quando possível para reduzir penalidades de branch mal predito.

O entregável deste módulo é a entrega parcial completa do projeto, incluindo código otimizado para hazards e diário atualizado.

Módulo 8: Sistema de Memória - Hierarquia e Princípios

Este módulo introduz a hierarquia de memória que caracteriza sistemas computacionais modernos. Você estudará os princípios de localidade temporal e espacial, as tecnologias de memória disponíveis e as métricas de desempenho de sistemas de memória.

A primeira tarefa prática solicita análise da hierarquia de memória do PIC18F4550, identificando os diferentes níveis presentes no sistema, incluindo registradores de trabalho, registradores de propósito específico, RAM de acesso e memória Flash de programa. Você documentará características de cada nível em termos de capacidade, tempo de acesso e tecnologia subjacente.

A segunda tarefa exige desenvolvimento de experimentos que demonstrem efeitos de localidade em seu código. Você medirá diferenças de desempenho entre padrões de acesso que exibem boa localidade e padrões com localidade deficiente, documentando os resultados e as implicações para organização de estruturas de dados.

A terceira tarefa envolve reorganização de estruturas de dados do projeto para maximizar localidade de acesso, aplicando técnicas como agrupamento de dados relacionados e alinhamento adequado de estruturas.

O entregável consiste na análise de hierarquia de memória, experimentos de localidade documentados e código reorganizado, acompanhados do diário atualizado.

Módulo 9: Memória Cache - Organização e Políticas

O nono módulo aprofunda o estudo de memória cache, explorando diferentes organizações como mapeamento direto, associativo e associativo por conjunto, além de políticas de substituição e escrita. Embora o PIC18F4550 não possua cache tradicional, você aplicará os princípios estudados ao gerenciamento eficiente de memória disponível.

A primeira tarefa prática solicita implementação de mecanismo de cache em software para dados frequentemente acessados. Você desenvolverá estrutura que mantém cópias de dados mais utilizados em posições de memória de acesso mais rápido, implementando política de substituição apropriada.

A segunda tarefa exige análise de padrões de acesso a dados em seu projeto, identificando candidatos ideais para caching e estimando benefícios potenciais. Esta análise fundamentará decisões sobre quais dados devem ser mantidos em cache e quais podem ser acessados diretamente da fonte.

A terceira tarefa envolve implementação e comparação de diferentes políticas de substituição, incluindo LRU, FIFO e aleatória, medindo desempenho efetivo em cenários representativos do seu projeto.

O entregável consiste no mecanismo de cache implementado, análise de padrões de acesso e comparação de políticas, acompanhados do diário atualizado.

Módulo 10: Memória Virtual e Gerenciamento de Memória

Este módulo explora memória virtual e técnicas de gerenciamento de memória. Embora microcontroladores pequenos como PIC18F4550 não implementem memória virtual tradicional, os conceitos de paginação, segmentação e gerenciamento de espaço de endereçamento são aplicáveis em escala reduzida.

A primeira tarefa prática solicita implementação de gerenciador de memória simples para alocação dinâmica de recursos no microcontrolador. Você desenvolverá mecanismo para alocar e liberar blocos de memória RAM de forma organizada, mantendo controle de fragmentação e utilização.

A segunda tarefa exige desenvolvimento de mecanismo de swapping entre RAM e EEPROM para dados que excedem capacidade da memória volátil. Você implementará sistema que move transparentemente dados menos utilizados para EEPROM, trazendo-os de volta quando necessário.

A terceira tarefa envolve análise e documentação do mapa de memória completo do seu projeto, identificando regiões utilizadas por código, dados estáticos, pilha, heap e periféricos. Esta documentação será referência importante para otimizações futuras e depuração de problemas de memória.

O entregável consiste no gerenciador de memória implementado, mecanismo de swapping funcional e mapa de memória documentado, acompanhados do diário atualizado.

Módulo 11: Sistema de Entrada e Saída

O décimo primeiro módulo aborda os sistemas de entrada e saída, incluindo portas paralelas, portas seriais, e técnicas de E/S como polling, interrupções e DMA. Você compreenderá como o processador interage com dispositivos periféricos e o mundo externo.

A primeira tarefa prática solicita implementação completa da interface com display LCD utilizando técnica de polling. Você desenvolverá biblioteca robusta para inicialização, escrita de caracteres, posicionamento de cursor e criação de caracteres personalizados, com tratamento adequado de temporização.

A segunda tarefa exige conversão da interface LCD para utilização de interrupções, comparando desempenho e complexidade com a versão baseada em polling. Esta conversão demonstra as vantagens e desvantagens de cada abordagem de E/S.

A terceira tarefa envolve integração de múltiplos dispositivos de E/S em seu sistema, incluindo botões, LEDs e sensores, demonstrando gerenciamento adequado de prioridades e tratamento de eventos simultâneos.

O entregável consiste nas bibliotecas de E/S desenvolvidas, análise comparativa de técnicas e sistema integrado funcional, acompanhados do diário atualizado.

Módulo 12: Sistema de Interrupções e Exceções

Este módulo aprofunda o estudo de interrupções e exceções, explorando mecanismos de hardware para tratamento de eventos assíncronos, vetores de interrupção, prioridades e técnicas de programação para handlers de interrupção eficientes.

A primeira tarefa prática solicita implementação de sistema completo de tratamento de interrupções para seu projeto. Você configurará todos os vetores de interrupção necessários, implementará handlers para cada fonte de interrupção e gerenciará prioridades adequadamente.

A segunda tarefa exige desenvolvimento de rotina de interrupção de tempo real utilizando timer, implementando base de tempo precisa para seu sistema. Esta base de tempo será utilizada para temporização de eventos, debouncing de botões e outras funcionalidades dependentes de tempo.

A terceira tarefa envolve análise de latência de interrupção em seu sistema, medindo tempo entre ocorrência de evento e início de execução do handler. Você otimizará handlers críticos para minimizar esta latência quando necessário.

O entregável consiste no sistema de interrupções completo, base de tempo implementada e análise de latência documentada, acompanhados do diário atualizado.

Módulo 13: Interfaces de Comunicação Serial

O décimo terceiro módulo explora interfaces de comunicação serial, incluindo UART, I2C e SPI. Você compreenderá os princípios de comunicação serial síncrona e assíncrona, formatos de frame, detecção de erros e configuração de parâmetros de comunicação.

A primeira tarefa prática solicita implementação de comunicação UART para interação com terminal de computador. Você desenvolverá interface de debug que permite monitorar estado do sistema e enviar comandos através de comunicação serial, utilizando o módulo USART do PIC18F4550.

A segunda tarefa exige implementação de comunicação I2C para interface com dispositivo periférico, como sensor ou memória externa. Você configurará o módulo MSSP em modo I2C e desenvolverá funções de leitura e escrita conforme protocolo do dispositivo escolhido.

A terceira tarefa envolve implementação de comunicação SPI como alternativa ou complemento ao I2C, demonstrando compreensão das diferenças entre os dois protocolos e situações onde cada um é mais apropriado.

O entregável consiste nas interfaces de comunicação serial implementadas, documentação dos protocolos utilizados e integração com sistema principal, acompanhados do diário atualizado.

Módulo 14: Conversão de Dados e Periféricos Especializados

Este módulo aborda conversão analógico-digital e digital-analógica, temporizadores, contadores e outros periféricos especializados presentes em microcontroladores modernos.

A primeira tarefa prática solicita implementação de sistema de aquisição de dados utilizando o conversor ADC do PIC18F4550. Você configurará o módulo ADC, implementará leitura de múltiplos canais e desenvolverá processamento básico dos dados adquiridos.

A segunda tarefa exige implementação de geração de sinal PWM utilizando módulo de captura, comparação e PWM. Você desenvolverá saída PWM com frequência e duty cycle configuráveis, demonstrando aplicação para controle de intensidade de LED ou outra carga.

A terceira tarefa envolve integração de temporizadores para múltiplas funcionalidades simultâneas, demonstrando gerenciamento de recursos de tempo compartilhados. Você configurará diferentes timers para diferentes propósitos e resolverá conflitos potenciais.

O entregável consiste no sistema de aquisição ADC funcional, geração de PWM implementada e integração de temporizadores, acompanhados do diário atualizado.

Módulo 15: Arquiteturas Paralelas e Tendências Futuras

O módulo final amplia a perspectiva para arquiteturas paralelas, sistemas multinúcleo, processadores vetoriais e tendências futuras em arquitetura de computadores. Embora o PIC18F4550 seja sistema single-core, você aplicará conceitos de concorrência e paralelismo em escala apropriada.

A primeira tarefa prática solicita implementação de execução concorrente de tarefas utilizando esquema de escalonamento cooperativo ou preemptivo simples. Você desenvolverá mecanismo que permite múltiplas tarefas lógicas compartilharem o processador de forma organizada.

A segunda tarefa exige preparação completa da entrega final do projeto, consolidando todo o trabalho realizado ao longo do semestre. Você garantirá que toda documentação está completa, código-fonte está organizado e funcional, e diários refletem fielmente o desenvolvimento.

A terceira tarefa envolve preparação de apresentação do projeto, incluindo demonstração funcional do sistema e explicação das decisões técnicas tomadas ao longo do desenvolvimento.

O entregável deste módulo é a entrega final completa do Projeto Integrador, pronta para apresentação e avaliação.

gantt
    title Cronograma do Projeto Integrador
    dateFormat YYYY-MM-DD
    
    section Fundamentos
    Módulo 1: Arquitetura e Organização    :m1, 2025-02-01, 7d
    Módulo 2: Representação de Dados       :m2, after m1, 7d
    Módulo 3: Conjunto de Instruções       :m3, after m2, 7d
    
    section Processador
    Módulo 4: CPU - Caminho de Dados       :m4, after m3, 7d
    Módulo 5: CPU - Unidade de Controle    :m5, after m4, 7d
    Módulo 6: Pipeline Básico              :m6, after m5, 7d
    
    section Entrega Parcial
    Módulo 7: Pipeline - Hazards           :m7, after m6, 7d
    Entrega Parcial                        :milestone, after m7, 0d
    
    section Memória
    Módulo 8: Hierarquia de Memória        :m8, after m7, 7d
    Módulo 9: Memória Cache                :m9, after m8, 7d
    Módulo 10: Memória Virtual             :m10, after m9, 7d
    
    section E/S e Periféricos
    Módulo 11: Entrada e Saída             :m11, after m10, 7d
    Módulo 12: Interrupções                :m12, after m11, 7d
    Módulo 13: Comunicação Serial          :m13, after m12, 7d
    Módulo 14: Conversão de Dados          :m14, after m13, 7d
    
    section Entrega Final
    Módulo 15: Arquiteturas Paralelas      :m15, after m14, 7d
    Entrega Final                          :milestone, after m15, 0d

O Diário de Atividades

O diário de atividades constitui ferramenta essencial para acompanhamento do progresso do seu grupo e para reflexão sobre o processo de aprendizagem. Cada grupo deve manter diário atualizado que documenta todas as atividades realizadas, dificuldades encontradas, soluções desenvolvidas e planejamento para próximas etapas.

O diário não é apenas registro burocrático para satisfazer exigência do professor. É instrumento de metacognição que permite a você e seus colegas compreenderem melhor seu próprio processo de aprendizagem. Ao documentar dificuldades e como foram superadas, você cria base de conhecimento que pode ser consultada quando problemas similares surgirem no futuro. Ao registrar decisões técnicas e suas justificativas, você constrói histórico que facilita manutenção e evolução do projeto.

Cada entrada do diário deve conter data e horário da sessão de trabalho, identificação dos integrantes presentes, descrição das atividades realizadas, problemas encontrados e soluções adotadas, conceitos teóricos aplicados durante a sessão, planejamento das próximas atividades e autoavaliação do progresso do grupo. Esta estrutura não precisa ser rigidamente seguida em formato de formulário, mas todos os elementos devem estar presentes em texto fluido e reflexivo.

A frequência de atualização do diário deve acompanhar o ritmo das atividades. Durante semanas de desenvolvimento intenso, múltiplas entradas podem ser necessárias. Durante períodos de menor atividade, uma entrada semanal pode ser suficiente. O importante é que o diário reflita fielmente o desenvolvimento do projeto, permitindo a qualquer momento reconstruir a história do trabalho realizado.

O diário será consultado durante as avaliações parcial e final. Grupos com diários bem mantidos demonstram organização, reflexão e comprometimento com o processo de aprendizagem. Diários negligenciados ou preenchidos retroativamente às pressas evidenciam falta de disciplina que invariavelmente afeta a qualidade do projeto como um todo.

Será fornecido posteriormente template específico para estruturar o diário. Independentemente do formato, cultive o hábito de documentar imediatamente após cada sessão de trabalho, enquanto as experiências ainda estão frescas na memória. Tentar reconstruir atividades de semanas anteriores resulta em registros imprecisos e pouco úteis.

flowchart TB
    subgraph DIARIO["Estrutura do Diário"]
        direction TB
        D1["Data e Horário"]
        D2["Integrantes Presentes"]
        D3["Atividades Realizadas"]
        D4["Problemas e Soluções"]
        D5["Conceitos Aplicados"]
        D6["Planejamento"]
        D7["Autoavaliação"]
    end
    
    subgraph BENEFICIOS["Benefícios do Diário"]
        direction TB
        B1["Metacognição"]
        B2["Base de Conhecimento"]
        B3["Histórico de Decisões"]
        B4["Facilita Avaliação"]
    end
    
    DIARIO --> BENEFICIOS

Entregas do Projeto

O Projeto Integrador possui três tipos de entregas que ocorrem em diferentes momentos do semestre. Compreender a natureza e os requisitos de cada entrega permite que você planeje adequadamente seu trabalho e evite situações de estresse próximo aos prazos.

As entregas semanais ocorrem ao final de cada módulo e consistem nos entregáveis específicos definidos para aquele módulo. Estas entregas são verificadas pelo professor durante as aulas de tutoria ou através de sistema de submissão online, dependendo da organização adotada. O objetivo das entregas semanais é manter o progresso constante do projeto, evitando acúmulo de trabalho para as entregas maiores. Atrasos nas entregas semanais impactam a avaliação contínua e podem comprometer módulos subsequentes que dependem de funcionalidades anteriores.

A entrega parcial ocorre ao final do sétimo módulo, aproximadamente na metade do semestre. Neste momento, seu projeto deve demonstrar funcionalidade substancial, incorporando os conceitos estudados nos primeiros sete módulos. O sistema deve estar operacional, mesmo que ainda incompleto. A documentação deve estar organizada e atualizada. O diário deve refletir todo o desenvolvimento até o momento. Esta entrega parcial serve como ponto de verificação que permite identificar grupos com dificuldades que necessitam atenção especial antes que seja tarde demais.

A entrega final ocorre na semana subsequente ao décimo quinto módulo, encerrando a disciplina. O projeto deve estar completo, incorporando todos os conceitos estudados ao longo do semestre. Toda documentação deve estar finalizada e revisada. O código-fonte deve estar organizado, comentado e funcional. O diário deve abranger todo o semestre de desenvolvimento. Além dos materiais escritos, a entrega final inclui apresentação oral onde o grupo demonstra o funcionamento do sistema e responde perguntas do professor e eventualmente de outros grupos.

A estrutura de arquivos para todas as entregas deve seguir o template fornecido no arquivo template_projeto.txt. Desvios desta estrutura dificultam avaliação e podem resultar em penalidades. Certifique-se de que todos os integrantes do grupo conhecem e seguem a estrutura definida desde o início do projeto.

O formato de submissão será especificado pelo professor no início do semestre. Independentemente do método de submissão, garanta que todos os arquivos necessários estejam incluídos e que o projeto possa ser compilado e executado a partir dos materiais submetidos, sem dependências externas não documentadas.

flowchart LR
    subgraph SEMANAIS["Entregas Semanais"]
        direction TB
        S1["Módulo 1"]
        S2["Módulo 2"]
        S3["..."]
        S4["Módulo 15"]
    end
    
    subgraph PARCIAL["Entrega Parcial"]
        direction TB
        P1["Após Módulo 7"]
        P2["Sistema Funcional"]
        P3["Documentação Atualizada"]
        P4["Diário Completo"]
    end
    
    subgraph FINAL["Entrega Final"]
        direction TB
        F1["Após Módulo 15"]
        F2["Projeto Completo"]
        F3["Apresentação Oral"]
        F4["Demonstração"]
    end
    
    SEMANAIS --> PARCIAL
    PARCIAL --> FINAL

Critérios de Avaliação

A avaliação do Projeto Integrador considera múltiplas dimensões que refletem tanto a qualidade técnica do produto final quanto o processo de desenvolvimento ao longo do semestre. Compreender estes critérios desde o início permite que você direcione seus esforços de forma efetiva.

O Projeto Integrador representa sessenta por cento da nota final da disciplina. Esta parcela avalia o projeto completo, incluindo implementação, documentação e apresentação. A implementação é avaliada considerando funcionalidade correta do sistema, qualidade do código, eficiência das soluções adotadas e demonstração de compreensão dos conceitos teóricos. A documentação é avaliada quanto à completude, clareza, organização e precisão técnica. A apresentação é avaliada considerando clareza da exposição, capacidade de responder perguntas, demonstração do funcionamento do sistema e participação equilibrada de todos os integrantes.

A avaliação contínua representa quarenta por cento da nota final, distribuída ao longo do semestre através de vários componentes. A contribuição nas discussões em sala avalia sua participação ativa nas aulas teóricas, fazendo perguntas relevantes, compartilhando insights e contribuindo para o aprendizado coletivo. A resolução de dúvidas de colegas avalia sua disposição para ajudar outros estudantes, demonstrando solidez em seu próprio conhecimento através da capacidade de explicá-lo a outros. O engajamento nas atividades colaborativas avalia sua participação efetiva no trabalho em grupo, contribuindo de forma equilibrada e construtiva. A pontualidade nas entregas avalia sua capacidade de cumprir prazos estabelecidos para entregas semanais e marcos do projeto.

A avaliação considera também aspectos comportamentais e éticos. Plágio ou cópia de código sem atribuição adequada resulta em reprovação imediata do grupo envolvido. Contribuição desequilibrada dentro do grupo, onde alguns integrantes fazem todo o trabalho enquanto outros não participam, é identificada através dos diários, das entregas individuais de avaliação por pares e da observação durante as aulas. Comportamento não colaborativo ou desrespeitoso com colegas ou professor também impacta negativamente a avaliação.

A entrega parcial e a entrega final possuem pesos diferenciados na composição da nota do Projeto Integrador. A entrega parcial representa aproximadamente trinta por cento da nota do projeto, enquanto a entrega final representa os setenta por cento restantes. Esta distribuição reconhece que o projeto amadurece ao longo do semestre, mas também incentiva esforço consistente desde o início.

Distribuição da Avaliação

A tabela a seguir apresenta a distribuição dos componentes de avaliação da disciplina.

Componente Peso Descrição
Projeto Integrador 60% Implementação, documentação e apresentação do projeto completo
Avaliação Contínua 40% Contribuição em sala, ajuda a colegas, engajamento e pontualidade

A nota do Projeto Integrador é composta conforme a seguir.

Aspecto Peso Critérios
Implementação 40% Funcionalidade, qualidade de código, eficiência, demonstração de conceitos
Documentação 30% Completude, clareza, organização, precisão técnica
Apresentação 15% Clareza, respostas a perguntas, demonstração, participação
Diário 15% Regularidade, reflexão, completude, utilidade

Dicas para Apresentação Eficaz

A apresentação do projeto é momento de demonstrar não apenas o sistema desenvolvido, mas também sua compreensão dos conceitos aplicados e sua capacidade de comunicação técnica. Algumas orientações ajudam a maximizar a eficácia desta apresentação.

Prepare-se extensivamente antes da apresentação. Conheça cada aspecto do seu projeto em profundidade, não apenas as partes que você desenvolveu pessoalmente. Pratique a apresentação múltiplas vezes com todos os integrantes do grupo. Antecipe perguntas que possam ser feitas e prepare respostas claras e concisas. Verifique todo o equipamento necessário com antecedência, incluindo computador, cabo de comunicação com o kit e qualquer outro recurso de apresentação.

Estruture a apresentação de forma lógica e cativante. Comece contextualizando o projeto e seus objetivos. Apresente a arquitetura geral do sistema antes de entrar em detalhes. Demonstre o funcionamento do sistema com casos de uso representativos. Explique decisões técnicas importantes e suas justificativas. Reconheça limitações e possíveis melhorias. Conclua sintetizando os principais aprendizados.

Divida o tempo de apresentação equilibradamente entre os integrantes do grupo. Cada membro deve apresentar aspectos com os quais trabalhou diretamente, mas todos devem demonstrar compreensão do projeto como um todo. Transições entre apresentadores devem ser suaves e planejadas. Evite situações onde um integrante monopoliza a apresentação enquanto outros permanecem em silêncio.

Durante perguntas, responda de forma direta e honesta. Se não souber uma resposta, admita em vez de inventar. Quando possível, demonstre a resposta no sistema funcionando. Evite respostas excessivamente longas que dispersem o foco. Se a pergunta for direcionada a aspecto desenvolvido por colega, permita que ele responda.

A demonstração do sistema deve ser planejada como pequeno roteiro. Prepare sequência de ações que demonstre as principais funcionalidades sem perda de tempo com navegação ou configuração. Tenha plano alternativo caso algo não funcione como esperado durante a demonstração. Mantenha calma se ocorrer falha inesperada, explicando o comportamento esperado e diagnosticando rapidamente a causa do problema.

O tempo de apresentação será especificado pelo professor. Pratique para utilizar aproximadamente noventa por cento do tempo disponível, deixando margem para pequenos imprevistos. Apresentações muito curtas sugerem preparação insuficiente ou projeto superficial. Apresentações que excedem o tempo demonstram falta de planejamento e desrespeito com outros grupos que aguardam.

flowchart TB
    subgraph PREP["Preparação"]
        direction TB
        P1["Conhecer Todo o Projeto"]
        P2["Praticar Apresentação"]
        P3["Antecipar Perguntas"]
        P4["Verificar Equipamentos"]
    end
    
    subgraph ESTRUTURA["Estrutura da Apresentação"]
        direction TB
        E1["Contextualização"]
        E2["Arquitetura Geral"]
        E3["Demonstração"]
        E4["Decisões Técnicas"]
        E5["Limitações e Melhorias"]
        E6["Aprendizados"]
    end
    
    subgraph EXECUCAO["Execução"]
        direction TB
        X1["Divisão Equilibrada"]
        X2["Transições Suaves"]
        X3["Respostas Diretas"]
        X4["Demonstração Planejada"]
    end
    
    PREP --> ESTRUTURA
    ESTRUTURA --> EXECUCAO

Recursos e Suporte

Durante o desenvolvimento do Projeto Integrador, você conta com diversos recursos de suporte que devem ser utilizados de forma inteligente e proativa.

O professor é seu principal recurso de orientação técnica e pedagógica. Durante as aulas de tutoria, aproveite para esclarecer dúvidas, apresentar problemas encontrados e discutir abordagens possíveis. Chegue às aulas com questões específicas já formuladas, tendo tentado resolver problemas por conta própria antes de solicitar ajuda. O professor não desenvolverá o projeto por você, mas pode orientar direções de investigação, sugerir recursos de consulta e ajudar a diagnosticar problemas complexos.

Os materiais didáticos de cada módulo constituem base fundamental para o desenvolvimento do projeto. Estudos estes materiais com atenção, fazendo anotações e experimentando os exemplos apresentados. Quando encontrar dificuldade no projeto, retorne ao material correspondente buscando conceitos que possam ter sido mal compreendidos ou detalhes que passaram despercebidos na primeira leitura.

A documentação técnica do microcontrolador PIC18F4550, o datasheet, é referência essencial que você consultará frequentemente. Este documento de várias centenas de páginas contém todas as informações sobre registradores, periféricos, temporização e características elétricas do dispositivo. Aprenda a navegar neste documento eficientemente, localizando rapidamente as informações necessárias para cada tarefa.

Seus colegas de grupo são recursos valiosos de colaboração e aprendizado mútuo. Quando um integrante domina determinado aspecto do projeto, deve compartilhar este conhecimento com os demais. Sessões de estudo em grupo, programação em par e revisão de código entre colegas aceleram o aprendizado de todos e melhoram a qualidade do projeto.

Recursos online como fóruns, tutoriais e documentação de referência podem complementar os materiais da disciplina. Utilize estes recursos com discernimento, verificando a qualidade das informações e adaptando soluções encontradas ao contexto específico do seu projeto. Código copiado diretamente da internet sem compreensão raramente funciona adequadamente e nunca contribui para seu aprendizado.

O laboratório equipado com os kits de desenvolvimento está disponível para trabalho além dos horários de aula. Verifique com o professor os horários de funcionamento e as regras de utilização. Trabalho adicional em horários alternativos pode ser necessário para grupos que encontrem dificuldades ou desejem implementar funcionalidades extras.

Considerações Éticas e Acadêmicas

O desenvolvimento do Projeto Integrador deve observar princípios éticos e acadêmicos fundamentais que orientam toda atividade de formação profissional.

A originalidade do trabalho é requisito inegociável. Todo código desenvolvido deve ser de autoria do grupo, com exceção de bibliotecas e trechos devidamente identificados e atribuídos a seus autores originais. Copiar código de outros grupos, de semestres anteriores ou de fontes online sem atribuição constitui plágio, que resulta em reprovação imediata de todos os integrantes do grupo envolvido, independentemente de quem efetivamente realizou a cópia.

A colaboração entre grupos é permitida e até incentivada em nível de discussão conceitual e troca de experiências. Grupos podem discutir abordagens gerais, compartilhar dificuldades encontradas e sugerir direções de investigação uns aos outros. O que não é permitido é compartilhamento de código-fonte, documentação ou outros materiais que devem ser desenvolvidos independentemente por cada grupo.

A honestidade nas avaliações é esperada de todos os estudantes. As avaliações por pares devem refletir genuinamente a contribuição de cada integrante. Registros no diário devem corresponder às atividades realmente realizadas. Afirmações sobre funcionalidades do sistema devem ser verdadeiras e verificáveis.

O respeito mútuo deve caracterizar todas as interações durante o projeto. Divergências técnicas devem ser discutidas de forma construtiva, focando em argumentos e evidências. Críticas devem ser direcionadas a ideias e soluções, nunca a pessoas. Todos os integrantes do grupo merecem voz e respeito, independentemente de nível de conhecimento prévio ou facilidade com a matéria.

A responsabilidade individual existe mesmo em trabalho de grupo. Cada integrante é responsável por contribuir efetivamente, cumprir compromissos assumidos com o grupo e buscar ajuda quando encontrar dificuldades que não consegue superar sozinho. Não participar do trabalho do grupo esperando que outros o façam é comportamento inaceitável que será identificado e penalizado.

O cuidado com equipamentos e recursos é responsabilidade de todos. Os kits de desenvolvimento são compartilhados entre turmas e devem ser tratados com zelo. Danos causados por negligência ou mau uso devem ser reportados imediatamente. A organização do espaço de trabalho ao final de cada sessão demonstra respeito pelos colegas que utilizarão o laboratório posteriormente.

Considerações Finais

O Projeto Integrador representa oportunidade singular de aprendizagem que transcende a mera aquisição de conhecimento técnico sobre arquitetura de computadores. Ao longo do semestre, você desenvolverá competências técnicas específicas sobre processadores, memória e sistemas de entrada e saída. Desenvolverá também competências transversais de trabalho em equipe, comunicação técnica, gestão de tempo e resolução de problemas complexos. Estas competências serão diferenciais importantes em sua carreira profissional.

O caminho do projeto não será sempre fácil. Você encontrará obstáculos técnicos que parecem intransponíveis, prazos que parecem impossíveis de cumprir, momentos de frustração quando código não funciona como esperado. Estes desafios são parte essencial da experiência de aprendizagem. A resiliência desenvolvida ao superar estas dificuldades é tão valiosa quanto qualquer conhecimento técnico específico.

Aproveite cada momento deste projeto como oportunidade de crescimento. As aulas teóricas são chances de compreender conceitos que fundamentam toda a computação moderna. As aulas práticas são oportunidades de aplicar estes conceitos em sistema real e tangível. As interações com colegas são momentos de aprender através da colaboração. Os erros e falhas são mestres severos mas efetivos que ensinam lições inesquecíveis.

Ao final do semestre, olhando para trás, você perceberá quanto cresceu desde o primeiro módulo. O sistema que construiu será prova concreta de sua competência. Mais importante, terá desenvolvido capacidade de aprender continuamente, de enfrentar desafios técnicos complexos e de colaborar efetivamente com outros profissionais. Estas capacidades o acompanharão por toda sua carreira, muito após os detalhes específicos do PIC18F4550 terem se tornado memórias distantes.

Bem-vindo ao Projeto Integrador de Arquitetura e Organização de Computadores. O trabalho que você realizará nas próximas semanas definirá não apenas sua nota na disciplina, mas contribuirá significativamente para sua formação como profissional de Ciência da Computação. Que seja uma jornada produtiva e transformadora.