Merge branch 'Enfileiramento' of bitbucket.org:zendioninc/agrobot_base into Enfileiramento
This commit is contained in:
commit
8a68046098
Binary file not shown.
|
|
@ -1,5 +1,6 @@
|
|||
using AgroBase.Forms;
|
||||
using AgroBase.Services;
|
||||
using Emgu.CV.ML;
|
||||
using Emgu.CV.Structure;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
|
|
@ -539,6 +540,34 @@ namespace AgroBase.Models.Modules
|
|||
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento.AnguloCarroBussola = angulo;
|
||||
|
||||
|
||||
Console.WriteLine("x: " + x + ", y: " + y + ", z: " + z);
|
||||
|
||||
// Calcula o ângulo em radianos usando Math.Atan2(z, x)
|
||||
double angleRad = Math.Atan2(z, x);
|
||||
|
||||
// Converte o ângulo de radianos para graus
|
||||
double angleDeg = angleRad * (180 / Math.PI);
|
||||
|
||||
// Ajusta o ângulo para estar entre 0 e 360 graus
|
||||
if (angleDeg < 0)
|
||||
{
|
||||
angleDeg += 360;
|
||||
}
|
||||
Console.WriteLine("xz: " + angleDeg);
|
||||
|
||||
double angleRad2 = Math.Atan2(y, x);
|
||||
|
||||
// Converte o ângulo de radianos para graus
|
||||
double angleDeg2 = angleRad2 * (180 / Math.PI);
|
||||
|
||||
// Ajusta o ângulo para estar entre 0 e 360 graus
|
||||
if (angleDeg2 < 0)
|
||||
{
|
||||
angleDeg2 += 360;
|
||||
}
|
||||
Console.WriteLine("xy: " + angleDeg2);
|
||||
|
||||
AtualizaGrafico = true;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[{"Momento":"2024-05-07T15:03:24.0754304-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":130.0733310470406,"AnguloCarroBussola":0.0,"AnguloCarro":130.0733310470406,"SonarFrontal":null},{"Momento":"2024-05-07T15:03:28.8724617-03:00","VelocidadeMedia":0.055,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[1.5159836441025689],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":41.402606415230593,"AnguloCarroBussola":0.0,"AnguloCarro":41.402606415230593,"SonarFrontal":null},{"Momento":"2024-05-07T15:03:33.8868472-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[2.8395621033797918],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":145.82708321395091,"AnguloCarroBussola":0.0,"AnguloCarro":145.82708321395091,"SonarFrontal":null},{"Momento":"2024-05-07T15:03:38.886932-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[7.5533992949426789],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":165.57818474637634,"AnguloCarroBussola":0.0,"AnguloCarro":165.57818474637634,"SonarFrontal":null},{"Momento":"2024-05-07T15:03:43.8979192-03:00","VelocidadeMedia":0.03,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[9.1535074923871509],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":44.527629629184787,"AnguloCarroBussola":0.0,"AnguloCarro":44.527629629184787,"SonarFrontal":null},{"Momento":"2024-05-07T15:03:48.9469204-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[10.997372504326716],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":177.05573200896538,"AnguloCarroBussola":0.0,"AnguloCarro":177.05573200896538,"SonarFrontal":null},{"Momento":"2024-05-07T15:03:53.9059201-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[15.357085247674101],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":287.15120341137487,"AnguloCarroBussola":0.0,"AnguloCarro":287.15120341137487,"SonarFrontal":null},{"Momento":"2024-05-07T15:03:58.8953487-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[16.093005713272017],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":300.27951033696468,"AnguloCarroBussola":0.0,"AnguloCarro":300.27951033696468,"SonarFrontal":null},{"Momento":"2024-05-07T15:04:03.8999344-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[16.093005713272017],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":300.27951033696468,"AnguloCarroBussola":0.0,"AnguloCarro":300.27951033696468,"SonarFrontal":null},{"Momento":"2024-05-07T15:04:08.8873012-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[16.093005713272017],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":300.27951033696468,"AnguloCarroBussola":0.0,"AnguloCarro":300.27951033696468,"SonarFrontal":null},{"Momento":"2024-05-07T15:04:13.8925877-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[16.093005713272017],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":300.27951033696468,"AnguloCarroBussola":0.0,"AnguloCarro":300.27951033696468,"SonarFrontal":null},{"Momento":"2024-05-07T15:04:18.8902042-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[16.093005713272017],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":300.27951033696468,"AnguloCarroBussola":0.0,"AnguloCarro":300.27951033696468,"SonarFrontal":null},{"Momento":"2024-05-07T15:04:19.2209745-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[16.093005713272017],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":300.27951033696468,"AnguloCarroBussola":0.0,"AnguloCarro":300.27951033696468,"SonarFrontal":null}]
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
|
|
@ -1 +1 @@
|
|||
{"Conectado":false,"QuantidadeBicos":4,"DensidadeHerbicida":1.05,"CapacidadeReservatorio":30.0,"AtuacaoNivelAlto":true,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":34.42987713140743},{"ID":"B02","Posicao":2,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":14.876485059544191},{"ID":"B03","Posicao":3,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":18.103588945512129},{"ID":"B04","Posicao":4,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":18.437319738098896},{"ID":"B05","Posicao":5,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B06","Posicao":6,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B07","Posicao":7,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B08","Posicao":8,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B09","Posicao":9,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B10","Posicao":10,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0}],"BombaPressurizadora":{"ID":"BOMBA","BombaAtuada":false,"Ligado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[14,35,36,37,5],"PressaoSP":85.0,"Pressao":82.01,"Potencia":0.0},"Sensores":[{"LogGrafico":[],"ID":"FLXLN","Prioridade":23,"Descricao":"Fluxo na linha principal","Componente":198,"Aferir":true,"DelayAmostragem":300,"Inicializado":false,"Testando":false,"Funcoes":[25],"Parametros":[],"UnidadeMedida":"mL/s","Leituras":[0.0,0.0],"ValorMinimo":0.0,"ValorMaximo":25222.0,"LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"MASRS","Prioridade":3,"Descricao":"Massa do reservatório de herbicida","Componente":532,"Aferir":true,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[22,23],"Parametros":[],"UnidadeMedida":"Kg","Leituras":[1117263.12],"ValorMinimo":-1.281631101976581E+32,"ValorMaximo":2.8836731440342142E+24,"LimiteMaximo":50.0,"LimiteMinimo":5.0},{"LogGrafico":[],"ID":"PRSLN","Prioridade":3,"Descricao":"Pressão na linha principal","Componente":333,"Aferir":true,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[24],"Parametros":[["Vmin","000.00"],["Vmax","004.50"],["Pmax","174.04"]],"UnidadeMedida":"psi","Leituras":[82.01],"ValorMinimo":0.0,"ValorMaximo":127.63,"LimiteMaximo":120.0,"LimiteMinimo":60.0}],"PercentualInicioPulverizacao":0.3,"ScriptDeteccaoErvas":"weed-detector-v7.py","_MassaRef":0.8,"_MassaLeituraRef":40876.37,"_MassaLeituraExtra":1895800.0,"_MassaLeitura":1117263.12,"MassaReservatorio":15.236908365395459,"VolumeReservatorio":14.511341300376627,"PercentualReservatorio":48.371137667922085,"VolumeVazaoAferido":102.0,"_FluxoMlRef":102.0,"_FluxoPulsoRef":80.0,"_LeituraPulsos":0,"_LeituraPeriodo":0,"VazaoFluxoMLpS":0.0,"VolumeVazaoML":0.0,"_PressaoVmin":0.0,"_PressaoVmax":4.5,"_PressaoMax":174.045,"_LeituraPressao":2631.0,"PressaoLinha":82.01,"PressaoLinhaCalc":82.0030336996337}
|
||||
{"Conectado":false,"QuantidadeBicos":4,"DensidadeHerbicida":1.05,"CapacidadeReservatorio":30.0,"AtuacaoNivelAlto":true,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Atuado":true,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":34.42987713140743},{"ID":"B02","Posicao":2,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":14.876485059544191},{"ID":"B03","Posicao":3,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":18.103588945512129},{"ID":"B04","Posicao":4,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":18.437319738098896},{"ID":"B05","Posicao":5,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B06","Posicao":6,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B07","Posicao":7,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B08","Posicao":8,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B09","Posicao":9,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B10","Posicao":10,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0}],"BombaPressurizadora":{"ID":"BOMBA","BombaAtuada":false,"Ligado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[14,35,36,37,5],"PressaoSP":85.0,"Pressao":82.01,"Potencia":0.0},"Sensores":[{"LogGrafico":[],"ID":"FLXLN","Prioridade":23,"Descricao":"Fluxo na linha principal","Componente":198,"Aferir":true,"DelayAmostragem":300,"Inicializado":false,"Testando":false,"Funcoes":[25],"Parametros":[],"UnidadeMedida":"mL/s","Leituras":[0.0,0.0],"ValorMinimo":0.0,"ValorMaximo":25222.0,"LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"MASRS","Prioridade":3,"Descricao":"Massa do reservatório de herbicida","Componente":532,"Aferir":true,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[22,23],"Parametros":[],"UnidadeMedida":"Kg","Leituras":[1117263.12],"ValorMinimo":-1.281631101976581E+32,"ValorMaximo":2.8836731440342142E+24,"LimiteMaximo":50.0,"LimiteMinimo":5.0},{"LogGrafico":[],"ID":"PRSLN","Prioridade":3,"Descricao":"Pressão na linha principal","Componente":333,"Aferir":true,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[24],"Parametros":[["Vmin","000.00"],["Vmax","004.50"],["Pmax","174.04"]],"UnidadeMedida":"psi","Leituras":[82.01],"ValorMinimo":0.0,"ValorMaximo":127.63,"LimiteMaximo":120.0,"LimiteMinimo":60.0}],"PercentualInicioPulverizacao":0.3,"ScriptDeteccaoErvas":"weed-detector-v7.py","_MassaRef":0.8,"_MassaLeituraRef":40876.37,"_MassaLeituraExtra":1895800.0,"_MassaLeitura":1117263.12,"MassaReservatorio":15.236908365395459,"VolumeReservatorio":14.511341300376627,"PercentualReservatorio":48.371137667922085,"VolumeVazaoAferido":102.0,"_FluxoMlRef":102.0,"_FluxoPulsoRef":80.0,"_LeituraPulsos":0,"_LeituraPeriodo":0,"VazaoFluxoMLpS":0.0,"VolumeVazaoML":0.0,"_PressaoVmin":0.0,"_PressaoVmax":4.5,"_PressaoMax":174.045,"_LeituraPressao":2631.0,"PressaoLinha":82.01,"PressaoLinhaCalc":82.0030336996337}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -103,7 +103,7 @@
|
|||
}
|
||||
|
||||
} else {
|
||||
console.log("Feature com ID " + idGeometria + " não encontrada.");
|
||||
console.log("Feature com ID " + idGeometria + " n<EFBFBD>o encontrada.");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -139,26 +139,26 @@
|
|||
}).addTo(map_485de4fe4992e7b597d3f52d56de1299);
|
||||
|
||||
// Conectar ao broker MQTT
|
||||
const client = mqtt.connect('ws://localhost:9001'); // Use wss para conexão segura
|
||||
const client = mqtt.connect('ws://localhost:9001'); // Use wss para conex<EFBFBD>o segura
|
||||
|
||||
// Quando conectado, inscreva-se no tópico desejado
|
||||
// Quando conectado, inscreva-se no t<EFBFBD>pico desejado
|
||||
client.on('connect', function () {
|
||||
console.log('Conectado ao broker MQTT');
|
||||
|
||||
// Inscrever-se no tópico
|
||||
// Inscrever-se no t<EFBFBD>pico
|
||||
client.subscribe('coordenadas_gps', function (err) {
|
||||
if (!err) {
|
||||
console.log("Inscrição bem-sucedida no tópico");
|
||||
console.log("Inscri<EFBFBD><EFBFBD>o bem-sucedida no t<>pico");
|
||||
} else {
|
||||
console.error("Falha na inscrição do tópico", err);
|
||||
console.error("Falha na inscri<EFBFBD><EFBFBD>o do t<>pico", err);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Lidar com mensagens recebidas para o tópico inscrito
|
||||
// Lidar com mensagens recebidas para o t<EFBFBD>pico inscrito
|
||||
client.on('message', function (topic, message) {
|
||||
// A mensagem é um Buffer, converta para string ou objeto conforme necessário
|
||||
//console.log(`Mensagem recebida no tópico '${topic}': ${message.toString()}`);
|
||||
// A mensagem <EFBFBD> um Buffer, converta para string ou objeto conforme necess<73>rio
|
||||
//console.log(`Mensagem recebida no t<EFBFBD>pico '${topic}': ${message.toString()}`);
|
||||
var dados = JSON.parse(message);
|
||||
var novaLatitude = dados.latitude;
|
||||
var novaLongitude = dados.longitude;
|
||||
|
|
@ -185,18 +185,18 @@
|
|||
const latB = P2latitude * (Math.PI / 180.0);
|
||||
const lonB = P2longitude * (Math.PI / 180.0);
|
||||
|
||||
// Calcular a diferença de longitude
|
||||
// Calcular a diferen<EFBFBD>a de longitude
|
||||
const deltaLon = lonB - lonA;
|
||||
|
||||
// Calcular a direção
|
||||
// Calcular a dire<EFBFBD><EFBFBD>o
|
||||
const y = Math.sin(deltaLon) * Math.cos(latB);
|
||||
const x = Math.cos(latA) * Math.sin(latB) - Math.sin(latA) * Math.cos(latB) * Math.cos(deltaLon);
|
||||
const direcaoRadianos = Math.atan2(y, x);
|
||||
|
||||
// Converter a direção de radianos para graus
|
||||
// Converter a dire<EFBFBD><EFBFBD>o de radianos para graus
|
||||
let direcaoGraus = direcaoRadianos * (180.0 / Math.PI);
|
||||
|
||||
// Normalizar a direção para que esteja no intervalo de 0 a 360 graus
|
||||
// Normalizar a dire<EFBFBD><EFBFBD>o para que esteja no intervalo de 0 a 360 graus
|
||||
direcaoGraus = (direcaoGraus + 360) % 360;
|
||||
|
||||
return direcaoGraus;
|
||||
|
|
|
|||
|
|
@ -290,6 +290,8 @@ class Motor {
|
|||
GrausPino = (_AgRef < 0 ? -1.0 : 1.0) * _AgRef;
|
||||
Referenciado = true;
|
||||
*evento = false;
|
||||
|
||||
_Angulo = CalculaAnguloPino(anguloReferencia, *estadoAtual);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -360,41 +362,49 @@ class Motor {
|
|||
|
||||
void ReferenciarMotor() {
|
||||
int AgP1 = RefMax / 2;
|
||||
int AgP2 = RefMax;
|
||||
|
||||
// Verifica se o motor já está na posição de referência (dentro da margem de 0º).
|
||||
if (Referenciado && (_Angulo >= -_Margem && _Angulo <= _Margem)) {
|
||||
Referenciando = false;
|
||||
_MotorLigado = false;
|
||||
} else {
|
||||
// Inicia o processo de referenciamento se o motor está parado.
|
||||
if (_Sentido_SP == Parado) {
|
||||
Referenciando = false;
|
||||
_MotorLigado = false;
|
||||
}
|
||||
else {
|
||||
if (_Sentido_SP == Parado && _Angulo == 0) {
|
||||
_Angulo_SP = AgP1;
|
||||
_Sentido_SP = Horario;
|
||||
}
|
||||
// Verifica se o motor excedeu a margem de referência enquanto se move no sentido horário.
|
||||
else if (_Sentido_SP == Horario && _Angulo > _Margem) {
|
||||
_Angulo_SP = -AgP1; // Muda para antihorário para tentar encontrar o ponto de referência.
|
||||
_Sentido_SP = Antihorario;
|
||||
else if (_Sentido_SP == Horario) {
|
||||
if (_Angulo > _Margem && Referenciado) {
|
||||
_Angulo_SP = AgP1;
|
||||
_Sentido_SP = Antihorario;
|
||||
}
|
||||
else if (_Angulo >= AgP1) {
|
||||
_Angulo_SP = AgP1;
|
||||
_Sentido_SP = Antihorario;
|
||||
}
|
||||
else if (_Angulo >= RefMax) {
|
||||
_Angulo_SP = AgP2;
|
||||
_Sentido_SP = Antihorario;
|
||||
}
|
||||
}
|
||||
// Verifica se o motor excedeu a margem de referência enquanto se move no sentido antihorário.
|
||||
else if (_Sentido_SP == Antihorario && _Angulo < -_Margem) {
|
||||
_Angulo_SP = AgP1; // Muda para horário para tentar encontrar o ponto de referência.
|
||||
_Sentido_SP = Horario;
|
||||
else if (_Sentido_SP == Antihorario) {
|
||||
if (_Angulo < -_Margem && Referenciado) {
|
||||
_Angulo_SP = AgP1;
|
||||
_Sentido_SP = Horario;
|
||||
}
|
||||
else if (_Angulo <= -AgP1) {
|
||||
_Angulo_SP = AgP2;
|
||||
_Sentido_SP = Antihorario;
|
||||
}
|
||||
else if (_Angulo <= -AgP2) {
|
||||
_Angulo_SP = AgP2;
|
||||
_Sentido_SP = Horario;
|
||||
}
|
||||
else if (_Angulo <= RefMin) {
|
||||
_Angulo_SP = AgP2;
|
||||
_Sentido_SP = Horario;
|
||||
}
|
||||
}
|
||||
// Continua o processo de referenciamento conforme a lógica original.
|
||||
else if (_Sentido_SP == Horario && _Angulo >= AgP1) {
|
||||
_Angulo_SP = -AgP1;
|
||||
_Sentido_SP = Antihorario;
|
||||
}
|
||||
else if (_Sentido_SP == Antihorario && _Angulo <= -AgP1) {
|
||||
_Angulo_SP = AgP1 * 2;
|
||||
_Sentido_SP = Horario;
|
||||
}
|
||||
else if (_Sentido_SP == Horario && _Angulo >= AgP1 * 2) {
|
||||
_Angulo_SP = -AgP1 * 2;
|
||||
_Sentido_SP = Antihorario;
|
||||
}
|
||||
// Adiciona mais condições conforme necessário para cobrir o processo completo de referenciamento.
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -569,15 +569,19 @@ void RecalcularRelacaoPPR() {
|
|||
}
|
||||
|
||||
void BalanceamentoTask(void *pvParameters) {
|
||||
unsigned long firstMilis = millis();
|
||||
int _delay = delayBalanceamento > 0 ? delayBalanceamento : 5000;
|
||||
|
||||
while (1)
|
||||
{
|
||||
int _delay = delayBalanceamento > 0 ? delayBalanceamento : 5000;
|
||||
long intMillis = (millis() - firstMilis);
|
||||
|
||||
if (Conectado && delayBalanceamento > 0) {
|
||||
if (Conectado && intMillis >= _delay) {
|
||||
BalancearCargasMotores();
|
||||
firstMilis = millis();
|
||||
}
|
||||
|
||||
vTaskDelay(_delay);
|
||||
vTaskDelay(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue