Mentre attendo la merce dalla dogana ho deciso di affrontare il famoso “Filtro di Kalman”… (titolo da film)
dopo che ho adattato il listato a WMp e Nunchuk(per l’accelerometro e giroscopio) vengo al punto… perche sommare P+I+D…
a me servirebbe un +/-Nord +/-Sud +/-Est +/-Ovest…
come li ottongo con questo valore? secondo me potrei ottenere soltanto… ±Nord ±Sud… in base a come è orientato il PCB.
Esempio:
float coefP = (float) totalcoef[0] * 5 / 1024;
float coefI = (float) totalcoef[1] * 5 / 1024;
float coefD = (float) totalcoef[2] * 5 / 1024;
P = myangle * coefP;
I = (I + myangle) * coefI;
if(I * myangle < 0)
I = 0;
D = (myangle - oldAngle) * coefD; //ROLL
pid = P+I+D;
if(pid<20){
stica = map(pid, -50,14,0,90);
//SERVO GRUPPO 1-2?
}
if(pid>20){
stica = map(pid, 14,78,90,180);
//SERVO GRUPPO 3-4?
}