?AGV小車指裝備有電磁或光學等自動導引裝置 能夠沿規(guī)定的導引路徑行駛,具有安全保護以及各種移載功能的運輸車,工業(yè)應用中不需駕駛員的搬運車,以可充電之蓄電池為其動力來源。一般可通過電腦來控制其行進路線以及行為,或利用電磁軌道(electromagnetic path-following system)來設立其行進路線,電磁軌道黏貼於地板上,無人搬運車則依靠電磁軌道所帶來的訊息進行移動與動作。

本項目設計的AGV小車可以非常方便地與其它不同的物流系統(tǒng)實現(xiàn)自動連接,例如AS/RS(自動化立體倉庫/存入取出系統(tǒng))、自動積放鏈、各種緩沖站、升降機和機器人等;從而實現(xiàn)在工作站之間對物料進行跟蹤;按計劃輸送物料并有執(zhí)行檢查記錄;對輸送進行確認;與生產(chǎn)線和庫存管理系統(tǒng)進行網(wǎng)絡在線連接以向工廠或車間管理系統(tǒng)提供實時物流信息。在AGV運輸物料過程中,由于AGV按固定規(guī)劃路徑行駛,不易與其它加工設備或其他障礙物碰撞,很少甚至沒有導致產(chǎn)品或生產(chǎn)設備的損壞。AGV小車通過安裝地面電纜、磁導航帶或其他不構(gòu)成障礙的地面導引物引導,方便。小車中AGVS系統(tǒng)具有極高的可靠性。AGVS是由若干臺AGV小車組成,當一臺AGV損壞無法工作時,其它AGV的生產(chǎn)效率不受影響并可以保持高度的系統(tǒng)可調(diào)度性。AGV小車采用蓄電池作為動力來源,既節(jié)約能源又保護環(huán)境。AGV小車的充電和驅(qū)動系統(tǒng)耗能少,能源利用率高,并且AGV工作噪音低對制造和倉儲環(huán)境沒有不良影響。

項目實施過程,通過分組分工及各研發(fā)階段分期實施完成??虏龣?quán)同學在導師指導下負責整體規(guī)劃和過程實施;張清同學主要進行市場調(diào)研和數(shù)據(jù)分析,確定AGV小車設計功能和成本核算;杜永康、謝延同同學基于機電一體化技術(shù)專業(yè)知識,完成AGV小車硬件結(jié)構(gòu)搭建;團體進行基于自動化傳感檢測技術(shù)和智能控制算法,完成AGV小車軟件程序設計,以及AGV小車測試和改進。

具體內(nèi)容:第一階段對AGV進行結(jié)構(gòu)框架設計,包括傳感器位置安裝;第二階段對AGV小車進行程序編程,包括實現(xiàn)AGV功能應用各類傳感器的程序邏輯結(jié)構(gòu)框架設計、AGV前進與后退等狀態(tài)的編寫,以及整體程序的調(diào)試;第三階段對AGV小車整體功能進行試驗,對故障修理、程序微調(diào)及改善等。

?

智能AGV小車的設計與實現(xiàn)

[摘要]?AGV(Automated Guided Vehicle)即自動導引運輸車,是指裝備有電磁或光學等傳感器的自動導引裝置,它能夠沿著規(guī)定好的路徑行駛,并且具有安全保護以及各種移載功能裝置的運輸車。

AGV由計算機,電控設備,導航設備等控制,它的自動化程度高,目前已經(jīng)廣泛的應用工業(yè)、軍事、交通運輸、電子等領(lǐng)域。AGV屬于輪式移動機器人(WMR――Wheeled Mobile Robot)的范疇。自第一輛AGV于1953年誕生以來,AGV技術(shù)不斷發(fā)展并趨向成熟。在歐、美等發(fā)達國家應用也最為廣泛。由于AGV技術(shù)門檻較低,在我國已有多家企業(yè)生產(chǎn)此類產(chǎn)品,并逐漸應用于各行各業(yè)。

本項目根據(jù)控制系統(tǒng)設計要求,選定以STM32單片機作為CPU進行控制系統(tǒng)設計。本文分析研究了AGV硬件設計基本要求及并給出實現(xiàn)方案,軟件設計方面采用嵌入式系統(tǒng)的設計方案,采用無刷直流電機作動力驅(qū)動以及 電機驅(qū)動器PID參數(shù)調(diào)整方案。

首先,介紹AGV小車車體結(jié)構(gòu)設計基本要求及方案,本項目設計作品為前輪轉(zhuǎn)向,后輪獨立驅(qū)動的四輪式設計結(jié)構(gòu)。

其次,本項目將AGV自動引導小車控制硬件設計組成,主要內(nèi)容有:供電系統(tǒng)設計方案、控制電路原理圖設計方法、各類傳感器設計原理方法。

最后,介紹AGV軟件設計方法,主要內(nèi)容為利用定時器中斷、串口中斷、I/O口數(shù)據(jù)傳輸、定時器定時等方法實現(xiàn)AGV自動控制功能。

關(guān)鍵詞:AGV,STM32單片機,磁導航設計,PWM。

 

 

 

 

 

 

 

 

?

?

第一章緒論

1.1 ?AGV小車的背景和發(fā)展

AGV小車一直以來都作為為物料搬運使用。世界上第一輛AGV由Barrett電子公司于1953年在美國開發(fā)成功,并且其具有一個以真空管為基礎的控制器。上世紀五十年代末到六十年代初期時,已有多種類型的牽引式AGV作用于工廠和倉庫。

在上世紀六十年代和七十年代AGV技術(shù)則主要在歐洲得到發(fā)展。當時的導引技術(shù)主要依靠地面控制器開關(guān)埋在地下的導線產(chǎn)生的電磁頻率指引AGV沿著規(guī)劃路徑行駛。到了20世紀八十年代,發(fā)展中心又轉(zhuǎn)移到美國,無線式引導技術(shù)被引入到AGV系統(tǒng)中,例如激光和慣性進行導引。

自20世紀80年代以來,AGV系統(tǒng)已經(jīng)逐步發(fā)展成為生產(chǎn)物流系統(tǒng)中最大的專業(yè)分支之一,并趨向產(chǎn)業(yè)化發(fā)展,成為現(xiàn)代化企業(yè)不可缺少的自動化裝備之一。

1.2??自動引導小車(AGV)定義和特點

AGV(Automatic Guided Vehicle),即自動導引車,根據(jù)美國物流協(xié)會定義,AGV是指裝備有電磁或光學傳感器等自動導引裝置,并且能夠沿著規(guī)劃好的導引路徑行駛,且具有小車編程和停車選擇裝置、安全保護以及各種移載或裝卸物料功能的輪式運輸車。AGV是以電池為動力來源、車體裝有非接觸導向裝置,具備獨立尋址系統(tǒng)的無人駕駛自動運輸車。

AGVS(Automatic Guided Vehicle?System)即自動導引車系統(tǒng),它由AGV小車、上位機管理系統(tǒng)、路徑導引系統(tǒng)、通信系統(tǒng)、小車??抗の灰约俺潆姽の坏冉M成。AGVS的上位機管理系統(tǒng)通過通信系統(tǒng)與系統(tǒng)內(nèi)的AGV小車通信,控制和制定AGV小車作業(yè)調(diào)度和計劃,并優(yōu)化AGV的作業(yè)過程和控制AGV的運行路線、實時監(jiān)控AGV的運行狀態(tài),使AGV在計算機的管制下有條不紊地作業(yè),并通過物流系統(tǒng)軟件而集成于整個工廠與車間的生產(chǎn)監(jiān)控和管理系統(tǒng)中。自動導引車系統(tǒng)(AGVS)易于和其他自動化系統(tǒng)集成,并且容易擴展。

應用AGV小車具有很多特點:

1)AGV可以非常方便地與其它不同的物流系統(tǒng)實現(xiàn)自動連接,例如AS/RS(自動化立體倉庫/存入取出系統(tǒng))、自動積放鏈、各種緩沖站、升降機和機器人等;從而實現(xiàn)在工作站之間對物料進行跟蹤;按計劃輸送物料并有執(zhí)行檢查記錄;對輸送進行確認;與生產(chǎn)線和庫存管理系統(tǒng)進行網(wǎng)絡在線連接以向工廠或車間管理系統(tǒng)提供實時物流信息。

2)采用AGV后,可以大大減少人工檢取或堆置物料的人力勞動力輸出,同時操作人員可以直接的減少為跟蹤物料而進行大量的報表工作,進而加快勞動生產(chǎn)率。另外,可以直接取消或者減少非直接勞動力如物料倉庫會計員、運貨車調(diào)度員以及發(fā)料員的工作。

3)在AGV運輸物料過程中,由于AGV按固定規(guī)劃路徑行駛,不易與其它加工設備或其他障礙物碰撞,很少甚至沒有導致產(chǎn)品或生產(chǎn)設備的損壞。

4)AGV的最初投入可能較高,但絕大多數(shù)購置AGV的使用者均證明,2到3年間內(nèi)均能收回AGV的投資成本。

5)AGV通過安裝地面電纜、磁導航帶或其他不構(gòu)成障礙的地面導引物引導,方便。

6)AGVS系統(tǒng)具有極高的可靠性。AGVS由若干臺AGV小車組成,當一臺AGV損壞無法工作時,其它AGV的生產(chǎn)效率不受影響并可以保持高度的系統(tǒng)可調(diào)度性。

7)AGV采用蓄電池作為動力來源,既節(jié)約能源又保護環(huán)境。AGV小車的充電和驅(qū)動系統(tǒng)耗能少,能源利用率高,并且AGV工作噪音低對制造和倉儲環(huán)境沒有不良影響。

1.3 ?自動引導小車(AGV)引導方式

AGV技術(shù)是生產(chǎn)過程自動化先進性的重要體現(xiàn),AGV之所以能夠?qū)崿F(xiàn)無人駕駛,導航和導引對其起到了至關(guān)重要的作用,而AGV的導航引導方式是決定AGV能否進一步應用于復雜、惡劣環(huán)境的關(guān)鍵因素。隨著技術(shù)的發(fā)展,目前能夠用于實際運行AGV的導航/導引技術(shù)主要有:電磁引導方式、磁帶導引、光學導引、激光導航、慣性導航、視覺導航、GPS導航等。本項目采用了磁帶引導。

技術(shù)名稱 成熟度 技術(shù)難度 成本 應用 先進性 前景
電磁導引 成熟 較廣 一般 較好
光學導引 成熟 中低 較廣 一般 較好
磁帶導引 成熟 一般 很好
超聲定位 較成熟 一般 一般
激光定位 較成熟 較先進
視覺導引 較成熟 很先進

表 1-1 AGV常用引導應用現(xiàn)狀比較

1.3.1 ?磁帶導引(Magnetic Tape Guidance)

磁導引方式與電磁導引相近,用鐵氧(磁體)體料粉與合成橡膠組成的磁帶替代在地面下埋設金屬線,通過磁感應信號實現(xiàn)導引,其特點是靈活性比較好,改變或擴充路徑容易,磁帶鋪設簡單,適用于小型或臨時設備,但此導引方式易受環(huán)路周圍磁性和金屬物質(zhì)的影響,容易受到機械損傷,因此,此導引方式受外界影響較大。

磁導航方式被認為是一項非常有應用前景的技術(shù),主要通過磁傳感器測量路徑上的磁場強度信號來獲取AGV自身相對于磁導引帶之間的位置偏差,從而實現(xiàn)車輛的姿態(tài)控制及導航。磁導航具有很高的測量精度及良好的重復性,磁導航不受光線變化及路面污損破壞等影響,在應用運行過程中,磁傳感系統(tǒng)具有很高的可靠性和魯棒性。磁條鋪設成本低,維護費用低,使用壽命長,且增減、變更路徑容易。

1.4 ?AGV的應用現(xiàn)狀

由于AGV具有地上系統(tǒng)簡單、機能集中、易施工和系統(tǒng)構(gòu)成等優(yōu)點,被廣泛地應用在汽車制造、港口貨運、機械加工、發(fā)電廠、電子產(chǎn)品裝配、電子行業(yè)、造紙行業(yè)等諸多行業(yè)。AGV的運輸速度及負載能力遠高于人力運輸,速度可達每分鐘百米,負載能力可從幾千克到幾十噸,相比人類而言它具備非常高的實用價值??梢钥闯?,AGV無人自動引導小車是一種非常有發(fā)展前途的物料運輸裝備,它在柔性裝配系統(tǒng)(FAS)和柔性制造系統(tǒng)(FMS)中更是一種最有效的物料運輸設備。

隨著電子技術(shù)和自動控制技術(shù)的快速發(fā)展,AGV的功能以及其導航技術(shù)也在不斷進步,并朝著性能優(yōu)越、自由度更高、廉價、超大型化和微型化方向發(fā)展。AGV的應用領(lǐng)域也在不斷擴展,從起初只是用作于工廠內(nèi)的物料運輸,到現(xiàn)在己經(jīng)不僅僅局限于工廠或車間之內(nèi),而是已經(jīng)在飯店、醫(yī)院、辦公室、物流和超市等諸多行業(yè)成功的運用,并且取得了很好的運用效果。

AGV主要應用在制造業(yè)領(lǐng)域,在重型機械運輸以及部分非制造行業(yè)中也有運用。AGV在制造業(yè)中的運用主要有物料裝配、物料分發(fā)和物料加工制方面。其中在裝配作業(yè)中AGV的運用量最大,并且AGV也是汽車制造工業(yè)的應用大戶。美國通用汽車公司的汽車裝配線有90%應用了AGV,在西歐國家更是有57%的運用中的AGV被應用于汽車裝配。

隨著電子行業(yè)技術(shù)的快速發(fā)展,電子工業(yè)領(lǐng)域中的AGV運用潛力越來越大。由于消費者需求加大,市場對生產(chǎn)系統(tǒng)的需求增加, FMS(柔性制造系統(tǒng))作為靈活的生產(chǎn)方式滿足了市場變化的要求,而將AGV用作中小批量元件的運輸更是適應了這一需求,并且AGV可以根據(jù)不同運用場合需要進行輸送路徑的編程,從而達到指定運輸任務。這在超凈電子行業(yè)凈化室中,AGV代替人工作業(yè)更是發(fā)揮了巨大的優(yōu)勢。

而在重型機械制造行業(yè)中,AGV主要用來運輸中大型物料和重型物料。而設計功率較大并配置重型物件移栽裝置的AGV便可用來代替人工裝卸運輸中的大量勞動力輸出,更是增加了生產(chǎn)過程中的安全性。

AGV運用在非制造業(yè)中也越來越普遍。例如醫(yī)療部門、郵政部門、食品生產(chǎn)、餐廳點菜等。并且AGV可以代替人類,在具有核輻射危險的地方,用于核材料的搬運。

1.4.1??國外AGV的應用現(xiàn)狀

在世界范圍內(nèi),隨著市場需求的增長,近幾年先進制造技術(shù)、工廠物流自動化有了很大發(fā)展。AGV技術(shù)的發(fā)展,則進一步促成了先進的柔性生產(chǎn)線、自動化物流系統(tǒng)的實現(xiàn)。國外發(fā)達國家中日本、美國、德國、意大利、瑞典AGV產(chǎn)品種類齊全,技術(shù)先進,處于領(lǐng)先地位。

國內(nèi)外在先進的加工制造生產(chǎn)線上采用柔性加工系統(tǒng)(FMS),在裝配生產(chǎn)線上使用柔性裝配系統(tǒng)(FAS)技術(shù),在倉庫存取輸送線上使用自動化柔性物流系統(tǒng)技術(shù), 進而增加了制造生產(chǎn)線和物流系統(tǒng)的柔性, 加快了生產(chǎn)效率, 適應了生產(chǎn)多品種產(chǎn)品的市場需求。

1.4.2??國內(nèi)AGV的應用現(xiàn)狀

目前,由于國內(nèi)汽車行業(yè)的快速發(fā)展,其對配套生產(chǎn)廠家的產(chǎn)品質(zhì)量及產(chǎn)量要求不斷提高,特別是裝配制造業(yè)?;谶@種情況對柔性裝配系統(tǒng)的需求正在不斷提高。

1.5 ?本項目的研究內(nèi)容及AGV的關(guān)鍵技術(shù)

1.5.1??項目主要研究的內(nèi)容

本項目旨在設計一款實用的AGV車開發(fā)平臺,為保證AGV車的導航準確性、快速糾正性,以及本設計作品中所有的軟件和硬件開發(fā)研究,將主要涉及以下幾個方面:

1)AGVS配送系統(tǒng)相關(guān)研究

2)AGV車體機械結(jié)構(gòu)設計

3)AGV控制器硬件設計。將對控制器與各傳感器進行模塊化設計。

4)AGV軟件設計。涉及傳感器檢測程序、無刷直流電機驅(qū)動程序等。

5)項目設計任務作系統(tǒng)實驗調(diào)試,保證AGV車運行性能。

1.5.2 ?AGV的關(guān)鍵技術(shù)

設計為一款既具有實用價值同時利于后期拓展開發(fā)的AGV小車平臺,AGV將在手動開機情況下,自主抵達發(fā)出信息的各個工位,并進行任務將物料搬運抵達至目標工位,其中將主要包括如下幾個關(guān)鍵問題:

  • AGV如何實時判斷當前周圍環(huán)境的障礙物并及時躲避
  • AGV如何與工位進行位置數(shù)據(jù)通信以及物料數(shù)據(jù)通訊。
  • AGV如何擇優(yōu)選擇運行路徑并抵達目標工位。
  • AGV如何獲取當前位置信息并確定當前行徑方向。

5)AGV如何適當?shù)脑谥钡缽澋兰訙p速度并始終在路徑上行走。

這些問題是對于實時性要求較高的AGV所必需解決的問題,將對應到AGV的傳感器技術(shù)、定位技術(shù)、路徑規(guī)劃策略和運動控制技術(shù)。對于AGV而言,及時響應系統(tǒng)下達的任務指令,并安全、準確、無物料丟損、無碰撞的完成指令任務,是AGV最基本的功能。而在各種復雜環(huán)境中,有效的完成任務,將很大程度上取決于AGV車自身的導航與環(huán)境識別能力,而這樣一個自主式程度高的AGV系統(tǒng)一直都為很多AGV研究者重視,而這樣的一種AGV也具有更廣闊的應用前景。

?

?

第二章 ?AGV總體結(jié)構(gòu)設計

2.1 ?AGVS(Automatic Guided Vehicle System)配送系統(tǒng)組成

AGV自動導引小車配送系統(tǒng)由帶輔助裝卸裝置的AGV車、在線自動充電系統(tǒng)、地面導航系統(tǒng)、周邊工位及倉庫輸送系統(tǒng)、AGV控制臺(調(diào)度計算機)和網(wǎng)絡通訊系統(tǒng)等構(gòu)成,部分系統(tǒng)工作任務如下:

1)AGV(Automatic Guided Vehicle)

帶輔助裝卸裝置的AGV小車,完成系統(tǒng)指定從各個工位的之間輸送任務。

2)在線自動充電系統(tǒng)

為了保證AGV小車全天候運行任務的可靠性,系統(tǒng)會采用大電流快速充電的方式為AGV蓄電池充電。AGV小車的充電過程是由電量不足情況下向控制臺發(fā)送電量不足信息,并由控制臺下達允許指令后方可執(zhí)行充電程序。

3)地面導航系統(tǒng)

地面導航系統(tǒng)主要由磁導航帶或激光反光板等地面路徑指示標志構(gòu)成,使得AGV在規(guī)定的路徑下運行運輸任務。

4)周邊輸送系統(tǒng)

周邊輸送系統(tǒng)主要是AGV的自動上下貨工位所處的位置,這些設備在與AGV進行裝卸貨物的過程,會在對應系統(tǒng)監(jiān)控下實現(xiàn)動作的互鎖和協(xié)調(diào)配合,保證物料運輸?shù)纳a(chǎn)安全性。

5)AGV控制臺(調(diào)度計算機)

控制臺是AGV小車的上位機管理系統(tǒng),是所有處在本系統(tǒng)內(nèi)的AGV小車的調(diào)度管理中心。此系統(tǒng)負責與監(jiān)控計算機交換物料及AGV運行數(shù)據(jù)信息,分配系統(tǒng)下各個AGV的運行任務,解決多臺AGV之間的協(xié)調(diào)問題。同時將AGV系統(tǒng)的物料搬運完成度等狀態(tài)反饋給中心控制管理系統(tǒng)。

6)通訊系統(tǒng)

通訊系統(tǒng)由AGV控制臺和各AGV之間組成無線局域網(wǎng)(此通訊系統(tǒng)頻率采用開放的2.4GHz頻道,覆蓋范圍500米內(nèi))并進行信息交換??刂婆_通過多個無線接入點組合通信,從而覆蓋整個AGV工作區(qū)域,使得AGV在遠距離跨越區(qū)域時實現(xiàn)信息連接。

各系統(tǒng)之間的具體關(guān)系如圖2-1所示。

2.2 AGV車身結(jié)構(gòu)及運動學分析

2.2.1 AGV車身硬件結(jié)構(gòu)性能指標

1、車身額定載重量:即自動導引搬運車所能承載貨物的最大重量。通常AGV的載重量范圍在50kg到20000kg,多以中小型噸位。本設計的AGV車的載重量在60KG左右,最大載重量70KG,并可以調(diào)整車身部件增加載重量。

2、車體尺寸 :車體尺寸是指車體的長、寬、高外形尺寸。本設計作品車體數(shù)據(jù)為650mm*330mm*250mm。

3、導航精度 :指AGV行走時的精度,本設計作品精度±10 mm。

4、停位精度 :指AGV到達目的工位處并準備自動移載物料時時所處的實際位置與程序設定的位置之間的偏差值(mm)。停位精度確定移載方式的主要依據(jù),不同的裝卸方式要求不同的停位精度。本設計作品停位精度為。

5、最小轉(zhuǎn)彎半徑:是指AGV在空載低速行駛、偏轉(zhuǎn)程度最大時,瞬時轉(zhuǎn)向中心到AGV縱向中心線的距離。它是確定車輛彎道路徑運行所需空間的重要參數(shù)。本項目作品最小轉(zhuǎn)彎半徑。

6、運行速度:指自動導引搬運車在額定載重量下行駛時所能達到的最大速度。它是確定車輛作業(yè)周期和搬運效率的重要參數(shù)。本設計作品運行速度0-200m/min。

7、導引方式:采用磁導航方式。

8、控制方式:按鈕開關(guān)、計算機遙控、工位調(diào)度控制器。

9、電源:36V15AH鋰電池組。

10、安全裝置:故障報警、急停按鈕、遠程非接觸防碰防碰裝置。

11、驅(qū)動方式:直流伺服驅(qū)動。

12、驅(qū)動形式:后置雙輪驅(qū)動
13、通訊方式:AGV控制臺與AGV間采用無線局域網(wǎng)通訊交換信息。

14、信息顯示終端:AGV上帶有顯示信息液晶觸摸屏幕

2.2.2 AGV車身設計

本項目采用四輪布置結(jié)構(gòu),前輪由數(shù)字舵機控制的一組差數(shù)轉(zhuǎn)向組件來實現(xiàn)AGV小車轉(zhuǎn)向,后輪由兩組無刷直流電機獨立驅(qū)動。傳動系統(tǒng)如圖2-2所示。

 

 

 

 

 

 

 

AGV的車架結(jié)構(gòu)采用2525鋁合金材料制作而成,既符合了AGV小車的載重設計要求同時也在外觀上符合了審美。車架三視圖設計如圖2-3所示,圖2-4為小車車架實物。

 

 

本項目設計的AGV小車轉(zhuǎn)向結(jié)構(gòu)采用數(shù)字舵機控制轉(zhuǎn)向組件,達到AGV小車的轉(zhuǎn)向功能,具體轉(zhuǎn)向部件設計細節(jié)如下圖所示。

 

項目設計的AGV小車機身結(jié)構(gòu)考慮了作為AGV開發(fā)平臺的拓展性,因而在外形以及結(jié)構(gòu)形狀設計上充分考慮了后期的改造方便性,并且始終兼顧了它的實用性能,最終小車的機身設計實物圖如圖2-8所示。

 

2.2.3 AGV驅(qū)動電機選型

AGV小車的主要功能是作為物料運輸用途,因此要特別考慮小車的負載驅(qū)動能力(電機功率參數(shù)),同時要需要考慮在小車運行過程中的停車精度問題,因此選擇一款既具備高低速運行情況下力矩良好同時精度有高的驅(qū)動電機極為重要。因此項目將通過以下參數(shù)計算選擇電機型號。

1、計算小車最大負載時拉力(F)值,圖2-9為小車受力分析。

 

 

 

 

小車自身重量

最大負載重量

滾動摩擦力f值得大小在零與靜摩擦力之間,即

則小車牽引力為 :

2、本項目中小車驅(qū)動輪尺寸為6寸,半徑約為9.9cm,換算得出負荷力矩為:

為了使得AGV具備適當?shù)呐榔履芰Γ剐≤囋谂榔逻^程中仍具備較大力矩,經(jīng)過爬過過程的小車受力計算(如圖2-10所示),本設計中提高了電機輸出扭距參數(shù)要求使之達到5.9的力矩。

 

 

 

 

 

????3、小車設計最大速度為200m/min,驅(qū)動輪半徑為9.9cm

則,輪子周長 :

得出電機輸出軸轉(zhuǎn)速為 :

4、根據(jù)電機功率計算公式,得出 :

經(jīng)過上面的詳細參數(shù)計算,選擇的是一款型號為Z5BLD250-24A-30S的無刷直流電機,通過1:7.5減速箱減速,可以達到空載轉(zhuǎn)速400r/min,力矩達到5.97N·m,滿足了AGV設計的要求。表2-1為電機性能參數(shù)。

型號 Z5BLD250-24A-30S
額定電壓 24V
額定功率 250W
額定電流 13.0A±10%
額定轉(zhuǎn)速 3000RPN±10%
額定力矩 0.796
空載電流  
空載轉(zhuǎn)速 3600RPN±10%
電機壽命 5000h
電氣強度 660V/S
絕緣等級 B
防護等級 IP20
使用環(huán)境溫度  

 

 

 

 

?

第三章 ?AGV硬件設計

本項目設計的AGV是采用次導航技術(shù),其系統(tǒng)技術(shù)構(gòu)成如圖3-1所示。其中主要包括:供電單元、主控單元、驅(qū)動單元、安全感應系統(tǒng)、導向系統(tǒng)、站點識別單元、通訊單元、車體。其中供電單元、主控單元、驅(qū)動單元、導向系統(tǒng)是本章節(jié)敘述核心。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.1 AGV小車供電系統(tǒng)

AGV的供電系統(tǒng)用以給主控單元、導向系統(tǒng)、驅(qū)動單元等設備提供電能,是AGV小車的連續(xù)工作、穩(wěn)定工作、安全工作的重要保證。AGV小車的電壓采集模塊通過 A/D 轉(zhuǎn)換,實時采集當前AGV電池的電量,將電壓數(shù)據(jù)反饋給AGV主控制器??刂破魍ㄟ^監(jiān)控當前電壓及時調(diào)整AGV的工作任務。當控制器監(jiān)測到當前電池電壓值即將低于正常工作電壓時,則將需要充電的信息反饋調(diào)度計算機,同時AGV小車顯示屏報警顯示電量不足,并在完成當前任務后自行回到充電站充電,充電完成后,解除報警信號,發(fā)送上位機當前充電完成信號,并接受上位機調(diào)度任務。

3.1.1 AGV電池選配

AGV電池一般采用鎳鎘蓄電池、鎳氫蓄電池、鋰電池、鉛酸蓄電池。

本項目選擇的是一款36V15AH的高能鋰電池,體積小,能量大,非常適合作為本文設計AGV小車的動力電源。如圖3-2是本車電池實物圖。電池采用DC充電接口,T型供電插口。鋰電池擁有高能量密度,與高容量鎳鎘電池相比,體積能量是其1.5倍,能量密度是其2倍,高電壓,平均使用電壓為3.7V,是鎳鎘電池和鎳氫電池的3倍,使用是電壓穩(wěn)定而且高容量,在溫度-20度-60度使用時,充放電壽命長,經(jīng)過500次放電后其電源容量至少還有70%以上。由于鋰電池具備了能量密度高電壓高,工作穩(wěn)定的特點,通常使用在航模等大電流放電設備上。

 

 

 

3.1.2 供電電路設計

為了增加AGV供電可靠性,保證電路設計的安全性,本項目中的電路采用電源一鍵啟動,增設急停按鈕,電壓顯示器,電源指示燈。以下是電路設計圖。

1)電源充電及電源部分電氣圖,圖3-3

 

2)電機驅(qū)動器供電接線圖,圖3-4

3.2 控制器選型與設計

3.2.1 STM32F4簡介

STM32F4是由意法半導體(ST)推出的以基于ARM Cortex-M4為內(nèi)核的高性能微控制器,其采用了90nm的NVM工藝和ART技術(shù)(自適應實時存儲器加速器,Adaptive Real-Time Memory Accelerator)。ART技術(shù)可實現(xiàn)程序零等待執(zhí)行,提升程序執(zhí)行效率,將M4架構(gòu)的性能發(fā)揮到了極致,使得CPU最大可以運行于168MHZ。STM32F4系列的微控制集成了單周器DSP指令和FPU(浮點單元),提升計算能力,實現(xiàn)了一些復雜的計算和控制。

作為Cortex M3市場的最大占有者,STM32F4主要優(yōu)勢如下:

1、內(nèi)核更加先進。STM32F1采用的是Cortex M3內(nèi)核,不帶FPU和DSP指令集,然而STM32F4采用CortexM4內(nèi)核,帶FPU和DSP指令集,優(yōu)勢明顯。

2、STM32F4有更多的資源,高達1M字節(jié)的片上閃存,擁有多達192KB的片內(nèi)SRAM,增設了攝像頭接口(DCMI)、加密處理器(CRYP)、USB高(480Mbit/s)速OTG功能、32位真隨機數(shù)發(fā)生器(RNG)、OTP 存儲器等。

3、增強了外設功能。對于相同的外設部分,STM32F4 具有更快的ADC模數(shù)轉(zhuǎn)換速度、具備更低的ADC/DAC工作電壓、32 位定時器、帶日歷功能的實時時鐘(RTC)、 IO復用功能大大增強、4K字節(jié)的電池備份SRAM以及更快的USART 和SPI通信速度。

4、更高的性能。STM32F4 最高運行頻率可達168Mhz,可運行達到210DMIPS的處理能力,而STM32F1只能達到 72Mhz;STM32F4 擁有ART自適應實時加速器,可以達到相當于FLASH零等待周期的性能,可實現(xiàn)單周期內(nèi)相乘和相加指令,采用單周期的SIMD指令,可實現(xiàn)同時多個數(shù)據(jù)參與運算,STM32F1則需要等待周期; STM32F4的FSMC采用32位多重AHB總線矩陣,相比STM32F1的總線訪問速度明顯提高。

5、更低的功耗。 STM32F40x 的功耗為: 238uA/MHZ,其中低功耗版本的 STM32F401 更是低到: 140uA/ MHZ, 而 STM32F1 則高達 421uA/ MHZ。

3.2.2 STM32F407ZGT6硬件資源介紹

STM32F407ZGT6芯片集成FPU和DSP指令,并具有192KB的SRAM、1024KB FLASH、12個16 位定時器、2個32位定時器、 2個DMA控制器(共16個通道)、2個全雙工I2S、2個12位DAC、6個串口、2個USB(支持 HOST /SLAVE)、2個CAN、3個IIC、3個SPI、3個12位ADC、1個RTC(帶日歷功能)、1個SDIO 接口、1個FSMC 接口、1個 10/100M 以太網(wǎng) MAC 控制器、1個攝像頭接口、1個硬件隨機數(shù)生成器、以及112個通用IO口等。

3.3.開發(fā)板最小系統(tǒng)

STM32最小系統(tǒng)主要包括:電源電路、外部晶振電路、外部時鐘電路、復位電路、下載電路,如圖3-5為開發(fā)板最小系統(tǒng)部分電路原理圖。

 

 

 

 

 

 

 

 

3.4磁導引傳感器控制與設計

3.4.1 傳感器控制原理

導向單元的作用是讓AGV小車根據(jù)規(guī)定路徑行駛,本項目采用的是磁導航傳感器,安裝在AGV 車體前方的底部,磁導航傳感器利用其內(nèi)置的8個采樣點,能夠檢測出磁條上方一定程度的微弱磁場,每一個采樣點都有一路信號對應輸出,當采樣點采集到磁場信號時,該路信號就會輸出低電平,而沒有采集到磁場信號的信號輸出則為高電平。AGV運行時,磁導航傳感器內(nèi)部垂直于磁條上方的連續(xù) 1-3 個采樣點會輸出信號,依靠輸出的這幾路信號,可以判斷磁條相對于磁導航傳感器的偏離位置,當AGV的行駛與導引軌跡一致時,由于此時磁導航傳感器正好處于磁條軌跡的上方,傳感器正中間的檢測元件測得的磁感應強度最大,因而中間的霍爾開關(guān)傳感器輸出低電平信號,控制器 I/O口采集到這幾路信號,比較發(fā)現(xiàn)當前AGV 處于路徑中間,控制器將不對該輸出信號進行處理,AGV保持原行駛軌跡;當AGV偏離磁條軌跡時,由于檢測到最大磁感應強度的霍爾開關(guān)傳感器不再處于磁導航傳感器的中間,傳感器將該低電平信號輸出至控制器,控制器 I/O 口采集到這幾路低電平信號,比較發(fā)現(xiàn)當前AGV位置與路徑位置有所偏差,據(jù)此AGV控制系統(tǒng)自動做出調(diào)整,控制電機驅(qū)動器,使電機差速糾偏,確保AGV 沿磁條前進。磁導航原理圖如下圖3-6所示。

 

 

3.4.2 導航工作控制

AGV的地面磁導航系統(tǒng)是AGV在運行過程中所能達到的路徑,主要由以下幾部分構(gòu)成:運行路徑導航線、地標導航線和彎道導航線。采用磁導航的方法,運行路徑導航線由寬30mm、厚度為1mm的磁性橡膠磁帶鋪設而成,根據(jù)路徑的具體要求可以進行適當?shù)牟眉簟5貥藢Ш骄€由長150mm、寬50mm、厚度為1mm的磁性橡膠鋪設而成,在地圖上地標是各個站點的標志。彎道導航線由路徑導航線和地標導航線構(gòu)成,如下圖3-7所示:

AGV在彎道的運行分成下述幾個步驟:

1)找到地標。

2)按一定的轉(zhuǎn)彎半徑,AGV靠碼盤的位置編程來完成圓弧的軌跡。

3)以此,AGV尋找導航線,按導航線的路徑行走。

磁導航傳感器是AGV的眼睛,決定了AGV的運行穩(wěn)定性。本項目選擇的是LS-06型AGV磁導航傳感器,該傳感器主要應用于磁條導航方式的自動導引車AGV,自動手推車AGC,無軌移動貨架,物流揀選等行業(yè)。該磁導航傳感器采用6路采樣點輸出,該系列磁導航傳感器采用8路采樣點輸出,與日本名電舍的ME-9006AM-1性能相同,溫漂,磁飽和等性能指標均優(yōu)于進口產(chǎn)品

磁條導航方式的自動導引車AGV,沿著地面鋪設的磁條行駛。LS-06型AGV磁導航傳感器,安裝在AGV車體前方的底部,距離磁條表面20-40mm,磁條寬度為30-50mm,厚度1mm.LS-06型AGV磁導航傳感器利用其內(nèi)部間隔10mm平均排布的8個采樣點,能夠檢測出磁條上方100gauss以下的微弱磁場,每一個采樣點都有一路信號對應輸出。AGV運行時,磁導航傳感器內(nèi)部垂直于磁條上方的連續(xù)2-3個采樣點會輸出信號。依靠6路通道中輸出的2-3路信號,可以判斷磁條相對于LS-06型AGV磁導航傳感器的偏離位置, AGV會自動作出調(diào)整( PID),確保沿磁條前行。

下表為本作品中磁導航傳感器的技術(shù)參數(shù)。

名稱 內(nèi)容
檢測距離 30±20mm
檢測極性 N極和S極
紅燈N極
綠燈S極
檢測點數(shù)量 6(20mm等距)
輸出極限 耐壓:DC60V
單路輸出電流:50mA
總輸出電流:300mA
相應時間 10mS
保存溫度范圍 -40—+80

 

 

3.4.3 傳感器接線

下圖為傳感器輸出端口定義(圖3-8和圖3-9),表3-2為傳感器接線表)。

 

 

 

 

 

管教名稱 內(nèi)容
1 SW1 第1位輸出
2 SW2 第2位輸出
3 NC
4 SW4 第4位輸出
5 SW5 第5位輸出
6 NC
7 SW6 第6位輸出
8 SW7 第7位輸出
9 OV
10 10-30VDC

 

 

3.5超聲波避障傳感器

3.5.1 AGV小車接近裝置及報警、停車工作方式

AGV小車的接近檢測裝置一般有紅外區(qū)域掃描、激光測距掃描和超聲探測三種方式,用來檢測AGV運行方向是否存在障礙物。采用光電傳感器安裝在磁導航 AGV 車體正前方中部距離地面150mm 處,該傳感器擁有兩級 I/O 輸出,二級檢測區(qū)域分為左中右三個區(qū)域,分別能在 0-3m 內(nèi)調(diào)節(jié),當該級監(jiān)測區(qū)域內(nèi)檢測出障礙物時,該檢測單元對應的輸出電路輸出低電平信號,AGV 控制器接收到該低電平信號后立即控制驅(qū)動電機減速,同時發(fā)出警告信號并反饋給地面控制中心,通知前方障礙物離開,直到障礙解除才恢復正常速度行駛;一級臨近檢測區(qū)域較二級監(jiān)測區(qū)域短,但兩側(cè)檢測范圍較二級檢測區(qū)域大,同樣具有左中右三個監(jiān)測區(qū)域,分別能夠在 0~1m 內(nèi)調(diào)節(jié),當該級監(jiān)測區(qū)域內(nèi)檢測出障礙物時,該路對應的輸出電路輸出低電平信號,AGV 控制器接收到該低電平信號后立即發(fā)出急停指令同時報警并通知地面控制中心,直至障礙物解除。

警示裝置包括警示燈和警示蜂鳴器,用以提醒應用現(xiàn)場的人們及時發(fā)現(xiàn)正在靠近的AGV 并采取相應的措施。

停車按鈕用于 AGV 的受控停車,該按鈕按下之后 AGV 應當安全可靠地停止運行,并且該方式停車能夠通過人工操作簡單快速地使 AGV 恢復運行,該按鈕用以保證 AGV 周圍的臨時工作人員的安全,采用停車按鈕停車方式可以不切斷 AGV 的驅(qū)動電源。磁導航 AGV 在地面控制中心、AGV 車用遙控器和 AGV 車身側(cè)面等三處均設置停車按鈕,方便操作人員采取停車措施。

緊急停車按鈕用以在緊急情況下中斷 AGV 的運行,為便于緊急情況下操作,磁導航 AGV 在地面控制中心、AGV 車用遙控器和 AGV 車身兩側(cè)設置紅色的急停按鈕。當緊急停車按鈕按下后,AGV 切斷一切設備的動力供給,啟動制動器并報警,在排除緊急停車原因之前 AGV 維持停止狀態(tài)。

3.5.2 超聲波傳感器原理

超聲波傳感器主要包括發(fā)射器和接收器兩大部分,由于超聲波在空氣中傳播的速度為已知(340m/s),我們只需要計算出從發(fā)射到接收之間的時間差就可以算出距離。具體的作法是超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。(超聲波在空氣中的傳播速度為340m/s,根據(jù)計時器記錄的時間t,就可以計算出發(fā)射點距障礙物的距離(s),即:s=340t/2)。

本項目選用的是HC-SR04型傳感器(圖3-10實物圖),左邊為接收頭,右邊為發(fā)射頭,共引出分個引腳,一個電源正極(5V),一個電源地,Trig為觸發(fā)信號觸發(fā)控制端,Echo為回響信號端。下面介紹一個超聲波傳感器的時序圖。

 

 

 

通過時序圖可知,在使用時,觸發(fā)控制端Trig,首先必須給一個10us以上的高電平,然后等待發(fā)射頭聲波信號輸出,一旦有信號輸出,回響信號端會產(chǎn)生高電平,此時開始計時。隨后聲波信號一直在空氣中傳播,遇到障礙物會反射回來,當反射回來的信號到達接收頭時,此時回想信號端會由高電平變?yōu)榈碗娖?,停止計時。此時我們就可以算出檢測的距離S=340*(t1-t2)/2 ( t1為開始計時時間,t2為停止計時時間,注意距離為一邊的距離,所以時間應該除以2)。

3.6 電機驅(qū)動器控制和接線

本項目選用的是一款BLCD型號的高性能,多功能,低成本的帶霍爾傳感器的直流無刷電機驅(qū)動器。驅(qū)動器選用全數(shù)字式設計可實現(xiàn)多種輸入控制方式,擁有極高的調(diào)速比,噪聲低,軟硬件保護功能完善,可以通過串口通信實現(xiàn)與上位機連接并進行電機的PID參數(shù)調(diào)整,保護參數(shù)調(diào)整,電機參數(shù)調(diào)整,加減速時間等參數(shù)設置,同時可以進行IO輸入狀態(tài),模擬量輸入,告警狀態(tài)及母線電壓監(jiān)視。

下圖是電機驅(qū)動器參數(shù)列表

 

 

3.6.1 無刷直流電機驅(qū)動器控制方案

無刷直流電機(brushless direct current?motor ,BLDCM)轉(zhuǎn)子采用永磁鐵激磁,電機功率密度高控制簡單,調(diào)速性能良好,因此在無刷直流電機在交流傳動中受到了廣泛應用。對于本項目AGV對電機的控制要求,采用了閉環(huán)控制,與開環(huán)控制相比,采用閉環(huán)速度控制系統(tǒng)的機械特性有很大優(yōu)越性。閉環(huán)控制系統(tǒng)的機械特性與開環(huán)相比,其整體性能大大提高;理想空載轉(zhuǎn)速相同時,閉環(huán)系統(tǒng)的靜差率S(額定負載時電機轉(zhuǎn)速降落與理想空載轉(zhuǎn)速之比)要小很多;當要求的靜差率S相同時,那么對比開環(huán)系統(tǒng),則閉環(huán)調(diào)速系統(tǒng)的調(diào)速范圍可以大大提高。無刷直流電機的閉環(huán)速度控制方案如下圖所示。

項目驅(qū)動器閉環(huán)調(diào)節(jié)方案采用比例積分微分控制(簡稱PID控制),其輸出結(jié)果為輸入結(jié)果的比例、積分和微分的函數(shù)。PID調(diào)節(jié)器的控制結(jié)構(gòu)比較簡單,參數(shù)容易調(diào)整,可以不必求出被控對象的數(shù)學模型,因此PID調(diào)節(jié)器受到了廣泛的應用。

3.6.2 無刷直流電機轉(zhuǎn)速檢測

本項目使用的無刷電機采用了霍爾傳感器,使得電機的實際轉(zhuǎn)速可通過測量轉(zhuǎn)子位置信號得到,在電機轉(zhuǎn)動過程中,通過霍爾傳感器發(fā)出的信號可以得到如圖3-6所示的周期信號。

 

 

 

 

由圖3-6可知,電機旋轉(zhuǎn)一周便可得到兩個周期方波,每一相霍爾傳感器產(chǎn)生2個周期的方波,則周期與電機轉(zhuǎn)速成正比,如此便可利用霍爾傳感器發(fā)出的信號得到電機的實際轉(zhuǎn)速。為盡可能縮短每次速度的采樣時間,同時為了測得每項霍爾傳感器的正脈沖的寬度,則可計算電機的實際轉(zhuǎn)速。

3.6.3 驅(qū)動器接線

3.6.3.1接口定義與連接圖,圖3-15

 

 

 

 

1)引腳列表及相關(guān)名稱,表3-3。

端子引腳號 引腳名 定義說明
1 GND 信號地
2 ALM 報警輸出(開漏)電流應限制在20mA內(nèi)
3 X1 多段速輸入1
4 PG 霍爾信號異或輸出(開漏)電流應限制在20mA內(nèi)
5 X2 多段速輸入2
6 5V 5V電源輸出,輸出電流應小于20Ma(內(nèi)部為線性電源,過大電流會導致過熱)
7 X3 多段速輸入3
8 SV 模擬信號輸入
9 FR 方向控制信號
10 GND 信號地
11 EN 使能信號,低電平有效
12 BK 剎車信號,高電平剎車,正常應接GND

 

2)通訊接口

本項目驅(qū)動器采用串行通信方式與計算機連接。接口為RS232電平。物理接口采用RJ12-6PIN的電話插座,引腳排列如圖3-17所示,引腳對于說明見表3-4。

 

 

 

端子引腳號 引腳名 定義說明
1 NC 常開/空
2 TXD MCU數(shù)據(jù)發(fā)送端
3 VCC 5V電源
4 RXD MCU數(shù)據(jù)接收端
5 GND 接地
6 NC 常開/空

 

 

3)驅(qū)動器典型接線連接圖,圖3-18所示。圖3-19、連接時驅(qū)動器U、V、W端口分別對應電機黃綠藍相線,HA、HB、HC霍爾信號端口分別對應電機黃綠藍霍爾信號線。

 

 

 

?

第四章 ?AGV控制軟件設計

4.1 ?AGV系統(tǒng)程序流程圖設計

STM32微控制器采用中斷方式接受外部傳感器數(shù)據(jù),然而,在串行偶爾會出現(xiàn)幀數(shù)據(jù)丟失的現(xiàn)象,為了防止產(chǎn)生一直等待,項目使用了看門狗定時器進行監(jiān)視。在串口初始化時放在了系統(tǒng)初始化中,這里給出了串行接受通信程序流程圖(圖4-1),微控制器的串口發(fā)送程序比較容易,通常采用查詢方式進行發(fā)送,此處就不載列出。

本項目要用到定時器/計數(shù)器 0 間隔時間讀取霍爾傳感器轉(zhuǎn)速脈沖數(shù)中斷,串行接受、發(fā)送中斷。未使用的中斷,在相應的程序中的中斷地址寫入復位指令。

本項目作品的開機初始化過程進行IO口舒適化、定時器/計數(shù)器初始化、各類模塊數(shù)據(jù)參數(shù)的初始化以及電機轉(zhuǎn)速初始化、PID參數(shù)初始化等。給出了程序初始化流程圖圖4-2和系統(tǒng)軟件主要流程圖4-3。

圖4-2 主控程序初始化流程圖

 

4.2??驅(qū)動器控制程序設計

根據(jù)3.5.3節(jié)的電機控制算法,根據(jù)本文AGV小車的部分程序設計,這里給出了PID整定輸出產(chǎn)生PWM波main程序。

/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************

* File Name ?????????: main.c

* Author ????????????: MCD Application Team

* Version ???????????: V2.0.1

* Date ??????????????: 06/13/2008

* Description ???????: Main program body

********************************************************************************

* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS

* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.

* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,

* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE

* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING

* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.

*******************************************************************************/

 

/* Includes ——————————————————————*/

#include “System_init.h”

#include “Adjust.h”

/* Private typedef ———————————————————–*/

/* Private define ————————————————————*/

/* Private macro ————————————————————-*/

/* Private variables ———————————————————*/

extern vu16 ADCConvertedValue;

extern unsigned char Flag_1mS;

extern unsigned char Flag_100mS;

extern unsigned char Flag_1S;

extern int U_Set;

extern u16 CCR1_Val;

/* Private function prototypes ———————————————–*/

/*******************************************************************************

* Function Name ?: main

* Description ???: Main program

* Input ?????????: None

* Output ????????: None

* Return ????????: None

*******************************************************************************/

int main(void)

{

unsigned char N=0;

float Pv;

#ifdef DEBUG

debug();

#endif

System_Configuration();

printf(“This is an example of PID!\n\r”);

while (1)

{

switch (N){

case 0:

if(Flag_1mS==1){

if(U_Set-ADCConvertedValue>=10||U_Set-ADCConvertedValue<=-10){

Pv=Vol(U_Set,ADCConvertedValue);

CCR1_Val=CCR1_Val+Pv/2.04;

if(CCR1_Val>=999)

CCR1_Val=999;

else if(CCR1_Val<=1)

CCR1_Val=1;

 

TIM3->CCR1=CCR1_Val;

}

Flag_1mS=0;

}

break;

case 1:

if(Flag_100mS==1){

printf(“%d,”,ADCConvertedValue);printf(“%d ??“,CCR1_Val);

Flag_100mS=0;

}

break;

case 2:

if(Flag_1S==1){

//printf(“The feedback is %d\n\r”,ADCConvertedValue);

Flag_1S=0;

}

break;

default : break;

}

N++;

if(N==3){

N=0;

}

}

}

4.3 數(shù)字舵機控制程序設計

根據(jù)3.5.3節(jié)的超聲波傳感器原理及相關(guān)數(shù)據(jù)資料,根據(jù)本文AGV小車的部分程序設計,這里給出了超聲波傳感器測距程序。

//晶振=8M

//MCU=STC10F04XE

//Trig ?= P1^0

//Echo ?= P3^2

#include <reg52.h> ????//包括一個52標準內(nèi)核的頭文件

#define uchar unsigned char //定義一下方便使用

#define uint ?unsigned int

#define ulong unsigned long

//***********************************************

sfr ?CLK_DIV = 0x97; //為STC單片機定義,系統(tǒng)時鐘分頻

//為STC單片機的IO口設置地址定義

sfr ??P0M1 ??= 0X93;

sfr ??P0M0 ??= 0X94;

sfr ??P1M1 ??= 0X91;

sfr ??P1M0 ??= 0X92;

sfr P2M1 ??= 0X95;

sfr P2M0 ??= 0X96;

//***********************************************

sbit Trig ?= P1^0; //產(chǎn)生脈沖引腳

sbit Echo ?= P3^2; //回波引腳

sbit test ?= P1^1; //測試用引腳

 

uchar code SEG7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//數(shù)碼管0-9

uint distance[4]; ?//測距接收緩沖區(qū)

uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; ?//自定義寄存器

bit succeed_flag; ?//測量成功標志

//********函數(shù)聲明

void conversion(uint temp_data);

void delay_20us();

//void pai_xu();

 

void main(void) ??// 主程序

{ ?uint distance_data,a,b;

uchar CONT_1;

CLK_DIV=0X03; //系統(tǒng)時鐘為1/8晶振(pdf-45頁)

P0M1 = 0; ??//將io口設置為推挽輸出

P1M1 = 0;

P2M1 = 0;

P0M0 = 0XFF;

P1M0 = 0XFF;

P2M0 = 0XFF;

i=0;

flag=0;

test =0;

Trig=0; ??????//首先拉低脈沖輸入引腳

TMOD=0x11; ???//定時器0,定時器1,16位工作方式

TR0=1; ?????//啟動定時器0

IT0=0; ???????//由高電平變低電平,觸發(fā)外部中斷

ET0=1; ???????//打開定時器0中斷

//ET1=1; ???????//打開定時器1中斷

EX0=0; ???????//關(guān)閉外部中斷

EA=1; ????????//打開總中斷0

 

while(1) ????????//程序循環(huán)

{

EA=0;

Trig=1;

delay_20us();

Trig=0; ????????//產(chǎn)生一個20us的脈沖,在Trig引腳

while(Echo==0); //等待Echo回波引腳變高電平

succeed_flag=0; //清測量成功標志

EX0=1; ?????????//打開外部中斷

TH1=0; ?????????//定時器1清零

TL1=0; ?????????//定時器1清零

TF1=0; ?????????//

TR1=1; ?????????//啟動定時器1

EA=1;

 

while(TH1 < 30);//等待測量的結(jié)果,周期65.535毫秒(可用中斷實現(xiàn))

TR1=0; ?????????//關(guān)閉定時器1

EX0=0; ?????????//關(guān)閉外部中斷

 

if(succeed_flag==1)

{

distance_data=outcomeH; ???????????????//測量結(jié)果的高8位

distance_data<<=8; ??????????????????//放入16位的高8位

distance_data=distance_data|outcomeL;//與低8位合并成為16位結(jié)果數(shù)據(jù)

distance_data*=12; ?????????????????//因為定時器默認為12分頻

distance_data/=58; ??????????????????//微秒的單位除以58等于厘米

} ?????????????????????????????????????//為什么除以58等于厘米, ?Y米=(X秒*344)/2

// X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58

if(succeed_flag==0)

{

distance_data=0; ???????????????????//沒有回波則清零

test = !test; ??????????????????????//測試燈變化

}

 

/// ??????distance[i]=distance_data; //將測量結(jié)果的數(shù)據(jù)放入緩沖區(qū)

/// ???????i++;

/// ?if(i==3)

/// ?????{

/// ???????distance_data=(distance[0]+distance[1]+distance[2]+distance[3])/4;

/// ???????pai_xu();

/// ???????distance_data=distance[1];

 

 

a=distance_data;

if(b==a) CONT_1=0;

if(b!=a) CONT_1++;

if(CONT_1>=3)

{ CONT_1=0;

b=a;

conversion(b);

}

/// ?i=0;

/// }

}

}

//***************************************************************

//外部中斷0,用做判斷回波電平

INTO_() ?interrupt 0 ??// 外部中斷是0號

{

outcomeH =TH1; ???//取出定時器的值

outcomeL =TL1; ???//取出定時器的值

succeed_flag=1; ??//至成功測量的標志

EX0=0; ???????????//關(guān)閉外部中斷

}

//****************************************************************

//定時器0中斷,用做顯示

timer0() interrupt 1 ?// 定時器0中斷是1號

{

TH0=0xfd; //寫入定時器0初始值

TL0=0x77;

switch(flag)

{case 0x00:P0=ge; P2=0xfd;flag++;break;

case 0x01:P0=shi;P2=0xfe;flag++;break;

case 0x02:P0=bai;P2=0xfb;flag=0;break;

}

}

//*****************************************************************

/*

//定時器1中斷,用做超聲波測距計時

timer1() interrupt 3 ?// 定時器0中斷是1號

{

TH1=0;

TL1=0;

}

*/

//******************************************************************

//顯示數(shù)據(jù)轉(zhuǎn)換程序

void conversion(uint temp_data)

{

uchar ge_data,shi_data,bai_data ;

bai_data=temp_data/100 ;

temp_data=temp_data%100; ??//取余運算

shi_data=temp_data/10 ;

temp_data=temp_data%10; ??//取余運算

ge_data=temp_data;

 

bai_data=SEG7[bai_data];

shi_data=SEG7[shi_data];

ge_data =SEG7[ge_data];

 

EA=0;

bai = bai_data;

shi = shi_data;

ge ?= ge_data ;

EA=1;

}

//******************************************************************

void delay_20us()

{ ?uchar bt ;

for(bt=0;bt<100;bt++);

}

?

第五章 總結(jié)與展望

5.1 總結(jié)

自動導引小車(Automated?Guided?Vehicle,簡稱AGV)是一種以電池為動力,裝有非接觸式導向裝置的無人駕駛自動運輸車。其主要功能是:在計算機控制下,通過復雜的路徑將物料按一定的停位精度輸送到指定的位置上。

本作品設計的為一款既具有實用價值同時利于后期拓展開發(fā)的AGV小車平臺,選定以STM32單片機作為CPU進行控制系統(tǒng)設計,可以在功能可靠性保證的前提下,既降低成本,又增加本設計作品的拓展性。本項目采用磁導航方式,磁導航方式被認為是一項非常有應用前景的技術(shù),具有很高的測量精度及良好的重復性,磁導航不受光線變化及路面污損破壞等影響,在應用運行過程中,磁傳感系統(tǒng)具有很高的可靠性和魯棒性。

5.2 展望

????本項目采用的自主導航方式為磁導航方式,技術(shù)成熟,設計較為簡單,成本也較低,但是作為AGV設計人員,我們希望AGV的導航方式更加先進,自主導航能力更加強,為此,在后期的開發(fā)中,會采取視覺導航方式,利用視覺攝像頭實現(xiàn)圖像數(shù)據(jù)采集并進行圖像中各類物體物理數(shù)據(jù)分析,這一方式會提高軟件開發(fā)的成本,但是同時會大大減少硬件傳感器的成本,視覺導航技術(shù)發(fā)展的越來越快(例如OPENCV),相信日后裝載到AGV的視覺導航技術(shù)也會逐步實現(xiàn)。

本項目設計的AGV小車在機械結(jié)構(gòu)上,相對較重,專向組件的轉(zhuǎn)向半徑較大,需要在車身機械結(jié)構(gòu)上減輕重量,減小轉(zhuǎn)彎半徑。