Ganponブログ

趣味の模型作り、ドライブ、旅行など
since Mar.2017

1/72 九試単座戦闘機 改修型(完成)

2019-01-22 14:39:58 | 大戦機(日本)

2019-01-22
翼端灯は黒塗装を剥がして、白塗装の後、クリアレッド、クリアグリーンを筆塗りします。
今回は試しにレンズ部分を紫外線硬化樹脂を少し塗布してみました。

墨入れをし、艶消しクリアーで艶を整えて完成です。

↓画像をクリックすると拡大します。
 

因みに、機首は接着せずに脱着可能にしました。 

 


1/72 九試単座戦闘機 改修型(その4)

2019-01-21 17:19:04 | 大戦機(日本)

2019-01-21
機体の塗装です。
前処理はファインサーフェイサーL ホワイトを吹きます。
そして赤色の部分をマスキングし、機体色のC128灰緑色を吹きます。

先に赤を塗装しておけば、これで完了でしたが、今回は手間のかかる方法でやってみます。
赤を塗装するためのマスキングをしてC3レッド 光沢を吹きます。

マスキングを剥がして確認します。

マスキングをミスした部分が見つかりました。
部分マスキングをして機体色を吹きなおします。
そして翼端をC2ブラック光沢で塗装。

今日はここまで。
後は主脚、尾脚、翼端灯、風防の塗装・取付け、墨入れなどで完成です。

 


1/72 九試単座戦闘機 改修型(その3)

2019-01-20 00:17:45 | 大戦機(日本)

2019-01-19
エンジン部分の組立です。
何時もはやらないのですが、今回初めてプラグコードを再現してみます。
コードはエナメル線を使います。
突起部分に瞬着で端部を接着しようとしましたが上手くできません。
0.5mmキリで穴をあけてエナメル線を通すことにしました。

エンジン及びカウル内面はC33つや消しブラックを塗装後、マスキングしてカウル表面をMr.カラーC128灰緑色 半光沢を吹きます。


👆塗り忘れです。

一息入れ、再塗装です。
カウルの接続部など気になる点も有ったので、接着してからブルタックでマスキングして塗装する事にします。


機体と翼の接合です。
成型が良いので、カチッと接合できます。 

今日はここまで。
機体の塗装は明日以降になります。


1/72 九試単座戦闘機 改修型(その2)

2019-01-17 20:26:02 | 大戦機(日本)

2019-01-17
やっと製作開始です。
先ず主要パーツを切り出して仮組みします。
嵌め合い等、特に問題なく組みあがりそうです。
零戦以前の機体で、流石に小さいです。

概略確認が出来たので、コックピットから組み立て始めます。
コックピット色はMr.カラーC126 コクピット色 (三菱系) 半光沢を指示通りにエアブラシで吹きます。

組立図では計器盤はデカール貼り用と塗装用が用意されていますが、今回は塗装用の計器枠彫刻のあるものにデカールを貼ることにします。
ソフターを混ぜたマークセッターを塗って、ドライヤーで馴染ませます。
更にソフターで凸凹面に馴染ませます。

シートベルトはマスキングテープでそれらしく再現します。

機体内面もコックピット色で塗装しておきます。

コックピットを機体にセットして仮組みします。

こんな具合なので、コックピットの殆どは見えなくなります。

 


1/35 タイガーⅠ (RC可動)Arduino+PS3版

2019-01-11 12:28:58 | 1/35 タミヤ タイガーⅠ

2019-01-09
昨年完成していたタイガーⅠをArduino+PS3版に改修します。


改修理由は機能アップです。
砲身上下可動と発光、機銃発光、ヘッドライト点滅、テールランプ点灯、そして速度可変、旋回のコントロールの操作性アップです。

 

先に、この仕様で製作したT34/85より内部が広いのでユニット搭載は楽です。
使用するArduinoはPro MIni 5V 16MHzです。
Nanoに比べてUSBポートが無いので短いです。
更にミニUSBホストシールドがPro Mini専用なので接続が楽です。

しかし、このミニUSBホストシールドにはVBUS以外は5Vをかけてはいけないとの事です。
とは言え、Nanoとの接続も何とか使えているので、Vccには3.3Vを印可して凌ぐことにします。
(電源は3.7Vリポバッテリなので、3.3Vはダイオードを1個介して接続します。)

換装を進める中で、サーボモータSG90を接続すると電源が落ちます。
小型のRC450の接続では大丈夫そうなので、原因を確定できていませんがRC450で進めます。

モータドライバはDRV8835を使います。
前回、上手く使いこなせかったのですが、何とか速度制御もできるようにスケッチを見直しました。
TB6612よりコンパクトで接続も2本少なくできるので助かります。

赤外線発光LEDはトランジスタを入れて出力アップしました。(射程距離アップです)

スケッチはタイガーⅠ用にカスタマイズします。
走行速度、サーボの可動範囲、回転方向などメカとのマッチングをスケッチ側で調整しました。 

記録のためにスケッチと回路図を残します。
(規定以外での使用をしているところもありますので注意が必要です。) 

  1. /* PS3BT_arduino_pro mini_tank_DRX8835_IRw_TIGER1specS
  2.   モータドライバはDRX8835
  3.   砲撃時のリコイルアクション
  4.   irremote PIN3 赤外線発光(砲撃)システム
  5.   A0ピンに赤外線受光モジュール出力を接続し、被弾処理を追加
  6.   主砲発光はA1を使用
  7.   IRremote Ver.0.1
  8.   Arduino 1.8.7
  9. */
  10. #include <SoftwareSerial.h>
  11. #include <DFPlayer_Mini_Mp3.h>
  12. SoftwareSerial mySerial(A2, A3); // DFPlayer TX,RX
  13.  
  14. #include <PS3BT.h>
  15. #include <usbhub.h>
  16. #ifdef dobogusinclude
  17. #include <spi4teensy3.h>
  18. #endif
  19. //#include <Usb.h> // needed by Arduino IDE
  20. #include <USB_Host_Shield_GPIO.h> // GPOUTピンで主砲LEDを発光させるため
  21. MaxGPIO max;
  22.  
  23. USB Usb;
  24. BTD Btd(&Usb);
  25. PS3BT PS3(&Btd);
  26. //PS3BT PS3(&Btd, 0x00, 0x1B, 0xDC, 0xF2, 0x54, 0x32); //for Dongke A
  27. /*シリアルモニタにBluetooth DongleのアドレスがSerial.printされる。
  28.   書き出された6個のコードをスケッチを変更し、
  29.   ドングルを指した状態でArduinoに書き込む(電源は切らない)
  30.   ドングルを抜いてUSBケーブルでPS3コントローラを接続する(電源は切らない)
  31.   ケーブルを抜いてドングルを指し直す(Arduinoを再起動する)
  32.   PS3コントローラのPS ボタンを押してペアリングする。
  33. */
  34.  
  35. #include <IRremote.h>
  36. IRsend irsend;
  37. int RECV_PIN = A0 ; //赤外線受光部をPIN A0に
  38. IRrecv irrecv(RECV_PIN);
  39. decode_results results; //受信信号を格納する
  40. const long sign_hit = 0x4CB0FADD;
  41. int cnt = 0 ;
  42.  
  43. #include <VarSpeedServo.h>
  44. VarSpeedServo myservo;
  45. VarSpeedServo myservo_1;
  46. int servo_pos = 50;
  47. const int servo_sp = 10;
  48. const int servo1_sp = 1;
  49. int ch = 0;
  50. int pos_y;
  51. int pos_x;
  52. int pos_ry;
  53. int pos_rx;
  54. int motor_speed;
  55. int PWMA = 5; // A入力2/AENABLE 左モータ AIN2
  56. int PWMB = 6; // B入力2/BENABLE 右モータ BIN2
  57. int AIN1 = 4; // A入力1/APHASE 左モータ AIN1
  58. int BIN1 = 7; // B入力1/BPHASE 右モータ BIN1
  59. //const int LED_1 = A2; //主砲
  60. const int LED_2 = 2; //機銃
  61. const int LED_3 = A1 ; //ブレーキランプ
  62. const int LED_8 = 8 ; //ヘッドライト
  63. const int SVCH1 = A4; //servo 1
  64. const int SVCH2 = A5; //servo 2
  65.  
  66. void setup() {
  67.   irrecv.enableIRIn(); // Start the receiver
  68.   pinMode(RECV_PIN, INPUT) ; // 赤外線受信モジュールに接続ピンをデジタル入力に設定
  69.   pinMode(PWMA, OUTPUT);
  70.   pinMode(PWMB, OUTPUT);
  71.   pinMode(AIN1, OUTPUT);
  72.   pinMode(BIN1, OUTPUT);
  73.   pinMode(LED_2, OUTPUT);
  74.   pinMode(LED_3, OUTPUT);
  75.   pinMode(LED_8, OUTPUT);
  76.   pinMode(SVCH1, OUTPUT);
  77.   pinMode(SVCH2, OUTPUT);
  78.   myservo.attach(SVCH1); //servo1 砲身上下
  79.   myservo.write(servo_pos);
  80.   myservo_1.attach(SVCH2); //servo2 砲塔旋回
  81.   myservo_1.write(90);
  82.   myservo_1.detach();
  83.  
  84.   Serial.begin (115200);
  85.   mySerial.begin (9600);
  86.   mp3_set_serial (mySerial); //set softwareSerial for DFPlayer-mini mp3 module
  87.   mp3_set_volume (25); //max=30
  88.  
  89.   while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
  90.   if (Usb.Init() == -1) {
  91.     Serial.print(F("\r\nOSC did not start"));
  92.     while (1); //halt
  93.   }
  94.   Serial.print(F("\r\nPS3 Bluetooth Library Started"));
  95.  
  96. }
  97.  
  98. void loop() {
  99.   Usb.Task();
  100.   if (irrecv.decode(&results)) { // 受信コードの値が
  101.     if (results.value == sign_hit) { // 0x4CB0FADDだったら被弾
  102.       //Serial.println("HIT!");
  103.       Hit();
  104.     }
  105.     irrecv.resume();
  106.   }
  107.  
  108.   if (PS3.PS3Connected) {
  109.  
  110.     pos_ry = PS3.getAnalogHat(RightHatY);
  111.  
  112.     if (pos_ry < 10 && servo_pos < 100 ) { // UP
  113.       //if (pos_ry > 235 && servo_pos < 179 ) { // UP
  114.       servo_pos++;
  115.       myservo.write(servo_pos, servo_sp, true);
  116.  
  117.     } else if (pos_ry > 245 && servo_pos > 35 ) { //DOWN
  118.       servo_pos--;
  119.       myservo.write(servo_pos, servo_sp, true);
  120.  
  121.     } else if (PS3.getButtonClick(SQUARE)) { //CENTER
  122.       servo_pos = 50;
  123.       myservo.write(servo_pos, servo_sp, true);
  124.     }
  125.  
  126.     //砲塔旋回
  127.     pos_rx = PS3.getAnalogHat(RightHatX);
  128.     if (pos_rx > 245) { //右旋回
  129.       myservo_1.attach(SVCH2); //servo2 砲塔旋回
  130.       myservo_1.write(180, servo1_sp);
  131.     } else if (pos_rx < 10) { //左旋回
  132.       myservo_1.attach(SVCH2); //servo2 砲塔旋回
  133.       myservo_1.write(0, servo1_sp);
  134.     } else { //停止
  135.       myservo_1.write(90, 255);
  136.       myservo_1.detach();
  137.     }
  138.  
  139.     //砲撃 + リコイル
  140.     if (PS3.getButtonClick(R1) && ch == 0 ) {
  141.       int khz = 38; // 38kHz carrier frequency for the NEC protocol
  142.       unsigned int irSignal[] = {4100, 1000, 2050, 2050, 1000}; // vs BATTLE TANK jr T-72 40MHz
  143.       // AnalysIR Batch Export (IRremote) - RAW
  144.       irsend.sendRaw(irSignal, (sizeof(irSignal) / sizeof(irSignal[0])), khz);
  145.       //irsend.sendRaw(data buf, length, hertz)
  146.       irrecv.enableIRIn(); // 受信を再開する
  147.       mp3_play(15);
  148.       max.write(0, HIGH); //主砲発光
  149.       //delay(220);
  150.       motor_run(200, 1, 200, 1, 1);
  151.       ch = 5000; //約2秒間は砲撃不可
  152.       delay(80);
  153.       motor_run(0, 0, 0, 0, 1);
  154.       delay(60);
  155.       max.write(0, LOW); //主砲消灯
  156.       motor_run(100, 0, 100, 0, 1);
  157.       delay(200);
  158.       motor_run(0, 0, 0, 0, 1);
  159.       delay(140);
  160.     } else {
  161.       if (ch > 0) {
  162.         ch--;
  163.       }
  164.     }
  165.  
  166.     //銃撃
  167.     if ( PS3.getButtonClick(L1)) {
  168.       mp3_play(10);
  169.       for ( int i = 0; i < 5 ; i++) {
  170.         digitalWrite(LED_2, HIGH);
  171.         delay(80);
  172.         digitalWrite(LED_2, LOW);
  173.         delay(120);
  174.       }
  175.     }
  176.  
  177.     //ヘッドライト
  178.     if (PS3.getButtonClick(RIGHT)) { //点灯
  179.       digitalWrite(LED_8, HIGH);
  180.     }
  181.  
  182.     if (PS3.getButtonClick(LEFT)) { //消灯
  183.       digitalWrite(LED_8, LOW);
  184.     }
  185.  
  186.     //走行コントロール
  187.     pos_y = PS3.getAnalogHat(LeftHatY);
  188.     pos_x = PS3.getAnalogHat(LeftHatX);
  189.  
  190.     //左スティックがセンター付近は停止(ブレーキ)
  191.     if (pos_x >= 117 && pos_x <= 137 && pos_y >= 117 && pos_y <= 137) {
  192.       motor_run(0, 0, 0, 0, 1);
  193.     }
  194.  
  195.     //前進
  196.     else if (pos_y < 117 && pos_x > 117 && pos_x < 137) {
  197.       //左スティック中央(127)から最上部(0)の値をモーターのスピード0から255に変換
  198.       motor_speed = map(pos_y, 117, 0, 0, 255);
  199.       motor_run(motor_speed, 0, motor_speed, 0, 0);
  200.     }
  201.  
  202.     //後進
  203.     else if ( pos_y > 137 && pos_x > 117 && pos_x < 137) {
  204.       motor_speed = map(pos_y, 137, 255, 0, 255) ;
  205.       motor_run(motor_speed, 1, motor_speed, 1, 0);
  206.     }
  207.  
  208.     //前進右旋回
  209.     else if ( pos_y < 117 && pos_x > 137) {
  210.       motor_speed = map(pos_y, 117, 0, 0, 255);
  211.       motor_run(motor_speed, 0, 0, 0, 0);
  212.     }
  213.  
  214.     //前進左旋回
  215.     else if ( pos_y < 117 && pos_x < 117) {
  216.       motor_speed = map(pos_y, 117, 0, 0, 255);
  217.       motor_run(0, 0, motor_speed, 0, 0);
  218.     }
  219.  
  220.     //後進右旋回
  221.     else if ( pos_y > 137 && pos_x > 137) {
  222.       motor_speed = map(pos_y, 137, 255, 0, 255);
  223.       motor_run(motor_speed, 1, 0, 0, 0);
  224.     }
  225.  
  226.     //後進左旋回
  227.     else if ( pos_y > 137 && pos_x < 117) {
  228.       motor_speed = map(pos_y, 137, 255, 0, 255);
  229.       motor_run(0, 0, motor_speed, 1, 0);
  230.     }
  231.  
  232.     //右超信地旋回
  233.     else if ( pos_y > 117 && pos_y < 137 && pos_x > 137) {
  234.       motor_speed = map(pos_x, 137, 255, 0, 255);
  235.       motor_run(motor_speed, 0, motor_speed, 1, 0);
  236.     }
  237.  
  238.     //左超信地旋回
  239.     else if ( pos_y > 117 && pos_y < 137 && pos_x < 117) {
  240.       motor_speed = map(pos_x, 117, 0, 0, 255);
  241.       motor_run(motor_speed, 1, motor_speed, 0, 0);
  242.     }
  243.   }
  244. }
  245.  
  246. void motor_run(int D0, int D1, int D2, int D3, int D4) {
  247.   /* D0 : モータスピード(左)
  248.      D1 : モータA(左)1 = HIGH / 0 = LOW
  249.      D2 : モータスピード(右)
  250.      D3 : モータB(右)1 = HIGH / 0 = LOW
  251.      D4 : LED_3 ON/OFF 1 = HIGH / 0 = LOW
  252.   */
  253.   analogWrite(PWMA, D0);
  254.   digitalWrite(AIN1, D1);
  255.   analogWrite(PWMB, D2);
  256.   digitalWrite(BIN1, D3);
  257.   digitalWrite(LED_3, D4);
  258. }
  259.  
  260. // ====被弾====
  261. void Hit() {
  262.   mp3_play(17);
  263.   motor_run(255, 1, 255, 0, 0);
  264.   delay(150);
  265.   motor_run(0, 0, 0, 0, 1);
  266.   delay(100);
  267.   motor_run(200, 0, 200, 1, 0);
  268.   delay(200);
  269.   motor_run(0, 0, 0, 0, 1);
  270.   delay(50);
  271.   cnt++;
  272.   if ( cnt >= 5 ) {
  273.     motor_run(0, 0, 0, 0, 0);
  274.     mp3_play(18);
  275.     for ( int i = 0; i < 15 ; i++) {
  276.       digitalWrite(LED_8, HIGH);//ヘッドライト点灯
  277.       delay(1000);
  278.       digitalWrite(LED_8, LOW);//ヘッドライト消灯
  279.       delay(1000);
  280.     }
  281.     //delay(30000); //復活までに30秒
  282.     cnt = 0;
  283.   } else {
  284.     delay(1000);
  285.   }
  286. }

 

 

 


1/72 九試単座戦闘機 改修型(その1)

2019-01-06 15:16:34 | 大戦機(日本)

2019-01-06
新年第一号はファインモールドの1/72 九試単座戦闘機 改修型にしました。
逆ガル翼と多数の突出部を持つカウリングなど特徴のある試作機の改修型との事です。

パーツ点数は47とデカールです。

RC化した過去の戦車のユニット載せ替えも考えているので、このキットの製作開始は少し先になりそうです。