99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32F103芯片為控制核心的磁導(dǎo)航AGV驅(qū)動器

電子設(shè)計 ? 來源:eefocus ? 作者:eefocus ? 2021-04-06 14:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

AGV系統(tǒng)在當(dāng)前柔性制造系統(tǒng)(FMS)和自動化倉儲系統(tǒng)中扮演著重要的角色。AGV具有適應(yīng)性好、柔性程度高、可靠性好、可實現(xiàn)生產(chǎn)和搬運功能的集成化和自動化等優(yōu)點[1]。

AGV的導(dǎo)航方式主要有激光導(dǎo)航、電磁導(dǎo)航、視覺導(dǎo)航、GPS(全球定位系統(tǒng))導(dǎo)航、磁導(dǎo)航等,本文主要針對磁導(dǎo)航方式的AGV進行深入探討,磁導(dǎo)航AGV主要是基于磁導(dǎo)航傳感器感應(yīng)貼在路面上的磁條進行路徑跟蹤并完成其自主行駛的功能。

磁導(dǎo)航傳感器通過檢測鋪設(shè)在地面上的磁條來判斷AGV與目標路徑的偏差,然后輸出電壓模擬量[2]。對于磁導(dǎo)航AGV驅(qū)動器的設(shè)計,為更好地滿足通用性需求,需要對現(xiàn)有驅(qū)動器的組成單元進行總結(jié)和歸納,并且結(jié)合實際需求,找出共同點和不同點,為磁導(dǎo)航AGV通用驅(qū)動器的設(shè)計找到突破口。

通過查閱相關(guān)文獻,對磁導(dǎo)航AGV驅(qū)動器的組成有了一個總體認識,主要包括單片機單元、供電單元、手動控制單元、聲光報警單元、站點識別單元、工位檢測單元、電機驅(qū)動單元、CAN總線單元、避障單元、磁導(dǎo)航單元、姿態(tài)反饋單元、通信單元、安全輔助單元等 [35]。

1 驅(qū)動器硬件電路設(shè)計

在對磁導(dǎo)航AGV驅(qū)動器的組成單元進行分析之后,本文提出了一種基于STM32F103芯片為控制核心的通用驅(qū)動器,它包含以下模塊:單片機模塊、電源模塊、DI/DO模塊、RFID讀寫模塊、DAC輸出模塊、ADC采集模塊、CAN總線通信模塊、高速編碼器,安全模塊以及串口通信模塊,這些模塊與磁導(dǎo)航AGV驅(qū)動器的組成單元之間的對應(yīng)關(guān)系如表1所列。

由表1可以看出,提出的通用驅(qū)動器設(shè)計方案可以滿足磁導(dǎo)航AGV對主要組成單元的需求。該驅(qū)動器可同時控制兩個電機以及采集相應(yīng)的速度,還可同時采集兩路磁條傳感器輸出的模擬電壓,對于執(zhí)行復(fù)雜功能的AGV而言,可以增加驅(qū)動器的數(shù)量以滿足要求,各驅(qū)動器之間可以通過CAN總線保持動作協(xié)調(diào)一致,共同完成指定的動作。

各個模塊對應(yīng)不同的功能和作用,各司其職,互相配合,完成指定的功能。各模塊的主要作用如表2所列。

1.1 單片機模塊

本設(shè)計采用STM32作為控制芯片,此芯片基于ARM CortexM3內(nèi)核,具有高性能、低成本、低功耗的特點。另外,此芯片的可移植性很好,并有許多官方函數(shù)庫可以直接調(diào)用,大大縮短了開發(fā)周期。STM32F103系列有80個可以自由操控的芯片引腳,為通用驅(qū)動器的設(shè)計提供了良好的條件。此驅(qū)動器采用模塊化設(shè)計,有利于驅(qū)動器功能擴展和升級。本驅(qū)動器控制板是由STM32F103的最小系統(tǒng)、電源電路實時時鐘系統(tǒng)、時鐘電路、JTAG接口電路、復(fù)位電路、用戶LED和按鍵電路、串口電路等組成。

1.2 電源模塊

AGV大多數(shù)通過鉛酸蓄電池供電,通過將小電壓大容量的鉛蓄電池串聯(lián)起來就可以構(gòu)成高電壓大容量的電池組,通常所用電池組為24 V,因此通過電壓轉(zhuǎn)換芯片將24 V轉(zhuǎn)換為5 V電壓,再將5 V轉(zhuǎn)換為3.3 V,為STM32芯片、MAX3232等供電。電路中需要加入多組電容,用于消除低頻和高頻的電源波動。

1.3 DI/DO模塊

手動操作器和必要的輸入/輸出信號需要多路DI/DO,因此本驅(qū)動器引出了多達16路的數(shù)字量輸入和16路的數(shù)字量輸出,輸入和輸出電壓為24 V。為了消除外界對驅(qū)動板的影響,在信號輸入部分采用光電耦合器進行隔離,由于電信號傳輸具有單向性等特點,可以達到良好的電絕緣能力和抗干擾能力;在信號輸出部分采用繼電器控制輸出24 V,并達到物理隔離的效果。根據(jù)光電耦合器二極管允許壓降1.15 V和允許電流10 mA,可以計算出輸入端接入的電阻阻值,公式為:

依據(jù)標稱電阻表選擇電阻的阻值為2.2 kΩ。

1.4 CAN總線模塊

由于高性能、高可靠性、及獨特的設(shè)計,CAN總線(控制器局域網(wǎng)絡(luò))越來越受到人們的重視。它可以多主站方式工作,網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻主動地向網(wǎng)絡(luò)上的其他節(jié)點發(fā)送信息,而不分主從;通信方式靈活,可以添加多達255個節(jié)點。本驅(qū)動器中STM32自帶有CAN控制器,只需要接入一個CAN收發(fā)器即可完成CAN模塊的設(shè)計。

1.5 DAC模塊

DAC模塊主要用于控制電機的轉(zhuǎn)速,這與電機驅(qū)動器的選型有關(guān),電機的控制需要輸入0~10 V的模擬量來控制電機的速度,電機速度的可調(diào)節(jié)范圍是70~4 096 rpm,因此DAC輸出的電壓和電機速度存在一定的對應(yīng)關(guān)系,其對應(yīng)關(guān)系如下所示:

其中,n為電機的轉(zhuǎn)速大?。▎挝粸閞/min),U為DAC輸出的電壓大?。▎挝粸?V)。

為了能夠更好地控制電機,需要輸出的電壓穩(wěn)定且有一定的驅(qū)動能力,由此在原理圖設(shè)計時,首先通過電壓轉(zhuǎn)換芯片把24 V轉(zhuǎn)換為±12 V,再將產(chǎn)生的+12 V的電壓轉(zhuǎn)換為5 V模擬量,最后將5 V轉(zhuǎn)換為+1.25 V和+2.5 V的標準參考電壓,其中+2.5 V的參考電壓接入STM32的 VREF+引腳,作為DAC和ADC的參考電壓。

由于芯片輸出的DAC模擬量的帶負載能力較弱且電壓輸出范圍只有0~2.5 V,因此,加入運算放大器以提高帶負載能力,在參考電壓+1.25 V的參考下,將0~2.5 V的輸出范圍變?yōu)?1.25~+1.25 V的輸出范圍,再放大8倍即可達到設(shè)計要求的0~+10 V的輸出范圍。

放大倍數(shù)可以通過調(diào)節(jié)運算放大器外圍電路中的4個電阻的阻值來改變,另外在設(shè)計時,考慮到電阻阻值的不精確,用可調(diào)電阻替換其中一個電阻,最后調(diào)試PCB板時,通過調(diào)節(jié)這個可調(diào)電阻,使輸出電壓可以達到10 V。

1.6 ADC模塊

磁導(dǎo)航AG V中的磁條傳感器輸出來的偏差信號是通過電壓反映出來的,具體的比例關(guān)系如圖1所示。由圖1可以看出偏差與傳感器輸出的電壓在一定范圍內(nèi)成正比,GATE用于指示傳感器是否在磁條上。ADC的參考電壓為+2.5 V,傳感器輸出電壓范圍是0~+10 V,采用電阻分壓的方法將0~10 V變?yōu)?~2.5 V,將測量范圍擴大4倍,如果想改變測量范圍,可以改變分壓電阻的阻值。

1.7 高速編碼器模塊

高速編碼器主要依靠STM32上的高速計時器來完成,采集電機輸出來的脈沖信號,將脈沖信號轉(zhuǎn)換為速度值,可以和DAC形成一個速度閉環(huán)控制。另外,對實時速度在時間上積分就可以得到行走的距離,對AGV的實時控制和顯示有用。脈沖信號和速度的具體對應(yīng)關(guān)系如下:

n為電機的轉(zhuǎn)速大?。▎挝粸閞/min),tp為高速編碼器采集到的信號高電平的時間(單位為μs)。

2 系統(tǒng)軟件設(shè)計

系統(tǒng)軟件設(shè)計采用C語言進行編寫,編譯器采用IAR 5.3,底層驅(qū)動器軟件控制流程如圖2所示,中斷流程如圖3所示。

程序采用模塊化編程,將各個模塊分別寫到不同的子函數(shù)中,這樣便于調(diào)試、移植和修改。本文采用中斷模式來協(xié)調(diào)實現(xiàn)AGV各項功能,中斷模式中的中斷優(yōu)先級根據(jù)任務(wù)的重要程度來確定,緊急信號中斷的優(yōu)先級最高,CAN總線和串口中斷次之,定時器4的中斷優(yōu)先級最低。定時器4每隔50 ms溢出一次,整個程序執(zhí)行一次,執(zhí)行的過程中讀取磁條傳感器狀態(tài)值,確定當(dāng)前的偏差,根據(jù)糾偏算法控制AGV車的運行狀態(tài)。在糾偏算法中,根據(jù)不同的車型、不同的傳感器位置,建立不同的控制模型,進而更好地控制AGV按照設(shè)定好的路線行進。

對于不同功能的AGV,軟件控制也不相同,上文中的控制流程圖只針對一種車型,對其他車型,控制方式只需加入相應(yīng)功能的程序模塊即可。

3 試驗測試

該通用驅(qū)動器目前已在3種車型上進行過試驗,這3種車型分別是:差速AGV、單舵輪AGV叉車和雙轉(zhuǎn)向架全向AGV,實物圖如圖4所示。前兩種AGV車只需一個驅(qū)動器,雙轉(zhuǎn)向架全向AGV車則需要兩個驅(qū)動器來控制,根據(jù)不同AVG建立不同的數(shù)學(xué)模型[6],完成試驗。

為了測試硬件設(shè)計和軟件設(shè)計是否合理,鋪設(shè)了一段環(huán)形磁條測試三種AGV,測試的路徑示意圖如圖5所示。圖5中1、2、3、4處分別放置編號為1、2、3、4的RFID標簽。

測試過程如下:

① 將AGV置為手動模式,通過手操器控制AGV運動,能夠快速地完成指定的動作。

② 將AGV置為自動模式,AGV沿著鋪設(shè)的軌跡行走,完成在指定點處執(zhí)行相應(yīng)的動作。

③ 在自動模式下,按下急停按鈕,保證車在緊急狀態(tài)下停止運行。

④ 在自動模式下,在軌跡上放上雜物,AGV在接觸到物品時會自動停止運行。

經(jīng)過測試,3種AGV車都可以沿著鋪設(shè)的磁條穩(wěn)定行進,并在指定的工位執(zhí)行相應(yīng)的動作,實現(xiàn)基本功能。

結(jié)語

本文設(shè)計的磁導(dǎo)航AGV通用驅(qū)動器采用STM32F103作為主控芯片實現(xiàn)AGV基本功能,在3種車型上能夠穩(wěn)定地工作,實現(xiàn)基本功能,并且模塊化設(shè)計給硬件調(diào)試和檢測提供了很大的方便,可擴展性很高。后期可以根據(jù)功能的需求增加或刪減相應(yīng)的模塊,從而降低成本,增強產(chǎn)品的競爭力。

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11031

    瀏覽量

    364616
  • STM32F103
    +關(guān)注

    關(guān)注

    33

    文章

    483

    瀏覽量

    65499
  • AGV
    AGV
    +關(guān)注

    關(guān)注

    27

    文章

    1438

    瀏覽量

    42315
  • 磁導(dǎo)航
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    7762
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    STM32F103驅(qū)動LD3320語音識別模塊

    本文介紹了如何使用STM32F103控制器驅(qū)動LD3320語音識別模塊,該模塊具備非特定人語音識別功能,支持動態(tài)編輯關(guān)鍵詞,且無需額外Flash和RAM。通過SPI接口連接并配置代碼,實現(xiàn)在不同指令下執(zhí)行相應(yīng)操作,如流水燈、閃
    的頭像 發(fā)表于 06-28 14:16 ?516次閱讀
    <b class='flag-5'>STM32F103</b><b class='flag-5'>驅(qū)動</b>LD3320語音識別模塊

    【硬核項目】STM32F103 智能小車全棧開發(fā):紅外循跡 / 避障算法 + WiFi 遠程控制,附原理圖與代碼

    今天大家推薦一款功能強大的STM32多功能智能小車——華清遠見STM32F103智能云控小車。這款小車集紅外遙控、遠程物聯(lián)控制、智能循跡、超聲波避障和交互式顯示屏五大
    的頭像 發(fā)表于 05-16 17:11 ?878次閱讀
    【硬核項目】<b class='flag-5'>STM32F103</b> 智能小車全棧開發(fā):紅外循跡 / 避障算法 + WiFi 遠程<b class='flag-5'>控制</b>,附原理圖與代碼

    CS32F103RB有無驅(qū)動例程,是否可用stm32F103驅(qū)動代碼?

    如果不能使用stm32F103驅(qū)動的話,請把驅(qū)動例程發(fā)送1830665518@qqcom
    發(fā)表于 05-15 10:54

    stm32f103c8t6主控芯片無人機原理圖

    stm32f103c8t6主控芯片無人機原理圖
    發(fā)表于 04-29 17:02 ?1次下載

    STM32F103x8 STM32F103xB單片機數(shù)據(jù)手冊

    STM32F103x8STM32F103xB單片機數(shù)據(jù)手冊
    發(fā)表于 04-14 14:55 ?2次下載

    一種基于分數(shù)階 PID 直流電機調(diào)速的 AGV 控制系統(tǒng)

    設(shè)計一種低成本、抗干擾、穩(wěn)定可靠的 AGV,提出一種基于磁帶導(dǎo)航AGV 系統(tǒng)。采用 Megawin 公司的80C51單片機
    發(fā)表于 03-25 15:10

    STM32F103×8/STM32F103×B MCU手冊

    本文提供了STM32F103x8和STM32F103xB中密度高性能系列微控制器的訂購信息和機械器件特性。有關(guān)整個STMicroelectronics STM32F103xx系列的更
    發(fā)表于 03-18 16:37 ?0次下載

    使用STM32F103控制兩步進電機同時進行不同的運動(軟件指令驅(qū)動),與控制一個電機的不同之處在哪里?

    使用STM32F103控制兩步進電機同時進行不同的運動(軟件指令驅(qū)動),與控制一個電機的不同之處在于哪里?
    發(fā)表于 03-10 08:22

    零死角玩轉(zhuǎn)STM32F103—指南者

    電子發(fā)燒友網(wǎng)站提供《零死角玩轉(zhuǎn)STM32F103—指南者.pdf》資料免費下載
    發(fā)表于 01-20 14:18 ?49次下載

    stm32F103驅(qū)動LDC1000,返回的proximtyDataMIN frequencyDataMIN proximtyDataMAX frequencyDataMAX均為0怎么解決?

    最近在做關(guān)于stm32F103驅(qū)動LDC1000的實驗,發(fā)現(xiàn)返回的 proximtyDataMINfrequencyDataMINproximtyDataMAX frequencyDataMAX均為0,讀取STATUS寄存
    發(fā)表于 01-02 08:28

    ADS8320如何與STM32f103的SPI連接?

    如題,請教一下ADS8320如何與STM32f103的SPI連接,因為STM32的SPI只支持8位和16的傳輸格式。如果您有驅(qū)動,那定是極好的!
    發(fā)表于 12-24 08:23

    STM32F103x8/STM32F103xB規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《STM32F103x8/STM32F103xB規(guī)格書.pdf》資料免費下載
    發(fā)表于 12-06 15:43 ?1次下載

    stm32f103用SPI驅(qū)動ADS8341數(shù)據(jù)不正確,忽大忽小的原因?

    stm32f103用SPI驅(qū)動ADS8341數(shù)據(jù)不正確。忽大忽小。
    發(fā)表于 12-04 06:14

    STM32F103模擬SPI驅(qū)動ADS1256,沒有成功的原因?

    STM32F103模擬SPI驅(qū)動ADS1256,沒有成功
    發(fā)表于 11-22 07:11

    課程上線 | STM32單片機入門教程(1)基于HAL庫的多核心開發(fā)(F1/F4/G0/U5)

    STM32F103STM32F405、STM32G070、STM32U575全系列課程體系①STM32裸機開發(fā)(多
    的頭像 發(fā)表于 08-08 16:42 ?755次閱讀
    課程上線 | <b class='flag-5'>STM32</b>單片機入門教程(1)基于HAL庫的多<b class='flag-5'>核心</b>開發(fā)(<b class='flag-5'>F</b>1/<b class='flag-5'>F</b>4/G0/U5)