개발 블로그

[DM공모전] VScode PlatformIO 로 조이스틱 모듈 조작하기 본문

개발/Projects

[DM공모전] VScode PlatformIO 로 조이스틱 모듈 조작하기

영글어가다 2022. 1. 18. 14:07

진행하는 프로젝트에는 OBD 모듈을 통해 차량 정보를 받아오는 과정이 있다.

내가 맡은 역할은 OBD 에서 받아온 정보(16진법으로 나타나는 것으로 알고 있음)를 블루투스 통신을 통해 핸드폰 앱에 전달하는 것이다.

 

하지만 현재 OBD 에서 자료를 받아오는 프로토콜 제작이 완료된 상태가 아니기 때문에, 받아올 수 있는 정보가 없다.

그렇기 때문에 VScode 툴을 사용해서 조이스틱 정보(x, y, z)를 스마트폰 앱에 전달하는 과정을 먼저 진행해봤다.

 

할 일

  1. VScode PlatformIO 로 조이스틱 모듈 조작하기
  2. OBD 모듈 VScode 로 조작하기
  3. 블루투스 통신으로 OBD-II 데이터 핸드폰에 출력하기
  4. 조이스틱 시리얼 넘버 송수신을 위한 코드짜기 -> 필요한 과정인지 고민 필요.
  5. 앱과 아두이노가 블루투스 통신하는 코드짜기

1 번을 먼저 진행했다.

 

1) VScode 에서 아두이노 환경 만들기

2) 아두이노로 조이스틱 모듈 설치 및 코드

3) 업로드 & 빌드

4)포트로 조이스틱 정보가 넘어오는지 확인하기

 

1) VScode 에서 아두이노 환경 만들기

이전에 진행했던 과정을 참고했다. 아래 블로그 참고.

https://speak-of-the-devil.tistory.com/3

 

VScode 에서 아두이노 개발 환경 구축하기

공모전을 위한 아두이노 프로젝트를 하기로 했다. 개발을 위한 IDE 는 VScode를 사용하기로 협의하여 VScode에 아두이노를 사용하기 위한 개발 환경을 구축했다. VScode 에서 아두이노를 사용하기 위

speak-of-the-devil.tistory.com

 

2) 아두이노 조이스틱 모듈 설치

이전에 진행했던 과정을 참고했다.

https://speak-of-the-devil.tistory.com/4

 

[아두이노] 조이스틱 모듈 사용하기

아두이노 스터디에서 조이스틱 모듈관련 과제를 받았다. 조이스틱 모듈 사용하여 조이스틱 값을 PC에 출력하는 연습을 해보자. 조이스틱 모듈에는 5개의 핀이 있다. VCC, GND, VRX, VRY, SW VRX, VRY, SW(sw

speak-of-the-devil.tistory.com

 

3) VScode 코딩과 업로드, 빌드

sketch IDE 가 아닌 VScode 에서 진행해서 약간의 어려움을 겪었다.

PlatformIO에서 New project 를 하면 Board 를 선택하는 부분이 있다. 현재 사용하고 있는 보드를 찾아서 선택하자.

Finish 후 왼쪽에서 platformio.ini 를 확인해보자. board 가 uno 로 설정돼있는 것을 볼 수 있다.

다른 보드로 바꾸게 된다면, 해당 파일에서 보드에 맞는 환경으로 바꿔주면 되는 듯 싶다.

다음 코드를 VScode 의 main.cpp 파일에 붙여 넣자.

int joystick_x = A0;
int joystick_y = A1;
int joystick_z = A2;

void setup() {
	pinMode(joystick_z, INPUT);
  	Serial.begin(9600);
}

void loop() {
  int x = analogRead(joystick_x);
  int y = analogRead(joystick_y);
  int z = analogRead(joystick_z);

  Serial.print("X: ");
  Serial.print(x);
  Serial.print("\tY: ");
  Serial.print(y);
  Serial.print("\tZ: ");
  Serial.println(z);
  delay(10);
}

4) 포트(port)로 조이스틱 정보가 넘어오는지 확인하기

Serial Monitor 를 통해 정보가 출력된다. 왼쪽 아래에 콘센트 아이콘을 클릭하자.

그렇게 하면 Serial Monitor 가 생기면서 아래 영상과 같은 출력을 한다.

Seiral Monitor 에서 출력되는 조이스틱 값