//Logo Image
作者:陳延暐(2010-06-11);推薦:徐業良(2010-06-11)

類比式搖桿原理與應用

本文介紹DeviceMart公司型號WJ-200的類比式搖桿原理與應用。

1.     類比式搖桿(Analog Joystick)簡介

1為本文採用DeviceMart公司型號WJ-200的類比式搖桿,手把部份可作旋轉及左右前後的擺動,其手把的右方、前方以及內部各有一個可變電阻,當擺動或旋轉手把時可改變電阻的大小,可藉由量測各個電阻值,判斷目前手把的擺動方式,並搭配程式撰寫給予馬達正轉或反轉的訊號。如圖1右圖所示,搖桿內部手把兩側各有一組彈簧,使手把在無施力的狀態時能歸位。此種以可變電阻所組成的類比式搖桿使用上並不複雜,也被用來作為遙控直升機或遙控飛機、電玩等的遙控器元件(如圖2)。WJ-200詳細的規格請參見http://www.devicemart.co.kr/mart7/upload/pdf/wj-100.pdf

        

1. WJ-200 Joystick[http://www.devicemart.co.kr/mart7/]

Scph-1110.jpg

2. (a)遙控直升機遙控器(b)電玩控制器[http://en.wikipedia.org/wiki/PlayStation_Analog_Joystick]

WJ-200所使用的可變電阻最大值為10KW,可由圖3左所標示的腳位量測其電阻值,在未擺動手把時所量到的電阻值為5.13KW,而越往右擺電阻值越小,擺至最右邊時所量到的電阻值為0.59KW,往左擺動的電阻值則越大,擺至最左邊時所量到的電阻值為9.77KW。當旋轉手把時則是量測紅白兩條電線(如圖3右),當手把順時針旋轉時電阻值變小(最小值為0.13KW),逆時針旋轉時電阻值變大(最大值為8.80KW)。

               

3. 量測可變電阻的腳位

2.     類比式搖桿應用

本節敘述如何搭配WJ-200與單晶片控制器PIC_PORTO作如馬達控制等應用。圖4PIC_PROTO部分layout圖,PIC_PROTO板的CN1排針母座上分別有常用之類比輸入腳位RA0RA1RA2RA3。用read_analog(0)指令即可讀取PIC_PROTO板上類比輸入接點RA0(CN1)的電壓資訊,亦即接到單晶片的RA0/AN0接腳的電壓。同理,read_analog(x)指令讀取接腳ANx的電壓,x可為0~3。在此已RA1RA2RA3作為量測的腳位,並且以RA1為例,首先將可變電阻接到PIC_PROTO作量測,其接法如圖5所示,右邊接腳接上5V,左邊接腳接地,中間接腳則是接到RA1,旋轉可變電阻便可從RA1接點讀取+5V分壓電路的電壓值。利用read_analog(ch)指令所讀取的AN0訊號並不是真正電壓值,而是經過AD轉換後範圍在0~1023內之數值(PIC18F4620單晶片的A/D channel10-bit),代表0~5V的電壓值,因此所讀取訊號需要經式(1)轉換成電壓值:

                                                                       (1)

4. 部分layout圖(完整layout圖參見C:\YZ_PIC\Util\Schematics\PIC_PROTO_Circuit\PIC_PROTO Layout.pdf

5. 可變電阻的接法

藉由上述的連接方式將WJ-200的三個可變電阻都接到PIC_PROTO上,AN1接至手把左右擺動電阻,AN3接至手把前後擺動電阻,AN3接至手把旋轉電阻。搭配程式撰寫後,圖6為終端機上顯示AN1AN3的電壓值,在手把歸位狀態下三個read_analog(ch)數值大約都落在400600之間。每次手把歸位後可變電阻的初值都略有不同,因此在程式判斷時必須給定一個初始範圍(如圖7所示),當read_analog(ch)數值落在400700時代表手把歸位。當AN1小於400時代表手把向左,大於700則代表手把向右;另外當AN2小於400代表手把向後,大於700代表手把向前;AN3小於400代表手把順時針旋轉,大於700代表手把逆時針旋轉。圖8程式由電壓值判斷手把動作方向,從而輸出指令,控制對應馬達正轉或反轉等。

6. PIC_PROTO所量測到的電壓值

7. 程式判斷給定動作的電壓範圍

8. 判斷電壓值及馬達指令的程式碼

參考資料

http://www.slagcoin.com/joystick/joystick_components.html