這是您可能遇到的問題如果你駕駛四軸飛行器或其他自主飛行器,特別是使用FPV技術:你正在飛行你的無人機,可能是在障礙物,地形,過去的樹木和你的無人機墜毀。
如果你不記得四軸飛行器的確切位置怎么辦?如果您使用FPV護目鏡飛行,這很容易讓您無法跟蹤無人機相對于您的位置飛行的位置。你的無人機可能會在高高的草叢中或在樹上或灌木叢中著陸。考慮到無人機可能是昂貴的投資,所有這些情況都令人失望。
因此,在這個項目中,我們將構建一個可連接到四軸飛行器的LTE連接GPS跟蹤器。使用此工具,您可以直接從智能手機中找到墜毀或丟失的無人機。此外,由于電池電源是遙控飛機上的一種有價值的商品,我們將構建系統,以便可以從發射器切換開關。這樣,GPS定位器在您需要找到丟失的飛機之前不會使用任何電源。
安裝在無人機上的GPS追蹤器。
使用Particle.io控制臺跟蹤無人機。
必需硬件
粒子硼LTE
Adafruit終極GPS FeatherWing
UBEC降壓轉換器
接收器控制開關
M2尼龍支架套件
關于Adafruit Ultimate GPS FeatherWing
該項目的核心是兩個開發板,Particle Boron LTE和Adafruit Ultimate GPS FeatherWing。粒子硼在不同的文章中有更詳細的介紹,但在我們開始構建我們的無人機GPS定位器之前,了解Ultimate GPS FeatherWing的工作方式將非常有用。
Adafruit Ultimate GPS FeatherWing
GPS FeatherWing的第一個主要功能部分是GPS模塊本身,它是電路板一端的方形部分。這是一款MTK3339 GPS接收器,一種高靈敏度芯片組,能夠跟蹤多達22顆GPS衛星并每秒更新其位置十次。
此外,這對我們的項目非常重要,該裝置在跟蹤時消耗的電流非常小,僅為20mA。這很重要,因為電池的電能可能在無人機上供不應求。
電路板的第二個主要部分是實時時鐘( RTC)系統。我們不會將RTC用于此項目,但它對于數據記錄應用程序來說是一個非常有用的工具。 RTC由紐扣電池供電,可以選擇插入電路板與GPS模塊相對的支架上。
最后,電路板上有幾個引腳斷開,可以通電交付給董事會并允許粒子硼從GPS模塊獲取信息。此外,為此項目選擇FeatherWing的原因是因為安裝孔與粒子硼上的安裝孔非常匹配。
GPS模塊安裝孔。
為系統供電
《在我們開始構建無人機GPS追蹤器之前要了解的第二個概念是如何控制用于運行飛機的電池電量以為粒子硼和終極GPS羽毛提供動力。
第一個任務是打開和關閉GPS單元,以便系統在需要之前不消耗任何電池電量。為此,我們將使用接收器控制的開關。該附件連接到無人機上的無線電接收器,可以使用接收器的AUX輸出切換為ON和OFF。這種配件通常用于打開和關閉LED燈,但是當我們需要定位無人機時,我們將使用它來激活GPS跟蹤器。
Turnigy接收器控制器ON/OFF開關
其次,典型的四軸飛行器使用的電池電壓介于7.4V和22.2V之間。這對于粒子硼來說太高了,粒子硼通過USB端口接受5V輸入(然后通過板載線性穩壓器將其調節到3.3V)。
因此,該項目電源系統的第二部分是用于從電池輸出5V的DC/DC降壓轉換器。這個部件稱為通用電池消除電路(UBEC),常用于遙控飛機和四軸飛行器,用于運行5V配件,如LED燈,關閉電池。對于這個項目,它將作為GPS系統的5V電源。
通用電池消除器電路(UBEC)。
構建無人機GPS追蹤器
現在我們已經了解了無人機GPS追蹤器的主要部分,我們可以開始構建系統。我們將首先將電源系統拼接在一起,然后將Ultimate GPS FeatherWing連接到粒子硼。
下面的接線圖顯示了設計中每個部件的粗略位置。關于GPS模塊和Boron之間的連接的更多細節將在稍后提供。
接線圖。
將接收器控制的開關連接到電池
第一步是將接收器控制的開關連接到四軸飛行器的電池。根據飛機的設計,您可能已經配備了配電板或分配器,用于將電池連接到無人機上的多個系統。
接收器控制的開關有兩根輸入線和一根三根-wire header。
接收器控制開關。
連接電池的電線比連接無線電接收器的標題電線厚。首先,將其中一根較粗的電線連接到電池的正極(紅色)電線上。現在我們將其他粗線斷開。
將開關連接到電池。
接下來,三線制標題將連接到無線電接收器。大多數無線電接收器都有AUX連接,有時只是編號最高的連接。
您需要觀察接收器控制開關和接收器本身之間連接的正確極性。來自開關的黑線接地,黃線用于發出信號。
接收器控制的開關和接收器之間的連接。
將UBEC添加到電路
使用開關,添加到設計的下一部分是UBEC。現在電力系統有兩個自由連接,一個來自接收器控制的開關,另一個來自電池的負極端子。 UBEC每側都有一組電線。沒有插頭的一側連接到電池和開關。只需將黑線連接到電池的負極,紅線連接到接收器控制的開關。
將UBEC添加到電路中。
將粒子硼連接到Adafruit Ultimate GPS FeatherWing
現在我們已經為我們的裝配完成了電力輸送系統無人機GPS跟蹤器,我們將略微切換齒輪并通過將粒子硼連接到GPS羽毛組裝系統的業務端。
第一步是將標題連接到Adafruit Ultimate GPS FeatherWing,以便我們將能夠插入標題電纜。 GPS FeatherWing包括一組正確長度的雄性分離頭。您將在GPS FeatherWing上注意到的一個細節是,電路板兩側有兩排引腳。我們將使用該項目的外部引腳集。只需將標頭焊接到電路板上,就像過去使用其他分線板一樣。
將標題電纜插入GPS FeatherWing。
焊接標頭引腳。
在接頭到位后,我們可以使用跨接電纜將兩塊板連接在一起。因為我們將組件安裝到無人機上,自由空間有限,我們將使用6英寸跨接電纜。在下一節中,我們將GPS跟蹤器組件打包成一個適合無人機的整潔小捆。
粒子硼與GPS羽毛之間的連接。
連接
粒子硼終極GPS羽毛
3.3 V3.3 V
GNDGND
TX(D9)RX
RX(D10)TX
組裝GPS追蹤器
現在我們有了他將Particle Boron和Ultimate GPS FeatherWing連接在一起,我們將機械地將兩塊板連接在一起。
為此項目選擇FeatherWing的一個原因是因為它與粒子硼共享相同的安裝孔間距。我們將使用尼龍支架將兩塊板連接在一起。
首先,將20毫米長的支架連接到粒子硼上的四個安裝孔中的每一個。
連接20mm長的支架。
然后,將Ultimate GPS FeatherWing安裝到支架上。當您將GPS板放在支架上時,您應該能夠將所有電線都放在電路板之間以創建一個緊湊的模塊。
將終極GPS羽毛裝載到支架上。
將電路板之間的所有電線連接起來,以創建一個緊湊的模塊。
連接粒子硼的電源
此時我們有一種機制可以從無人機電池上提供5V電源,可以通過無線電發射器打開和關閉。下一步是將電源連接到粒子硼。 Boron采用功能強大的微控制器,可與GPS模塊通信并解釋數據。 Boron還有一個板載LTE蜂窩調制解調器,包括和天線,使無人機GPS跟蹤器即使沒有WiFi也能將有關其位置的信息發送到手機。
組裝項目的下一步是連接粒子硼到UBEC的力量。但是,我們無法將UBEC直接連接到Boron上的電源輸入引腳,因為這些引腳接受3.3V,而不是5V。因此,我們將UBEC連接到Boron上的USB端口。 USB端口為線性穩壓器供電,將5V電源從UBEC轉換為3.3V。
因此,要使UBEC連接到粒子硼,我們首先需要組裝USB插頭。插頭有三個部分:連接器本身帶有背面的焊針,另外還有兩半用于連接器的塑料護罩。在這種情況下,我們只需要連接USB插頭的電源;我們可以忽略數據引腳。 USB連接器上總共有五個引腳,插頭一側有兩個引腳,另一側有三個引腳。 5V和GND引腳在下圖中突出顯示。
USB插頭。
要組裝連接器,首先將黑線從UBEC焊接到USB插頭上的GND引腳,從UBEC到USB插頭上的+ 5V引腳的紅線。
將黑色從UBEC連接到GND,紅色從UBEC連接到+ 5V。
將電線焊接到插頭上后,將塑料外殼的兩半卡在插頭周圍。
最后,帶電池插入無人機的電源系統,發射器上的AUX開關設置為打開,您可以通過將USB連接器插入粒子硼來測試系統。如果系統正常工作,您應該看到兩個不同的LED亮起。粒子硼上有一個LED,根據電路板的狀態,它會以不同的顏色發光。 Ultimate GPS FeatherWing的一側還有一個紅色LED。要測試電路板并確保兩者都通電,只需查看這兩個LED。
打開粒子硼。
為終極GPS FeatherWing供電。
閃存固件
現在我們已經完成了為這個項目構建的硬件,最后階段是將固件刷到粒子硼將允許系統運行。在將固件刷新到Boron之前,您首先需要設置一個粒子賬戶(如果您還沒有),并申請董事會。這些步驟在前一篇文章中有詳細介紹。
完成設置粒子帳戶并聲明電路板后,導航到粒子IDE。您可以將以下代碼的代碼復制/粘貼到IDE中。
// Drone GPS Tracker with LTE Connectivity
// Author: Scott Hatfield (aka Toglefritz)
// Published on Maker Pro
/*
DESCRIPTION:
This sketch for the Particle Boron runs a GPS tracker intended for use
on a quadcopter or other similar drone. The Boron has a cellular LTE
connection allowing it to publish GPS coordinates, obtained from a
GPS unit, to the Particle Cloud.
LICENSE:
This code is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
《 https://creativecommons.org/licenses/by-nc-sa/4.0/ 》
PARTS:
* Particle Boron: 《 https://www.sparkfun.com/products/15069 》
* Adafruit Ultimate GPS FeatherWing: 《 https://www.adafruit.com/product/3133 》
* UBEC Step-Down Converter: 《 https://www.adafruit.com/product/1385 》
HARDWARE CONNECTIONS:
* Boron GND --》 GPS GND
* Boron 3.3V --》 GPS 3.3V
* Boron D10 --》 GPS TX
* Boron D9 --》 GPS RX
*/
// Add the Adafruit GPS library
#include
// Name the Serial port
#define GPSSerial Serial1
// Connect to the GPS on the hardware port
Adafruit_GPS GPS(&GPSSerial);
uint32_t timer = millis();
void setup() {
// Publish a little welcome message
Particle.publish(“Drone GPS tracker online”);
// 9600 NMEA is the default baud rate for Adafruit MTK GPS‘s- some use 4800
GPS.begin(9600);
// Turn on RMC (recommended minimum) and GGA (fix data) including altitude
GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
// Set the update rate
GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ); // 1 Hz update rate
// Request updates on antenna status, comment out to keep quiet
GPS.sendCommand(PGCMD_ANTENNA);
delay(1000);
}
void loop()
{
// Read data from the GPS
char c = GPS.read();
// If a sentence is received, we can check the checksum, parse it.。.
if (GPS.newNMEAreceived()) {
if (!GPS.parse(GPS.lastNMEA())) // This also sets the newNMEAreceived() flag to false
return; // we can fail to parse a sentence in which case we should just wait for another
}
// if millis() or timer wraps around, we’ll just reset it
if (timer 》 millis()) timer = millis();
// Approximately every one minute or so, print out the current stats
// Since the drone will not be moving, we do not need to update its location
// too often
// Note that this statement also causes the first reading to take place
// one minute after the Boron powers on, which gives the GPS sensor time
// to obtain a fix
if (millis() - timer 》 60000) {
timer = millis(); // Reset the timer
// Check if the GPS has a fix
if (GPS.fix) {
Particle.publish(“Location: ”, String(GPS.latitudeDegrees) + “, ” + String(GPS.longitudeDegrees)); // Publish the physical location of the drone
// Divide by 60 to convert minutes to degrees
}
else {
Particle.publish(“No GPS fix”);
}
}
}
代碼相當簡單,這要歸功于Adafruit卓越的GPS庫,它可以解決大部分繁重的工作問題。 GPS模塊并解釋模塊返回的GPS數據。
代碼首先配置一些GPS功能選項,包括波特率,GPS將獲得的信息以及GPS單元的速率將更新其位置。大部分艱苦工作是通過一行 GPS.parse(GPS.lastNMEA()) 完成的。 GPS傳感器向粒子硼提供NMEA語句,如下所示:
$ GPBWC,220516,5130.02,N,00046.34,W,213.8,T,218.0,M, 0004.6,N,EGLM * 11
Adafruit GPS庫最有用的部分之一是解析這些信息的功能的可用性,即讓人類可讀來自GPS傳感器傳送的原始數據的信息。一旦解析了信息,Boron將使用緯度和經度將GPS位置每分鐘發布一次到粒子云。
使用GPS追蹤器
在無人機開啟的情況下(電池連接到供電系統),您可以激活粒子硼 - 通過將發射器上的AUX開關撥到ON,可以為GPS跟蹤器供電。然后,打開粒子控制臺。您應該在線看到粒子硼。
當您選擇Boron時,您將開始在粒子控制臺中接收事件。這些事件將被稱為位置,事件中的數據將是無人機的GPS坐標,單位為度。
打開粒子控制臺。
通過這些信息,您可以通過比較GPS追蹤器的位置和手機的位置來找到丟失的無人機。在粒子控制臺中,在GPS坐標上方,有一個方便的按鈕可將坐標復制到剪貼板中。
將坐標復制到剪貼板。
然后,您可以將數據粘貼到Google地圖中,以查看丟失的無人機的位置在地圖上。您甚至可以像往常一樣使用Google地圖導航,從您的位置到無人機的步行,駕駛或騎車路線。
使用Google地圖導航。
-
gps
+關注
關注
22文章
2986瀏覽量
169411 -
無人機
+關注
關注
231文章
10845瀏覽量
186831
發布評論請先 登錄
使用 Betaflight 和樹莓派實現 FPV 無人機自主飛行!

《手把手教你做星閃無人機—KaihongOS星閃無人機開發實戰》系列課程課件匯總
科達嘉電感在無人機系統中的應用
連接器如何支撐無人機復雜系統運作?

工業無人機充電連接解決方案

工業無人值守無人機充電連接解決方案

無人機充電接口為何需要配備低壓信號連接器?
霍爾傳感器在無人機中的應用

DIY了一臺無人機,用全志T113芯片
國產高品質連接器,為無人機保駕護航!

開源項目!DIY了一臺無人機,用全志T113芯片
無人機吊艙新選擇 慧視Viztra-LE026圖像跟蹤板 小巧輕便還省電!

評論