(一)作品介紹
該參賽作品為針對(duì)液體搬運(yùn)環(huán)境優(yōu)化的機(jī)械臂下位機(jī)運(yùn)動(dòng)控制卡。針對(duì)日常生活中一個(gè)常見(jiàn)的場(chǎng)景——搬運(yùn)液體(俗稱“端水”),設(shè)計(jì)一項(xiàng)高效平穩(wěn)的控制算法,配合自主開(kāi)發(fā)的控制器驅(qū)動(dòng)板卡,驅(qū)動(dòng)自制的機(jī)械臂到達(dá)目標(biāo)位置,使該算法達(dá)到高效平穩(wěn)搬運(yùn)液體的目的。
機(jī)械臂外觀:
控制卡驅(qū)動(dòng)板:
由于年前突然被領(lǐng)導(dǎo)要求連上半個(gè)多月的班,導(dǎo)致開(kāi)發(fā)計(jì)劃被打亂,無(wú)法在家里進(jìn)行實(shí)物調(diào)試,因此先基于板卡debug信息和引腳脈沖信息展示該控制卡功能。
(二)電氣介紹
1、電機(jī)驅(qū)動(dòng)模塊選型。電機(jī)驅(qū)動(dòng)模塊采用DRV8825、A4988混合驅(qū)動(dòng)。A4988是一款常見(jiàn)的步進(jìn)電機(jī)驅(qū)動(dòng)芯片,其模塊廣泛用于3D打印機(jī)的步進(jìn)電機(jī)驅(qū)動(dòng),適合42步步進(jìn)電機(jī)在負(fù)載不大的情況下驅(qū)動(dòng)運(yùn)行,因此可用于回轉(zhuǎn)軸驅(qū)動(dòng),最重要的是,在兩塊DRV8825模塊同時(shí)驅(qū)動(dòng)的情況下,剩余功率不足以提供第三塊DRV8825動(dòng)作,經(jīng)實(shí)測(cè)兩塊DRV8825與一塊A4988能夠正常運(yùn)行。DRV8825是德州儀器的集成電機(jī)芯片,其模塊設(shè)計(jì)兼容A4988,但穩(wěn)定性更好,能夠提供高達(dá)1.5A的電流,適合驅(qū)動(dòng)負(fù)載稍大的步進(jìn)電機(jī),因此可用于驅(qū)動(dòng)主軸和副軸。
2、位姿反饋方案設(shè)計(jì)。采用MPU6050六軸運(yùn)動(dòng)傳感器,包含陀螺儀和傾角傳感器,能夠通過(guò)I2C與上位機(jī)通訊。在每次運(yùn)動(dòng)起始和完成階段進(jìn)行一次位姿矯正,防止運(yùn)動(dòng)誤差累積。
3、旋轉(zhuǎn)舵機(jī)選型及驅(qū)動(dòng)方案設(shè)計(jì)。舵機(jī)采用MG996R型號(hào)的180°舵機(jī),該舵機(jī)工作在4.8-7.2V之間,能夠提供9.4kg/cm以上的拉力。為了滿足驅(qū)動(dòng)舵機(jī)的功率以及防止舵機(jī)運(yùn)行時(shí)的電流涌浪,舵機(jī)采用額外的5V供電,驅(qū)動(dòng)端口采用光耦IC隔離。光耦I(lǐng)C型號(hào)選擇為PC817
夾持舵機(jī)選型。夾持舵機(jī)采用mg90,以減少機(jī)械臂末端承重。
4、供電體系設(shè)計(jì)。系統(tǒng)由12V直流電源供電,經(jīng)過(guò)一塊MP1584模塊降壓為5V直流電源,供給傳感器與主控板卡。另外12V直流電源還通過(guò)另一塊MP1584模塊降壓為5V向舵機(jī)供電。
5、上下位機(jī)通訊方案設(shè)計(jì)。由于受各種較大功率的設(shè)備影響,系統(tǒng)存在一定的電源涌浪,CH340G芯片以及主控板卡板載的DAP仿真器無(wú)法正常工作在這個(gè)電源體系下,因此需要采用更穩(wěn)定的工業(yè)串口通訊方案——232通訊或者不受涌浪影響的透?jìng)?a class="article-link" target="_blank" href="/baike/493684.html">藍(lán)牙模塊HC-06。
(三)程序組件介紹
- tarm_communication組件
負(fù)責(zé)對(duì)上下位機(jī)通訊。
外設(shè)啟動(dòng)了兩個(gè)串口:FL0控制臺(tái)串口、FL2設(shè)備串口??刂婆_(tái)串口位于板卡上;設(shè)備串口通過(guò)arduino型接口與驅(qū)動(dòng)板連接,驅(qū)動(dòng)板上可以通過(guò)跳帽選擇使用RS232或者無(wú)線藍(lán)牙模塊作為傳輸介質(zhì)。支持打斷控制。
指令為自定義命令集,格式如下:
_&<命令><參數(shù)>;<命令><參數(shù)>;<命令><參數(shù)>
參數(shù)支持包括:
- tarm_time組件
負(fù)責(zé)對(duì)上下位機(jī)通訊。
定時(shí)器定時(shí)實(shí)現(xiàn)。timebase為第一套算法提供時(shí)基,該算法僅支持一般恒速運(yùn)動(dòng),可以調(diào)節(jié)一次運(yùn)動(dòng)的速度;可以實(shí)現(xiàn)三軸聯(lián)動(dòng);使用的時(shí)鐘是CTIMER0。timepv使用時(shí)鐘CTIMER1為第二套算法提供時(shí)基,該算法僅支持主軸、副軸聯(lián)動(dòng);對(duì)運(yùn)動(dòng)過(guò)程有變速控制,為針對(duì)液體平穩(wěn)搬運(yùn)環(huán)境的優(yōu)化算法。
SYSTICK時(shí)鐘提供延時(shí)
CTIMER2提供速度仿真計(jì)時(shí)器時(shí)基,功能用于開(kāi)發(fā)工程中評(píng)估算法消耗時(shí)間。
- tarm_limit組件
限位器組件
協(xié)助機(jī)械臂進(jìn)行初始化定位。
限制機(jī)械臂運(yùn)動(dòng)行程。通過(guò)外部中斷實(shí)現(xiàn)。觸碰到限位器時(shí),返回設(shè)定的零點(diǎn)。
- tarm_io組件
對(duì)脈沖輸出端口、方向控制端口配置、初始化??刂浦鬏S、副軸、繞Z旋轉(zhuǎn)軸的三個(gè)步進(jìn)電機(jī)。。
- Closeloop組件
反饋控制。通過(guò)硬件IIC總線訪問(wèn)MPU6050,校準(zhǔn)運(yùn)動(dòng)誤差,使運(yùn)動(dòng)誤差不積累。在外部因素影響導(dǎo)致IIC硬接線斷開(kāi)時(shí),能自動(dòng)轉(zhuǎn)化為開(kāi)環(huán)模式。
- tarm_pwm組件
通過(guò)輸出PWM控制夾持末端回轉(zhuǎn)軸、夾持軸的舵機(jī)。
(詳見(jiàn)原文:https://www.nxpic.org.cn/module/forum/thread-619023-1-1.html)