Fallo al subir en placa ESP32 con Libreria EMGFilters.h

Hola buenas estoy realizando un proyecto de un exoesqueleto de mano con un sensor de EMG,
estoy utilizando el sensor EMG de DFRobot SENS0240 y una placa ESP32MINI al subir el codigo a la ESP me da este fallo;
(invalid conversion from 'int' to 'SAMPLE_FREQUENCY' [-fpermissive])
con Arduino funciona perfectamente pero con ESP no se por que no compila.
El codigo que estoy utilizando es el de la propia pagina y la libreria es EMGFilters.h.

Muchas Gracias. Un saludo

/*

  • Copyright 2017, OYMotion Inc.
  • All rights reserved.
  • Redistribution and use in source and binary forms, with or without
  • modification, are permitted provided that the following conditions
  • are met:
    1. Redistributions of source code must retain the above copyright
  • notice, this list of conditions and the following disclaimer.
    1. Redistributions in binary form must reproduce the above copyright
  • notice, this list of conditions and the following disclaimer in
  • the documentation and/or other materials provided with the
  • distribution.
  • THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  • "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  • LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  • FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  • COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  • INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  • BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
  • OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
  • AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  • OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
  • THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
  • DAMAGE.

*/

#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

#include "EMGFilters.h"

#define TIMING_DEBUG 1

#define SensorInputPin A0 // input pin number

EMGFilters myFilter;
// discrete filters must works with fixed sample frequence
// our emg filter only support "SAMPLE_FREQ_500HZ" or "SAMPLE_FREQ_1000HZ"
// other sampleRate inputs will bypass all the EMG_FILTER
int sampleRate = SAMPLE_FREQ_1000HZ;
// For countries where power transmission is at 50 Hz
// For countries where power transmission is at 60 Hz, need to change to
// "NOTCH_FREQ_60HZ"
// our emg filter only support 50Hz and 60Hz input
// other inputs will bypass all the EMG_FILTER
int humFreq = NOTCH_FREQ_50HZ;

// Calibration:
// put on the sensors, and release your muscles;
// wait a few seconds, and select the max value as the threshold;
// any value under threshold will be set to zero
static int Threshold = 0;

unsigned long timeStamp;
unsigned long timeBudget;

void setup() {
/* add setup code here */
myFilter.init(sampleRate, humFreq, true, true, true);

// open serial
Serial.begin(115200);

// setup for time cost measure
// using micros()
timeBudget = 1e6 / sampleRate;
// micros will overflow and auto return to zero every 70 minutes

}

void loop() {
/* add main program code here /
// In order to make sure the ADC sample frequence on arduino,
// the time cost should be measured each loop
/
------------start here-------------------*/
timeStamp = micros();

int Value = analogRead(SensorInputPin);

// filter processing
int DataAfterFilter = myFilter.update(Value);

int envlope = sq(DataAfterFilter);
// any value under threshold will be set to zero
envlope = (envlope > Threshold) ? envlope : 0;

timeStamp = micros() - timeStamp;
if (TIMING_DEBUG) {
    // Serial.print("Read Data: "); Serial.println(Value);
    // Serial.print("Filtered Data: ");Serial.println(DataAfterFilter);
    Serial.print("Squared Data: ");
    Serial.println(envlope);
    // Serial.print("Filters cost time: "); Serial.println(timeStamp);
    // the filter cost average around 520 us
}

/*------------end here---------------------*/
// if less than timeBudget, then you still have (timeBudget - timeStamp) to
// do your work
delayMicroseconds(500);
// if more than timeBudget, the sample rate need to reduce to
// SAMPLE_FREQ_500HZ

}

por favor, mostrar todo el código

int humFreq = ...

debe ser

NOTCH_FREQUENCY humFreq = ...


Muestra todo el código y el mensaje de error completo, para no ir a cuentagotas

1 Like

Por favor, postear códigos de acuerdo a las normas.
Los errores tmb se postean como códigos usando siempre etiquetas, nada de capturas.
Lo siguiente es mi posteo para estos casos.

Moderador:
Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>


This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.