Skip to content

jorgelukas/ProjetoZMPControleDeDirecao

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

ProjetoZMPControleDeDirecao

O código começa com o mapeamento de todos os pinos utilizados pela Placa utilizada, sendo o pino 7 para o acelerador, pino 6 para o frio, pino 9 para o volante e pino 8 para o motor de feedback.
O motor de feedback tem a função de realizar uma força contraria no voltante, para que o motorista possa ater as mudanças no terreno em que as rodas estão. Além disso o controlador recebe o torque das rodas para realizar ajustes no torque repassado, possibilitando redução em ambientes ingrimes,  uma aceleração mais suave, redução de forças repentinas, além de uma frenagem também suave, evitando que as rodas travem.
O foi adicionado ao controlador uma placa responsável pela comunicação com os outros controladores, utilizando o protocolo CAM, para utilizar essa placa uma serie de configurações devem ser feitas, como a adição da biblioteca “mcp2515.h”, definição do pino na posição 10, uma struct can_frame que será utilizada como uma estrutura de dados já predefinida pela biblioteca do controlador.
O código possui dois módulos internos, definidos como classes, StabilityController e SteeringController.
StabilityController controla a estabilidade do carro, sendo responsável por receber os valores via modulo CAM das rodas dianteiras. A resposta da IMU vem em 2 pacotes com diferentes ids, 0x04 para controladoraIMUTraseira e 0x05 para controladoraIMUDianteira, a mensagem referente as rodas frontais possuem o torque de cada roda e o ângulo de cada roda, a mensagem referente as rodas traseiras possuem apenas o torque. 
Além de receber os dados da IMU, StabilityController também possui os limites para os ajustes, além de realizar os calculos de estabilidade, e realizar o ajuste de feedback no motor de feedback.
SteeringController é responsável por ler os dados do acelerador, freio e volante, e utiliza as correções de StabilityController para mandar esses dados corrigidos para as rodas frontais e traseiras. 
Os dados são enviados pelo modulo CAM, e caso tenha 2 bytes, quem deve ler a mensagem é a roda traseira, possui os torque corrigidos para a roda traseira, caso possua 4 bytes, quem deve ler a mensagem é a roda dianteira, possuindo além do torque dianteiro o ângulo corrigidos das rodas.
A função de setup é responsavel pelo estado inicial do sistema, atribuindo os pinos corretamente como dito anteriormente e iniciando a comunicação do protocolo CAM.  Já a função loop está sempre “lendo” as informações do acelerador, volante e feio, e enviando para o modulo CAM esses calores ajustados. Antes de realizar o envio das informações, o controlador verificará se existe alguma mensagem no modulo CAM, atribuindo então os valores para suas respectivas variáveis em StabilityController, realizando o ajuste de feedback, e atribuindo em SteeringController as variáveis ajustadas.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages