當前位置:首頁 > 單片機 > 單片機
[導讀]在中國科大首屆機器人舞蹈比賽中(中央10臺節(jié)目轉播),我們用一個單片機控制多個步進電機指揮跳舞機器人 的雙肩、雙肘和雙腳伴著音樂做出各種協(xié)調(diào)舒緩充滿感情的動作,榮獲一等獎。電路采用74373鎖存,74LS244和ULN200

在中國科大首屆機器人舞蹈比賽中(中央10臺節(jié)目轉播),我們用一個單片機控制多個步進電機指揮跳舞機器人 的雙肩、雙肘和雙腳伴著音樂做出各種協(xié)調(diào)舒緩充滿感情的動作,榮獲一等獎。電路采用74373鎖存,74LS244和ULN2003作電壓和電流驅動,單 片機(Atc52)作脈沖序列信號發(fā)生器。程序設計基于中斷服務和總線分時利用方式,實時更新各個電機的速度、方向。整個舞蹈由運動數(shù)據(jù)所決定的一截截動 作無縫連接而成。

1 步進電機簡介

步進電機根據(jù)內(nèi)部線圈個數(shù)不同分為二相制、三相制、四相制等。本文以四相制為例介紹其內(nèi)部結構。圖1為四相五線制步進電機內(nèi)部結構示意圖。

2 四相五線制步進電機的驅動電路

電路主要由單片機工作外圍電路、信號鎖存和放大電路組成。我們利用了單片機的I/O端口,通過74373鎖 存,由74LS244驅動,ULN2003對信號進行放大。8個電機共用4bit I/O端口作為數(shù)據(jù)總線,向電機傳送步進脈沖。每個電機分配1bit的I/O端口用作74373鎖存信號,鎖存步進電機四相脈沖,經(jīng)ULN2003放大到 12V驅動電機運轉。

 

 

 

電路原理圖(部分)如圖2所示。

(1)Intel 8051系列單片機是一種8位的嵌入式控制器,可尋址64K字節(jié),共有32個可編程雙向I/O口,分別稱為P0~P3。該系列單片機上集成8K的ROM,128字節(jié)RAM可供使用。

(2)74LS244為三態(tài)控制芯片,目的是使單片機足以驅動ULN2003。ULN2003是常用的達林頓管陣列,工作電壓是12V,可以提供足夠的電流以驅動步進電機。關于這些芯片的詳細介紹可參見它們各自的數(shù)據(jù)手冊。

(3)74373是電平控制鎖存器,它可使多個步進電機共用一組數(shù)據(jù)總線。我們用P1.0~P1.7作為8個電機的鎖存信號輸出端,見表1。 

 

 

 

這是一種基于總線分時復用的方式,以動態(tài)掃描的方式來發(fā)送控制信號,這和高級操作系統(tǒng)里的多任務進程調(diào)度的思想一致。這種方法明顯的好處是節(jié)省I/O口,使系統(tǒng)可以控制更多的步進電機。本電路設計為控制8個。

3 程序設計

傳統(tǒng)的步進電機驅動程序利用簡單的條件循環(huán)來發(fā)送脈沖序列,但當電機數(shù)目發(fā)生變化時,編程繁雜,冗余代碼較 多,難以做到信號占空比一致,進而產(chǎn)生“抖動”現(xiàn)象。下面提出一種基于中斷服務方式,面向舞蹈動作,可實時改變各個電機速度和方向(每200ms可改變一 次)的程序設計方法。

3.1 速度歸一化和線性關系

我們將速度量化成一個-128~127內(nèi)可變的數(shù),正號代表正轉,負號代表返轉,稱之歸一化速度 (-128~127為一個字節(jié))。給每個電機分配一個速度累加計數(shù)器speed_tickers[i](I=0,1,2…,7分別代表8個電機),初始值 為0,每個中斷觸發(fā)周期內(nèi)給該累加計數(shù)器加上從舞步信息數(shù)組dancedata中讀取的速度值speeds[i],當計數(shù)器值大于或等于預設的閾值 MAX_SPEED_TICKER=600時,則發(fā)送脈沖序列中的下一個(正轉)或上一個(反轉)給步進電機,這取決于速度的符號(參考3.2節(jié))。同 時,將該電機的累加計數(shù)器speed_tickers[i]恢復為0。給出的速度值speed[i]越大,則累加達到或超過閾值 MAX_SPEED_TICKER的時間就越短,那么向步進電機發(fā)送脈沖的頻率就越高,速度也就越快。

歸一化速度值設為num(-128~127),電機實際旋轉速度設為V,那么V和num之間滿足關系式:

(1)當num是閾值600的約數(shù)時,

 

其中,[x]代表不超過x的最大整數(shù)。

(3)V0是一個速度常數(shù),即當歸一化速度值num=120的時候對應的電機實際速度。

(4)num和速度V近似線性關系,V∝num。正是因為有了這種函數(shù)關系,我們在舞蹈動作控制中,可以輕松實現(xiàn)速度在大范圍內(nèi)變化。

3.2 速度正負實現(xiàn)方式

 (1)在程序中,數(shù)組steps[8]用于存放步進電機的脈沖序列。


(2)設置指針cur_step[8]指向8個電機當前處在脈沖序列step[8]中的位置。
    易知:0<=step[i]<=7,其中,i分別代表8個電機。

(3)設置指針移動變量delta=0。delta=1,指針向后移動一步,電機正轉;delta=-1,指針向前移動一步,電機反轉;delta=0,指針不移動,電機不發(fā)生轉動。

3.3 程序具體步驟

3.3.1初始化計時器InitTimer,然后空循環(huán),進入等中斷階段。

3.3.2 中斷觸發(fā)后,程序進入服務程序。

(1)執(zhí)行函數(shù)SetAllSpeeds,函數(shù)根據(jù)提供的速度值speed[i]依次判斷是否給各個電機發(fā)送脈沖,實現(xiàn)電機以特定的速度和方向旋轉。SetAllSpeeds具體算法流程見圖3。

(2)從定義的數(shù)組dancedata中讀取新的速度信息,每200ms一次。

(3)將系統(tǒng)在調(diào)用中斷處理函數(shù)時關閉的計時器重新打開InitTimer。

(4)中斷處理函數(shù)結束返回。

注意:第一,(1)和(2)不可交換,這是為了保證步進電機每步延時的均勻性;第二,內(nèi)部中斷間隔時間 1ms內(nèi),8051是否能夠將中斷服務程序中所有的代碼執(zhí)行完全?答案是肯定的。參考圖4,我們對整個中斷服務程序進行了統(tǒng)計,它所要執(zhí)行的指令數(shù)在 200~300之間變化,時鐘間隔設置為1ms,選用12MHz晶振,執(zhí)行這些指令需要耗時約500~600μs<1ms,因此,中斷處理完全可以在一個計時器周期內(nèi)執(zhí)行完畢。

 


3.4 舞蹈編排

在舞蹈編排中,我們面向的是動作,因此,必須關心三要素:快慢、方向和幅度。在程序中,舞步信息數(shù)組格式如下:

 


 

每組數(shù)據(jù)含有8個字節(jié),分別代表8個電機的歸一化速度num,這點在3.1節(jié)中已經(jīng)做了詳細分析。程序每200ms讀一次數(shù)據(jù),換句話說,每組數(shù)據(jù)的有效期只有200ms。我們分析表2一組數(shù)據(jù)代表的含義。

 


(1)組數(shù)為25,這隱含了動作的時間信息。因為每組數(shù)據(jù)的有效期為200ms,所以,25組數(shù)據(jù)的執(zhí)行時間為:200ms×25=5000ms

(2)左腳和右腳(輪式)的歸一化速度相等,方向相反。根據(jù)公式(1)可以知道

V=0.5×V0

所以,機器人以0.5V0的速度原地轉圈5000ms。

(3)其它關節(jié)的歸一化速度num=0,說明其它關節(jié)均無動作。

3.5 可視化輔助程序簡介

我們發(fā)現(xiàn)一個簡單的動作競需要5組數(shù)據(jù),5分鐘的舞蹈需要

組數(shù)據(jù)(需占用1.5K存儲空間,AT89C52足夠)。如果人工填寫這些數(shù)據(jù),將十分困難。因此在實際的運用中,我們用C+Builder編寫了機器人模擬程序,采用圖形界面,預一化速度和時間信息,寫入data.h,只要將其作為頭文件,電機驅動程序將自動讀取。

4 電路和程序特點總結

(1)一塊單片機控制多個步進電機,總線分時復用。

(2)程序基于中斷服務,電機工作穩(wěn)定可靠。

(3)提出歸一化速度,實現(xiàn)了速度V大范圍可變。

(4)數(shù)據(jù)更新每200ms一次,可以輕松控制各個電機實時加速、減速、爆發(fā),從而使舞蹈更人性化、感情化。這也正是我們允許數(shù)據(jù)量大的原因。

(5)輔助程序實現(xiàn)編程可視化。

文末是中國科大首屆機器人舞蹈比賽中用到的程序實例。

 





 


 


 

參考文獻

1 顧天柱,陳巳康.C51交叉編譯系統(tǒng).上海:復旦大學出版社,1990,8

2 胡漢才.單片機原理及系統(tǒng)設計.北京:清華大學出版社,2002

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉