working version

This commit is contained in:
cally22
2023-07-08 22:43:44 +02:00
parent dc5f14256e
commit c55b7fc4ed
5 changed files with 160 additions and 32 deletions
+64 -13
View File
@@ -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);
}