I'm building a minds i drone and keep getting the same error code what does it mean.
In file included from C:\Users\s687980\Documents\Arduino\libraries\MINDS-i-Drone\src/MINDS-i-Drone.h:74:0,
from C:\Users\s687980\AppData\Local\Temp.arduinoIDE-unsaved2024122-5744-7h9j3q.f4m5o\APM_balanceTest\APM_balanceTest.ino:3:
C:\Users\s687980\Documents\Arduino\libraries\MINDS-i-Drone\src/input/Bumper.h:18:10: fatal error: MINDSi.h: No such file or directory
#include "MINDSi.h"
^~~~~~~~~~
compilation terminated.
exit status 1
Compilation error: exit status 1
gfvalvo
February 22, 2024, 5:10pm
3
Are you serious???? Pestering people for a reply 5 MINUTES after your first post!!! A post that doesn't provide sufficient information, at that! I think in doing so you've pretty much guaranteed that no one will want to help you.
2 Likes
I apologize for the anger I have caused you; I have had frustration with this for a while and got impatient and stressed out, what other information do I need to provide. Again, apologies for my impatience.
gfvalvo
February 22, 2024, 5:17pm
5
For starters: The Arduino Board you're attempting to compile for. Complete code (posted in CODE TAGS). A list of all libraries you're using and where the come from (Arduino Library Manager or GitHub links). A schematic. A link to any components you're using. A link to any online instructions or projects you're following.
1 Like
I'm pretty sure that you agree and will follow the way how to solve your problem mimimum 200 minutes faster .
This requires to invest 20 minutes of your precious time to read how to speedup solving your problems.
Directly after registering you got presented informations how to speed up solving your problem.
You should really read it.
See also FAQ - Arduino Forum for general rules on forum behaviour and etiquette.
Hello,
Welcome to the Arduino Forum.
This guide explains how to get the best out of this forum. Please read and follow the instructions below.
Being new here you might think this is having rules for the sake of rules, but that is not the case. If you don’t follow the guidelines all that happens is there is a long exchange of posts while we try to get you to tell us what we need in order to help you, which is fru…
best regards Stefan
I can try to find all that, this is my first time working on a project like this, so my knowledge is very limited. Thank you for the reply
#include "Wire.h"
#include "SPI.h"
#include "MINDS-i-Drone.h"
enum ProgramState {
COLLECT_STATES,
CALC_RESULTS,
TUNE_AND_PRINT,
STREAM_DATA
} state;
const char *names[] = {"-X","+X","-Y","+Y","-Z","+Z"};
const uint16_t AVSIZE = 25;
const uint32_t UPDATE_DELAY = 75;
const int Z_VAL = 2500; //maximum accelerometer reading on "empty" axiz
const int ZPVAL = 100; //maximum derivative of value to be "stable"
const char startMessage[] = "\
Hello! \n\
To calibrate your APM2, you will need to hold the device \n\
very steadily on each axis. The progress indicator will \n\
show if the sensor is ligned up with an axis; just \n\
hold it on any axis long enough to get a good reading, \n\
and then move to the rest \n\n\
Tune now (yes) or skip straight to streaming sensor data (no)?";
int facingDir, isShaking;
uint8_t axisLogCount = 0;
bool axisLogged[6];
float acclLog[6][3];
float magnLog[6][3];
MPU6000 mpu;
HMC5883L cmp;
InertialVec* sens[2] = {&mpu, &cmp};
Translator conv[2] = {Translators::identity, Translators::identity};
InertialManager sensors(sens, conv, 2);
Settings set(eeStorage::getInstance());
class datastream{
private:
float average[AVSIZE];
float* avloc;
float der;
float value;
float goodSamples;
void pushAverage(float v){
*avloc = v;
avloc++;
if(avloc >= &average[AVSIZE]) avloc = &average[0];
}
public:
datastream(): avloc(&average[0]) {}
void update(float v){
der = v-value;
value = v;
pushAverage(value);
if(abs(der)<ZPVAL) {
goodSamples++;
} else {
goodSamples=0;
}
}
boolean zero(){
return (abs(value)<Z_VAL);
}
boolean stable(){
return goodSamples >= AVSIZE;
}
float getAverage(){
float sum = 0.0f;
for(uint16_t i=0; i<AVSIZE; i++){
sum += average[i];
}
float av = sum/((float)AVSIZE);
return av;
}
float getValue(){
return value;
}
float isShaking(){
return (abs(der)<ZPVAL);
}
};
datastream accl[3];
datastream magn[3];
void setup(){
Serial.begin(9600);
mpu.begin();
cmp.begin();
delay(1000);
mpu.calibrate();
cmp.calibrate();
delay(250);
auto mpuState = mpu.status();
if(!mpuState.good()){
Serial.println("Bad MPU6000 status");
Serial.println(mpuState.message);
while(true);
}
auto cmpState = cmp.status();
if(!cmpState.good()){
Serial.println("Bad HMC5883L status");
Serial.println(cmpState.message);
while(true);
}
Serial.println(startMessage);
state = (getTrueFalseResponse())? COLLECT_STATES : TUNE_AND_PRINT;
}
void loop(){
static uint32_t time = millis();
if( millis() > time){
time += UPDATE_DELAY;
updateSensorData();
switch(state){
case COLLECT_STATES:
//returns true when all necessary states have been visited
if(collectStates()) state = CALC_RESULTS;
printCollectionStatus();
break;
case CALC_RESULTS:
calculateResults();
axisLogCount = 0;
state = TUNE_AND_PRINT;
break;
case TUNE_AND_PRINT:
applyTuneFromEEPROM();
state = STREAM_DATA;
break;
case STREAM_DATA:
streamData();
break;
default:
while(1);//stop
}
Serial.flush();
}
}
bool collectStates(){
facingDir = -1;
isShaking = -1;
for(int i=0; i<3; i++){
//if two axis are zero'd
if (accl[i].zero() && accl[(i+1)%3].zero()) {
int idx = (i+2)%3; //pick remaining axis
facingDir = idx*2 + (accl[idx].getValue() > 0);
isShaking = !(accl[idx].isShaking());
if(accl[idx].stable()) logData(facingDir);
}
}
return axisLogCount == 0b00111111; //all axis have been counted
}
void printCollectionStatus(){
for(int i=0; i<6; i++){
boolean facing = (facingDir==i);
char delim = ' ';
if(facing && isShaking){
delim = '!';
} else if (facing){
delim = '*';
}
Serial.print(delim);
Serial.print(names[i]);
Serial.print(": ");
Serial.print((axisLogged[i])?"ok":"NA");
Serial.print(delim);
}
Serial.print("\n");
}
void logData(int dir){
axisLogCount |= (1<<dir);
axisLogged[dir] = true;
for(int i=0; i<3; i++){
acclLog[dir][i] = accl[i].getAverage();
magnLog[dir][i] = magn[i].getAverage();
}
}
void printTune(LTATune tune){
Serial.println("Shift x,y,z: ");
for(int i=0; i<3; i++){
Serial.print(tune.shift[i],0);
Serial.print("\t");
}
Serial.println();
Serial.print("Scalar x,y,z: ");
for(int i=0; i<3; i++){
Serial.print(tune.scalar[i],7);
Serial.print("\t");
}
Serial.println();
}
void calculateResults(){
LTATune newAccl = LTATune::FitEllipsoid(acclLog);
LTATune newMagn = LTATune::FitEllipsoid(magnLog);
//{"-X","+X","-Y","+Y","-Z","+Z"}
Serial.println();
for(int i=0; i<3; i++){
float a = magnLog[i*2+0][i];
float b = magnLog[i*2+1][i];
newMagn.calibrate(a, i);
newMagn.calibrate(b, i);
a *= -1;
if(a > 0 && b > 0){
Serial.print("Mag axis ");
Serial.print(i);
Serial.println(" is inverted");
newMagn.scalar[i] *= -1;
}
}
/*
Serial.println();
for(int j=0; j<6; j++){
float data[3];
for(int i=0; i<3; i++) data[i] = magnLog[j][i];
newMagn.calibrate(data);
float val = data[j/2] * ((j%2)? 1.0 : -1.0);
Serial.print(j/2);
Serial.print("\t");
Serial.print(val);
Serial.print("\t");
Serial.println();
}
*/
Serial.println("res = (raw+shift)*scalar");
Serial.println("New accelerometer tune:");
printTune(newAccl);
Serial.println("New magnetometer tune:");
printTune(newMagn);
Serial.println("Would you like to save these values? (y/n)");
if(getTrueFalseResponse()){
set.writeTuningValues(newAccl, newMagn);
}
}
void applyTuneFromEEPROM(){
mpu.tuneAccl(set.getAccelTune());
cmp.tune(set.getMagTune());
}
void resetTuneParameters(){
mpu.tuneAccl(LTATune());
cmp.tune(LTATune());
}
void streamData(){
Serial.print("Accel x,y,z: ");
for(int i=0; i<3; i++){
Serial.print(accl[i].getValue());
Serial.print("\t");
}
Serial.print("Mag x,y,z: ");
for(int i=0; i<3; i++){
Serial.print(magn[i].getValue());
Serial.print("\t");
}
Serial.println();
}
void updateSensorData(){
sensors.update();
float val[3];
sensors.getLinAccel(val[0], val[1], val[2]);
for(int i=0; i<3; i++){
accl[i].update(val[i]);
}
sensors.getMagField(val[0], val[1], val[2]);
for(int i=0; i<3; i++){
magn[i].update(val[i]);
}
}
void burnInput(){
delay(10);
while(Serial.available()){
Serial.read();
delay(1);
}
}
boolean getTrueFalseResponse(){
Serial.print("\nEnter response [y]es, [n]o: ");
while(true){
if(Serial.available()){
char input = Serial.read();
burnInput(); //extra should be ignored
Serial.println();
switch(input){
case 'y':
case 'Y':
return true;
case 'n':
case 'N':
return false;
default:
Serial.print("\nInvalid input; try again [y]es, [n]o: ");
break;
}
}
}
}
Im attempting to use the mega 2560 board
im using the minds i drone library from the library manager in arduino
I have a book in front of me this is a competition kit UAV multirotor done with minds I
The compiler-error-message says this file
MINDSi.h
was not found on your computer
are you sure that you have installed all the required libraries?
We need the fully detailed compiler-log
Hi newcomer,
the Arduino-Forum community can be of great help.
If the community is able to support you in a way that helps solving your problems depends on
detailed information that you should provide.
trying to be quick by posting a too short posting is just
slowing down
finding the solution. Because all that happends is that you are asked for the detailed information and have to provide it anyway. Only difference the answer and the solution comes later
The most important thing is to post …
I am new to this app I appreciate the suggestion, I'm about to go to lunch for school so cannot give 20 minutes right now I will definitely look into it late. Again, thanks for the suggestion.
That is a possibility, I am not too sure what that file would be though, where would I need to search? Again sorry for being so dumb I am new to this
you are just unexperienced and can learn how to do it
xfpd
February 22, 2024, 8:55pm
16
Compiler says this (above) but sketch says this (below)
Hmm... Was any editing done @jack22fn ? If "nothing" was edited, you should remove the library and install a clean copy.
Ok I definitely did NOT edit it, I didn’t even touch it just immediately popped up the error
xfpd
February 26, 2024, 7:41pm
18
The error says you used the ZIP file, not the extracted file.
1 Like
system
Closed
August 24, 2024, 7:41pm
19
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.