關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 多通道舵機控制器設計

        多通道舵機控制器設計

        作者: 時間:2011-01-20 來源:網絡 收藏


        本文的設計中,采用P1口作為舵機信號輸出控制端口,分別對應CH1~CH8通道,在晶振為12 MHz,采用定時器方式1工作方式。
        舵機軟件控制分為兩個部分,即主程序和中斷服務程序。主程序完成定時器初始化、串口信令解析、舵機位置刷新的工作。設置各通道序號為i,當前定時器脈寬定時為Time,Tab[i]為各通道最新定時值。定時器初始化進行定時器工作模式及初值設置,各舵機位置初始化使所有舵機的位置定在0°的位置,使舵機處于等待指令的狀態。串口信令程序將接收到的指令解析,并隨時提取信令中各通道舵機的最新值。舵機位置刷新程序實時計算最新舵量并修改每個通道的定時值Tab[i],供定制中斷服務程序調用。中斷程序流程圖如圖5所示。
        中斷復位程序依次修改各個通道對應I/0口的輸出電平,并依次加載下一通道的定時器計數值,通道號計數指針累加。當計數指針為8時表明各通道輸出結束,剩余時間I/O口全部置0,下一輪循環開始。

        3 串行通信協議的設計
        為了滿足上位機對舵機的實時控制,可以設計一個簡單通用的控制協議。從便于輸出控制的角度來考慮,可以設置單通道控制和多通道控制兩個信令,采用二進制命令行格式,固定幀長。
        本文采用基于短幀的協議設計思想,每個舵機動作對應的控制信號是一幀一幀發送的,動作的分解和步長由功能強大的上位機完成,而下位機只負責完成對應的偏轉角度執行。一個標準的串行通信短幀包含幀首、數據和幀尾幾部分,每個部分可以根據實際需要定義。
        (1)幀首,表示本數據幀的開始,用于數據幀的同步和控制的類型屬于串口通信協議,并為下位機是否接收此數據幀的標志。一般可以設0xFE為單通道控制幀,0xFF為多通道控制幀。
        (2)數據,表示上位機通過串口要控制的舵機輸出通道號以及通道所對應的舵量偏轉值。
        (3)幀尾,表示此幀信號的結束,一般可以用0xF0表示。
        單通道控制信令較為簡單,如圖6所示,其幀首為0xFE,CHn表示該幀所控制的通道號,Dn則表示所控制的通道對應的舵量偏轉值,0xF0作為該幀結束的標志。例如,當幀數據為“FE 01 5A F0”時,表示CH1通道信號置于中位(90°=0x5A)。
        c.JPG

        多通道控制信令格式如圖7所示,幀首為0xFF,其控制命令的數據長度可以每個字節對應一個通道,±90°可以用數字0~180表示,對應二進制數為0x00~0XB4。例如,當幀數據為“FF 5A 5A 5A 5A 78 78 3C 3C FO”時,則表示CH1~CH4通道都居中,CH5,CH6為+30°;CH7,CH8為-30°。

        4 結語
        本文所提出的多路舵機的設計方法是以微處理器為核心,利用定時器中斷實現了對多路舵機的控制信號輸出,并可以實現上位機與下位機的通信控制,可適用于機器人、無人機等需要控制多個舵機的場合,以及其他需要產生多路PWM系統。

        本文引用地址:http://www.104case.com/article/162491.htm
        三相異步電動機相關文章:三相異步電動機原理

        上一頁 1 2 3 下一頁

        關鍵詞: 控制器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 开原市| 兴隆县| 孟州市| 大厂| 岳普湖县| 阿克苏市| 灌云县| 宜宾市| 安泽县| 杭锦旗| 南靖县| 抚远县| 郑州市| 珠海市| 霍城县| 简阳市| 南昌市| 宁海县| 宜兰市| 深水埗区| 江油市| 沈丘县| 江华| 毕节市| 延吉市| 林西县| 崇阳县| 探索| 孝昌县| 江城| 富裕县| 海南省| 延安市| 鹿泉市| 苍溪县| 谢通门县| 中卫市| 鄂尔多斯市| 安塞县| 安多县| 吉木萨尔县|