Atividade #763
Fechada
Cálculo de velocidade da roda na stm32f407
Adicionado por Onias Castelo Branco mais de 6 anos atrás.
Atualizado mais de 5 anos atrás.
Descrição
Desenvolver com auxilio da standard peripheral codigo que le encoder para medição de velocidade.
Calcular ARR e tempo entre alterações de velocidade baseado na precisão desejada para o robo.
Arquivos
Calculamos o tempo de amostragem e o valor máximo do encoder.
A conversão é dada por:
2*pi*raio_roda/(valor_max_encoder*transferencia)
para os valores da ssl, a conversão vale 0.00005497786.
raio_roda = 0.028
valor_max_encoder = 400
transferencia = 8
o valor minimo que escolhemos foi 1cm/s e o máximo 6m/s, visto que isso é para a velocidade total da roda.
Fazendo as contas, vimos que é necessário recalcular o valor do encoder a cada 5ms e que o valor máximo medido pelo encoder seria de 550.
Conseguimos também realizar a leitura do encoder.
- Situação alterado de Em andamento para Fechada
- Situação alterado de Fechada para Em andamento
Usando um analisador de sinais, detectei o erro no código que eu fiz na cadeira de microcontroladores 2018, que servia para medir e controlar a velocidade de uma roda do robô.
Link do código: https://github.com/Microcontroladores2018/Joao-Carvalho
Segue imagem dos sinais correspondentes a uma roda girando para trás com 20% de duty cycle:
![](Resposta ponte H.png)
Devido aos MOSFETs canal-P do CI IRF7389, os sinais de MBL e MAL são invertidos na placa.
Com isso, o código poderá ser utilizado para a implementação do algoritmo de controle PID para otmização das constantes do motor.
O código foi corrigido efetivamente e iniciei a implementação da malha de controle para otimização das constantes PID.
Para entender melhor o cálculo dos valores que deveriam ser usados nos registradores no PWM, utilizei como referência este video: https://www.youtube.com/watch?v=zkrVHIcLGww
Importando algumas classes do firmware da SSL e ajustando os comandos da porta USB, agora é possível controlar todos os motores do robô tanto em malha aberta quanto fechada e, também, ajustar as constantes PID.
O Nicolas está trabalhando em um programa em LabView para enviar/receber os comandos do robô para controlar os motores, plotar suas velocidades e ajustar as constantes que, futuramente, será usado também para fazer uma modelagem mais precisa da função de transferência do motor.
O código atualizado se encontra na minha página do github com um README explicativo: https://github.com/joaogocm/RoboIME-PID (as imagens estão desatualizadas)
- Situação alterado de Em andamento para Fechada
Exportar para Atom
PDF