adult道具项目开发 - 模式
這個道具需要有幾個模式,現在處于demo階段,暫時想到4個模式:全深度抽插,半深度抽插,九淺一深,三長兩短,
模式要如何實現呢。手機APP通過藍牙來設置控制器的模式,控制器會解析這個模式的具體含義,將其翻譯成步進電機的運動模式。
在我們這個道具中,步進電機上套有絲桿,單程全深度是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。
?
模式一 - 全深度
在此模式下,
對應的步進電機,先正轉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。
?
模式二 - 半深度,
在此模式下,
對應的步進電機,先正轉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。
?
模式三 - 九淺一深
模式三可以由模式一和二組合起來生成,
?
模式四 - 三長兩短
模式三可以由模式一和二組合起來生成,
?
以上所有模式里面都重復3次的意思是,該模式下的動作至少重復3遍。
?
轉載于:https://www.cnblogs.com/ironx/p/4841609.html
總結
以上是生活随笔為你收集整理的adult道具项目开发 - 模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cannot SET AUTOTRACE
- 下一篇: blank space in latex