RM新时代网站-首页

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>ME461:通過手部跟蹤控制四軸飛行器

ME461:通過手部跟蹤控制四軸飛行器

2022-10-28 | zip | 67.31 MB | 次下載 | 免費(fèi)

資料介紹

描述

目標(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è)備之前已被加密。這意味著我們必須將控制信息作為模擬信號(hào)注入來代替拇指棒。我們之前曾使用過 MSP430 和單通道 DAC。但是一個(gè)渠道是不夠的。我們需要來自運(yùn)行 OpenCV 的 OrangePi 的四個(gè)數(shù)字輸入通道以及四個(gè)模擬輸出通道來控制油門、偏航、俯仰和滾動(dòng)。

在本學(xué)期早些時(shí)候,我們使用 OrangePi 和 OpenCV 庫進(jìn)行單對(duì)象顏色跟蹤,以通過 MSP430 的 PWM 輸出設(shè)置伺服電機(jī)的角度。在 MSP430 和 OrangePi 上使用相同的基本代碼,我們修改了代碼以跟蹤兩個(gè)不同顏色的對(duì)象以及計(jì)算對(duì)象的延遲平均中心。每個(gè)代碼循環(huán),我們通過平均像素在其顏色中的位置來計(jì)算每個(gè)對(duì)象的中心。然后我們將兩個(gè)對(duì)象的中心記錄到四個(gè)數(shù)組(x1、x2、y1、y2)中。這些中心被輸入到更大的過去測(cè)量數(shù)組中,最后x的平均位置計(jì)算樣本。為了增加我們平均的范圍而不溢出我們的變量,這個(gè)平均值被輸入另一個(gè)數(shù)組,并計(jì)算最后一個(gè)x的平均值。這允許我們?cè)诋?dāng)前對(duì)象中心和它的平均中心之間延遲約 1 秒。

通過這種延遲,我們能夠消除我們手中的任何突然動(dòng)作。它還創(chuàng)造了一種控制情況,握住你的手仍然意味著沒有輸入,如果它開始動(dòng)作不正常,這有助于重新控制直升機(jī)。這種控制方法對(duì)于方向輸入(偏航、橫滾、俯仰)工作順利,但使油門難以飛行。因此,我們決定為油門切換到絕對(duì)控制(距屏幕底部的距離 = 控制輸入)。

在實(shí)施方面,我們?cè)诎l(fā)射器的接線以及與 TLV5610 DAC 的通信方面遇到了一些問題。這些將在下面的問題部分中討論。

問題

導(dǎo)致手套變色的光照條件

- 顏色跟蹤基于每個(gè)像素的 HSV 值。根據(jù)相機(jī)在房間的位置,背景照明會(huì)發(fā)生變化。鑒于我們?cè)谕ǔ9ぷ鞯姆块g中沒有固定位置,因此我們需要修改 HSV 值以匹配每個(gè)新位置。我們站在房間的角落緩解了這種情況,如下面的視頻所示,我們有干凈的背景和一致的照明。這個(gè)角落還使我們能夠在飛行時(shí)觀看無人機(jī),而不是背對(duì)著它。

從 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ā)幀同步信號(hào)。這是通過將數(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ā)射器,松開操縱桿并將油門歸零
  • 等到燈光停止閃爍,然后再飛行。

隨著我們對(duì)發(fā)射器的修改,我們無法提供零油門或按下操縱桿上的按鈕。通過更換按鈕并對(duì)我們的代碼進(jìn)行一些小改動(dòng),我們能夠?qū)⑺妮S飛行器和發(fā)射器綁定在一起。

雖然這確實(shí)解決了我們的一個(gè)問題,但四軸飛行器經(jīng)常會(huì)卡在其初始化模式中。經(jīng)過一段時(shí)間的故障排除,我們意識(shí)到四軸飛行器的內(nèi)部飛行控制器具有 IMU,需要保持靜止和水平,以防止傳感器漂移開始飛行。打開后將四軸飛行器放在工作臺(tái)上解決了這個(gè)問題。

四軸飛行器框架故障

- 使用四軸飛行器的輕質(zhì)塑料框架,我們遇到了電機(jī)支架在硬著陸時(shí)斷裂的問題。盡管我們確實(shí)嘗試 3D 打印一個(gè)新框架來替換損壞的框架,但我們發(fā)現(xiàn)將電機(jī)安裝座強(qiáng)力粘回各自的位置更容易、更有效。這確實(shí)導(dǎo)致了少量的不平衡和漂移,這可以在我們的飛行視頻中看到,但盡管如此,我們還是能夠控制直升機(jī)。

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)
RM新时代网站-首页