產品發表 包羅萬象 模型拍賣 綜合討論 直昇機 飛機 同協會 回首頁

 找回密碼
 申請
查看: 6945|回復: 7

請問MWC的GPS設置

[複製鏈接]
發表於 2014年6月17日 02:42 PM | 顯示全部樓層 |閱讀模式
最近準備玩四軸的定點,於是入手一隻Ulbox的GPS模組及arduino pro mini作為I2C-GPS導航板,燒錄了I2C_GPS_NAV_v2.2Beta1-r62固件。
昨晚測試的情況是,GPS信號燈正常,I2C導航板上的指示燈也保持每秒3下的閃動頻率,證明GPS連線正常,但到了GUI裏面GPS_fix雖然是綠色連線狀態,但各項值都是-1的狀態。有說是導航板跟主控的通訊有問題。
請教各位大大
這個是GUI的截圖
220212i47i2zlalaakaicn.jpg
這段是I2C导航板的config
  1. //////////////////////////////////////////////////////////////////////////////
  2. // i2C comm definitions
  3. //
  4. #define I2C_ADDRESS        0x20                      //7 bit address 0x40 write, 0x41 read

  5. /* GPS Lead filter - predicts gps position based on the x/y speed. helps overcome the gps lag. */
  6. #define GPS_LEAD_FILTER

  7. /* Serial speed of the GPS */
  8. #define GPS_SERIAL_SPEED 115200

  9. /* GPS protocol
  10. * NMEA                        - Standard NMEA protocol GGA, GSA and RMC  sentences are needed
  11. * UBLOX                - U-Blox binary protocol, use the ublox config file (u-blox-config.ublox.txt) from the source tree
  12. * MTK_BINARY16 - MTK binary protocol (DIYDrones v1.6)
  13. * MTK_BINARY19 - MTK binary protocol (DIYDrones v1.9)
  14. * MTK_INIT     - Initialize MTK GPS (if MTK_BINARY16 or 19 is not defined then it goes to NMEA, otherwise it goes for binary)
  15. * With MTK and UBLOX you don't have to use GPS_FILTERING in multiwii code !!!
  16. *
  17. */

  18. //#define NMEA
  19. #define UBLOX
  20. //#define MTK_BINARY16
  21. //#define MTK_BINARY19
  22. //#define INIT_MTK_GPS


  23. //////////////////////////////////////////////////////////////////////////////
  24. // Sonar support. Based on code mods from Crazy Al
  25. // Connect Sonar trigger to PC3 (arduino pin A3) and echo output to PC2 (arduino pin A2)
  26. // Supported sonars :
  27. // Ping/Pong type sonar modules such as HC-SR04, SRF-04, DYP-ME007 and many others...
  28. // PWM output continous sonars such as the MAXBOTIX series (connect pin2(PWM out) of the sonar to PC2

  29. //#define SONAR                                                // USE Sonar

  30. //Sonar type uncomment only one at a time
  31. //#define PINGPONG
  32. //#define MAXBOTIX_PWM                                // PWM output mode sonar



  33. // Default PID variables
  34. //////////////////////////////////////////////////////////////////////////////
  35. // POSHOLD control gains
  36. //
  37. #define POSHOLD_P                .11
  38. #define POSHOLD_I                0.0
  39. #define POSHOLD_IMAX                20                        // degrees

  40. #define POSHOLD_RATE_P                1.4                        //
  41. #define POSHOLD_RATE_I                0.2                        // Wind control
  42. #define POSHOLD_RATE_D                0.010                        // try 2 or 3 for POSHOLD_RATE 1
  43. #define POSHOLD_RATE_IMAX        20                        // degrees
  44. //////////////////////////////////////////////////////////////////////////////
  45. // Navigation PID gains
  46. //
  47. #define NAV_P                        1.4                        //
  48. #define NAV_I                        0.20                        // Wind control
  49. #define NAV_D                        0.006                        //
  50. #define NAV_IMAX                20                        // degrees

  51. ////////////////////////////////////////////////////////////////////////////////////
  52. // Navigational parameters and limiters initial values
  53. //
  54. #define CROSSTRACK_GAIN            1            // Weighting the cross track error
  55. #define NAV_SPEED_MIN              100          // cm/sec minimum navigational speed when NAV_SLOW_NAV id false
  56. #define NAV_SPEED_MAX              300          // cm/sec maximum navigational speed
  57. #define NAV_BANK_MAX               2500         // 20deg max banking when navigating (just for security and testing)

  58. ////////////////////////////////////////////////////////////////////////////////////
  59. // GPS data filtering - moving average filter vector length
  60. //
  61. #define GPS_FILTER_VECTOR_LENGTH 5
複製代碼
主控GPS部分的設定
  1. /**************************************************************************************/
  2.   /***********************                  GPS                **************************/
  3.   /**************************************************************************************/

  4.     /* GPS using a SERIAL port
  5.        if enabled, define here the Arduino Serial port number and the UART speed
  6.        note: only the RX PIN is used in case of NMEA mode, the GPS is not configured by multiwii
  7.        in NMEA mode the GPS must be configured to output GGA and RMC NMEA sentences (which is generally the default conf for most GPS devices)
  8.        at least 5Hz update rate. uncomment the first line to select the GPS serial port of the arduino */
  9.       
  10.     //#define GPS_SERIAL 2         // should be 2 for flyduino v2. It's the serial port number on arduino MEGA
  11.     //#define GPS_PROMINI_SERIAL   // Will Autosense if GPS is connected when ardu boots.

  12.     // avoid using 115200 baud because with 16MHz arduino the 115200 baudrate have more than 2% speed error (57600 have 0.8% error)
  13.     #define GPS_BAUD   115200

  14.    /* GPS protocol
  15.        NMEA  - Standard NMEA protocol GGA, GSA and RMC  sentences are needed
  16.        UBLOX - U-Blox binary protocol, use the ublox config file (u-blox-config.ublox.txt) from the source tree
  17.        MTK_BINARY16 and MTK_BINARY19 - MTK3329 chipset based GPS with DIYDrones binary firmware (v1.6 or v1.9)
  18.        With UBLOX and MTK_BINARY you don't have to use GPS_FILTERING in multiwii code !!! */

  19.    
  20.     //#define NMEA
  21.     #define UBLOX
  22.     //#define MTK_BINARY16
  23.     //#define MTK_BINARY19
  24.     //#define INIT_MTK_GPS        // initialize MTK GPS for using selected speed, 5Hz update rate and GGA & RMC sentence or binary settings

  25.    
  26.     /* I2C GPS device made with an independant arduino + GPS device
  27.        including some navigation functions
  28.        contribution from EOSBandi   http://code.google.com/p/i2c-gps-nav/
  29.        You have to use at least I2CGpsNav code r33 */
  30.     #define I2C_GPS
  31.     // If your I2C GPS board has Sonar support enabled
  32.     //#define I2C_GPS_SONAR

  33.     /* GPS data readed from Misio-OSD - GPS module connected to OSD, and MultiWii read GPS data from OSD - tested and working OK ! */
  34.     //#define GPS_FROM_OSD

  35.     /* indicate a valid GPS fix with at least 5 satellites by flashing the LED  - Modified by MIS - Using stable LED (YELLOW on CRIUS AIO) led work as sat number indicator
  36.       - No GPS FIX -> LED blink at speed of incoming GPS frames
  37.       - Fix and sat no. bellow 5 -> LED off
  38.       - Fix and sat no. >= 5 -> LED blinks, one blink for 5 sat, two blinks for 6 sat, three for 7 ... */
  39.     #define GPS_LED_INDICATOR

  40.     //#define USE_MSP_WP                        //Enables the MSP_WP command, which is used by WinGUI to display and log Home and Poshold positions

  41.     //#define DONT_RESET_HOME_AT_ARM             // HOME position is reset at every arm, uncomment it to prohibit it (you can set home position with GyroCalibration)

  42.     /* GPS navigation can control the heading */
  43.    
  44.     #define NAV_CONTROLS_HEADING       true      // copter faces toward the navigation point, maghold must be enabled for it
  45.     #define NAV_TAIL_FIRST             false     // true - copter comes in with tail first
  46.     #define NAV_SET_TAKEOFF_HEADING    true      // true - when copter arrives to home position it rotates it's head to takeoff direction
  47.    
  48.    
  49.     /* Get your magnetic declination from here : http://magnetic-declination.com/
  50.        Convert the degree+minutes into decimal degree by ==> degree+minutes*(1/60)
  51.        Note the sign on declination it could be negative or positive (WEST or EAST) */
  52.     //#define MAG_DECLINATION  3.96f              //For Budapest Hungary.
  53.     #define MAG_DECLINATION  1.16f   //(**)

  54.     #define GPS_LEAD_FILTER                      // Adds a forward predictive filterig to compensate gps lag. Code based on Jason Short's lead filter implementation
  55.    
  56.     //#define GPS_FILTERING                        // add a 5 element moving average filter to GPS coordinates, helps eliminate gps noise but adds latency comment out to disable
  57.     #define GPS_WP_RADIUS              200       // if we are within this distance to a waypoint then we consider it reached (distance is in cm)
  58.     #define NAV_SLEW_RATE              30        // Adds a rate control to nav output, will smoothen out nav angle spikes
複製代碼
各位大大麻煩看看,請問問題出在哪裡




上一篇:四軸無法啟動,請求各位專業的大大幫幫忙
下一篇:phantom 2 可以挂 FC40的相机吗?
回復

使用道具 舉報

發表於 2014年6月17日 03:31 PM | 顯示全部樓層
大大,不知你能否試驗一下用2.2的版本,我沒有gps,只有mpu6050,但用2.3版就一直會有I2C error,但是用2.2卻飛得很正常,若是大大試驗2.2可以正常,我也想裝gps來玩玩
回復 按讚

使用道具 舉報

 樓主| 發表於 2014年6月17日 04:57 PM | 顯示全部樓層
2.2果真沒有I2C Error了,不過因為在辦公室,GPS目前沒有訊號,只有等下班後到室外看能否抓到衛星。可以的話就完美了
附圖一張
2.jpg

點評

恭喜,第一步ok了,想請教gps模組沒法直接跟飛控版連接嗎?還需要導  詳情 回復 發表於 2014年6月17日 08:07 PM
回復 按讚

使用道具 舉報

發表於 2014年6月17日 08:07 PM | 顯示全部樓層
本帖最後由 tctdavid 於 2014年6月17日 08:11 PM 編輯
tony1157cn 發表於 2014年6月17日 04:57 PM
2.2果真沒有I2C Error了,不過因為在辦公室,GPS目前沒有訊號,只有等下班後到室外看能否抓到衛星。可以的 ...


恭喜,第一步ok了,想請教gps模組沒法直接跟飛控版連接嗎?通常i2c不是有四條線不能直接連上嗎?

還是特定的gps模組才可以直接連,一定需要導航版嗎?可以秀一下你怎麼連接的嗎?謝謝
回復 按讚

使用道具 舉報

 樓主| 發表於 2014年6月17日 09:02 PM | 顯示全部樓層
在家調試的結果,好像刷2.3也沒多大問題
GPS可以連線了,但數值有點不正常,跳動很大
見圖
未标题-1.jpg

另回覆樓上:
328P 的MCU飛控沒辦法直接連GPS模組,因為運算能力不夠,需要一個轉接板,其實也是一片328P,我用Arduino Pro Mini 自己燒錄程序做的。GPS模組的話很多都有售,關鍵字 MWC GPS 就好
回復 按讚

使用道具 舉報

 樓主| 發表於 2014年6月17日 09:50 PM | 顯示全部樓層
終於 搞定

gpsok.jpg

重新換了連接的杜邦線,估計出現錯誤跟杜邦線連接有問題
另:連接正常後I2C錯誤不再新增,之前爬文有篇有講到這個問題,一時找不到連接,好像是說因為是兩塊板,中間通訊造成的問題。
總之,問題圓滿解決。
後面找時間總結下中間的經驗,有幾個操作要點跟很多地方貼出文章講得不太一樣
回復 按讚

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 申請

本版積分規則

世界各國訪RCTW統計

手機版|台灣遙控模型-RCTW

GMT+8, 2024年12月12日 11:47 PM

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回復 返回頂部 返回列表