Arquitetura de Software
Clique Aqui para baixar o documento.
Visão Geral da Arquitetura
Componentes
Tabela 1: Componentes principais da arquitetura modular do sistema.
Componente | Definição | Uso |
---|---|---|
Mission Planner 🗺️ | Responsável por coordenar e armazenar dados da missão, fornecendo arquivos de log para o Relatório de Voo, que realiza análises pós-voo detalhadas. | Utilizado para fornecer metadados necessários à elaboração de relatórios de voo e permitir ajustes em tempo real. |
Pixhawk 🛸 | Controlador de voo de alta precisão que executa as instruções do piloto e mantém a estabilidade do drone durante a operação. | Fornece dados em tempo real e é o principal responsável pelo controle físico do drone. |
Raspberry 🍓 | Computador de bordo que processa dados e integra sensores, atuando como hub central para a Realidade Aumentada. | Processa dados de telemetria, coordena a interação entre os sistemas e executa a Realidade Aumentada. |
Óculos de FPV 👓 | Dispositivo que permite ao piloto visualizar o vídeo em primeira pessoa, exibindo a filmagem capturada pelo drone em tempo real. | Utilizado como saída visual crítica para operações de precisão e navegação assistida, ajudando o piloto a fazer ajustes durante o voo. |
Realidade Aumentada 🤖 | Sistema que exibe informações como a composição do vídeo, silhueta de fogo, a mira de previsão de queda e o monitoramento da bateria. | Exibe dados em tempo real nos Óculos de FPV e Notebook, suportando o piloto com feedback vital via protocolo Vtx. |
Relatório de Voo 📄 | Aplicativo que recebe arquivos de log do Mission Planner e cria um dashboard detalhado com a análise dos dados coletados durante os voos. | Serve como uma ferramenta pós-voo para identificar padrões de consumo de energia, instabilidades de voo e tendências nos dados de temperatura da bateria. |
Fonte: Autoria própria. Todos os direitos reservados.
Metas e Restrições Arquiteturais
Metas
Tabela 2: Metas arquiteturais para o design e desenvolvimento do sistema.
Tipo | Descrição |
---|---|
🏎️ Desempenho | Garantir que o sistema processe dados em tempo real sem atrasos perceptíveis, especialmente em operações críticas. |
📈 Escalabilidade | Projetar a arquitetura para permitir a adição de novos módulos e funcionalidades sem grandes mudanças na estrutura existente. |
🔒 Confiabilidade | Assegurar que o sistema opere de forma consistente, minimizando falhas e tempo de inatividade para manter a operação contínua. |
🔧 Manutenibilidade | Facilitar a atualização e a correção do sistema, permitindo que modificações e melhorias sejam feitas de forma rápida e eficiente. |
🖥️ Usabilidade | Assegurar que a interface de controle e os dispositivos sejam intuitivos, facilitando o uso pelos operadores. |
Fonte: Autoria própria. Todos os direitos reservados.
Restrições
Tabela 3: Restrições arquiteturais para a implementação do sistema.
Restrição | Descrição |
---|---|
Limitações de Hardware | O sistema precisa ser compatível com o hardware disponível (Raspberry e Pixhawk), considerando memória e poder de processamento. |
Compatibilidade de Software | O sistema deve funcionar com as versões de software que sejam compatíveis com os componentes de hardware. |
Facilidade de Manutenção | O sistema deve ser fácil de manter e atualizar, com suporte para resolver problemas e implementar melhorias. |
Integração Simples | O sistema precisa ser fácil de integrar com outros sistemas e tecnologias existentes ou futuras. |
Fonte: Autoria própria. Todos os direitos reservados.
Diagrama de Arquitetura de Software
Figura 1: Diagrama de Arquitetura de Software.
Fonte: Autoria própria. Todos os direitos reservados.
Tecnologias
Tabela 4: Tecnologias utilizadas no desenvolvimento do sistema e seus respectivos usos.
Tecnologia | Descrição | Uso no Sistema |
---|---|---|
🐍 Linguagem de Programação | Python, JavaScript ou C++ | Usada para o desenvolvimento do sistema, incluindo scripts de controle, algoritmos e interfaces de usuário. |
📹 Vtx | Protocolo de comunicação especializado na transmissão de vídeo. | Envia o feed de vídeo em tempo real do drone para o piloto, garantindo uma visualização de alta qualidade e baixa latência. |
📡 MAVLink | Protocolo de comunicação padronizado para veículos aéreos não tripulados. | Envia e recebe dados de telemetria entre o drone e o computador de controle, possibilitando o monitoramento em tempo real das operações de voo. |
👁️ OpenCV | Framework de código aberto para aplicações de visão computacional. | Utilizado no assistente de mira para reconhecimento e processamento de imagens, ajudando no rastreamento e detecção de alvos. |
🖥️ Electron | Framework de código aberto que permite criar aplicativos de desktop multiplataforma. | Usada para criar interfaces interativas, visualizando dados em tempo real e gerando relatórios detalhados do voo. |
🖥️ Node.js | Plataforma de execução de JavaScript no lado do servidor. | Utilizado para completa integração dos recursos do Electron. |
🖥️ Nodemon | Ferramenta que monitora alterações nos arquivos e reinicia automaticamente o servidor. | Usada para eliminar reinicializações manuais do servidor. |
🎨 Figma | Ferramenta de design de interfaces e protótipos. | Usada para criar protótipos e interfaces de usuário, facilitando a visualização e o planejamento da interação com o sistema. |
📊 Astah | Ferramenta de modelagem UML (Unified Modeling Language) para criação de diagramas de software. | Utilizada para criar os diagramas de sequência, auxiliando na documentação e no planejamento estrutural do sistema. |
🗂️ Lucidchart | Ferramenta online de criação de diagramas e colaboração visual. | Usada para diagramas de componentes, facilitando a compreensão e a comunicação entre equipes. |
🧠 Yolo v8 | Modelo de inteligência artificial treinado para reconhecimento de objetos | utilizado para identificar focos de incêndio em tempo real |
Fonte: Autoria própria. Todos os direitos reservados.
Visão de Caso de Uso
Legenda
A Tabela 5 apresenta a legenda utilizada para descrever os elementos que compõem os casos de uso detalhados nesta seção.
Tabela 5: Legenda dos elementos de casos de uso.
Ícone | Elemento | Descrição |
---|---|---|
👨💻 | Ator | O usuário ou piloto que interage com o sistema. |
🎯 | Objetivo | A meta ou finalidade do caso de uso, o que se busca alcançar. |
✅ | Pré-condições | Condições que precisam ser atendidas antes da execução do caso de uso. |
🔄 | Fluxo Principal | Passos sequenciais que descrevem a execução normal do caso de uso. |
⚠️ | Fluxo Alternativo | Cenários alternativos ou de erro que podem ocorrer durante a execução. |
📊 | Pós-condições | O resultado esperado ou o estado final após a execução do caso de uso. |
💡 | Requisitos Especiais | Necessidades específicas para garantir que o caso de uso seja executado de maneira eficaz e satisfatória. |
Fonte: Autoria própria. Todos os direitos reservados.
Caso de Uso 1: Visualizar Informações nos Óculos FPV
Tabela 6: Elementos do caso de uso: Visualizar Informações nos Óculos FPV.
Ícone | Elemento | Descrição |
---|---|---|
👨💻 | Ator | Piloto |
🎯 | Objetivo | Permitir que o piloto visualize, em tempo real, informações fornecidas pelos óculos FPV (ex.: dados do drone, localização, altitude). |
✅ | Pré-condições | - Óculos FPV conectados ao sistema. - Sistema operacional funcional. |
🔄 | Fluxo Principal | 1. O sistema transmite informações aos óculos FPV. 2. O piloto visualiza as informações em tempo real. |
⚠️ | Fluxo Alternativo | Falha na Conexão: O piloto recebe uma mensagem de erro caso haja falha na comunicação. |
📊 | Pós-condições | Piloto visualiza as informações enquanto o sistema estiver ativo. |
💡 | Requisitos Especiais | Informações claras e legíveis, com baixa latência. |
Fonte: Autoria própria. Todos os direitos reservados.
Caso de Uso 2: Visualizar Informações nos Notebook
Tabela 7: Elementos do caso de uso: Visualizar Informações nos Óculos FPV.
Ícone | Elemento | Descrição |
---|---|---|
👨💻 | Ator | Copiloto |
🎯 | Objetivo | Permitir que o piloto visualize, em tempo real, informações fornecidas pelas câmeras do drone |
✅ | Pré-condições | - Computador conectado ao sistema. - Sistema operacional funcional. |
🔄 | Fluxo Principal | 1. O sistema transmite informações ao computador. 2. O copiloto visualiza as informações em tempo real. |
⚠️ | Fluxo Alternativo | Falha na Conexão: O copiloto recebe uma mensagem de erro caso haja falha na comunicação. |
📊 | Pós-condições | Copiloto visualiza as informações enquanto o sistema estiver ativo. |
💡 | Requisitos Especiais | Informações claras e legíveis, com baixa latência. |
Fonte: Autoria própria. Todos os direitos reservados.
Caso de Uso 3: Visualizar Relatório de Voo
Tabela 8: Elementos do caso de uso: Visualizar Relatório de Voo.
Ícone | Elemento | Descrição |
---|---|---|
👨💻 | Ator | Piloto / Usuário |
🎯 | Objetivo | Permitir que o piloto visualize os relatórios de voo, apresentando gráficos alimentados por dados de um arquivo de log gerado pelo MissionPlanner. |
✅ | Pré-condições | - Aplicativo de Relatório de Voo instalado. - Arquivo de log do MissionPlanner disponível para upload. |
🔄 | Fluxo Principal | 1. O piloto baixa o arquivo de log após o voo. 2. O piloto faz o upload do arquivo no aplicativo de Relatório de Voo. 3. O aplicativo gera gráficos com as variáveis de voo. |
⚠️ | Fluxo Alternativo | Erro no Arquivo de Log: Caso o arquivo esteja corrompido ou com dados inconsistentes, o aplicativo exibe uma mensagem de erro. |
📊 | Pós-condições | O piloto visualiza os gráficos detalhados, com as variáveis de voo ao longo do tempo, para análise do desempenho da missão. |
💡 | Requisitos Especiais | O aplicativo deve ser capaz de processar arquivos de log de diferentes durações de voo e exibir gráficos de maneira clara e interativa. |
Fonte: Autoria própria. Todos os direitos reservados.
Visão Lógica
Diagrama de Componentes
Diagrama de Sequência
Fluxos de Relatório de Voo
Fluxo 1: Página Inicial
Fluxo 2: Página de Pós-Voo
Fluxo 3: Dashboard de Todos os Gráficos
Figura 5: Fluxo do dashboard com todos os gráficos.
Fonte: Autoria própria. Todos os direitos reservados.
Fluxo 4: Página de Gráficos Únicos
Fluxos de Assistência de Mira
Fluxo 1: Start Assitente de Voo
Referências
ELECTRON. What is Electron?
Acesso em: 03 nov. 2024.ARDUINO. What is Arduino?
Acesso em: 03 nov. 2024.EDRAWSOFT. Diagrama de Arquitetura de Sistema: Um Tutorial Completo
Acesso em: 03 nov. 2024.CIN. Conceito: Visão Lógica
Acesso em: 13 nov. 2024.LUCIDCHART. Diagrama de Componentes UML: o que é, como fazer e exemplos
Acesso em: 13 nov. 2024.LUCIDCHART. O que é um Diagrama de Sequência UML?
Acesso em: 13 nov. 2024.VISUAL PARADIGM. Tudo o que você precisa saber sobre diagramas de sequência.
Acesso em: 22 nov. 2024.
Tabela de Versionamento
Versão | Data | Descrição | Autor(es) |
---|---|---|---|
1.0 | 03/11/2024 | Criação inicial e estrutura do artefato | Gustavo Martins e Gabriel Ferreira |
1.1 | 13/11/2024 | Desenvolvimento de uma nova versão do diagrama de arquitetura de software e atualização da imagem | Gustavo Martins, Felipe Freire, e Gabriel Ferreira |
1.2 | 14/11/2024 | Desenvolvimento dos tópicos Componentes, Tecnologias, Caso de Uso 1 | Deivid Carvalho |
1.3 | 14/11/2024 | Correção de erros e aprimoramento na organização e visualização do artefato, com inclusão de legendas, desenvolvimento dos tópicos Metas e Restrições Arquiteturais, Caso de Uso 2 e Visão Lógica, e uso de tabelas e ícones para maior clareza. | Gustavo Martins |
1.4 | 14/11/2024 | Desenvolvimento dos Diagramas de Componentes e de Sequência | Felipe Freire e Gustavo Martins |
1.5 | 21/11/2024 | Revisão e correção geral e evolução do artefato | Gustavo Martins Ribeiro |
1.6 | 21/11/2024 | Inclusão de Ferramentas no Tópico Tecnologias | Felipe Freire |
1.7 | 22/11/2024 | Inclusão do Diagrama de Sequência da Realidade Aumentada | Felipe Freire, Gabriel Ferreira, Gustavo Martins |
2.0 | 12/01/2025 | Revisão geral e atualização da tabela de tecnologias | Ana Hoffmann |
2.1 | 13/01/2025 | Revisão | Gustavo |