摘要:分別介紹了AT89C51單片機、機器手臂以及伺服電機的硬件結構以及工作原理, 進一步詳細討論了基于AT89C51單片機控制的機器手臂系統的設計。
關鍵詞:機器手臂; AT89C51; 伺服電機;
1、引言
機器手臂是近幾十年來涌現的一種工業技術裝備, 它能模仿人體上肢某些動作, 在生產過程中代替人搬運物件或操持工具進行操作。在工業生產中應用機器手臂, 可以提高勞動生產率, 保證產品質量, 減輕工人勞動強度, 實現生產過程自動化。因此近年來工業機器手的應用越來越普遍。
機器手臂具有兩個部分:控制部分和直接進行工作的部分?刂葡到y通過編程, 決定直接工作的機器臂部分。由于采用程序控制, 所以很容易根據需要改變其工作方式和任務。
本設計結合坐標式三自由度機器機器手臂模型, 應用單片機控制。該手臂具有二或三個關節, 夾持裝置, 采用3臺微型伺服馬達驅動, 至少可以完成抬臂、轉臂、抓取物體等簡單動作。電機的驅動控制器由單片機AT89C51實現, 使其按程序和操作要求實現抓取、搬運物體。
2、伺服馬達
微型伺服馬達有著如下的優點:大扭力、控制簡單、裝配靈活。一個微型伺服馬達內部包括了一個小型直流馬達、一組變速齒輪組、一個反饋可調電位器及一塊電子控制板。其中高速轉動的直流馬達提供了原始動力, 帶動變速 (減速) 齒輪組, 使之產生高扭力的輸出, 齒輪組的變速比愈大, 伺服馬達的輸出扭力也愈大, 也就是說越能承受更大的重量, 但轉動的速度也愈低。減速齒輪組由馬達驅動, 其終端 (輸出端) 帶動一個線性的比例電位器作位置檢測, 該電位器把轉角坐標轉換為一比例電壓反饋給控制線路板, 控制線路板將其與輸入的控制脈沖信號比較, 產生糾正脈沖, 并驅動馬達正向或反向地轉動, 使齒輪組的輸出位置與期望值相符, 令糾正脈沖趨于為0, 從而達到使伺服馬達精確定位的目的。伺服馬達的瞬時運動速度是由其內部的直流馬達和變速齒輪組的配合決定的, 在恒定的電壓驅動下, 其數值唯一。但其平均運動速度可通過PWM方式控制。標準的微型伺服電機有三條控制線, 分別為:電源, 地及控制線。電源線與地線用于提供內部的直流電機及控制線路所需的能源, 電壓通常介于4v到6v之間, 該電源應盡可能與處理系統的電源隔離 (因為伺服電機會產生噪音) 。甚至小伺服電機在重負載時也會拉低放大器的電壓, 所以整個系統的電源供應的比例必須合理。
1-1伺服電機的控制線路
輸入一個周期性的正向脈沖信號, 這個周期脈沖信號的高電平時間通常在1ms~2ms之間, 而的電平時間應在5ms~20ms之間, 并不很嚴格, 下表表示出一個典型的20ms周期性脈沖的正脈沖寬度與微型伺服電機輸出臂位置的關系:
1-2伺服電機輸入正脈沖寬度與輸出臂位置關系
通過實驗可得出, 只要輸入一個周期的脈沖, 就可以使電機輸出臂的位置確定下來, 所以這種控制比常用的H型驅動電路在硬件及軟件上都更為簡單。
3、A T89C 51單片機與軟件設計
本設計采用標準型ATMEL89C51單片機作為主控, 這是一個低功耗、高性能的CMOS8位單片機, 片上帶有4KFlash存儲器, 允許在系統改寫或用編程器編程, 且指令系統和80C51完全兼容。
軟件設計的重點在于鍵盤掃描和脈沖信號寬度變化的產生。鍵盤掃描程序在各類參考書中已有詳細介紹, 這里我們主要討論脈沖寬度產生的原理。
基于軟件的脈沖信號產生通常有延時法和定時中斷法。中斷法的原理是, 利用單片機內部定時器中斷來實現。這種方法的特點是精度高。而延時法一般采用查詢方式, 在延時子程序后有處理的程序, 所以有一定的誤差, 因此伺服電機的輸出臂位置有一定誤差, 但在可接受的范圍內。本系統即采用后一種方式, 設計的關鍵是通過鍵盤掃描確定對哪臺電機控制, 以及怎樣通過調節輸出脈沖寬度來調節該電機的輸出臂位置。
由于涉及到三個電機的控制, 每個電機有一個自由度, 每個自由度用兩個開關進行控制, 共需要六個開關來對三個電機控制, 所以在主程序中, 在對單片機中需要用到的端口初始化后, 這樣使得電機輸出臂處在0度, 也就是機器手部、機器手臂以及立柱都處在適當的位置, 以等待單片機的輸入信號來對其進行控制。接著進行鍵盤掃描程序, 以檢測該對哪個電機執行什么樣的操作。動作子模塊設計的重點是根據動作要求得出應輸出正脈沖寬度 (見表1-2) , 由于三個電機輸出動作最終都能歸結到對應電機輸出臂的位置變化, 所以只取其中之一來討論。在程序的初始化中已經將各個電機的輸出臂位置調整到0度, 在主程序中對鍵盤掃描后, 將對應按鍵按下的信息輸入到單片機中, 并且判斷應對哪個電機執行什么樣的動作, 動作子模塊中就是要將對應的脈沖輸出到相應的電機控制電路上。由表1-2可以看到, 在一個周期為20ms的脈沖中, 正脈沖的寬度是以0.5ms為單位向上增加的, 并且, 每增加1個0.5ms的寬度, 電機輸出臂位置就逆時針轉動45°, 例如, 當輸入的脈沖正脈沖寬度為0.5ms時, 對應的輸出臂位置是-90° (初始化后的電機輸出臂位置默認為0度) , 當輸入脈沖寬度增加到1ms時, 輸出臂的位置時-45°。因此, 只要根據鍵盤輸入確定應輸出的0.5ms正脈沖的個數, 執行相應次數的0.5ms延時子程序的調用, 接著在20ms減去正脈沖時間的時間里, 持續輸出低電平, 就可以輸出一個周期為20ms的脈沖, 即可以控制電機的輸出臂到相應的角度, 進而通過傳動機構引起機器模型的相應動作。
4、實物圖
5、總結
機器手臂的設包括軟件與硬件系統的設計, 硬件系統主要包括機器手臂機械形態分析與單片機控制系統的設計, 為實現的機器手臂具有二或三個關節, 有夾持裝置, 用伺服電機驅動, 可以完成抬臂、轉臂、抓放物體等簡單動作, 完成預定的基本要求。并且, 在進一步試驗的基礎上, 改進了機械手臂的位置只能固定在特定位置的局限, 使得機器手臂各部件的位置基本可以覆蓋在其運動范圍的每個位置, 可以說, 實現了完全由人工操作機器手臂運動控制, 這是通過改變伺服電機控制方式來實現的。
參考文獻
[1]沈紅衛.單片機應用系統設計實例和分析[M].北京航空航天大學出版社.
[2]沈紅衛.基于單片機的智能系統設計與實現[M].電子工業出版社.
[3]工業機械手設計基礎[M].天津科學技術出版社.
[4]ATMEL公司.AT89C51的DATA SHEET.
[5]周荷琴.微型計算機原理與接口技術[M].中國科學技術大學出版社.