아무거나 만들기 製作 Maker/모형 완성작

[아카데미] 1/35 M113A1 장갑차 베트남전 - 완성

미친도사 2016. 9. 29. 20:00

모형을 다시 시작한 이후, 첫 모터라이즈 작업이었던 아카데미 M113A1 베트남전 장갑차를 완성하였습니다.


제작기

[모형 模形 Scale Model/제작기] - [아카데미] 1/35 M113A1 베트남전 - 1. 모터라이즈 시작!

[모형 模形 Scale Model/제작기] - [아카데미] 1/35 M113A1 베트남전 - 2. 첫번째 회로 구현... 실패

[모형 模形 Scale Model/제작기] - [아카데미] 1/35 M113A1 베트남전 - 3. 새로운 회로의 구성

[모형 模形 Scale Model/제작기] - [아카데미] 1/35 M113A1 베트남전 - 4. 도색 및 웨더링


일단 대표 사진 하나...


제가 주로 조립식 모형을 즐겼던 1980년대엔 대부분의 밀리터리 차량들이 주행형이었는데, 2008년에 다시 시작하니 모터라이즈는 거의 찾을 수 없더군요. 수년간 모터라이즈라는 걸 잊고 지냈는데, 모터라이즈를 구현하는 분들이 여기저기 계시더군요. 그 분들의 경험과 인터넷 검색을 통해 M113A1 장갑차 베트남전 키트가 모터라이즈에 좋다는  글을 보고 첫 모터라이즈 작업용 키트로 골랐습니다.


이 키트가 미군, 호주군, 한국군의 세가지 버전으로 만들 수 있는데, 저는 옆에 총쏘는 스누피가 귀여워서 미군 버전으로 만들었습니다.


키트는 내부 재연형이고, 악세사리가 좀 들어 있어 이것저것 얹어 있게 꾸밀 수 있었습니다.


실물 자료를 검색하다 보니 옆에 통나무 달고 다니는 게 있길래 길가다 작은 나무가지 하나 주워서 달아주었습니다.

아크릴 도료를 기본으로 하고, 유화 물감으로 필터링하고, 에나멜로 드라이브러싱... 파스텔 가루 약로 마무리했습니다.

밀리터리물은 경험이 별로 없는데, 눈은 높아져서 아쉬움이 없지 않겠지만 다음에 또 다른 시도 좀 더 해보려 합니다.







안테나는 한방침입니다. 굵기고 가늘면서 탄성도 좋아서 모형에 쓰기도 참 좋습니다. 

거의 모든 해치는 다 열리게 했습니다만, 그닥 쓸 일은 없을 것 같습니다.



악세사리는 키트에 포함된 것들인데, 종이 상자는 인터넷에서 찾은 상자 도면을 출력해서 만들어서 포함시켰습니다.




헤드라이트에 LED 작업도 했습니다.


보통 헤드라이트로 많이들 쓰는 white는 실제로 쓰는 색과 많이 다릅니다.

2012 칩LED Warm white를 장착하였습니다.



뒷쪽에는 브레이크 등도 만들어주었습니다.


무선 조종는 블루투스 연결을 통한 스마트폰으로 하기로 했고, 그 컨트롤러는 요새 인기있는 소형 마이컴인 아두이노 시리즈 중에 제일 작은 아두이노 프로 미니를 선택했습니다.


이 장갑차에는 뒷문이 있는데, 살짝 줄로 갈아주어서 홈을 만들어 손톱을 걸어서 열 수 있게 했습니다.


거기를 열면 회로부가 보이고, 컴퓨터와 메인 컨트롤러인 아두이노와 연결할 수 있게 했습니다.


앞 쪽의 뎦개를 열면 기어박스가 보입니다. 뚜껑을 열수도 있고요.


동영상도 한번 찍어 봤습니다.


검색해서 찾은 스마트폰 앱으로 블루투스 연결해서 조종합니다.

사용한 앱은 아래 링크 참고.

https://play.google.com/store/apps/details?id=braulio.calle.bluetoothRCcontroller


원래 1/48 모터라이즈용 기어 박스에 기어를 추가해서 구성한 거라 꽤나 느리게 되었고요,

후진 시에 우측 기어가 가끔씩 헛도는 경우가 있습니다.


그리고, 사이드 스커트가 착탈이 어려워서 접착을 해서 궤도를 수정하거나 하려면 어려움이 있습니다.

M113으로 작업하시려면 사이드 스커트가 없게 하는 게 낫겠습니다.


경험 부족이어서 그렇겠지요.

모형 다시 시작하고 나서 어쨌든 처음 작업해본 모터라이즈여서 무척 재미있었습니다.


앞으로 아두이노 기반으로 RF 2.4GHz 무선 조종까지 확장해 볼 생각입니다.


마지막으로 이번에 구성한 회로부의 회로도와 아두이노 소스 함께 첨부합니다.

궁금한 점이 있으면 자유롭게 질문 남겨주십시오. 제가 아는 범위 내에서 알려드리겠습니다.



#include <SoftwareSerial.h>


// define LED pins

int HEADLIGHT=12;

int BRAKELED=2;


// Set for BT

SoftwareSerial bluetooth(11, 10);

//Connect HC-06. Use your (TX, RX) settings


// Set for DC motor L with DRV8833 (both ports should be PWM available)

int in11Pin = 5;

int in12Pin = 3;


// Set for DC motor R with DRV8833 (both ports should be PWM available)

int in21Pin = 6;

int in22Pin = 9;


// define variable for max/min speed & PWM duty cycle

int max;

int min;

int duty;



// initial setup 

void setup() {

// Set for BT

  Serial.begin(9600);

  delay(100);

  bluetooth.begin(9600);

  pinMode(HEADLIGHT, OUTPUT);

  pinMode(BRAKELED, OUTPUT);


// Set for DC Motor L & R

  stopMotor1();

  stopMotor2();

}


// Motor control based on TI's drv8833 datasheet (PWM control mode, slow decay)

void setMotor1(int speed, boolean forward)

{

  digitalWrite(BRAKELED, LOW);

  if ( forward == HIGH ) {

    digitalWrite(in11Pin, forward);

    analogWrite(in12Pin, speed);

  }

  else {

    analogWrite(in11Pin, speed);

    digitalWrite(in12Pin, HIGH);

  }

}


void setMotor2(int speed, boolean forward)

{

  digitalWrite(BRAKELED, LOW);

  if ( forward == HIGH ) {

    digitalWrite(in21Pin, forward);

    analogWrite(in22Pin, speed);

  }

  else {

    analogWrite(in21Pin, speed);

    digitalWrite(in22Pin, HIGH);

  }

}


// function to stop motor

void stopMotor1()

{

  digitalWrite(in11Pin, HIGH);

  digitalWrite(in12Pin, HIGH);

}


void stopMotor2()

{

  digitalWrite(in21Pin, HIGH);

  digitalWrite(in22Pin, HIGH);

}


// main loop for operation

void loop() {

    

// Set Max/min PWM duty cycle 70% = 3V, 40% = 1.5V (experimental value)

max = 70;

min = 40;


  int speed = (100 - duty) * 255 / 100;

  Serial.println(speed);

  

  if(bluetooth.available()) {

    char cmd = (char)bluetooth.read();  

    


  switch (cmd) {

  case 'F':

  {

    Serial.println("Forward");

    setMotor1(speed, HIGH);

    setMotor2(speed, HIGH);

    break;

  }

  case 'B':

  {

    Serial.println("Backward");

    setMotor1(speed, LOW);

    setMotor2(speed, LOW);

    break;

  }

  case 'L':

  {

    Serial.println("Left");

    setMotor1(speed, LOW);

    setMotor2(speed, HIGH);

    break;

  }

  case 'R':

  {

    Serial.println("Right");

    setMotor1(speed, HIGH);

    setMotor2(speed, LOW);

    break;

  }

  case 'G':

  {

    Serial.println("Forward Left");    

    setMotor2(speed, HIGH);

 stopMotor1();

    break;

  }

  case 'I':

  {

    Serial.println("Forward Right");

    setMotor1(speed, HIGH);

 stopMotor2();

    break;

  }

  case 'H':

  {

    Serial.println("Backward Left");

    setMotor2(speed, LOW);

 stopMotor1();

    break;

  }

  case 'J':

  {

    Serial.println("Backward Right");

    setMotor1(speed, LOW);

 stopMotor2();

    break;

  }

  case 'W':

  {

    Serial.println("Light ON");

    digitalWrite(HEADLIGHT, HIGH);

    break;

  }

  case 'w':

  {

    Serial.println("Light OFF");

    digitalWrite(HEADLIGHT, LOW);

    break;

  }

  case '0': // Speed is zero

  {

    stopMotor1(); 

    stopMotor2();

    Serial.println("Brake ON");

    digitalWrite(BRAKELED, HIGH);

    break;

  }

  case '1':

  {

    duty = min;

    break;

  }

  case '2':

  {

    duty = min + (max - min)* 0.1;

    break;

  }

  case '3':

  {

    duty = min + (max - min)* 0.2;

    break;

  }

  case '4':

  {

    duty = min + (max - min)* 0.3;

    break;

  }

  case '5':

  {

    duty = min + (max - min)* 0.4;

    break;

  }

  case '6':

  {

    duty = min + (max - min)* 0.5;

    break;

  }

  case '7':

  {

    duty = min + (max - min)* 0.6;

    break;

  }

  case '8':

  {

    duty = min + (max - min)* 0.7;

    break;

  }

  case '9':

  {

    duty = min + (max - min)* 0.8;

    break;

  }

  case 'q':

  {

    duty = min + (max - min)* 0.9;

    break;

  }

  

  default: // When no control input

  {

    stopMotor1(); 

    stopMotor2();

    Serial.println("Brake ON");

    digitalWrite(BRAKELED, HIGH);

    break;

  }

  } // end of switch-case

 } // end of BT read

}  // end of loop


반응형