|
|
@ -1,31 +1,53 @@
|
|
|
|
#include "servo.h"
|
|
|
|
#include "servo.h"
|
|
|
|
|
|
|
|
#include <WebMonitor>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ServoController::initServos() {
|
|
|
|
void ServoController::initServos() {
|
|
|
|
HrzSrv.attach(12, 500, 2500);
|
|
|
|
HrzSrv.attach(12, 500, 2500);
|
|
|
|
delay(50);
|
|
|
|
delay(50); // Espera 50ms para o motor se mover
|
|
|
|
VrtSrv.attach(13, 500, 2500);
|
|
|
|
VrtSrv.attach(13, 500, 2500);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*void ServoController::initMag() {
|
|
|
|
void ServoController::initMag() {
|
|
|
|
|
|
|
|
while (!mag.begin()) {
|
|
|
|
|
|
|
|
WebMonitor.println("ERRO: Não foi possível iniciar o magnetometro.");
|
|
|
|
|
|
|
|
WebMonitor.println("Tentando novamente em 500ms");
|
|
|
|
|
|
|
|
delay(500);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}*/
|
|
|
|
if (mag.isQMC()) {
|
|
|
|
|
|
|
|
WebMonitor.println("Iniciando magnetometro QMC5883L");
|
|
|
|
|
|
|
|
|
|
|
|
void ServoController::updateHeading() {
|
|
|
|
mag.setRange(QMC5883_RANGE_8GA);
|
|
|
|
for (int i = 0; i <= 180; i+=5) {
|
|
|
|
WebMonitor.print("Range: ");
|
|
|
|
HrzSrv.write(i);
|
|
|
|
WebMonitor.println(mag.getRange());
|
|
|
|
delay(20);
|
|
|
|
|
|
|
|
VrtSrv.write(i);
|
|
|
|
mag.setMeasurementMode(QMC5883_CONTINOUS);
|
|
|
|
delay(200);
|
|
|
|
WebMonitor.print("Modo de leitura: ");
|
|
|
|
}
|
|
|
|
WebMonitor.println(mag.getMeasurementMode());
|
|
|
|
for (int i = 180; i >= 0; i-=5) {
|
|
|
|
|
|
|
|
HrzSrv.write(i);
|
|
|
|
mag.setDataRate(QMC5883_DATARATE_200HZ);
|
|
|
|
delay(20);
|
|
|
|
WebMonitor.print("Velocidade: ");
|
|
|
|
VrtSrv.write(i);
|
|
|
|
WebMonitor.println(mag.getDataRate());
|
|
|
|
delay(200);
|
|
|
|
|
|
|
|
|
|
|
|
mag.setSamples(QMC5883_SAMPLES_8);
|
|
|
|
|
|
|
|
WebMonitor.print("Sample: ");
|
|
|
|
|
|
|
|
WebMonitor.println(mag.getSamples());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mag.setDeclination(DECLINATION);
|
|
|
|
|
|
|
|
WebMonitor.print("Declinação: ");
|
|
|
|
|
|
|
|
WebMonitor.println(DECLINATION);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
WebMonitor.println("ERRO: Magnetometro encontrado não é suportado.");
|
|
|
|
|
|
|
|
WebMonitor.println("Suspendendo operação.");
|
|
|
|
|
|
|
|
while (true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ServoController::updateHeading() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ServoController::moveToAzAlt() {
|
|
|
|
void ServoController::moveToAzAlt() {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|