帶有多個(gè)傳感器和一個(gè)由兩個(gè)微控制器控制的無線攝像頭的 Arduino Uno 自動(dòng)駕駛無人機(jī)。
通常我們會(huì)看到使用射頻遙控器控制的無人機(jī),或者使用 GPS 模塊通過給出正確方向來自動(dòng)控制無人機(jī)的自動(dòng)駕駛儀。但在我的項(xiàng)目中,我使用 Arduino Uno 以另一種方式處理事情。
該項(xiàng)目的主要目標(biāo)是從特定已知區(qū)域收集數(shù)據(jù)和 2D 視頻信息。為了獲取信息,我們必須使用 Arduino 編程分配無人機(jī)可以行進(jìn)的長度和寬度值。
顧名思義,自動(dòng)駕駛意味著無人機(jī)將由自己操控,而無人機(jī)的控制動(dòng)作將由具有內(nèi)置傳感器以平衡無人機(jī)的飛行控制器來處理。Arduino Uno 是系統(tǒng)的大腦,它為飛行控制器提供正確的信號(hào)。為了保持穩(wěn)定性和持續(xù)運(yùn)行,我使用了 OpenPilot CC3D 微控制器(或任何飛行控制器)以及攝像頭,通過天氣監(jiān)測(cè)傳感器捕捉實(shí)時(shí)數(shù)據(jù)。最后,該系統(tǒng)包括一個(gè)藍(lán)牙模塊,用于關(guān)閉/關(guān)閉無人機(jī)并使用 Android 移動(dòng)設(shè)備顯示實(shí)時(shí)數(shù)據(jù)。
補(bǔ)給品
藍(lán)牙低功耗 (BLE) 模塊(通用)× 1
Arduino UNO × 1
飛行控制器(CC3D)× 1
DHT11溫濕度傳感器(4針) × 1
無人機(jī)框架,ESC,電池11.1V,無刷直流電機(jī)× 1
我們知道 arduino Uno 是一個(gè) Atmega Micro 控制器。在這里,我生成了 PWM 信號(hào)來控制無人機(jī)。
我們知道 arduino Uno 是一個(gè) Atmega Micro 控制器。在這里,我生成了 PWM 信號(hào)來控制無人機(jī)。
CC3D飛行控制器:
正如我們?cè)谏蠄D中看到的那樣,它顯示了具有內(nèi)置陀螺儀和加速器控制器以及自動(dòng)調(diào)平功能的飛行控制器。
但是這些微控制器公司提供了自己的軟件對(duì)其進(jìn)行編程,并且用戶友好。
這些微控制器需要一個(gè) PWM 信號(hào)作為輸入來控制各個(gè) BLDC 電機(jī)。這些信號(hào)將由 arduino uno 生成。
無人機(jī)設(shè)計(jì)類型
正如您在上面看到的,有兩種類型的無人機(jī)設(shè)計(jì)可用于四格式無人機(jī),具體取決于您放置飛行控制器的方向,您可以選擇四格式
方向指示將根據(jù)所選飛行控制器打印,對(duì)于所選格式,螺旋槳方向也是最重要的,CW(順時(shí)針)和 CCW(逆時(shí)針)。
電調(diào)連接
順時(shí)針
順時(shí)針方向,我們需要如上圖所示連接電線
逆時(shí)針
對(duì)于逆時(shí)針方向,我們需要互換任意兩根電線,以便將電壓的相位施加到電機(jī)上,從而改變電機(jī)方向
電機(jī)-電調(diào)-飛行控制器連接
電調(diào)控制連接
ESC 也有 3 根電線和 2 根電源線,
這 3 根電線具有 VCC、GROUND 和 INPUT SIGNAL 引腳,從 FLIGHT CONTROLLER 獲取數(shù)據(jù)以旋轉(zhuǎn) BLDC 電機(jī)。
其他 2 根電線是額定電流更高的電源線,因此請(qǐng)使用較粗的電線,這些電纜與電池通用。
使用 ARDUINO UNO 的最終接線圖
在這里,我使用了 UART 協(xié)議,但沒有數(shù)據(jù)被并行轉(zhuǎn)換為串行。就延遲而言,直接 PWM 信號(hào)從 arduino 應(yīng)用到 CC3d。
移動(dòng)應(yīng)用
上面的快照顯示了使用下面提到的開源網(wǎng)站構(gòu)建的 android 應(yīng)用程序。使用這個(gè)應(yīng)用程序,我們可以打開和關(guān)閉無人機(jī)。并且還有另一個(gè)功能可以讓我們?cè)诖写翱谥蝎@取傳感器數(shù)據(jù),那就是手機(jī)。
紐扣
開始:此按鈕將啟動(dòng)微控制器(CC3D飛控)
mov :這使無人機(jī)飛行并執(zhí)行在 arduino Uno 內(nèi)部編程的操作
停止:這是關(guān)閉無人機(jī)的緊急停止按鈕(由于自動(dòng)駕駛無人機(jī)沒有遙控器,因此提供了額外的按鈕)
啟動(dòng)傳感器:按下時(shí)會(huì)在白屏上顯示傳感器數(shù)據(jù),如下圖所示
我們可以在圖中看到按下啟動(dòng)傳感器按鈕時(shí)將顯示值的溫度和濕度。
原理圖
1. 藍(lán)牙模塊接口
在這里,我們使用藍(lán)牙模塊(HC-05)進(jìn)行雙向通信,打開無人機(jī)并接收傳感器數(shù)據(jù)。
兩個(gè)電阻器用作分壓器,將 5 伏降至 3.3 伏,以便藍(lán)牙可以接收來自 Arduino Uno 的數(shù)據(jù)。
電路如此簡單和小巧,只需少量連接
Arduino Pins Bluetooth Pins
RX (Pin 0) ———-》 TX
TX (Pin 1) ———-》 RX
5V ———-》 VCC
GND ———-》 接地
2. 傳感器接口
DHT11 測(cè)量相對(duì)濕度。相對(duì)濕度是空氣中的水蒸氣量與空氣中水蒸氣的飽和點(diǎn)的比值。在飽和點(diǎn),水蒸氣開始凝結(jié)并積聚在表面形成露水。DHT11僅使用一根信號(hào)線將數(shù)據(jù)傳輸?shù)紸rduino接口圖如上圖所示。使用 DHTLib 庫。它具有從傳感器獲取濕度和溫度讀數(shù)所需的所有功能,如下所示。
Arduino Uno 與飛控的接口
飛行控制器 (Cc3d) 將提供 5 個(gè)輸入控制引腳,為無人機(jī)提供 4 種運(yùn)動(dòng)動(dòng)作,它們是油門、滾動(dòng)、偏航和俯仰。這些引腳需要 PWM 信號(hào)才能工作,因此我們將使用 Arduino Uno 生成 PWM 信號(hào)。通過適當(dāng)?shù)囊?guī)劃和特定的草圖,我們可以通過延遲調(diào)用函數(shù)來對(duì) Arduino 進(jìn)行編程。
-
微控制器
+關(guān)注
關(guān)注
48文章
7552瀏覽量
151426 -
傳感器
+關(guān)注
關(guān)注
2551文章
51099瀏覽量
753606 -
無人機(jī)
+關(guān)注
關(guān)注
230文章
10437瀏覽量
180454 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
784文章
13812瀏覽量
166461
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論