working version
This commit is contained in:
+64
-13
@@ -7,6 +7,10 @@ unsigned long startTime, delayTime = 2000; // in milliseconds
|
||||
int val = 0;
|
||||
bool gotSerialData = false;
|
||||
|
||||
int currentMsgIndex = 0;
|
||||
|
||||
unsigned long lastReceivedMessage = 0; // Variable to store the previous time
|
||||
unsigned long maxMessageDelay = 3000;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
@@ -31,19 +35,72 @@ void setup() {
|
||||
drone.setPinESC(8, MotorPosition::BL);
|
||||
|
||||
|
||||
Serial.println(String("Loop starts in 2 seconds ..."));
|
||||
delay(2000);
|
||||
lastReceivedMessage = millis();
|
||||
Serial.println(String("Loop starts now"));
|
||||
}
|
||||
|
||||
void loop() {
|
||||
String data = drone.radio.receive();
|
||||
|
||||
if (data.length() > 0) {
|
||||
Serial.println(data);
|
||||
String textToSend = "Alive";
|
||||
switch(currentMsgIndex) {
|
||||
case 1:
|
||||
textToSend = drone.getSpeedFromMotor(BL);
|
||||
break;
|
||||
case 2:
|
||||
textToSend = drone.getSpeedFromMotor(BR);
|
||||
break;
|
||||
case 3:
|
||||
textToSend = drone.getSpeedFromMotor(FL);
|
||||
break;
|
||||
case 4:
|
||||
textToSend = drone.getSpeedFromMotor(FR);
|
||||
break;
|
||||
}
|
||||
|
||||
delay(50);
|
||||
if (currentMsgIndex > 4) {
|
||||
currentMsgIndex = 1;
|
||||
} else {
|
||||
currentMsgIndex ++;
|
||||
}
|
||||
|
||||
// Serial.println(textToSend);
|
||||
String recText = drone.radio.receiveAck(textToSend);
|
||||
|
||||
if (recText.length() > 0) {
|
||||
lastReceivedMessage = millis();
|
||||
// Serial.println(recText);
|
||||
|
||||
const char delimiter[] = "|";
|
||||
char* token = strtok(recText.c_str(), delimiter);
|
||||
while (token != NULL) {
|
||||
// read the token here
|
||||
String command = String(token);
|
||||
if (command == "Stop") {
|
||||
drone.stop();
|
||||
} else if (command == "Up") {
|
||||
drone.accelerate();
|
||||
} else if (command == "Down") {
|
||||
drone.decelerate();
|
||||
}
|
||||
token=strtok(NULL, delimiter);
|
||||
}
|
||||
} else {
|
||||
// if no message is received then slow down the motors
|
||||
if (millis() - lastReceivedMessage >= maxMessageDelay) {
|
||||
Serial.println("Lost Connection");
|
||||
drone.stop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
drone.update();
|
||||
|
||||
delay(10);
|
||||
// delay(1000);
|
||||
}
|
||||
|
||||
void manualMotorSpeed() {
|
||||
|
||||
if (Serial.available() != 0) {
|
||||
int tmp = Serial.parseInt();
|
||||
if (tmp != 0) {
|
||||
@@ -66,11 +123,5 @@ void loop() {
|
||||
startTime = micros();
|
||||
gotSerialData = false;
|
||||
}
|
||||
|
||||
// drone.update();
|
||||
|
||||
delay(10);
|
||||
// delay(1000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user