Project

General

Profile

Atividade #763

Cálculo de velocidade da roda na stm32f407

Added by Onias Castelo Branco almost 3 years ago. Updated over 1 year ago.

Status:
Fechada
Priority:
Imediata
Target version:
Start date:
05/26/2018
Due date:
Spent time:

Description

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.

Resposta ponte H.png (21.1 KB) Preview João Guilherme Oliveira Carvalho de Melo, 02/21/2019 12:26 AM

Resposta%20ponte%20h

History

#1 Updated by Onias Castelo Branco almost 3 years ago

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.

#2 Updated by Onias Castelo Branco almost 3 years ago

Conseguimos também realizar a leitura do encoder.

#3 Updated by Onias Castelo Branco about 2 years ago

  • Status changed from Em andamento to Fechada

#4 Updated by Onias Castelo Branco about 2 years ago

  • Status changed from Fechada to Em andamento

#5 Updated by João Guilherme Oliveira Carvalho de Melo about 2 years ago

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:

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.

#6 Updated by João Guilherme Oliveira Carvalho de Melo about 2 years ago

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

#7 Updated by João Guilherme Oliveira Carvalho de Melo almost 2 years ago

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)

#8 Updated by João Guilherme Oliveira Carvalho de Melo over 1 year ago

  • Status changed from Em andamento to Fechada

Also available in: Atom PDF

Go to top
Add picture from clipboard (Maximum size: 500 MB)