Changing filename, calibrating output values, adding proper failsafe

This commit is contained in:
Lukas Bachschwell 2018-04-17 11:52:17 +02:00
parent 24d1d97e58
commit f13f85df37
3 changed files with 23 additions and 18 deletions

View File

@ -18,12 +18,12 @@ src_filter = +<remote.cpp>
monitor_baud = 115200 monitor_baud = 115200
[env:reciever] [env:receiver]
platform = espressif32 platform = espressif32
board = esp32doit-devkit-v1 board = esp32doit-devkit-v1
framework = arduino framework = arduino
src_filter = +<reciever.cpp> src_filter = +<receiver.cpp>
monitor_baud = 115200 monitor_baud = 115200

View File

@ -1,7 +1,7 @@
//mac addresses //mac addresses
// reciever mac: // reciever mac:
uint8_t mac_reciever[] = {0x30, 0xae, 0xa4, 0x04, 0x21, 0x2d}; uint8_t mac_receiver[] = {0x30, 0xae, 0xa4, 0x04, 0x21, 0x2d};
// remote macStr // remote macStr
uint8_t mac_remote[] = {0x24, 0x0a, 0xc4, 0x82, 0x51, 0x70}; uint8_t mac_remote[] = {0x24, 0x0a, 0xc4, 0x82, 0x51, 0x70};

View File

@ -1,12 +1,14 @@
// ESPNOWSkate Reciever by Lukas Bachschwell this device SLAVE =D // ESPNOWSkate Receiver by Lukas Bachschwell this device SLAVE =D
#include <Servo.h> #include <Servo.h>
#include "Arduino.h" #include "Arduino.h"
#include "SSD1306.h" #include "SSD1306.h"
#include <esp_now.h> #include <esp_now.h>
#include <WiFi.h> #include <WiFi.h>
static const int esc1pin = 15; #define esc1pin 15
static const int esc2pin = 13; #define esc2pin 13
#define fallbackpin 36
Servo esc1; Servo esc1;
Servo esc2; Servo esc2;
@ -14,15 +16,13 @@ SSD1306 display(0x3c, 5, 4);
//#define pairingMode //#define pairingMode
#define FAILSAFE 90 #define CONNECTION_TIMEOUT 300
#define CONNECTION_TIMEOUT 200
#define CHANNEL 1 #define CHANNEL 1
long lastPacket = 0; long lastPacket = 0;
bool isConnected = false; bool isConnected = false;
// ESPNOW Functions ############################ // ESPNOW Functions ############################
//
// config AP // config AP
void configDeviceAP(bool hidden) { void configDeviceAP(bool hidden) {
bool result = WiFi.softAP("ESK8", "ESK8_Password+vD8z2YAvoDBW?Zx", CHANNEL, 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) { void writeServos(uint8_t firstServo, uint8_t secondServo) {
isConnected = true;
esc1.write(firstServo); esc1.write(firstServo);
esc2.write(secondServo); esc2.write(secondServo);
} }
@ -65,14 +64,16 @@ void OnDataRecv(const uint8_t *mac_addr, const uint8_t *data, int data_len) {
void setup() { void setup() {
Serial.begin(115200); Serial.begin(115200);
Serial.println("ESPNowSkate Reciever"); Serial.println("ESPNowSkate Receiver");
display.init(); display.init();
display.flipScreenVertically(); display.flipScreenVertically();
display.setFont(ArialMT_Plain_16); display.setFont(ArialMT_Plain_16);
esc1.attach(esc1pin); // Init escs, min and max value similar as Traxxas TQI 1100, 1900
esc2.attach(esc2pin); // 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 //Set device in AP mode to begin with
WiFi.mode(WIFI_AP); WiFi.mode(WIFI_AP);
@ -100,10 +101,14 @@ void setup() {
void loop() { void loop() {
if(isConnected) { if(millis() - lastPacket > CONNECTION_TIMEOUT ) {
if(millis() - lastPacket > CONNECTION_TIMEOUT ) { isConnected = false;
isConnected = false; int failsafeValue = map(analogRead(fallbackpin), 0, 4095, 0, 180);
writeServos(FAILSAFE, FAILSAFE); writeServos(failsafeValue, failsafeValue);
} display.clear();
char buf[25];
sprintf(buf, "FAIL: %i", failsafeValue);
display.drawString(2, 0, buf);
display.display();
} }
} }