2016年9月28日 星期三

DIY - Robot 機器人 - TowerPro MG995 舵機 PWM 測試程式二(六)

DIY - Robot 機器人 - TowerPro MG995 舵機 PWM 測試程式二 (六): 

另外產生脈衝寬度調變(PWM)信號方式是利用 Microchip PIC24FJ64GA008 內的 Delay Timer 函數,在 20ms 內控制輸出昇降,同樣可以產生脈衝寬度調變(PWM)信號輸出,利用不同的 PWM 信號來驅動 TowerPro MG995 舵機(Servo)的轉動角度。

TowerPro MG995 舵機 PWM 測試程式二 LCD 顯示
Microchip PIC24FJ64GA008 初始化程式:
    TRISDbits.TRISD0 = 0; // RD0 Output

Microchip PIC24FJ64GA008 主程式:
while(1){
        for ( loop = 0; loop < loop1; loop++ ) {
        LATDbits.LATD0 = 1;   // RD0 ON
        delayUs(3200);         // Center
                             // 2400<45 ms="" span="">
                             // 3040=90=1.55ms
                             // 3200=90=1.6ms
                             // 3600>90+45=2ms
                             // 4800<180 ms="" span="">
        LATDbits.LATD0 = 0;   // RD0 OFF
        delayms(20);
        }

        for ( loop = 0; loop < loop1; loop++ ) {
        LATDbits.LATD0 = 1;   // RD0 ON
        delayUs(7200);         // AntiClockwise
                            // 6400<90 ms="" span="">
        LATDbits.LATD0 = 0;  // RD0 OFF
        delayms(20);
        }

        for ( loop = 0; loop < loop1; loop++ ) {
        LATDbits.LATD0 = 1;   // RD0 ON
        delayUs(1400);         // Clockwise
                            // 1400<90 ms="" span="">
        LATDbits.LATD0 = 0;  // RD0 OFF
        delayms(20);
        }

        for ( loop = 0; loop < loop1; loop++ ) {
        LATDbits.LATD0 = 1;   // RD0 ON
        delayUs(160);          // Clockwise
        LATDbits.LATD0 = 0;   // RD0 OFF
        delayms(20);
        }
}


舵機的使用電壓是由 3.0 ~ 7.2V,本來的 MCU 的供電壓是由 3.3V,最方便直接使用 3.3V舵機的驅動,但試驗這款舵機的供電電 3.3V是可以,但極不穩定,有時動有時不動,發現這款舵機的供電壓最小 3.6V才可以,高電壓會提昇轉矩強度,由於供電電壓與 MCU 不同,並希望將舵機的供電分開,所以最後加上光耦 IC Renesas PS2561D)作分隔,避免因供電電不穩定,導致舵機作出錯誤動作。

TowerPro MG995 舵機 PWM 測試程式二電路(Schematic
TowerPro MG995 舵機 PWM 測試程式二
2016年 9月 28日 天氣報告
氣溫:29.6@ 22:50
相對濕度:百分之 61%
天氣:多雲

3 則留言:

  1. 有趣~ 小弟也在製作機器人~ 不過我拆了幾個舵機在看了現在機器人設計以後推翻原本的架構~ 用了其他方法

    不再使用舵機去堆砌機器人~ 準備直接以每個肢體為核心製作兩個舵機,放棄只能控制位置和產生一堆連接線的 PWM,改用汽車用的 Can Bug,用兩個 MLX90319 磁力傳感器,做為旋轉角度的傳感器,在每個肢體內建陀螺儀取得出力補償的資料,幾個部分我已經驗證過,準備繪製電路洗電路板了

    回覆刪除
  2. 回覆
    1. 不錯,期望你的製作來臨!希望多了解和學習。謝謝!

      刪除