Pular para o conteúdo principal

4.1. Diagrama de Componentes UML

Este diagrama descreve a arquitetura de componentes do simulador automotivo, incluindo os dispositivos físicos e os softwares envolvidos no sistema.

Diagrama de Componentes


Computador Pessoal (PC)​

Responsável por executar o simulador de corrida e controlar todos os periféricos e interfaces do sistema.

Componentes e Conexões:

  • Simulador de Corrida (JOGO): Software principal responsável por renderizar a simulação do veículo e capturar inputs do volante e pedais.
  • SIMHUB: Middleware que intermedeia a comunicação entre os sensores físicos e o jogo, podendo enviar sinais de feedback ou ler dados de telemetria.
  • Interface Ethernet para Simhub: Conexão para envio/recebimento de telemetria.
  • Saída HDMI para Monitor: Visualização gráfica do jogo.
  • Interface USB para Arduino: Comunicação com leitura de pedais e controle de vibração.
  • Interface USB para Odesc: Comunicação com a controladora de force feedback.

O JOGO é aberto pelo próprio SIMHUB, que executa o jogo encapsulado, captando e retransmitindo as informações de entrada e saída.


Simhub​

Middleware instalado no PC para leitura e envio de dados do simulador.

Responsabilidades:

  • Leitura de Dados do Simulador
  • Processamento de Telemetria
  • Interface Ethernet para Raspberry Pi: Envio de telemetria para exibição remota.

Monitor​

Dispositivo de saída de vídeo ligado ao PC.

  • Display do Jogo: Exibe a simulação gráfica do software de corrida.

Arduino​

Microcontrolador responsável por intermediar periféricos e o sistema principal.

Funções:

  • Leitura de Pedais e Botões: Captura as entradas físicas do usuário.
  • Envio PWM para Motor Drive: Controle de intensidade dos motores de vibração.
  • Interface USB de Sensores: Comunicação com sensores auxiliares.

Atua como intermediário entre os pedais e os módulos de vibração, tanto para coleta de dados quanto para feedback tátil.


Motor Drive​

Placa controladora de vibração.

  • Driver de Vibração: Recebe os sinais PWM do Arduino.
  • Conectado aos Motores de Vibração: Atua diretamente sobre os atuadores táteis.

Vibration Motors​

  • Motores de Vibração: Responsáveis por gerar resposta tátil baseada na simulação, como batidas, saídas de pista ou mudanças de terreno.

Volante​

Componente físico principal de controle da direção.

Composição:

  • Firmware (interno): Sistema embarcado que interpreta os comandos do usuário e envia sinais ao PC, sendo reconhecido como um dispositivo de entrada (joystick HID).
  • Motor: Responsável pela aplicação do force feedback com base nas instruções da controladora.

O firmware também envia comandos ao motor, ativando reações físicas de acordo com os dados do jogo (feedback tátil, retorno de força, etc).


Odesc​

Placa controladora de motores brushless voltada para force feedback.

Funções:

  • Controle FFB: Interpreta os dados de telemetria e gera o retorno de força apropriado.
  • Interface com Encoder: Leitura da posição angular do volante.
  • Controle de Torque: Define o comportamento e resistência do motor.
  • Frenagem Regenerativa: Converte energia mecânica em elétrica.

Brushless Motor​

  • Motor Volante: Executa fisicamente o feedback do volante, reproduzindo forças, colisões e pesos com precisão.

Encoder​

  • Sensor de Posição: Mede com exatidão a rotação e posição angular do volante, alimentando a Odesc com dados para controle dinâmico.

Resistor​

  • Dissipador de Energia: Dissipa a energia gerada pela frenagem regenerativa, protegendo o sistema contra sobrecarga.

Raspberry Pi​

Microprocessador auxiliar responsável pela exibição remota da telemetria do jogo.

Funções:

  • Recebimento de Telemetria do Simhub: Recebe dados por Ethernet.
  • Saída HDMI para Display: Exibe a informação na Tela 7”.

Atua como intermediário entre o Simhub e a tela do painel de direção, montando o painel digital do simulador.


Display 7"​

Display HDMI conectado ao Raspberry Pi.

  • Tela de Telemetria: Apresenta informações como marcha, RPM, velocidade, temperatura e dados em tempo real da simulação.

Pedais​

Conjunto de acelerador, freio e embreagem (se houver), conectado ao Arduino.

  • Detecção de Posição: Envia os valores de pressão/posição ao sistema.
  • Feedback Tátil (se disponível): Pode gerar vibração ou resposta por meio do Motor Drive.

Fluxo de Comunicação​

  • PC ↔ Simhub: Comunicação contínua com o jogo e os periféricos.
  • Simhub ↔ Raspberry Pi: Envio de dados de telemetria para painel externo.
  • PC ↔ Arduino: Envia e recebe dados dos pedais e do driver de vibração.
  • PC ↔ Odesc: Controla motor do volante com base nos dados do encoder.
  • Arduino ↔ Motor Drive ↔ Vibration Motors: Controle tátil via PWM.
  • Odesc ↔ Brushless Motor + Encoder: Controle de força e posição do volante.
  • Odesc ↔ Resistor: Dissipação da energia regenerada.
  • Computador ↔ Volante: Comunicação por HID com retorno tátil.

Observações​

  • As interfaces fornecidas (semicírculo com linha) e requeridas (semicírculo vazio) seguem a notação UML padrão.
  • A estrutura modular permite manutenção facilitada e possíveis expansões futuras no sistema.

Histórico de Versões​

DataEditorDescrição
01/05/2025Rafael NobrePrimeira versão do documento
02/05/2025Rafael NobreAdição do Raspberry Pi e alterações
20/05/2025Alexandre BeckRevisão completa com base no novo diagrama