Ola galera estou projetando para TCC da faculdade um robo de equilibrio semelhante o funcionamento do segway...

no blog é :

projetosegway

implementei o PID basico, mas só consigo fazer funcionar um motor quando coloco o outro no programa ele não funciona os dois...

estou usando:

-acelerometro MMA7361

-Ponte H L298

-arduino mega

-prototype shild mega

no PID output, com 1 motor (motor1) ele controla dependendo da posição do angulo de inclinação (normal)

Input = analogRead(A0);
myPID.Compute();
analogWrite(11,Output);  // reverso
analogWrite(10,Output);  // frente

Mas com os dois motores(MOTOR 1 E 2) ele não funciona nenhum dos dois qdo varia a inclinação

Input = analogRead(A0);
myPID.Compute();
analogWrite(11,Output);  //reverso motor1
analogWrite(10,Output);  //frente motor 1

analogWrite(9,Output);  //reverso motor2
analogWrite(8,Output);  //frente motor2

oq pode ser...

Exibições: 4558

Anexos

Responder esta

Respostas a este tópico

Opa Mauro, vou ver sim, mui

to bom....

Olá Leandro.

Eu dei uma olhada neste exemplo da biblioteca que você postou, e eu havia utilizado ele como base para entender a biblioteca. Durante a simulação foi necessário alterar os valores das constantes kp,ki,e kd. E dei uma olhada no blog do Mauro, e ele explica como estimar estes valores. Para mim os valores ficaram na ordem de: kp =200, ki=2, kd =1.

Para ter uma idéia da resposta, colocarei uma imagem abaixo da simulação. O sinal vermelho é o erro que eu estou gerando, e o amarelo é o resultado da corrente do motor após um filtro passa baixas, e o azul é o sinal do PWM. Como você irá utilizar os valores de um acelerômetro para o controle, optei por fazer uma simulação simples com um sinal analógico (pois a resposta de alguns acelerômetros é assim), como referência. E percebi que a ponte H que você está utilizando permite aquisitar os valores de corrente, e utilizei ele para testar o meu controle, mesmo não servindo perfeitamente para controle de posição.

Caso descobrir alguma coisa volto a postar.

T+.

Muito interessante este programa q vc simulou, cada vz mais fico interessado em programação C (arduino).Tem como eu baixar este programa e algum tutorial disponivel...vou pesquisar aqui tbm...

vlw

no codigo se eu deixar com 200, 2 , 1 não corrige nada, mas qdo mexo no derivativo ele reage, estranho...

Tirando aquele Output dos 2 polos do motor (jogando sempre high-high) nas entradas de certo dele se mover, não?!

11 em porta-H, por default, serve para "frear" o motor.

Agora é ajustar os coeficientes e melhorar o código.

Pelo que tens agora, se largar o robô ele tem que ficar parado sem cair... Já andando em um plano XY, acho que vai ter que trabalhar um pouco mais nos(s) PID(s).

jonatas, eu troquei os motores simples (foto), por motores de 1:30 de 300rpm, q são mais precisos e fortes, mas ele não liga se eu não mexer no Derivativo...isso é normal?

se eu mexer só no PI não adianta...

esquema eletrico do meu projeto

Anexos

galera veja como ele esta já, tem video e fotos....veja nesse link:

http://projetosegway.blogspot.com/

Olá, já havia visto o seu projeto no blog, achei muito interessante, estou iniciando no Arduíno, adquirí alguns componentes para montar um projeto similar, vou fazer algumas experiências com as informações deste fórum e de outros que encontrei. Quando tiver novidades do progresso do seu projeto, por favor publique para conhecimento de todos. Desejo boa sorte....

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço