基于雙處理器的投影機(jī)升降控制設(shè)計(jì)方案
摘 要: 提出了一種基于Atmega8 和Stm32F101 雙處理器的投影機(jī)升降控制設(shè)計(jì)方案,介紹了其電路組成、功能以及軟件流程。其中Atmega8 負(fù)責(zé)數(shù)據(jù)采集,Stm32F101 實(shí)現(xiàn)對(duì)電機(jī)的控制,處理器間通過I2C 總線進(jìn)行通訊。系統(tǒng)采用了紅外遙控或外部按鍵輸入裝置控制,也可以用PC 機(jī)聯(lián)機(jī)控制。試驗(yàn)驗(yàn)證設(shè)計(jì)方案正確、有效,定點(diǎn)精度符合實(shí)用要求。
本文引用地址:http://www.ex-cimer.com/article/164884.htm1 引言
投影機(jī)升降控制系統(tǒng)由Atmega8 數(shù)據(jù)采集電路、Stm32F101 控制電路、電動(dòng)機(jī)旋轉(zhuǎn)圈數(shù)檢測(cè)模塊、紅外遙控接收發(fā)模塊、外部按鍵模塊以及外接抗干擾等電路構(gòu)成。目標(biāo)是對(duì)投影機(jī)等多媒體設(shè)備的升降控制。方案中能隨時(shí)設(shè)置投影機(jī)到達(dá)的最高點(diǎn)和最低點(diǎn)的上限值,設(shè)置完畢后無論投影機(jī)在哪個(gè)位置,當(dāng)按上升鍵時(shí)能到達(dá)設(shè)置的最高點(diǎn),按下降鍵時(shí)能到達(dá)設(shè)置的最低點(diǎn),按停止鍵時(shí)停止運(yùn)動(dòng)。采用粗調(diào)與微調(diào)相結(jié)合的操作方式,長(zhǎng)按操作鍵3 秒時(shí)投影機(jī)連續(xù)升或降,松手時(shí)停止,主要用于粗調(diào);短按操作鍵時(shí)投影機(jī)升或降一定距離后自動(dòng)停止,用于微調(diào)。當(dāng)設(shè)置完后,用保存鍵保存設(shè)置,倘若沒有保存設(shè)置,則設(shè)置點(diǎn)無效。紅外遙控器既可設(shè)置運(yùn)行參數(shù),也可升降控制。
2 基本控制方法
控制系統(tǒng)的關(guān)鍵在于可以控制投影機(jī)升降到任意位置,升降過程是靠電動(dòng)機(jī)實(shí)現(xiàn)的,升降的直線距離與電動(dòng)機(jī)旋轉(zhuǎn)圈數(shù)相對(duì)應(yīng),實(shí)現(xiàn)了對(duì)電動(dòng)機(jī)旋轉(zhuǎn)圈數(shù)的控制也就實(shí)現(xiàn)了升降直線距離的控制。本方案的技術(shù)突破點(diǎn)在于將精確直線距離控制轉(zhuǎn)化為對(duì)電動(dòng)機(jī)旋轉(zhuǎn)圈數(shù)的控制,電動(dòng)機(jī)旋轉(zhuǎn)一圈對(duì)應(yīng)升降直線距離一毫米,本方案的直線距離控制準(zhǔn)確度為一毫米,即實(shí)現(xiàn)對(duì)電動(dòng)機(jī)旋轉(zhuǎn)一圈的數(shù)字控制。電動(dòng)機(jī)控制模塊中采用2 個(gè)紅外傳感器實(shí)現(xiàn)電動(dòng)機(jī)旋轉(zhuǎn)圈數(shù)與旋轉(zhuǎn)方向的采集,由Atmega8 兩根I/O 引腳采集傳感器輸出的信號(hào),引腳的電平組合信號(hào)變化狀態(tài)為00,10,11,01(順時(shí)針方向)或者00,01,11,10(逆時(shí)針方向)。本文利用motor _state 結(jié)構(gòu)體表示電機(jī)的狀態(tài),結(jié)構(gòu)體中每個(gè)元素的含義如下:
通過結(jié)構(gòu)體前兩個(gè)元素值比較可以知道電機(jī)是否轉(zhuǎn)動(dòng);通過3,4 元素比較可以精確定位投影位置,當(dāng)相等時(shí)產(chǎn)生中斷,命令電機(jī)停止轉(zhuǎn)動(dòng);在后2 個(gè)元素中,當(dāng)兩引腳由00 到10 時(shí),motor _ bit _ L 第0位置一,10 到11 時(shí),第1 位置一,11 到01 時(shí),第2 位置一,01 到00 時(shí),第3 位置一,所以當(dāng)?shù)?位全為1 時(shí)表示電機(jī)逆時(shí)針轉(zhuǎn)動(dòng)一圈,順時(shí)針轉(zhuǎn)動(dòng)一圈則由motor _ bit _ R 表示。
3 控制系統(tǒng)硬件設(shè)計(jì)
控制系統(tǒng)總體上分為信號(hào)采集與電動(dòng)機(jī)控制兩大部分。
如系統(tǒng)框圖右側(cè)Atmega8 主要用作紅外傳感器信號(hào)電平采集,當(dāng)Stm32F101 控制電機(jī)升降時(shí),電機(jī)圈數(shù)檢測(cè)電路會(huì)通過紅外傳感器向Atmega8 輸入信號(hào),從而判斷出電機(jī)的運(yùn)行情況。左側(cè)為Stm32F101 控制電機(jī)的升降部分。命令可以分別由紅外遙控或者與PC 機(jī)聯(lián)機(jī)后的按鍵方式輸入。當(dāng)Atmega8 采集紅外傳感器信號(hào)電平時(shí),可以通過I2C總線與Stm32F101 傳遞信息,在投影機(jī)到達(dá)目的點(diǎn)時(shí)發(fā)出中斷信號(hào)使Stm32F101 產(chǎn)生中斷,處理相關(guān)的操作。圖中所示,通過串口可以方便讀寫2 個(gè)E2PROM 的內(nèi)部數(shù)據(jù)。掉電保存模塊采用的是CAT24WC16,即使在運(yùn)行中突然停電,也能自動(dòng)保存電機(jī)停電時(shí)刻的狀態(tài)參數(shù),即保存motor _state結(jié)構(gòu)體變量。
圖1 控制器系統(tǒng)硬件結(jié)構(gòu)圖
3.1 電機(jī)圈數(shù)檢測(cè)單元
此單元在整個(gè)系統(tǒng)中處于重要地位,在電機(jī)轉(zhuǎn)軸一端套著半圓鐵片,置于紅外傳感器發(fā)射端和接收端之間,當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí)鐵片跟著旋轉(zhuǎn)。圈數(shù)檢測(cè)單元中有兩個(gè)紅外傳感器,其中每個(gè)紅外傳感器由發(fā)射端和接收端組成。發(fā)射端和接收端之間被半圓鐵片擋住時(shí)輸出信號(hào)為低電平0,沒有擋住時(shí)輸出信號(hào)為高電平1.由于是半圓鐵片,隨著電機(jī)的不斷旋轉(zhuǎn),Atmega8兩個(gè)引腳接收紅外傳感器信號(hào),不斷循環(huán)地檢測(cè)兩引腳的輸入電平。當(dāng)兩引腳的輸入電平?jīng)]有變化時(shí)代表電機(jī)沒有轉(zhuǎn)動(dòng),當(dāng)變化狀態(tài)為00,10,11,01 或者00,01,11,10 時(shí),表明電機(jī)轉(zhuǎn)動(dòng)。狀態(tài)順序反映出電機(jī)順時(shí)針或者逆時(shí)針方向旋轉(zhuǎn)。
3.2 電機(jī)控制模塊
圖2 是Stm32F101 對(duì)電機(jī)控制的硬件原理圖。
圖2 電機(jī)控制硬件結(jié)構(gòu)圖。
圖中ULN2803A 是達(dá)林頓驅(qū)動(dòng)器件, 受控于Stm32F101,MOTO_UD,MOTO_ON,SPK 直接與Stm32F101 連接,它們的作用分別是控制電機(jī)升降,控制電機(jī)工作還是停止,控制蜂鳴器響停。繼電器RL303 工作時(shí),電機(jī)工作在220V 交流下,反之則停止工作。而繼電器RL302 常開時(shí),從圖中知道是控制電機(jī)升操作,反之常閉是對(duì)電機(jī)降操作。為了提高電機(jī)的安全性,還采取了升降保護(hù),如圖中連接有兩個(gè)限位開關(guān),分別是升、降限位保護(hù),即當(dāng)?shù)竭_(dá)極限點(diǎn)時(shí)限位開關(guān)斷開,導(dǎo)致電機(jī)停止工作,起到保護(hù)電路的作用。
4.2 Stm32F101 軟件流程
上電復(fù)位后進(jìn)行系統(tǒng)初始化,主函數(shù)循環(huán)執(zhí)行3個(gè)子函數(shù),等待著外部控制命令輸入。當(dāng)接收到任意一種外部命令時(shí),Stm32F101 使Atmega8 產(chǎn)生I2C 中斷,傳遞相關(guān)數(shù)據(jù),Atmega8 響應(yīng)正常后Stm 32F101才執(zhí)行控制電機(jī)的操作,程序流程圖如圖6 所示。
圖6 Stm32F101 軟件流程圖。
5 實(shí)驗(yàn)結(jié)果分析
首先設(shè)置投影機(jī)的最低點(diǎn)和最高點(diǎn)分別為20.00cm、120.00cm,實(shí)驗(yàn)中總是在投影機(jī)下降過程中斷電片刻后上電,反復(fù)記錄投影機(jī)所到達(dá)的最低點(diǎn)和最高點(diǎn),實(shí)驗(yàn)數(shù)據(jù)見表1.由測(cè)試結(jié)果可知,測(cè)量誤差在1mm 以內(nèi),并且隨著實(shí)驗(yàn)次數(shù)的增加測(cè)試數(shù)據(jù)會(huì)向下偏移。同樣可以試驗(yàn),在投影機(jī)上升過程中斷電時(shí),隨著實(shí)驗(yàn)次數(shù)的增加測(cè)試數(shù)據(jù)會(huì)向上偏移,故而在實(shí)際應(yīng)用當(dāng)中,投影機(jī)所到達(dá)設(shè)置點(diǎn)的誤差能確保在1mm 以內(nèi)。
表1 實(shí)驗(yàn)測(cè)試數(shù)據(jù) cm
6 結(jié)論
本方案的技術(shù)突破點(diǎn)在于:
首先,Atmega8 采集紅外傳感器信號(hào)電平兩種變化狀態(tài)00,10,11,01 和00,01,11,10 及其相關(guān)算法處理,正確并且快速地獲取電機(jī)的轉(zhuǎn)動(dòng)狀態(tài)和轉(zhuǎn)動(dòng)圈數(shù),實(shí)現(xiàn)了精確直線距離控制轉(zhuǎn)化為對(duì)電動(dòng)機(jī)旋轉(zhuǎn)圈數(shù)的控制。
其次,采用雙處理器,Atmega8 負(fù)責(zé)信號(hào)采集分析,Stm32F101 負(fù)責(zé)電機(jī)控制,使得實(shí)時(shí)性更高,響應(yīng)速度更快,從而穩(wěn)定性和精度性都有了明顯的提高,完全滿足投影機(jī)等多媒體設(shè)備的定位需求。
3.3 外部輸入模塊
圖3 是外部按鍵輸入模塊,圖中key_1,key_2,key_3 與Stm32F101 引腳分別相連,鍵按下時(shí)該鍵輸入為0,當(dāng)多于一個(gè)鍵同時(shí)按下時(shí)視為無效。則有效模式分別對(duì)應(yīng)110,101,011 三種狀態(tài)。當(dāng)按下其中任意一鍵時(shí),發(fā)光二極管導(dǎo)通,發(fā)出光信號(hào)作為三極管的基極輸入,三極管導(dǎo)通,對(duì)應(yīng)Stm32F101引腳低電平,從而作出相應(yīng)處理。采用光電耦合,增強(qiáng)了抗干擾能力。
圖3 外部按鍵結(jié)構(gòu)圖。
圖4 為紅外遙控解碼模塊接口圖,D0,D1,D2,D3連到Stm32F101.紅外遙控模塊采用了解碼電路(BM2272)與編碼電路(BM2262)配合使用的一塊解碼專用集成電路。圖4 中BM2272 模塊接收BM2262紅外線傳輸方式發(fā)送來的一系列地址和數(shù)據(jù),通過地址位進(jìn)行2 次連續(xù)比較,如果發(fā)現(xiàn)沒有錯(cuò)誤的碼字和不匹配的字,輸入的數(shù)據(jù)被解碼并傳送給相應(yīng)的數(shù)據(jù)腳輸出,同時(shí)VT 腳輸出一個(gè)高低平的脈沖來表明一個(gè)有效地發(fā)射。
紅外遙控器相關(guān)文章:紅外遙控器原理 蜂鳴器相關(guān)文章:蜂鳴器原理
評(píng)論