原視頻是320*240尺寸,X坐標中間位置是160,cpt.x是目標在畫面中的X坐標,20是允許的像素誤差
基本思想就是160減去cpt.x,以便獲知 需要移動的方向和步距,tmenber 控制不進電機速度
視頻:
https://www.bilibili.com/video/av41467239

void Thread_x::run() ## 負責移動X坐標的執行緒
{
DEV_Digital_Write(M1_ENABLE_PIN, 0); ## 啟用1號電機
int tmenber = 8000;
while(1){
QThread:: usleep(tmenber);
if ( 160-cpt.x >= 20){
DEV_Digital_Write(M1_DIR_PIN, 0); ## 1號電機 正旋轉
DEV_Digital_Write(M1_STEP_PIN, 1);
DEV_Delay_ms(0.5);
DEV_Digital_Write(M1_STEP_PIN, 0);
DEV_Delay_ms(0.5);
}
if ( 160-cpt.x <= -20){
DEV_Digital_Write(M1_DIR_PIN, 1); ## 1號電機 反旋轉
DEV_Digital_Write(M1_STEP_PIN, 1);
DEV_Delay_ms(0.5);
DEV_Digital_Write(M1_STEP_PIN, 0);
DEV_Delay_ms(0.5);
}
}
這個演算法簡單 但是有個重大缺陷,tmenber = 8000 僅適合移動緩慢的目標,tmenber = 100適合快速移動的目標。如何讓演算法能自己動態調整呢?
我找到了這篇文章:
一個簡單的導彈自動追蹤以及實時圖片旋轉演算法,Python-pygame代碼實作
https://www.cnblogs.com/halfsand/p/7976636.html
自己是個文盲 看不懂,哪位大神可以幫改改代碼??
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/45765.html
標籤:Unity3D
上一篇:Python安裝和環境配置,讓你輕松入門學習Python!
下一篇:ue4 打不開了。。。
