Header dos motores do seguidor de linha
Revision 2:a68b0082faac, committed 2020-09-19
- Comitter:
- lucalm
- Date:
- Sat Sep 19 18:42:59 2020 +0000
- Parent:
- 1:c32f37416338
- Commit message:
- Header dos motores
Changed in this revision
diff -r c32f37416338 -r a68b0082faac main.cpp --- a/main.cpp Thu Sep 17 15:10:20 2020 +0000 +++ b/main.cpp Sat Sep 19 18:42:59 2020 +0000 @@ -288,8 +288,6 @@ wait(2); //Delay para estabilizar - PulsoInicial(); // Pulso inicial para os motore - END.attach(&ParadaFinal, 24.5); //Chama a funcao ParadaFinal em x segundos while(1){
diff -r c32f37416338 -r a68b0082faac motors.cpp --- a/motors.cpp Thu Sep 17 15:10:20 2020 +0000 +++ b/motors.cpp Sat Sep 19 18:42:59 2020 +0000 @@ -1,5 +1,6 @@ #include "mbed.h" #include "motors.h" +//#include "PID.h" /*================================================= --------------- CODIGO DOS MOTORES ---------------- @@ -14,13 +15,8 @@ DigitalOut direcaoDireita (p23); AnalogIn batMeasure (p22); -void PulsoInicial() -{ -rodaEsquerda.period(0.00); -rodaDireita.period(0.00); -} -void Setup_Motores(void)//Funcao de setup dos motores +void Setup_Motores(void)//Funcao de setup dos motores, ajustando o periodo para inicializar o pwm { rodaEsquerda.period(0.01); rodaDireita.period(0.01); @@ -28,7 +24,7 @@ void ControleMotores (float VelocidadeEsquerda, float VelocidadeDireita ){ //Função drive, controla a velocidade de cada roda - if (VelocidadeEsquerda <= 0){// + if (VelocidadeEsquerda <= 0){ VelocidadeEsquerda = abs(VelocidadeEsquerda);//Utiliza o modulo da velocidade, pois esta nao pode ser negativa direcaoEsquerda = 0;//Muda a direcao da roda. rodaEsquerda.write(VelocidadeEsquerda); @@ -50,7 +46,7 @@ while(bandeira == 0) { novaVelocidade = novaVelocidade + 0.01; - wait(0.01); + wait(0.001);//Deve ser testado se e necessario esse wait if (novaVelocidade <= velocidadeMax) { bandeira = 1; @@ -65,7 +61,7 @@ while(bandeira == 0) { novaVelocidade = novaVelocidade - 0.01; - wait(0.01); + wait(0.001);//Deve ser testado se e necessario esse wait if (novaVelocidade <= velocidadeMin) { bandeira = 1; @@ -75,18 +71,23 @@ void VelocidadeBateria() // Funcao de setup da velocidade base dos motores { - float leituraBateria = batMeasure.read(); //Lendo a carga da bateria em um numero de 0 a 1 + float leituraBateria = batMeasure; //Lendo a carga da bateria em um numero de 0 a 1 float tensaoBateria = 12.6 * leituraBateria; // Carga atual da bateria em Volts float novaVelocidade = velocidadeBase * 8.4/tensaoBateria;// Calculando a nova velocidade de acordo com a medida de carga atual da bateria return; } -void ParadaFinal() +/*float ajustaVelocidade(float velocidadeEsperada, float velocidadeReal) +{ + Correcao_roda=PID_roda(); + velocidadeEsperada=velocidadeReal + Correcao_roda + return velocidadeEsperada; +}*/ + +void ParadaFinal()//Para o seguidor de linha { while(1) { - direcaoEsquerda = 0; - direcaoDireita = 0; rodaEsquerda.write(0); rodaDireita.write(0); }
diff -r c32f37416338 -r a68b0082faac motors.h --- a/motors.h Thu Sep 17 15:10:20 2020 +0000 +++ b/motors.h Sat Sep 19 18:42:59 2020 +0000 @@ -6,8 +6,6 @@ //------------------ FUNCOES ---------------------- -void PulsoInicial();// Pulso inicial para os motores - void Setup_Motores(void);//Funcao de setup dos motores void ControleMotores (float VelocidadeEsquerda, float VelocidadeDireita );//Controle geral dos motores @@ -19,3 +17,6 @@ void VelocidadeBateria(); // Funcao de setup da velocidade base dos motores void ParadaFinal(); //Para o seguidor de linha + +//float ajustaVelocidade(float velocidadeEsperada, float velocidadeReal);//Ajusta a velocidade através da correcao PID das rodas +