From f13f85df37b90d49b5b1462c53f07627d8e93c70 Mon Sep 17 00:00:00 2001 From: Lukas Bachschwell Date: Tue, 17 Apr 2018 11:52:17 +0200 Subject: [PATCH] Changing filename, calibrating output values, adding proper failsafe --- platformio.ini | 4 ++-- src/mac_config.h | 2 +- src/{reciever.cpp => receiver.cpp} | 35 +++++++++++++++++------------- 3 files changed, 23 insertions(+), 18 deletions(-) rename src/{reciever.cpp => receiver.cpp} (75%) diff --git a/platformio.ini b/platformio.ini index b7fd470..22744b1 100644 --- a/platformio.ini +++ b/platformio.ini @@ -18,12 +18,12 @@ src_filter = + monitor_baud = 115200 -[env:reciever] +[env:receiver] platform = espressif32 board = esp32doit-devkit-v1 framework = arduino -src_filter = + +src_filter = + monitor_baud = 115200 diff --git a/src/mac_config.h b/src/mac_config.h index 46ed4b8..32b6fde 100644 --- a/src/mac_config.h +++ b/src/mac_config.h @@ -1,7 +1,7 @@ //mac addresses // reciever mac: -uint8_t mac_reciever[] = {0x30, 0xae, 0xa4, 0x04, 0x21, 0x2d}; +uint8_t mac_receiver[] = {0x30, 0xae, 0xa4, 0x04, 0x21, 0x2d}; // remote macStr uint8_t mac_remote[] = {0x24, 0x0a, 0xc4, 0x82, 0x51, 0x70}; diff --git a/src/reciever.cpp b/src/receiver.cpp similarity index 75% rename from src/reciever.cpp rename to src/receiver.cpp index ada2d68..8a8f162 100644 --- a/src/reciever.cpp +++ b/src/receiver.cpp @@ -1,12 +1,14 @@ -// ESPNOWSkate Reciever by Lukas Bachschwell this device SLAVE =D +// ESPNOWSkate Receiver by Lukas Bachschwell this device SLAVE =D #include #include "Arduino.h" #include "SSD1306.h" #include #include -static const int esc1pin = 15; -static const int esc2pin = 13; +#define esc1pin 15 +#define esc2pin 13 +#define fallbackpin 36 + Servo esc1; Servo esc2; @@ -14,15 +16,13 @@ SSD1306 display(0x3c, 5, 4); //#define pairingMode -#define FAILSAFE 90 -#define CONNECTION_TIMEOUT 200 +#define CONNECTION_TIMEOUT 300 #define CHANNEL 1 long lastPacket = 0; bool isConnected = false; // ESPNOW Functions ############################ -// // config AP void configDeviceAP(bool hidden) { bool result = WiFi.softAP("ESK8", "ESK8_Password+vD8z2YAvoDBW?Zx", CHANNEL, hidden); @@ -34,7 +34,6 @@ void configDeviceAP(bool hidden) { } void writeServos(uint8_t firstServo, uint8_t secondServo) { - isConnected = true; esc1.write(firstServo); esc2.write(secondServo); } @@ -65,14 +64,16 @@ void OnDataRecv(const uint8_t *mac_addr, const uint8_t *data, int data_len) { void setup() { Serial.begin(115200); - Serial.println("ESPNowSkate Reciever"); + Serial.println("ESPNowSkate Receiver"); display.init(); display.flipScreenVertically(); display.setFont(ArialMT_Plain_16); - esc1.attach(esc1pin); - esc2.attach(esc2pin); + // Init escs, min and max value similar as Traxxas TQI 1100, 1900 + // chanel, minAngel, maxAngel, minPulseWidth, maxPulseWidth + esc1.attach(esc1pin, 0, 0, 180, 1100, 1900); + esc2.attach(esc2pin, 1, 0, 180, 1100, 1900); //Set device in AP mode to begin with WiFi.mode(WIFI_AP); @@ -100,10 +101,14 @@ void setup() { void loop() { - if(isConnected) { - if(millis() - lastPacket > CONNECTION_TIMEOUT ) { - isConnected = false; - writeServos(FAILSAFE, FAILSAFE); - } + if(millis() - lastPacket > CONNECTION_TIMEOUT ) { + isConnected = false; + int failsafeValue = map(analogRead(fallbackpin), 0, 4095, 0, 180); + writeServos(failsafeValue, failsafeValue); + display.clear(); + char buf[25]; + sprintf(buf, "FAIL: %i", failsafeValue); + display.drawString(2, 0, buf); + display.display(); } }