這個道具需要有幾個模式,現在處於demo階段,暫時想到4個模式:全深度抽插,半深度抽插,九淺一深,三長兩短,
在我們這個道具中,步進電機上套有絲杆,單程全深度是8cm,步進電機轉1圈絲槓前進8mm,完成整個單程需要10圈。
步進電機驅動器的細分數設定成2,所選的步進電機每收到1個脈衝轉1.8度,360度需要200個脈衝,加上細分數為2,步進電機需要400個脈衝才能轉1圈。
所以完成乙個單程需要4000個脈衝。如果我們規定0.8s完成乙個單程,那就是4000/0.8 = 5khz/s,平均頻率是5khz。
步進電機的平均速度是10r/0.8s = 10*60r/0.8m= 750rpm,也就是750圈每分鐘。
但是步進電機不可能在一上電就從平均速度開始轉,而是從0開始加速到最高速度v,然後再需要轉向或者停止時,從v減速到0。實際當中,步進電機不是從0起步,而是從啟動速度開始起步,此處我們設定起步頻率為1khz,步進電機起步速度為150rpm。
在此模式下,
絲槓先前進8cm,
絲槓再後退8cm,
迴圈做3次。
對應的步進電機,先正轉10圈,再反轉10圈,迴圈做3次。
我們設定絲槓前進8cm需要0.8s,也就是步進電機轉10圈需要0.8s。那麼在此模式下,完成一次抽插的動作是需要1.6s。
在上面,我們已經知道步進電機轉10圈需要4000個脈衝,如果是0.8s完成,則平均頻率是5khz,最低頻率也就是啟動頻率是1khz,那麼最高頻率呢。
最高頻率和加減速時間有關係。對步進電機採用梯形加速演算法,相對s型簡單一些。如下圖所示。
因為加減速的時間是相等的,把0.8s分成0.3+0.2+0.3,也就是各自0.3的加速和減速時間,最高速度勻速運動的0.2s時間。
所以從梯形的特點我們可以得出,(f-1)k*(0.3+0.2) = 4k, f = 9。也就是最高頻率是9khz。這就完了?後面會告訴此處計算公式是有誤的。
我們先按照這個計算結果繼續進行,現在最低頻率是1khz, 最高頻率是9khz。
要在0.3s的時間之內控制器輸出頻率是從1khz加速到9khz,對應步進電機的轉速是從1khz/400 = 2.5rps= 150rpm, 到9khz/400 = 22.5rps = 1350rpm。
因為對於步進電機而言,速度和頻率成倍數關係,v=af。所以我們討論速度的加減速,其實就是頻率的加減速。控制器需要按照以下的計算結果控制脈衝的輸出。
在加速過程中,一般的原則是低速可以加速時間短一點,高速需要加速時間長一點,高速的速度間隔盡量小。此處我們設定加速頻率間隔為1khz,從1k加速到9k需要0.3s的時間
。1khz - 0.03s;
2khz - 0.03s;
3khz - 0.03s;
4khz - 0.03s;
5khz - 0.04s;
6khz - 0.04s;
7khz - 0.05s;
8khz - 0.05s;
9khz - 0.2s。
從1k到8k的加起來的時間是0.3s,也就是0.3s後頻率就是9khz。
然後再分別計算每個時間間隔內,在對應頻率下,需要的脈衝個數:
1khz - 30;
2khz - 60;
3khz - 90;
4khz - 120;
5khz - 200;
6khz - 240;
7khz - 350;
8khz - 400;
9khz - 1800。
那麼0.8s內工作輸出的脈衝個數是多少呢?(30+60+90+120+200+240+350+400)*2 + 1800 = 4780,乘以2是因為還有加速和減速時間是對等的。
奇怪為什麼總共輸出了4780個脈衝,我們只需要400個脈衝哎!!!問題在**。
仔細看上圖,原來1khz下面還有空間咯,也就是說上面的公式(f-1)k*(0.3+0.2) = 4k,其實漏掉了這部分空間,(f-1)k*(0.3+0.2) + (1k * 0.6) + (f * 0.2) = 4k。
這樣算下來最高頻率就不是9k了。
那麼我們按照最高頻率是9khz算呢,總共的脈衝個數4780,絲槓實際上前進了4780/400 * 8mm = 95.6mm = 9.56cm。
我們重新修正公式(f-1)k*(0.3+0.2) + 1k * 0.8= 4k. 計算得到f = 7.4khz = 7400hz。
加速曲線修正如下:
1k - 30 - 0.03s
2k - 80 - 0.04s
3k - 90 - 0.03s
4k - 160 - 0.04s
5k - 250 - 0.05s
6k - 300 - 0.05s
7k - 350 - 0.05s
7.4k - 1480 - 0.2s
總脈衝數 = (30+80+90+160+250+300+350)*2 + 1480 = 4000。
總時間 = 0.78s,這是單程的時間,往返的時間是0.78*2 = 1.56s。
在此模式下,
絲槓先前進4cm,
絲槓再後退4cm,
迴圈做3次。
對應的步進電機,先正轉5圈,再反轉5圈,迴圈做3次。
在加速過程中,一般的原則是低速可以加速時間短一點,高速需要加速時間長一點,高速的速度間隔盡量小。
我們設定絲槓前進4cm需要0.6s,也就是步進電機轉5圈需要0.6s。那麼最低頻率也就是啟動頻率是1khz,那麼最高頻率呢。
我們設定加速為0.2s,勻速為0.2s,減速為0.2s。
還是按照上面的公式:(f-1)k*(0.2+0.2) + 0.6 * 1k = 2k,得出f=4.5k。
1k - 50 - 0.05s;
2k - 100 - 0.05s;
3k - 150 - 0.05s;
4k - 200 - 0.05s;
4.5k - 900 - 0.2s;
在0.6秒內總的脈衝個數是(500)*2+900 = 1900。絲槓實際前進了1900/400*8mm = 38mm = 3.8cm。
模式三可以由模式一和二組合起來生成,
絲槓先前進4cm,
絲槓再後退4cm,
迴圈做9次;
絲槓先前進8cm,
絲槓再後退8cm,
迴圈做1次。
將1-6的動作迴圈3次。
模式三可以由模式一和二組合起來生成,
絲槓先前進8cm,
絲槓再後退8cm,
迴圈做3次;
絲槓先前進4cm,
絲槓再後退4cm,
迴圈做2次。
將1-6的動作迴圈3次。
以上所有模式裡面都重複3次的意思是,該模式下的動作至少重複3遍。
遊戲開發中的道具管理
在開發遊戲的時候,我們肯定會處理道具,不論是多大的遊戲都有道具。道具的管理方式也是多種多樣。下面記錄一下我個人在遊戲開發中的道具管理方式。id 型別 數量 圖示 名稱 等重要資訊,還有描述 啟用狀態 購買此道具的消耗道具等其他資訊。不過在配置和傳遞資料時最重要的屬性還是id,型別和數量這3個。id ...
軟體專案開發模式
螺旋開發模式 部分模組開發還可以再繼續開發別的模組,適合於專案前期需求不確定的情況 對於每乙個模組乙個個開發 分析 設計 編碼 測試 上線 好處 有效的降低軟體專案風險,做出的產品要盡量滿足客戶需求 設計 編碼 測試 上線 好處 更容易進行專案把控,即專案質量控制 特點 推遲實現的觀點 質量保證 缺...
Ios 專案從頭開發 MVVM模式 三
1.話說,本來想做個聚合查詢功能,但是我的重點想研究xmpp聊天功能。所以使用mvvm模式做了完全模式51job主介面的頁面。2.首先給大家看我執行起來的介面。3.介面很簡單,做這個介面主要是為了比較mvvm模式和mvc模式之間的區別。4.這個介面的結構是下邊這張 與mvc相比,我多了乙個viewm...