Multiwii by MIS AIRPLANE

FC oparte na Arduino

Moderatorzy: moderatorzy2014, moderatorzy

Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

pbrys pisze:wystarczy :?:
Powinno.
Pzdr. -----MIŚ-----
Awatar użytkownika
pbrys
Posty: 1663
Rejestracja: czwartek 10 lis 2011, 18:52
Lokalizacja: Lubienia

Post autor: pbrys »

wychodzi na to ze tryby stab beda działać, lotki w trybie ANGLE zachowują się poprawie :-D jutro testy w powietrzu

i jeszcze jedno pytanko jak wysterować pantilta prze MW, sygnał wpuszczam przez PPMsum na AUX 3 i 4 bym chciał mieć pantilta , serwa podłączyłbym pod wole wyjścia :?:
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

W kodzie odkomentuj #define SERVO_TILT po czym w ServoMiscConf przypisz środek SERVO1 do AUX3 i środek S2 do AUX4 (klikasz strzałkę w dół przy wartości MID). Rate dla obu ustaw na 0. Sprawdź w monitorze serw czy chodzą serwa S1 i S2 przy zmianach na AUX3 i AUX4. Jak tak, to na wyjściach S1 i S2 powinieneś dostać sygnały do pantilta.
Pzdr. -----MIŚ-----
Awatar użytkownika
pbrys
Posty: 1663
Rejestracja: czwartek 10 lis 2011, 18:52
Lokalizacja: Lubienia

Post autor: pbrys »

Dzieki pomocy MIS i profesor udało mi sie odpalić to co chciałem na płytce kukiego 0.6.3 dla latającego skrzydła:
- stabilizacja żyroskopami
- pełna stabilizacja - ANGLE
- pan/tilt kamery (MW podłączone prze PPMsum z odbiornikiem RC)
/sprawdzone w locie przed chwilą/

zostało do zrobienia/sprawdzenia-pewnie w przeciągu tygodnia
- połączenie z GPS
- RTH

działający u mnie soft dostępny pod tym linkiem
-płytka białymi złączami do kieruku lotu
-serwa lotek podpięte pod M1 i M4
-silnik podpięty pod M3
-serwa pantilta pod S1 i S2 (ServoMiscConf przypisz środek SERVO1 do AUX3 i środek S2 do AUX4 (klikasz strzałkę w dół przy wartości MID). Rate dla obu ustaw na 0)

reszta jest w tym wątku :-D
Awatar użytkownika
pbrys
Posty: 1663
Rejestracja: czwartek 10 lis 2011, 18:52
Lokalizacja: Lubienia

Post autor: pbrys »

niestety poległem
GPS pitlaba i lipa

podłączone pełnym kabelkiem rx-tx, tx-rx, gnd i 5v

Kod: Zaznacz cały

 #define GPS_SERIAL 0 // should be 2 for flyduino v2. It's the serial port number on arduino MEGA
 #define GPS_PROMINI_SERIAL
    #define GPS_BAUD   115200

#define NMEA
    //#define UBLOX
    //#define MTK_BINARY16
    //#define MTK_BINARY19
    #define INIT_MTK_GPS  

po podłaczeniu wtyczki GPSa nie mogę się połączyć z płytką, sprawdzałem na różnych BAUD, ale bez skutku

odpięcie wtyczki GPS - i płytka się łączy

patrzyłem czy GPS się przestawia na daną prędkość ale wychodzi na to że jest OK, wyplówa coś takiego jak zepnę tx-tx w monitorze portów w ARDUINO

Kod: Zaznacz cały

,0.00,0.00,¨$GPGGA,000352.400,,,,,0,0,,,M,,M,,*48
$GPRMC,000352.400,V,,,,,0.00,0.00,060180,,,N*42
$GPGGA,000352.600,,,,,0,0,,,M,,M,,*4A
$GPRMC,000352.600,V,,,,,0.00,0.00,060180,,,N*40
$GPGGA,000352.800,,,,,0,0,,,M,,M,,*44
$GPRMC,000352.800,V,,,,,0.00,0.00,060180,,,N*4E
$GPGGA,000353.000,,,,,0,0,,,M,,M,,*4D
$GPRMC,000353.000,V,,,,,0.00,0.00,060180,,,N*47
$GPGGA,000353.200,,,,,0,0,,,M,,M,,*4F
$GPRMC,000353.200,V,,,,,0.00,0.00,060180,,,N*45
$GPGGA,000353.400,,,,,0,0,,,M,,M,,*49
$GPRMC,000353.400,V,,,,,0.00,0.00,060180,,,N*43
$GPGGA,000353.600,,,,,0,0,,,M,,M,,*4B
$GPRMC,000353.600,V,,,,,0.00,0.00,060180,,,N*41
$GPGGA,000353.800,,,,,0,0,,,M,,M,,*45
$GPRMC,000353.800,V,,,,,0.00,0.00,060180,,,N*4F
$GPGGA,000354.000,,,,,0,0,,,M,,M,,*4A
$GPRMC,000354.000,V,,,,,0.00,0.00,060180,,,N*40
$GPGGA,000354.200,,,,,0,0,,,M,,M,,*48
$GPRMC,000354.200,V,,,,,0.00,0.00,060180,,,N*42
$GPGGA,000354.400,,,,,0,0,,,M,,M,,*4E
$GPRMC,000354.400,V,,,,,0.00,0.00,060180,,,N*44
$GPGGA,000354.600,,,,,0,0,,,M,,M,,*4C
$GPRMC,000354.600,V,,,,,0.00,0.00,060180,,,N*46
$GPGGA,000354.800,,,,,0,0,,,M,,M,,*42
$GPRMC,000354.800,V,,,,,0.00,0.00,060180,,,N*48
$GPGGA,000355.000,,,,,0,0,,,M,,M,,*4B
$GPRMC,000355.000,V,,,,,0.00,0.00,060180,,,N*41
$GPGGA,000355.200,,,,,0,0,,,M,,M,,*49
$GPRMC,000355.200,V,,,,,0.00,0.00,060180,,,N*43
$GPGGA,000355.400,,,,,0,0,,,M,,M,,*4F
$GPRMC,000355.400,V,,,,,0.00,0.00,060180,,,N*45
$GPGGA,000355.600,,,,,0,0,,,M,,M,,*4D
$GPRMC,000355.600,V,,,,,0.00,0.00,060180,,,N*47
$GPGGA,000355.800,,,,,0,0,,,M,,M,,*43
$GPRMC,000355.800,V,,,,,0.00,0.00,060180,,,N*49
$GPGGA,000356.000,,,,,0,0,,,M,,M,,*48
$GPRMC,000356.000,V,,,,,0.00,0.00,060180,,,N*42
$GPGGA,000356.200,,,,,0,0,,,M,,M,,*4A
$GPRMC,000356.200,V,,,,,0.00,0.00,060180,,,N*40
$GPGGA,000356.400,,,,,0,0,,,M,,M,,*4C
$GPRMC,000356.400,V,,,,,0.00,0.00,060180,,,N*46
$GPGGA,000356.600,,,,,0,0,,,M,,M,,*4E
$GPRMC,000356.600,V,,,,,0.00,0.00,060180,,,N*44
$GPGGA,000356.800,,,,,0,0,,,M,,M,,*40
$GPRMC,000356.800,V,,,,,0.00,0.00,060180,,,N*4A
$GPGGA,000357.000,,,,,0,0,,,M,,M,,*49
$GPRMC,000357.000,V,,,,,0.00,0.00,060180,,,N*43
$GPGGA,000357.200,,,,,0,0,,,M,,M,,*4B
$GPRMC,000357.200,V,,,,,0.00,0.00,060180,,,N*41

Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

pbrys pisze:#define GPS_BAUD 115200
Milion razy pisałem żeby nie używać 115200 baud, bo arduino ma ponad 2% błędu przy tej prędkości. Ustaw 57600.
pbrys pisze:po podłaczeniu wtyczki GPSa nie mogę się połączyć z płytką, sprawdzałem na różnych BAUD, ale bez skutku
A jak chcesz się połączyć jednocześnie z PC i z GPS'em przy pomocy jednego uarta na FC ? Podpinając GPS MUSISZ odłączyć interfejs USB i na odwrót. Jak FC wywącha że ma GPS'a to przestaje reagować na komendy z FC.
Z logu wygląda na to że GPS został prawidłowo zainicjowany i działa. Odepnij FTDI, podłącz GPS, załącz zasilanie, obserwuj diodę stable na FC. Powinna zacząć mrugać. Wystaw na zewnątrz i czekaj. Jak złapie FIX'a to powinien machnąć lotkami i sterem wysokości. Jak to zrobi, to jesteś gotowy do oblotu.
Pzdr. -----MIŚ-----
Awatar użytkownika
pbrys
Posty: 1663
Rejestracja: czwartek 10 lis 2011, 18:52
Lokalizacja: Lubienia

Post autor: pbrys »

:oops:

ale sterem wysokości to nie machnie moje skrzydło ;-)

z MWC mam do czynienia dopiero 1 tydzień ;-)

dzięki za inf.
Awatar użytkownika
pbrys
Posty: 1663
Rejestracja: czwartek 10 lis 2011, 18:52
Lokalizacja: Lubienia

Post autor: pbrys »

Obrazek

niestety nic nie miga,
sa 4 diody - power, status, bat, d12

power świeci caly czas
status zapala się jak zazbroję silnik, lub bez zazbrojenia miga jak przekręcę płytkę o większy kąt
bat miga jak nie wyłączę nadajnik (failsave), mignie jak zmieniam tryby stabilizacji
d12 (żółta) świeci cały czas tylko blado

na zewnątrz gps złapał fixa - ale serwa nie drgnęły, diody też bez zmian
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

Ok, pin do diody od GPS nie jest zdefiniowany dla Promini...
zmień w def.h:

Kod: Zaznacz cały

....
  #define I2C_PULLUPS_ENABLE         PORTC |= 1<<4; PORTC |= 1<<5;   // PIN A4&A5 (SDA&SCL)
  #define I2C_PULLUPS_DISABLE        PORTC &= ~(1<<4); PORTC &= ~(1<<5);
  #if !defined(MONGOOSE1_0)
    #define PINMODE_LCD                pinMode(0, OUTPUT);
    #define LCDPIN_OFF                 PORTD &= ~1; //switch OFF digital PIN 0
    #define LCDPIN_ON                  PORTD |= 1;
    #define STABLEPIN_PINMODE        pinMode (12, OUTPUT);
    #define STABLEPIN_ON             PORTB |= 1<<4;
    #define STABLEPIN_OFF            PORTB &= ~(1<<4);
  #endif 
.....
chodzi o definicje dla stablepin

Teraz do testu w config.h zakomentuj #define GPS_LED_INDICATOR i wgraj. Podłącz do odbiornika RC i do GUI, zaznacz jakiegoś AUX'a aby włączał i wyłączał tryb ANGLE. Zobacz czy dioda D12 będzie się zaświecać przy załączeniu trybu angle z aparatury i gasła przy wyłączeniu. Jak tak to OK, możesz spowrotem odkomentować #define GPS_LED_INDICATOR.
No i teraz podepnij GPS i zobacz czy żółta zacznie migać. Jak nie, to kombinuj z ustawieniami GPS aż zacznie mrugać. Pamiętaj tylko aby najpierw podłączać GPS, a potem podawać zasilanie, bo próba inicjalizacji GPS jest robione przez pierwsze kilkanaście sekund po załączeniu zasilania, potem już nie.
Pzdr. -----MIŚ-----
Awatar użytkownika
pbrys
Posty: 1663
Rejestracja: czwartek 10 lis 2011, 18:52
Lokalizacja: Lubienia

Post autor: pbrys »

nie jest dobrze, próba z GPS tez nie pomyślna - lotkami nie macha, GPS na pewno łapie FIX, widać po gasnącej diodzie na nim



MIŚ bez twojej pomocy nie ugryzę tematu :-(
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

Dalej jest coś nie tak z tą żółtą diodą. Ma sie świecić albo nie.
Mrugnięcie czerwonej to normalne, bo ona jest spięta razem z buzzerem i przy zmianach trybu jest beep.
Znalazłem jeszcze to:

Kod: Zaznacz cały

  #if !defined(MONGOOSE1_0)
    //#define SERVO_4_PINMODE            pinMode(12,OUTPUT); // new       - alt TILT_ROLL
    //#define SERVO_4_PIN_HIGH           PORTB |= 1<<4;
    //#define SERVO_4_PIN_LOW            PORTB &= ~(1<<4);
  #endif 
Zakomentuj te 3 linie żeby uwolnić D12 od wyjścia na serwo 4.
Pzdr. -----MIŚ-----
Awatar użytkownika
pbrys
Posty: 1663
Rejestracja: czwartek 10 lis 2011, 18:52
Lokalizacja: Lubienia

Post autor: pbrys »

no myślę że jestem w domu ;-)
musiałem jeszcze zakomentować

Kod: Zaznacz cały

#define GPS_PROMINI_SERIAL
i GPS wraz z żółtą diodą żyją,

testy w polu niebawem

jedyne to co mnie martwi to to żeby się połączyć z płytką przez USB to oprócz wypięcia GPS trzeba jeszcze wgrać sofcik z od komentowanym

Kod: Zaznacz cały

#define GPS_PROMINI_SERIAL
, no ale tego się nie przeskoczy na tej płytce pewnie


MIŚ dziękuję za całą pomoc - mam nadzieję że już nie będę cię męczył pytaniami.


PS. po za tym wydaje mi się że stabilizacja ANGLE działa lepiej na tym skrzydełku niż AP od pitlaba, jest jakaś taka bardziej naturalna ciężko to opisać - lepiej mi leży poprostu

po przetestowaniu wszystkiego wrzucę wersję która lata co by inni już nie musieli o nic pytać ;-)
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

pbrys pisze:edyne to co mnie martwi to to żeby się połączyć z płytką przez USB to oprócz wypięcia GPS trzeba jeszcze wgrać sofcik z od komentowanym
Kod:
#define GPS_PROMINI_SERIAL
, no ale tego się nie przeskoczy na tej płytce pewnie
Da się. Tylko muszę mieć wolny wieczór i odpowiednią ilość uszlachetniacza neuronów aby wpaść na jedyny słuszny sposób jak to pożenić :-)
A jak już wszystko uruchomisz, i podzielisz się swoim softem to może w końcu zrobię definicję dla płytki kuki 0.6.3 która będzie miała wszystko co trzeba bez kombinacji na wyższym poziomie.
Pzdr. -----MIŚ-----
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

Spróbuj pozmieniać:

W multiwii_2_2.ino:

Kod: Zaznacz cały

  #if !(defined(SPEKTRUM) && defined(PROMINI))  //Only one serial port on ProMini.  Skip serial com if Spektrum Sat in use. Note: Spek code will auto-call serialCom if GUI data detected on serial0.
    #if defined(GPS_PROMINI)
      if(GPS_Enable == 2) {serialCom();}          // <--- ta linia zmieniona
    #else
      serialCom();
    #endif
  #endif

Kod: Zaznacz cały

void setup() {
//  #if !defined(GPS_PROMINI)          // <- zakomentowano
    SerialOpen(0,SERIAL0_COM_SPEED);
    #if defined(PROMICRO)
      SerialOpen(1,SERIAL1_COM_SPEED);
    #endif
    #if defined(MEGA)
      SerialOpen(1,SERIAL1_COM_SPEED);
      SerialOpen(2,SERIAL2_COM_SPEED);
      SerialOpen(3,SERIAL3_COM_SPEED);
    #endif
//  #endif          // <- zakomentowano

Kod: Zaznacz cały

      case 3:
        taskOrder++;
        #if GPS
          if(GPS_Enable==1) GPS_NewData();   // <--  tu zmiana
          break;
        #endif
Oraz w GPS.ino:

Kod: Zaznacz cały

        if(init_stage == 17)                      // no responce from GPS restore serial port speed.
          #if(GPS_SERIAL==0)
            SerialOpen(GPS_SERIAL,SERIAL0_COM_SPEED);
          #endif  
          #if(GPS_SERIAL==1)
            SerialOpen(GPS_SERIAL,SERIAL1_COM_SPEED);
          #endif  
          #if(GPS_SERIAL==2)
            SerialOpen(GPS_SERIAL,SERIAL2_COM_SPEED);
          #endif  
          #if(GPS_SERIAL==3)
            SerialOpen(GPS_SERIAL,SERIAL3_COM_SPEED);
          #endif  
          #if defined(GPS_PROMINI)           // <---- dodano ta i dwie nastepne linie
            GPS_Enable = 2;                        // GPS not detected 
          #endif  
      }
Teraz z odkomentowanym "#define GPS_PROMINI_SERIAL" GPS powinien działać.
A połączenie z płytką przez USB uzyskasz przy odpiętym GPS po kilkunastu sekundach od załączenia zasilania, czyli odpiąć GPS, podłączyć USB, zaczekać 30 sek i GUI powinno sie połączyć.
Pzdr. -----MIŚ-----
Awatar użytkownika
pbrys
Posty: 1663
Rejestracja: czwartek 10 lis 2011, 18:52
Lokalizacja: Lubienia

Post autor: pbrys »

nie ma nic takiego w GPS.INO, albo ślepy jestem

Edit by MIS - ciach pół strony listingu...
Ostatnio zmieniony wtorek 02 wrz 2014, 18:56 przez pbrys, łącznie zmieniany 1 raz.
ODPOWIEDZ