From 4ee9a76291f58c594dd51ae6b5f11982a4dcf396 Mon Sep 17 00:00:00 2001 From: Sam Hos Date: Mon, 7 Apr 2025 11:29:34 +0200 Subject: [PATCH] updated code to send all data --- src/controller/drone controller/src/main.cpp | 64 +++++++++++++++----- 1 file changed, 50 insertions(+), 14 deletions(-) diff --git a/src/controller/drone controller/src/main.cpp b/src/controller/drone controller/src/main.cpp index 8904649..e230f6e 100644 --- a/src/controller/drone controller/src/main.cpp +++ b/src/controller/drone controller/src/main.cpp @@ -7,6 +7,7 @@ int normalizePot(int pin, int minValue); int mapPot(int normalizedValue); int analogReadMultiPlexer(int addressA, int addressB, int addressC, int addressD, int pin); void espNow(); +void readAllMultiPlexer(); const int MAXPWMVALUE = 1000; const int MINPWMVALUE = 2000; @@ -20,7 +21,7 @@ typedef struct struct_message int PWMCH3; int PWMCH4; } struct_message; -struct_message myData; // declare the struct as myData +struct_message JoystickData; // declare the struct as JoystickData esp_now_peer_info_t peerInfo; // create a class object of the ESPNow class @@ -35,23 +36,19 @@ void setup() pinMode(D8, OUTPUT); pinMode(D9, OUTPUT); pinMode(D0, INPUT); - } void loop() { - Serial.print("X:" + String(myData.PWMCH2)); - Serial.println(" Y:" + String(myData.PWMCH1)); - - + readAllMultiPlexer(); // Set values to send - myData.PWMCH1 = mapPot(analogReadMultiPlexer(0, 0, 0, 0, A0)); - myData.PWMCH2 = mapPot(analogReadMultiPlexer(1, 0, 0, 0, A0)); // test values - myData.PWMCH3 = 1000; - myData.PWMCH4 = 1000; + JoystickData.PWMCH1 = mapPot(analogReadMultiPlexer(0, 0, 0, 0, A0)); //Right joystick Y + JoystickData.PWMCH2 = mapPot(analogReadMultiPlexer(1, 0, 0, 0, A0)); // Right joystick X + JoystickData.PWMCH3 = mapPot(analogReadMultiPlexer(0, 0, 0, 1, A0)); // left joystick Y + JoystickData.PWMCH4 = mapPot(analogReadMultiPlexer(1, 0, 0, 1, A0)); // left joystick X // Send message via ESP-NOW - esp_err_t result = esp_now_send(broadcastAddress, (uint8_t *)&myData, sizeof(myData)); + esp_err_t result = esp_now_send(broadcastAddress, (uint8_t *)&JoystickData, sizeof(JoystickData)); if (result == ESP_OK) { // Serial.println("Sent with success"); @@ -60,7 +57,7 @@ void loop() { // Serial.println("Error sending the data"); } - delay(10); //delay to avoid hammering the radio and to save power/heat + delay(10); // delay to avoid hammering the radio and to save power/heat } int mapPot(int normalizedValue) @@ -92,7 +89,8 @@ int analogReadMultiPlexer(int addressA, int addressB, int addressC, int addressD return analogRead(pin); } -void espNow(){ // Set device as a Wi-Fi Station +void espNow() +{ // Set device as a Wi-Fi Station WiFi.mode(WIFI_STA); // Init ESP-NOW if (esp_now_init() != ESP_OK) @@ -109,4 +107,42 @@ void espNow(){ // Set device as a Wi-Fi Station { Serial.println("Failed to add peer"); return; - }} + } +} + +void readAllMultiPlexer() +{ + // we counting in binary + Serial.print("0,0,0,0: "); + Serial.println(analogReadMultiPlexer(0, 0, 0, 0, A0)); + Serial.print("1,0,0,0: "); + Serial.println(analogReadMultiPlexer(1, 0, 0, 0, A0)); + Serial.print("0,1,0,0: "); + Serial.println(analogReadMultiPlexer(0, 1, 0, 0, A0)); + Serial.print("1,1,0,0: "); + Serial.println(analogReadMultiPlexer(1, 1, 0, 0, A0)); + Serial.print("0,0,1,0: "); + Serial.println(analogReadMultiPlexer(0, 0, 1, 0, A0)); + Serial.print("1,0,1,0: "); + Serial.println(analogReadMultiPlexer(1, 0, 1, 0, A0)); + Serial.print("0,1,1,0: "); + Serial.println(analogReadMultiPlexer(0, 1, 1, 0, A0)); + Serial.print("1,1,1,0: "); + Serial.println(analogReadMultiPlexer(1, 1, 1, 0, A0)); + Serial.print("0,0,0,1: "); + Serial.println(analogReadMultiPlexer(0, 0, 0, 1, A0)); + Serial.print("1,0,0,1: "); + Serial.println(analogReadMultiPlexer(1, 0, 0, 1, A0)); + Serial.print("0,1,0,1: "); + Serial.println(analogReadMultiPlexer(0, 1, 0, 1, A0)); + Serial.print("1,1,0,1: "); + Serial.println(analogReadMultiPlexer(1, 1, 0, 1, A0)); + Serial.print("0,0,1,1: "); + Serial.println(analogReadMultiPlexer(0, 0, 1, 1, A0)); + Serial.print("1,0,1,1: "); + Serial.println(analogReadMultiPlexer(1, 0, 1, 1, A0)); + Serial.print("0,1,1,1: "); + Serial.println(analogReadMultiPlexer(0, 1, 1, 1, A0)); + Serial.print("1,1,1,1: "); + Serial.println(analogReadMultiPlexer(1, 1, 1, 1, A0)); +} \ No newline at end of file