산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 레오나르도와 3D 프린팅으로 MS 플라이트 시뮬레이터용 커스텀 스로틀 쿼드런트 & 트림 휠 만들기

부품 및 소모품

아두이노 레오나르도 (또는 마이크로) 아두이노 하나당 최대 6개의 컨트롤 연결 가능 1개
후크업 와이어 모듈당 3선 필요 3개
로터리 포텐셔미터 50kΩ 모듈당 1개 (본문 참조) 1개

필요한 도구 및 장비

소프트웨어 및 온라인 서비스

프로젝트 소개

최근 PC를 업그레이드하여 MS FS2020을 구동할 수 있게 되면서, 더 나은 비행 조작감을 위해 직접 컨트롤러를 제작하기로 했습니다. 키보드로는 비행의 몰입감을 느끼기 어렵고, 고가의 정식 콕핏 장비를 구매하거나 설치할 공간과 예산이 부족했기 때문입니다. 주로 경비행기를 즐겨 타기 때문에, 스로틀, 플랩, 랜딩 기어용 단일 레버와 엘리베이터 트림 휠을 목표로 설계했습니다.

아두이노 레오나르도와 3D 프린팅으로 MS 플라이트 시뮬레이터용 커스텀 스로틀 쿼드런트 & 트림 휠 만들기
완성된 스로틀 쿼드런트와 트림 휠

설계

보유한 도구로 제작 가능하면서 실제 항공기 조작감을 재현할 수 있는 형태로 CAD 설계했습니다. 실제 항공기 조종 경험은 없지만, 시뮬레이터 경험과 자료 조사를 바탕으로 직관적인 조작감을 구현하는 데 집중했습니다.

트림 휠은 가장 까다로운 파트였습니다. 여러 날에 걸쳐 스케치를 반복하며 원하는 외관과 손맛을 모두 만족하는 기어 메커니즘을 고안했습니다.

아두이노 레오나르도와 3D 프린팅으로 MS 플라이트 시뮬레이터용 커스텀 스로틀 쿼드런트 & 트림 휠 만들기
아두이노 레오나르도와 3D 프린팅으로 MS 플라이트 시뮬레이터용 커스텀 스로틀 쿼드런트 & 트림 휠 만들기
아두이노 레오나르도와 3D 프린팅으로 MS 플라이트 시뮬레이터용 커스텀 스로틀 쿼드런트 & 트림 휠 만들기

제작

모든 부품은 ABS 필라멘트로 3D 프린팅한 후 도색하고 배선했습니다. 처음에는 아두이노 레오나르도를 사용했다가 나중에 마이크로로 교체하여, 사용하지 않을 때 쉽게 보관할 수 있는 플러그 앤 플레이 장치로 완성했습니다.

부품 목록 (3D 프린팅 파트)

레버 모듈 (스로틀, 플랩, 기어 등) - 모듈당 필요 부품

트림 휠 모듈

뒤쪽 박스 파츠를 이용해 아두이노와 배선을 수납할 수 있습니다.

코드 설명

아두이노 레오나르도/마이크로의 기본 HID 조이스틱 라이브러리(Joystick.h)를 사용합니다. 각 아날로그 핀(A0~A5)에 연결된 포텐셔미터 값을 읽어 0~1023 범위로 매핑한 뒤, 해당 조이스틱 축(스로틀, Rx, Ry, Rz, X, Y)에 할당합니다.

#include <Joystick.h>
Joystick_ Joystick;

int axisLimits0[] = {686, 338};
int axisLimits1[] = {345, 695};
int axisLimits2[] = {327, 678};
int axisLimits3[] = {342, 692};
int axisLimits4[] = {0, 1023};
int axisLimits5[] = {0, 1023};

bool a0Used = true;
bool a1Used = true;
bool a2Used = true;
bool a3Used = true;
bool a4Used = false;
bool a5Used = false;

int setting = -1; // -1: 정상, 0~5: 해당 핀 캘리브레이션 출력

void setup() {
  if(a0Used) pinMode(A0, INPUT);
  if(a1Used) pinMode(A1, INPUT);
  if(a2Used) pinMode(A2, INPUT);
  if(a3Used) pinMode(A3, INPUT);
  if(a4Used) pinMode(A4, INPUT);
  if(a5Used) pinMode(A5, INPUT);
  Joystick.begin();
  if(setting >= 0) Serial.begin(9600);
}

void loop() {
  int value = 0, pos = 0;
  if(a0Used){ value = analogRead(A0); pos = translateValue(value, axisLimits0[0], axisLimits0[1]); Joystick.setThrottle(pos); if(setting == 0) settingPrint(value, pos); }
  if(a1Used){ value = analogRead(A1); pos = translateValue(value, axisLimits1[0], axisLimits1[1]); Joystick.setRxAxis(pos); if(setting == 1) settingPrint(value, pos); }
  if(a2Used){ value = analogRead(A2); pos = translateValue(value, axisLimits2[0], axisLimits2[1]); Joystick.setRyAxis(pos); if(setting == 2) settingPrint(value, pos); }
  if(a3Used){ value = analogRead(A3); pos = translateValue(value, axisLimits3[0], axisLimits3[1]); Joystick.setRzAxis(pos); if(setting == 3) settingPrint(value, pos); }
  if(a4Used){ value = analogRead(A4); pos = translateValue(value, axisLimits4[0], axisLimits4[1]); Joystick.setXAxis(pos); if(setting == 4) settingPrint(value, pos); }
  if(a5Used){ value = analogRead(A5); pos = translateValue(value, axisLimits5[0], axisLimits5[1]); Joystick.setYAxis(pos); if(setting == 5) settingPrint(value, pos); }
  delay(5);
}

int translateValue(int v, int f1, int f2){
  int result = 0, start = 0; float range = 0;
  if(f1 < f2){ start = f1; range = f2 - f1; }
  else{ start = f2; range = f1 - f2; }
  result = (v - start) * (1023 / range);
  if(result < 0) result = 0;
  if(result > 1023) result = 1023;
  return result;
}

void settingPrint(int value, int pos){
  Serial.print(value); Serial.print(" "); Serial.println(pos);
}

3D 모델 파일

STEP 파일(released_u3k8QjPXzJ.stp)에 모든 파츠가 포함되어 있습니다. 탭이 없는 버전도 제공됩니다.

회로도

추가 컨트롤은 5V, GND 공통으로 연결하고 A1~A5 핀을 사용하면 됩니다. (quadrant_ZkMygPyRiE.fzz Fritzing 파일 참조)

마무리

코딩은 매우 단순하지만, 트림 휠의 '손맛'을 구현하는 설계 과정이 진짜 도전이었습니다. 직접 만든 컨트롤러로 비행 시뮬레이터를 즐기니 몰입감이 완전히 달라집니다. 파일과 코드를 공유하니 여러분도 나만의 콕핏을 만들어 보세요!

제조공정

  1. 아두이노 우노로 만드는 LCD 애니메이션 & 게임 기초
  2. 아두이노와 스마트폰으로 만드는 스마트 전압계 – 초간단 DIY 프로젝트
  3. 아두이노 DHT11 이더넷 실드 온습도 데이터 로거
  4. 아두이노 나노로 플라이트기어(FlightGear)용 컴팩트 아날로그 트림 탭 휠 만들기
  5. 파이썬 3로 아두이노 우노 제어하기 – 시리얼 통신 LED 제어 기초
  6. 아두이노 나노 + 128x64 OLED로 실시간 셀룰러 오토마타 (생명 게임) 구현
  7. 아두이노 나노와 RDA8057M으로 소형 FM 라디오 만들기
  8. 아두이노와 구글 시트로 구현하는 실시간 RFID 출석 시스템
  9. IoT 통합: 윈도우 10 UWP 앱으로 아두이노 원격 제어하기
  10. 휠 밸런싱 vs 휠 얼라인먼트: 반드시 알아야 할 차이점