磁阻傳感器在機(jī)器人玩具中的應(yīng)用
0 背景
機(jī)器人玩具控制系統(tǒng)的設(shè)計(jì)中對(duì)方向的控制尤其重要,直接體現(xiàn)了機(jī)器人玩具的控制精度和整體效果。在本文中要解決的問(wèn)題就是控制好機(jī)器人的運(yùn)動(dòng)方向和球門(mén)之間的夾角,讓其能夠在運(yùn)行中實(shí)時(shí)地自我調(diào)整,準(zhǔn)確地把球送入球門(mén)。
本文的課題背景是一個(gè)機(jī)器人玩具的控制系統(tǒng)設(shè)計(jì),主芯片采用的是以摩特羅拉公司的MC86EZ328芯片,只完成與通信、運(yùn)算等有關(guān)的主要操作,在沒(méi)有操作時(shí),由運(yùn)行于其上的操作系統(tǒng)uClinux來(lái)維護(hù)。對(duì)于所有與EZ328的核心運(yùn)算、控制、通信、操作無(wú)關(guān)的外圍設(shè)備的維護(hù)和控制都通過(guò)一塊AT89C52來(lái)完成,它與EZ328的底層通信協(xié)議為同步串口協(xié)議(SPI),在AT89C52中由軟件來(lái)實(shí)現(xiàn)。C52包含的部件主要是A/D轉(zhuǎn)換器,鍵盤(pán)接口,電機(jī)驅(qū)動(dòng)模塊。硬件結(jié)構(gòu)電路圖如下圖1:
圖1
1 磁阻傳感器及其詳細(xì)采集過(guò)程
1.1 磁阻傳感器HMC1022簡(jiǎn)介
機(jī)器人玩具的方向控制的核心部件就是HMC1022兩維磁阻微電路芯片,它的機(jī)構(gòu)是四臂的惠斯通電橋,將磁場(chǎng)轉(zhuǎn)化為差動(dòng)輸出的電壓,可以檢測(cè)低至85微高斯的磁場(chǎng)信號(hào),這種低成本的傳感器相比傳統(tǒng)型號(hào)的同類(lèi)產(chǎn)品具有更小的體積和更低的功耗。供電電源為3V-10V直流電壓。本設(shè)計(jì)中采用的HMC0122采用的是16腳SOIC封裝,集成了兩路的惠斯通電橋,測(cè)出平面的X軸和Y軸的磁場(chǎng)信號(hào),這樣就可以獲得水平面上方向的完整信號(hào)。
比較特殊的是Honeywell公司的這種磁阻傳感器帶有一個(gè)獲得專(zhuān)利的置位/復(fù)位電路。
圖2和圖3分別是HMC1022內(nèi)部電橋和置位/復(fù)位電路電路設(shè)計(jì)。
圖2
圖3
[!--empirenews.page--]
1.2 磁阻傳感器工作原理
HMC的輸出電壓為磁場(chǎng)強(qiáng)度為0時(shí)傳感器的輸出。所以當(dāng)U0為0時(shí), Uout正比于磁場(chǎng)強(qiáng)度B。如圖4,假設(shè)機(jī)器人處于水平面上,X為機(jī)器人行進(jìn)方向,Y為水平面上垂直X的方向向右(即X順時(shí)針轉(zhuǎn)90),地里北極方向和地磁北極方向如圖所示。H為地磁場(chǎng),Hx、Hy分別是H在X、Y方向的水平分量, β為機(jī)器人行進(jìn)方向和地磁北極方向的夾角, γ為地磁北極和地理北極方向的夾角,K就是機(jī)器人行進(jìn)方向與地理北極方向之間的夾角,也就是我們最終要求的角度。(此處的β、γ、 K都是由前者出發(fā)順時(shí)針到達(dá)后者的角度)由圖可明顯看出,K= β-γ。而在地球上不同方位的γ可查表得出,所以關(guān)鍵就是求得 。由磁阻傳感器可以得出Hx、Hy,(此處忽略了機(jī)器人在Z軸方向的傾斜,所以二維傳感器就夠用了),。
圖4
1.3 磁阻傳感器信號(hào)采集模塊電路設(shè)計(jì)
從HMC1022輸出的電壓信號(hào)非常微弱,我的測(cè)試是0到3mv(具體每個(gè)芯片的輸出不是完全一致),需要經(jīng)過(guò)放大器的放大,放大器選用的是AN622,放大倍數(shù)選定為600倍,這種放大器可以加上一個(gè)2.5v的偏置電壓,所以輸出到A/D的電壓為2.5v+(0~3mv)*600,兩路采集到的電壓信號(hào)經(jīng)過(guò)放大后連接到ADC0832。ADC0832是個(gè)兩通道8位精度的逐次逼近式模數(shù)轉(zhuǎn)換芯片,通過(guò)一個(gè)串行的I/O口DI輸入一個(gè)MUX ADDRESS序列,來(lái)配置A/D成差分方式并選擇哪一路通道的信號(hào)。2051通過(guò)一路I/O來(lái)串行讀入轉(zhuǎn)換后的數(shù)值。
用max662a作為RST/SET部分的恒壓源,電路的工作原理及流程如下:
1. 由2051的14端(P1.7)輸出高電平,SR電路set功能選通
2. 通過(guò)2051 P1各相應(yīng)端子控制ADC0832,完成一次A/D轉(zhuǎn)換,記下此次讀入的電壓值Vset 。
3. 2051的P1.7輸出低電平,SR電路reset功能選通
4. 通過(guò)2051 P1各相應(yīng)端子控制AD0832,完成一次A/D轉(zhuǎn)換,記下此次讀入的電壓值Vrst
5. 求出1022的輸出偏置電壓V0=(Vset+Vrst)/2。
6. 通過(guò)2051控制AD0832完成A/D轉(zhuǎn)換,將每一次讀入的值Vrst減去V0就得到計(jì)算需要用的電壓Vread=Vrst-V0;(包括兩個(gè)軸方向的電壓Vready、Vreadx)
7. 求得
8. K=β-γ, goto 6
經(jīng)過(guò)2051處理后得出的數(shù)值,在時(shí)鐘的配合下用一個(gè)I/O口模擬PWM輸出,傳給C52單片機(jī)。
2 結(jié)束語(yǔ)
整個(gè)電路設(shè)計(jì)作為機(jī)器人玩具的可加載模塊,在實(shí)際使用中的效果很好,對(duì)方向的分辯率完全滿(mǎn)足在5度以?xún)?nèi),從性?xún)r(jià)比來(lái)看,這種電路設(shè)計(jì)是比較成功的設(shè)計(jì)。