Hardware | Dual-axis XY Joystick Module

|

1. Dual-Axis XY


집에 가지고 있는 Stepping motor 를 원격으로 조정하고 싶을 때, 조이스틱으로 하면 편할것 같아,

우선 arduino 와 조이스틱 구성의 기본 동작을 익혀봤습니다.


위의 목적 외에도 새로운 모듈을 시험해 보는 것은 언제나 즐거운 일 입니다.




2. 구매


AliExpress 를 뒤지면 여러가지 나오는데, 저는 아래 제품을 구매 했습니다.


* For Arduino Dual-axis XY Joystick Module Higher Quality PS2 Joystick Control Lever Sensor KY-023 Rated 4.9 /5

https://www.aliexpress.com/item/32683242155.html



옵션으로 고정 틀이 들어간 세트도 같이 팔지만,

언제나 그렇 듯, 최소한의 비용 투자가 회사원의 취미로 유지되는 조건이므로 모듈만 구매합니다.


혹시 여유가 있으시다면, 아크릴 고정 틀 세트로 구매하시는 것을 추천드립니다.

어디 놓고 테스트 하거나 구동시킬라면 손으로 잡고 해야 하는데 꽤 불편합니다.





3. 도착


잊을만 할 때 도착했습니다.



엄지 손가락으로 조정하는 고무 모자를 벗겨 보면, XY 축 센서와 SW 센서가 붙어 있습니다.



더 이상 설명이 필요없는 간단한 구성 입니다.





4. Layout


XY 센서는 analog 이고, switch 는 digital 신호로 컨트롤 됩니다.

Arduino nano 와의 연결은 다음과 같습니다.


  Joystick | Arduino Nano
--------------------------
    GND    |     GND
    5V     |     5V
    VRX    |     A0
    VRY    |     A1
    SW     |     D2
--------------------------


배선도는 다음과 같구요.



실제 연결은 다음과 같습니다.



선이 5가닥이 필요하다 보니, 회로 구성 시 자칫 복잡해 질 수 있는 여건이네요.




5. Sketch


소스는 다음과 같습니다. 소스 참고는 아래 사이트 입니다.


* How to connect and use Analog Joystick with Arduino

https://www.brainy-bits.com/arduino-joystick-tutorial/


Switch 눌림과 XY 축 값을 5V 기준으로 leveling 하여 수치로 표시해 줍니다.


// Arduino pin numbers
const int SW_pin = 2; // digital pin connected to switch output
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output

void setup() {
	pinMode(SW_pin, INPUT);
	digitalWrite(SW_pin, HIGH);
	Serial.begin(115200);
}

void loop() {
	Serial.print("Switch:  ");
	Serial.println(digitalRead(SW_pin));
	Serial.print("X-axis: ");
	Serial.println(analogRead(X_pin));
	Serial.print("Y-axis: ");
	Serial.println(analogRead(Y_pin));
	Serial.print("\n");
	
	delay(500);
}


스위치가 눌려있는 시간에는 Switch 값이 "0" 으로 변합니다.



요리조리 움직이다 보면 최대값이 나오는 구간이 있습니다. 5V 입력이다 보니 최대값이 1023 으로 표시됩니다.



입력 Vcc 를 3.3V 로 변경하면, 5V 대비 3.3V 로 레벨링 하여 나옵니다. 이 때는 대략 675 정도가 최대값이 되겠네요.



동영상 띄워 봅니다.






FIN


음? 벌써 끝?

네, 이 포스트는 gimbal 에 달려 있는 stepping 모터를 컨트롤 하기 위한 준비 단계라,

XY joystick 모듈과 arduino 와의 연결 확인만 되면 됩니다.


실제 gimbal 과 연결하여 stepping 모터를 컨트롤 하는 것은 다음 포트스에서 해보겠습니다.


And