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