資料介紹
描述
目標(biāo)
通過結(jié)合了 MSP430F2272 微處理器的 OpenCV 顏色跟蹤工作流程控制小型四軸飛行器。作為 ME461 的最終項(xiàng)目創(chuàng)建:在伊利諾伊大學(xué)厄巴納-香檳分校教授的機(jī)械系統(tǒng)的計(jì)算機(jī)控制。
過程
最初,我們希望通過 MSP430 和 Blade Inductrix 四軸飛行器隨附的 MLP4DSM 發(fā)射器之間的數(shù)字通信直接控制四軸飛行器。不幸的是,從發(fā)射器發(fā)送的數(shù)據(jù)在發(fā)送到無線電設(shè)備之前已被加密。這意味著我們必須將控制信息作為模擬信號注入來代替拇指棒。我們之前曾使用過 MSP430 和單通道 DAC。但是一個(gè)渠道是不夠的。我們需要來自運(yùn)行 OpenCV 的 OrangePi 的四個(gè)數(shù)字輸入通道以及四個(gè)模擬輸出通道來控制油門、偏航、俯仰和滾動(dòng)。
在本學(xué)期早些時(shí)候,我們使用 OrangePi 和 OpenCV 庫進(jìn)行單對象顏色跟蹤,以通過 MSP430 的 PWM 輸出設(shè)置伺服電機(jī)的角度。在 MSP430 和 OrangePi 上使用相同的基本代碼,我們修改了代碼以跟蹤兩個(gè)不同顏色的對象以及計(jì)算對象的延遲平均中心。每個(gè)代碼循環(huán),我們通過平均像素在其顏色中的位置來計(jì)算每個(gè)對象的中心。然后我們將兩個(gè)對象的中心記錄到四個(gè)數(shù)組(x1、x2、y1、y2)中。這些中心被輸入到更大的過去測量數(shù)組中,最后x的平均位置計(jì)算樣本。為了增加我們平均的范圍而不溢出我們的變量,這個(gè)平均值被輸入另一個(gè)數(shù)組,并計(jì)算最后一個(gè)x的平均值。這允許我們在當(dāng)前對象中心和它的平均中心之間延遲約 1 秒。
通過這種延遲,我們能夠消除我們手中的任何突然動(dòng)作。它還創(chuàng)造了一種控制情況,握住你的手仍然意味著沒有輸入,如果它開始動(dòng)作不正常,這有助于重新控制直升機(jī)。這種控制方法對于方向輸入(偏航、橫滾、俯仰)工作順利,但使油門難以飛行。因此,我們決定為油門切換到絕對控制(距屏幕底部的距離 = 控制輸入)。
在實(shí)施方面,我們在發(fā)射器的接線以及與 TLV5610 DAC 的通信方面遇到了一些問題。這些將在下面的問題部分中討論。
問題
導(dǎo)致手套變色的光照條件
- 顏色跟蹤基于每個(gè)像素的 HSV 值。根據(jù)相機(jī)在房間的位置,背景照明會發(fā)生變化。鑒于我們在通常工作的房間中沒有固定位置,因此我們需要修改 HSV 值以匹配每個(gè)新位置。我們站在房間的角落緩解了這種情況,如下面的視頻所示,我們有干凈的背景和一致的照明。這個(gè)角落還使我們能夠在飛行時(shí)觀看無人機(jī),而不是背對著它。
從 MSP430 到 TLV5610 DAC 的 SPI 通信
- 這部分項(xiàng)目是更復(fù)雜的項(xiàng)目之一,僅僅是因?yàn)槲覀儾皇煜?SPI 通信。一旦我們使用本學(xué)期早些時(shí)候開發(fā)的代碼通過了 MSP430 上端口的初始設(shè)置,我們發(fā)現(xiàn)根據(jù) SPI 協(xié)議,通信命令的時(shí)序至關(guān)重要。由于我們需要向 DAC 發(fā)送四個(gè)輸入值,我們需要確保在發(fā)送的每個(gè)輸入之間觸發(fā)幀同步信號。這是通過將數(shù)據(jù)傳輸分成兩部分來完成的,如下所示:
//DAC Transmission Function
void DAC_write(int DAC_data){
LSB_data = DAC_data; //Lower 8 bits of data
MSB_data = DAC_data>>8; //Upper 8 bits of data
//Trigger FS pin high to low
P3OUT |= 0x08;
P3OUT &= ~0x08;
msb_flag = 1; //MSB Data just filled buffer
//Fill SPI TX Buffer and trip interrupt flag
UCA0TXBUF = MSB_data;
}
//Excerpt of SPI RX Interrupt
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void) {
if((IFG2&UCA0RXIFG) && (IE2&UCA0RXIE)) {
if (msb_flag == 1){
UCA0TXBUF = LSB_data; //Transmit LSB data
//Set flag to 0 to prevent loop of empty data
msb_flag = 0;
byte_count++;
}
else{
//As each set of data has completed, begin sending next piece
if (byte_count == 1){
DAC_write(yaw_val);
}
else if (byte_count == 2){
DAC_write(pitch_val);
}
else if (byte_count == 3){
DAC_write(roll_val);
}
else if (byte_count == 4){ //All data sent, reset to 0
byte_count = 0;
}
}
IFG2 &= ~UCA0RXIFG;
}
Blade Inducttrix Quadcopter的綁定與初始化
- 將股票控制器綁定到四軸飛行器的方法如下:
- 打開四軸飛行器并等待 5 秒鐘,直到指示燈開始閃爍
- 發(fā)射器油門到中間,按下油門桿,打開發(fā)射器,松開操縱桿并將油門歸零
- 等到燈光停止閃爍,然后再飛行。
隨著我們對發(fā)射器的修改,我們無法提供零油門或按下操縱桿上的按鈕。通過更換按鈕并對我們的代碼進(jìn)行一些小改動(dòng),我們能夠?qū)⑺妮S飛行器和發(fā)射器綁定在一起。
雖然這確實(shí)解決了我們的一個(gè)問題,但四軸飛行器經(jīng)常會卡在其初始化模式中。經(jīng)過一段時(shí)間的故障排除,我們意識到四軸飛行器的內(nèi)部飛行控制器具有 IMU,需要保持靜止和水平,以防止傳感器漂移開始飛行。打開后將四軸飛行器放在工作臺上解決了這個(gè)問題。
四軸飛行器框架故障
- 使用四軸飛行器的輕質(zhì)塑料框架,我們遇到了電機(jī)支架在硬著陸時(shí)斷裂的問題。盡管我們確實(shí)嘗試 3D 打印一個(gè)新框架來替換損壞的框架,但我們發(fā)現(xiàn)將電機(jī)安裝座強(qiáng)力粘回各自的位置更容易、更有效。這確實(shí)導(dǎo)致了少量的不平衡和漂移,這可以在我們的飛行視頻中看到,但盡管如此,我們還是能夠控制直升機(jī)。
?
?
- ME461平衡四旋翼飛行器開源分享
- 餅干士兵ME461開源分享
- 四軸飛行器設(shè)計(jì)案例
- 四旋翼飛行器的軌跡跟蹤控制器綜述 24次下載
- 四軸飛行器的資料說明 4次下載
- 四軸飛行器電路 14次下載
- 四軸飛行器設(shè)計(jì) 16次下載
- 四軸飛行器教程 0次下載
- 四軸飛行器答辯 50次下載
- 四軸飛行器控制原理圖 0次下載
- 四軸飛行器控制原理 8次下載
- Crazepony開源四軸飛行器 43次下載
- 四軸飛行器的設(shè)計(jì)與研究 17次下載
- 四軸飛行器飛行原理 0次下載
- 四軸飛行器組裝 40次下載
- 基于DSP的無人飛行器飛行控制系統(tǒng)設(shè)計(jì) 1391次閱讀
- 如何利用ESP8266制作一個(gè)簡單的四軸飛行器 5115次閱讀
- 基于四軸飛行器具有皮帶驅(qū)動(dòng)器的單個(gè)中央燃?xì)獍l(fā)動(dòng)機(jī) 5945次閱讀
- 基于GD32 MCU的四軸飛行器基本方案設(shè)計(jì) 4051次閱讀
- 淺談四旋翼飛行器的設(shè)計(jì) 7392次閱讀
- 星翼電子:MiniFly開源四軸飛行器信息描述 2467次閱讀
- 基于STM32四軸飛行器電路設(shè)計(jì)的詳細(xì)圖解資料概述 1.6w次閱讀
- 四軸飛行器如何對頻_四軸飛行器怎么操作 9.9w次閱讀
- 四軸飛行器什么牌子好_十大四軸飛行器品牌排行版 1.6w次閱讀
- 四軸飛行器常見名詞解釋 8611次閱讀
- 基于STM32的簡易四軸飛行器系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn) 1.7w次閱讀
- 以STM32F4為控制核心的四軸航拍飛行器的設(shè)計(jì)與實(shí)現(xiàn) 8967次閱讀
- 四軸飛行器怎么起飛_四軸飛行器原理 4.9w次閱讀
- 基于STM32的四軸飛行器電路設(shè)計(jì)—電路精選(53) 4w次閱讀
- 教你DIY一個(gè)四軸飛行器 8096次閱讀
下載排行
本周
- 1A7159和A7139射頻芯片的資料免費(fèi)下載
- 0.20 MB | 55次下載 | 5 積分
- 2PIC12F629/675 數(shù)據(jù)手冊免費(fèi)下載
- 2.38 MB | 36次下載 | 5 積分
- 3PIC16F716 數(shù)據(jù)手冊免費(fèi)下載
- 2.35 MB | 18次下載 | 5 積分
- 4dsPIC33EDV64MC205電機(jī)控制開發(fā)板用戶指南
- 5.78MB | 8次下載 | 免費(fèi)
- 5STC15系列常用寄存器匯總免費(fèi)下載
- 1.60 MB | 7次下載 | 5 積分
- 6模擬電路仿真實(shí)現(xiàn)
- 2.94MB | 4次下載 | 免費(fèi)
- 7PCB圖繪制實(shí)例操作
- 2.92MB | 2次下載 | 免費(fèi)
- 8零死角玩轉(zhuǎn)STM32F103—指南者
- 26.78 MB | 1次下載 | 1 積分
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費(fèi)
- 2免費(fèi)開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 141次下載 | 1 積分
- 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
- 0.10 MB | 137次下載 | 免費(fèi)
- 4A7159和A7139射頻芯片的資料免費(fèi)下載
- 0.20 MB | 55次下載 | 5 積分
- 5PIC12F629/675 數(shù)據(jù)手冊免費(fèi)下載
- 2.38 MB | 36次下載 | 5 積分
- 6如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費(fèi)
- 7PIC16F716 數(shù)據(jù)手冊免費(fèi)下載
- 2.35 MB | 18次下載 | 5 積分
- 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統(tǒng)EMC試驗(yàn)方法及要求
- 1.97 MB | 8次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多