程欣宇
江漢大學(xué)
?
基于STM32單片機(jī)皮影戲機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)
程欣宇
江漢大學(xué)
摘要:本次設(shè)計(jì)通過STM32單片機(jī)輸出五路PWM波分別控制五個(gè)舵機(jī)形成的三組舵機(jī)組。通過每個(gè)舵機(jī)的不同轉(zhuǎn)速與轉(zhuǎn)角可以完成皮影的動(dòng)作。同時(shí)采用AD采樣監(jiān)控電壓,然后換算成所需的坐標(biāo)點(diǎn),顯示在彩屏上方便記錄。皮影的左右移動(dòng)通過步進(jìn)電機(jī)所控制的導(dǎo)軌實(shí)現(xiàn),構(gòu)成“豬八戒打妖怪”的皮影戲。
隨著科學(xué)的發(fā)展,機(jī)械化的作業(yè)執(zhí)行逐漸成為了社會(huì)的主流發(fā)展趨勢(shì)。在本次設(shè)計(jì)中以使用單片機(jī)控制機(jī)械復(fù)原皮影戲?yàn)槔宫F(xiàn)單片機(jī)在傳播傳統(tǒng)文化中的作用。
機(jī)器人皮影使用32位單片機(jī)STM32進(jìn)行其余電機(jī)的控制以及采樣;采用一共三組的五個(gè)舵機(jī)進(jìn)行操控皮影的三只長(zhǎng)桿的操作;使用遙控分別控制,且通過彩屏顯示長(zhǎng)桿轉(zhuǎn)動(dòng)的角度方便記錄;同時(shí)皮影放置在橫向的步進(jìn)電機(jī)控制軌道,軌道長(zhǎng)約50cm。
通過舵機(jī)以及步進(jìn)電機(jī)控制,數(shù)組設(shè)定輸入舵機(jī)的PWM波占空比,分別控制每個(gè)長(zhǎng)桿的平面內(nèi)移動(dòng),又通過輸入給步進(jìn)電機(jī)的高低電平控制步進(jìn)電機(jī)的正反轉(zhuǎn)以此達(dá)到控制皮影左右移動(dòng)。這個(gè)系統(tǒng)可分為中心控制模塊,舵機(jī)模塊,步進(jìn)電機(jī)模塊等部分。
3.1舵機(jī)控制電路
系統(tǒng)中,舵機(jī)通過控制長(zhǎng)桿帶動(dòng)皮影戲運(yùn)動(dòng),要使舵機(jī)能夠帶動(dòng)長(zhǎng)桿,經(jīng)過詳細(xì)的對(duì)比之后,選擇使用DS3115數(shù)碼舵機(jī):15KG 0.15sec/60度 4.8-7.2V。如圖。
圖1 仿真各舵機(jī)波形
3.2步進(jìn)電機(jī)模塊
步進(jìn)電機(jī)采用三廂混合式步進(jìn)電機(jī),步進(jìn)電機(jī)驅(qū)動(dòng)使用24V開關(guān)電源供電。通過單片機(jī)的B6引腳給步進(jìn)電機(jī)驅(qū)動(dòng)PUL口時(shí)刻輸入高頻率脈沖。同時(shí)單片機(jī)的C14引腳控制輸入給步進(jìn)電機(jī)驅(qū)動(dòng)的高低電平,輸高電平是步進(jìn)電機(jī)正轉(zhuǎn)帶動(dòng)皮影往左移動(dòng);反之往右移動(dòng)。
3.3采樣模塊
首先設(shè)定一個(gè)初始坐標(biāo),然后通過遙控修正初始坐標(biāo)值。遙控分別接入單片機(jī)的C1與C2引腳。由單片機(jī)進(jìn)行處理。彩屏上顯示當(dāng)前長(zhǎng)桿頂端位置的橫縱坐標(biāo)值,方便記錄事后輸入程序進(jìn)行動(dòng)作編輯。
3.4舞臺(tái)搭載難點(diǎn)
將所有硬件模塊固定在幕后。要考慮電機(jī)所控制長(zhǎng)桿可能交錯(cuò)的情況。控制右手的長(zhǎng)桿需要適當(dāng)縮短。同時(shí)控制左手的長(zhǎng)桿放置在略微靠前的位置??刂祁^部的長(zhǎng)桿和控制右手的長(zhǎng)桿幾乎處于有相同長(zhǎng)度。
軟件采用C語(yǔ)言編寫。程序采用模塊化設(shè)計(jì),包括一個(gè)主程序,幾個(gè)子程序。整體流程示意圖如圖所示:
4.1AD采樣調(diào)試程序
AD采樣時(shí)每次只對(duì)一組兩個(gè)舵機(jī)進(jìn)行控制,橫向移動(dòng)控制桿控制水平放置舵機(jī)的轉(zhuǎn)動(dòng),縱向移動(dòng)控制桿控制豎直放置舵機(jī)的轉(zhuǎn)動(dòng)。
4.2皮影控制程序
4.2.1通過坐標(biāo)對(duì)占空比的計(jì)算 皮影控制程序中,先定義全局?jǐn)?shù)組,方便在主函數(shù)模塊和舵機(jī)模塊直接調(diào)用其數(shù)據(jù)。共定義了6組數(shù)組,分別表示三組舵機(jī)所控制的三只長(zhǎng)桿的坐標(biāo)值,然后再用坐標(biāo)值換算成角度計(jì)算控制所需要的占空比。
4.2.2通過坐標(biāo)數(shù)組的循環(huán)輸出 步進(jìn)電機(jī)只需要執(zhí)行持續(xù)正轉(zhuǎn),持續(xù)反轉(zhuǎn),停止這三個(gè)基本動(dòng)作,于是在系統(tǒng)中把這三個(gè)動(dòng)作模塊化成了函數(shù),在主程序中判斷到達(dá)其執(zhí)行動(dòng)作的計(jì)次后直接調(diào)用模塊中預(yù)定好的函數(shù)進(jìn)行控制,簡(jiǎn)單方便。
圖2 軟件設(shè)計(jì)方案
4.3軟件設(shè)計(jì)過程中的難點(diǎn)
考慮到一共要控制五個(gè)舵機(jī),STM32 位單片機(jī)才可滿足設(shè)計(jì)的需求。在軟件設(shè)計(jì)時(shí)想到可以將AD值轉(zhuǎn)換為坐標(biāo)值,然后通過坐標(biāo)值計(jì)算轉(zhuǎn)角來調(diào)控占空比。在局部變量和全局變量的定義和使用方面需要反復(fù)考慮。
本次設(shè)計(jì)舞臺(tái)長(zhǎng)67.4cm,寬47.8cm,高58.7cm。使用豬八戒這一西游記形象作為皮影戲機(jī)器人。本次設(shè)計(jì)表明,基于STM32所設(shè)計(jì)的皮影戲機(jī)器人可以完成預(yù)想中的簡(jiǎn)單皮影動(dòng)作。
參考文獻(xiàn)
[1]羅杰,謝自美.電子線路設(shè)計(jì)?實(shí)驗(yàn)?測(cè)試.第4版:電子工業(yè)出版社,2006
[2]張凡.華縣皮影戲的民俗文化研究.北京:高等教育出版社.2010(05)
[3]謝宋和.單片機(jī)模糊控制系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,1999.
程欣宇,男,1984.02.26,安徽,碩士研究所,計(jì)算機(jī),實(shí)驗(yàn)員,江漢大學(xué)。
作者簡(jiǎn)介
關(guān)鍵字:?jiǎn)纹瑱C(jī) 皮影戲 步進(jìn)電機(jī)