Multiwii se v2.0 installieren

#21
So nun ist es endlich da mein multiwii. Jetzt fangen aber auch schon die Probleme an. Ich habe das Multiwii an meinen Pc angeschlossen um ihn auf Hexa X umzustellen usw....dazu benutze ich arudiono 1.0.3 doch weiter komme ich nicht ich weis nicht welche datei ich öffnen muss .Auf gut deutsch ich kenne mich damit garnicht aus! Meine Firmware ist momentan 2.1 wenn ich eine drauf hab?
 

olex

Der Testpilot
#22
Lade dir die 2.1 Firmware oder den letzten Dev-Build runter. In der Arduino Software öffnest du die MultiWii.ino datei, dann öffnen sich weitere Tabs mit allen relevanten Dateien - alle Einstellungen machst du in der config.h. Wenn du dich noch gar nicht auskennst, am besten erstmal in die MultiWii Wiki einlesen, hier direkt mit der config.h Beschreibung anfangen: http://www.multiwii.com/wiki/index.php?title=Config.h
 

olex

Der Testpilot
#24
.pde war das alte Format für Arduino-Code, das heißt du hast eine alte Version von Arduino, nicht 1.0.3... und öffnen tuest du wie gesagt die MultiWii.ino (oder MultiWii_<version>.ino), den Rest inkl. config.h öffnet Arduino dann selbst in weiteren Tabs.
 
#29
so sieht Multiwii_2_1.ino bei mir aus:

MultiWiiCopter by Alexandre Dubus
www.multiwii.com
July 2012 V2.1
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
any later version. see <http://www.gnu.org/licenses/>
*/

#include <avr/io.h>

#include "config.h"
#include "def.h"

#include <avr/pgmspace.h>
#define VERSION 210

/*********** RC alias *****************/
#define ROLL 0
#define PITCH 1
#define YAW 2
#define THROTTLE 3
#define AUX1 4
#define AUX2 5
#define AUX3 6
#define AUX4 7

#define PIDALT 3
#define PIDPOS 4
#define PIDPOSR 5
#define PIDNAVR 6
#define PIDLEVEL 7
#define PIDMAG 8
#define PIDVEL 9 // not used currently

#define BOXACC 0
#define BOXBARO 1
#define BOXMAG 2
#define BOXCAMSTAB 3
#define BOXCAMTRIG 4
#define BOXARM 5
#define BOXGPSHOME 6
#define BOXGPSHOLD 7
#define BOXPASSTHRU 8
#define BOXHEADFREE 9
#define BOXBEEPERON 10
#define BOXLEDMAX 11 // we want maximum illumination
#define BOXLLIGHTS 12 // enable landing lights at any altitude
#define BOXHEADADJ 13 // acquire heading for HEADFREE mode

#define PIDITEMS 10
#define CHECKBOXITEMS 14

const char boxnames[] PROGMEM = // names for dynamic generation of config GUI
"ACC;"
"BARO;"
"MAG;"
"CAMSTAB;"
"CAMTRIG;"
"ARM;"
"GPS HOME;"
"GPS HOLD;"
"PASSTHRU;"
"HEADFREE;"
"BEEPER;"
"LEDMAX;"
"LLIGHTS;"
"HEADADJ;"
;

const char pidnames[] PROGMEM =
"ROLL;"
"PITCH;"
"YAW;"
"ALT;"
"Pos;"
"PosR;"
"NavR;"
"LEVEL;"
"MAG;"
"VEL;"
;

static uint32_t currentTime = 0;
static uint16_t previousTime = 0;
static uint16_t cycleTime = 0; // this is the number in micro second to achieve a full loop, it can differ a little and is taken into account in the PID loop
static uint16_t calibratingA = 0; // the calibration is done in the main loop. Calibrating decreases at each cycle down to 0, then we enter in a normal mode.
static uint16_t calibratingG;
static uint16_t acc_1G; // this is the 1G measured acceleration
static int16_t acc_25deg;
static int16_t headFreeModeHold;
static int16_t gyroADC[3],accADC[3],accSmooth[3],magADC[3];
static int16_t heading,magHold;
static uint8_t vbat; // battery voltage in 0.1V steps
static uint8_t rcOptions[CHECKBOXITEMS];
static int32_t BaroAlt;
static int32_t EstAlt; // in cm
static int16_t BaroPID = 0;
static int32_t AltHold;
static int16_t errorAltitudeI = 0;
#if defined(BUZZER)
static uint8_t toggleBeep = 0;
#endif
#if defined(ARMEDTIMEWARNING)
static uint32_t ArmedTimeWarningMicroSeconds = 0;
#endif

static int16_t debug[4];
static int16_t sonarAlt; //to think about the unit

struct flags_struct {
uint8_t OK_TO_ARM :1 ;
uint8_t ARMED :1 ;
uint8_t I2C_INIT_DONE :1 ; // For i2c gps we have to now when i2c init is done, so we can update parameters to the i2cgps from eeprom (at startup it is done in setup())
uint8_t ACC_CALIBRATED :1 ;
uint8_t NUNCHUKDATA :1 ;
uint8_t ACC_MODE :1 ;
uint8_t MAG_MODE :1 ;
uint8_t BARO_MODE :1 ;
uint8_t GPS_HOME_MODE :1 ;
uint8_t GPS_HOLD_MODE :1 ;
uint8_t HEADFREE_MODE :1 ;
uint8_t PASSTHRU_MODE :1 ;
uint8_t GPS_FIX :1 ;
uint8_t GPS_FIX_HOME :1 ;
uint8_t SMALL_ANGLES_25 :1 ;
uint8_t CALIBRATE_MAG :1 ;
} f;

//for log
#if defined(LOG_VALUES) || defined(LCD_TELEMETRY)
static uint16_t cycleTimeMax = 0; // highest ever cycle timen
static uint16_t cycleTimeMin = 65535; // lowest ever cycle timen
static uint16_t powerMax = 0; // highest ever current
static uint32_t armedTime = 0;
static int32_t BAROaltStart = 0; // offset value from powerup
static int32_t BAROaltMax = 0; // maximum value
#endif
 

olex

Der Testpilot
#30
Ja, das sieht richtig aus. Wenn ich bei mir die MultiWii_2_1.ino in Arduino öffne, öffnen sich im gleichen Programmfenster weitere Tabs mit anderen Dateien von MultiWii, darunter auch die config.h. Sieht so aus:

 
#31
ich habs glaub rausgefunden wie das klappt...das problem warum keine anderen bei mir gekommen sind war: arduino wollte immer zuerst einen ordner erstellen wo Multiwii.ino alleine drin ist. Da hab ich die anderen sachen einfach auch noch rein und jetzt kommen auch die anderen. Allerdings wenn ich auf Prüfen klicke kommen ganz viele Fehler in der Liste unten:











In file included from MultiWii_2_1.ino:14:
/def.h:1469:10: error: #error "NUMBER_MOTOR is not set, most likely you have not defined any type of multicopter"
MultiWii_2_1:204: error: 'NUMBER_MOTOR' was not declared in this scope
Output.ino: In function 'void writeAllMotors(int16_t)':
Output:323: error: 'NUMBER_MOTOR' was not declared in this scope
Output:324: error: 'motor' was not declared in this scope
Output.ino: In function 'void initOutput()':
Output:335: error: 'NUMBER_MOTOR' was not declared in this scope
Output.ino: In function 'void mixTable()':
Output:1181: error: 'motor' was not declared in this scope
Output:1182: error: 'NUMBER_MOTOR' was not declared in this scope
Output:1184: error: 'NUMBER_MOTOR' was not declared in this scope
Serial.ino: In function 'void evaluateCommand()':
Serial:208: error: 'MULTITYPE' was not declared in this scope
Serial:240: error: 'NUMBER_MOTOR' was not declared in this scope
Serial:240: error: 'motor' was not declared in this scope
 
#32
ok hat geklappt...die einzigste frage die mir zu arduino jetzt noch bleibt was für ein board ist mein Multiwii se 2 ? Also um es uploaden zu können muss ich ja ein board angeben( tools ----> board)
 

olex

Der Testpilot
#34
Macht generell nicht viel Unterschied solange's der 328er ist. Ich hab eine Crius Multiwii SE v0.2, dafür nimmt man die Arduino Pro/Pro Mini mit Atmega328 und 5.5V, funktioniert einwandfrei.
 
#36
ich glaub ich hab irgendwas ausversehen falsch aktiviert oder so... in der gui zeigt es keine werte bei gyro und acc an außer beim kalibrieren
 

olex

Der Testpilot
#38
Welches Board hast du denn in der config.h ausgewählt, und welches hast du genau? Am besten mit Link zu einer genauen Beschreibung, es ist wichtig welche Sensoren verbaut sind, dass man auch die richtigen in MultiWii aktiviert hat.
 

Zuse

Erfahrener Benutzer
#40
Das Board hat einen ITG3205 (3-achs Gyro) UND einen MPU6050 (3-achs Gyro und 3-achs ACC) !?
Dazu noch einen Kompass und einen Barometer.
Entweder findet sich die "Cruis MultiWii SE 2.0" als solche in der config-Datei oder man aktiviert die Sensoren einzeln,
dann weiß ich nicht recht, wie man mit dem Einzel-Gyro umgehen soll, denn das Aktivieren der MPU6050 aktiviert m.W. deren beide Sensoreinheiten und damit wären zwei getrennte Kreisel unterwegs...
Aber es gibt hier Experten, die dazu was sagen können.

Manfred
 
FPV1

Banggood

Oben Unten