2018年11月25日

ガスガン内蔵ヒーター制御装置を作る その4

ヒーター制御装置の実装をします。




マイコンボードは更に小型のものを使います。

Digisparkというマイコンボードの互換機で
マイコンの仕様についてはこちら

このマイコンを使うときは、こちらの手順にしたがって開発環境を
インストールする必要があります。
ただ、不具合があるようなのでインストールパッケージ定義をこちらのものに変更してください。

プログラムは入出力関係を少し変更する必要があります。

//ヒーター制御プログラムテスト(Digispark用)
//入出力ピンの名称変更
#define HEATER 0 //ヒーター制御出力
#define Temp_Input A1 //サーミスタ入力
#define Val_Input A2 //電圧測定入力
#define LED 1 //マイコンLED

//定数の宣言
const int V_R1 = 1000; //電圧測定VIN側抵抗値(Ω)
const int V_R2 = 1000; //電圧測定GND側抵抗値(Ω)
const int B = 4100; //サーミスタB定数
const long T_R1 = 10000; //サーミスタ基準抵抗値[Ω]
const long T_R2 = 10000; //サーミスタバランス抵抗[Ω]
const int T0 = 298; //サーミスタ基準温度[K]
const int Limit_Val = 740; //測定電圧下限値[V×100]
const int Limit_L_Temp = -200,Limit_H_Temp = 400; //正常温度閾値[℃×10]
const int L_Temp = 280; //温度下限値[℃×10]
const int H_Temp = 300; //温度上限値[℃×10]
//変数の宣言
float Vcc = 0; //基準電圧[V]
int Val = 0; //測定電圧[V×100]
int Temp = 0; //測定温度[℃×10]

void setup () {
//入出力ピンの設定
pinMode(HEATER, OUTPUT);
pinMode(LED, OUTPUT);
}

void loop () {
Vcc = cpuVcc(); //基準電圧の取得
Temp = GetTemp(analogRead(Temp_Input)); //温度の取得
Val = GetVal(analogRead(Val_Input)); //電圧を取得

while (Temp > Limit_H_Temp || Temp < Limit_L_Temp){ //測定温度が正常な範囲内から外れると
digitalWrite(HEATER, LOW); //ヒーターをオフにし、マイコンLEDが短い間隔で点滅する
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
}
while (Val < Limit_Val) { //測定電圧が下限値を下回るとヒーターをオフにし、
digitalWrite(HEATER, LOW); //マイコンLEDが長い間隔で点滅する
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(1000);
}

if (Temp <= L_Temp) { //測定温度が下限値以下になると
digitalWrite(HEATER, HIGH); //ヒーターをオンにする
}

if (Temp >= H_Temp) { //測定温度が上限値以上になると
digitalWrite(HEATER, LOW); //ヒーターをオフにする
}
delay(100); //0.1s待つ
}
//センサーの値から温度を計算
float GetTemp (int raw) {
float V_R2 ;
float R ;
float t;

V_R2 = raw * Vcc / 1.024; //バランス抵抗の消費電圧を算出
R = Vcc * 1000.0 / V_R2 * T_R2 - T_R2; //サーミスタの抵抗値を算出
t = (1000 / (1 / (0.001 * T0) + log(R / T_R1) * 1000 / B) - 273); //温度の計算
return (int)(t * 10.0); //10倍にして整数にする
}
//センサーの値から電圧を計算
int GetVal(int A) {
float V;
V = A * Vcc / 1024.0 / V_R2 * (V_R1 + V_R2); //電圧の計算
return (int)(V * 100.0); //100倍して整数にする
}

float cpuVcc() { // 電源電圧(AVCC)測定関数
long sum = 0;
adcSetup(0x0C); // Vref=Vcc, input=internal1.1V
for (int n = 0; n < 10; n++) {
sum = sum + adc(); // adcの値を読んで積分
}
return (1.1 * 10240.0) / sum; // 電圧を計算して戻り値にする
}

void adcSetup(byte data) { // ADコンバーターの設定
ADMUX = data; // ADC Multiplexer Select Reg.
ADCSRA |= ( 1 << ADEN); // ADC イネーブル
ADCSRA |= 0x07; // AD変換クロック CK/128
delayMicroseconds (500); // 安定するまで待つ
}

unsigned int adc() { // ADCの値を読む
unsigned int dL, dH;
ADCSRA |= ( 1 << ADSC); // AD変換開始
while (ADCSRA & ( 1 << ADSC) ) { // 変換完了待ち
}
dL = ADCL; // LSB側読み出し
dH = ADCH; // MSB側
return dL | (dH << 8); // 10ビットに合成した値を返す
}





アナログ入力に干渉するため、
マイコンボードについているツェナーダイオードを取り外しています。



前回試した回路に取り付けて問題ないか確認しました。



実装する回路図はこちら。
ヒューズと電源スイッチ、プログラムを書き込むときに回路を切り離すスイッチを追加しました。





これをケースの中に入れて完成です。

最終的なプログラムはこちら。

//ヒーター制御プログラムVer.1.00(Digispark用)
//入出力ピンの名称変更=================================================================
#define HEATER 0 //ヒーター制御出力
#define Temp_Input A1 //サーミスタ入力
#define Val_Input A2 //電圧測定入力
#define LED 1 //マイコンLED
//定数の宣言===========================================================================
const int V_R1 = 1000; //電圧測定VIN側抵抗値(Ω)
const int V_R2 = 1000; //電圧測定GND側抵抗値(Ω)
const int B = 4100; //サーミスタB定数
const long T_R1 = 10000; //サーミスタ基準抵抗値[Ω]
const long T_R2 = 10000; //サーミスタバランス抵抗[Ω]
const int T0 = 298; //サーミスタ基準温度[K]
const int Limit_Val_S = 740; //待機時電圧下限値[V×100]
const int Limit_Val_M = 730; //稼働時電圧下限値[V×100]
const int Limit_L_Temp = -200,Limit_H_Temp = 400; //正常温度閾値[℃×10]
const int L_Temp = 280; //温度下限値[℃×10]
const int H_Temp = 300; //温度上限値[℃×10]
//変数の宣言===========================================================================
float Vcc = 0; //基準電圧[V]
int Val = 0; //測定電圧[V×100]
int Temp = 0; //測定温度[℃×10]
bool Battry_Low = false; //オートカット用変数
bool Heater_sw = LOW; //ヒータースイッチ
//セットアップ=========================================================================
void setup () {
//入出力ピンの設定=====================================================================
pinMode(HEATER, OUTPUT);
pinMode(LED, OUTPUT);
//起動処理============================================================================
digitalWrite(HEATER, LOW);
digitalWrite(LED, LOW);
}
//メインプログラム=====================================================================
void loop () {
//各センサーの数値を取得===============================================================
Vcc = cpuVcc(); //基準電圧の取得
Temp = GetTemp(analogRead(Temp_Input)); //温度の取得
Val = GetVal(analogRead(Val_Input)); //電圧を取得
//温度異常セーフティ処理===============================================================
while (Temp > Limit_H_Temp || Temp < Limit_L_Temp){ //測定温度が正常な範囲内から外れると
digitalWrite(HEATER, LOW); //ヒーターをオフにし、マイコンLEDが短い間隔で点滅する
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
}
//オートカット判定=====================================================================
switch(Heater_sw == HIGH){
case true:
if (Val < Limit_Val_M){ //ヒーターがオンの時、稼働時下限値以下の時、
Battry_Low = true; //変数Battry_Lowをtrueにする
}
break;
default:
if (Val < Limit_Val_S){ //ヒーターがオフの時、待機時下限値以下の時、
Battry_Low = true; //変数Battry_Lowをtrueにする
}
}
//オートカット処理=====================================================================
while (Battry_Low == true){ //変数Battry_Lowをtrueの時、ヒーターをオフにし、
digitalWrite(HEATER, LOW); //マイコンLEDが長い間隔で点滅する
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(1000);
}
//ヒーター制御処理=====================================================================
if (Temp <= L_Temp) { //測定温度が下限値以下になると
Heater_sw = HIGH; //ヒーターをオンにする
}

if (Temp >= H_Temp) { //測定温度が上限値以上になると
Heater_sw = LOW; //ヒーターをオフにする
}
digitalWrite(HEATER,Heater_sw);
delay(100); //0.1s待つ
}
//センサーの値から温度を計算===========================================================
float GetTemp (int raw) {
float V_R2 ;
float R ;
float t;

V_R2 = raw * Vcc / 1.024; //バランス抵抗の消費電圧を算出
R = Vcc * 1000.0 / V_R2 * T_R2 - T_R2; //サーミスタの抵抗値を算出
t = (1000 / (1 / (0.001 * T0) + log(R / T_R1) * 1000 / B) - 273); //温度の計算
return (int)(t * 10.0); //10倍にして整数にする
}
//センサーの値から電圧を計算===========================================================
int GetVal(int A) {
float V;
V = A * Vcc / 1024.00 / V_R2 * (V_R1 + V_R2); //電圧の計算
return (int)(V * 100.0); //100倍して整数にする
}
//電源電圧(AVCC)測定関数===============================================================
float cpuVcc() {
long sum = 0;
adcSetup(0x0C); // Vref=Vcc, input=internal1.1V
for (int n = 0; n < 10; n++) {
sum = sum + adc(); // adcの値を読んで積分
}
return (1.1 * 10240.0) / sum; // 電圧を計算して戻り値にする
}
//ADコンバーターの設定===================================================
void adcSetup(byte data) {
ADMUX = data; // ADC Multiplexer Select Reg.
ADCSRA |= ( 1 << ADEN); // ADC イネーブル
ADCSRA |= 0x07; // AD変換クロック CK/128
delayMicroseconds (500); // 安定するまで待つ
}
//ADCの値を読む==========================================================
unsigned int adc() {
unsigned int dL, dH;
ADCSRA |= ( 1 << ADSC); // AD変換開始
while (ADCSRA & ( 1 << ADSC) ) { // 変換完了待ち
}
dL = ADCL; // LSB側読み出し
dH = ADCH; // MSB側
return dL | (dH << 8); // 10ビットに合成した値を返す
}


稼働時間を少しでも延ばすため、
ヒーター稼動時と待機時で電圧下限値を変えてあります。



使うときはベルトに取り付けたラジオポーチに入れて使います。  

Posted by 名無しのナナシ at 23:50Comments(0)エアガンカスタムエアガンマイコン

2018年11月11日

ガスガン内蔵ヒーター制御装置を作る その3

前回テストした回路を実装していきます。
まずはガスガン側から。



ガスガン~制御回路の配線は4芯カールコードを使います。



ガスガンと制御回路を切り離せるようにコネクターを取り付けます。



サーミスタはフィルムヒーターに直接接着します。
これはマガジンが装着されていない状態でも温度が上がり過ぎないようにするためです。




万が一の保険に72℃の温度ヒューズを取り付けました。



テストして問題ないか確認。
次回は制御回路の実装を行います。  

Posted by 名無しのナナシ at 23:35Comments(0)エアガンカスタムエアガンマイコン

2018年11月10日

ガスガン内蔵ヒーター制御装置を作る その2

ヒーター制御装置の回路とプログラムを作っていきます。

まずテスト用の回路図を作成しました。



NTCサーミスタを使った分圧回路で温度を検知し、FETでヒーターのオン・オフを行います。
バッテリーの電圧は固定抵抗を使った分圧回路を用いて検知します。



これをブレッドボード上で組み立て、テストを行います。

プログラムの方は、まず温度と電圧を読み取り、シリアルモニタに表示するプログラムを作成しました。

//ヒーター制御入力テスト用
//定数の宣言
const int V_R1 = 1000;     //電圧測定VIN側抵抗値[Ω]
const int V_R2 = 1000;     //電圧測定GND側抵抗値[Ω]
const int B = 4100     //サーミスタB定数
const int T_R0 = 10000;     //サーミスタ基準抵抗値[Ω]
const int T_R1 = 10000;     //バランス抵抗[Ω]
const int T0 = 298;     //サーミスタ基準温度[K]
//変数の宣言
float Vcc = 0;     //基準電圧[V]
int Val = 0;     //測定電圧[V×100]
int Temp = 0;     //測定温度[℃×10]

void setup () {
Serial.begin(9600);     // 9600 bpsで接続
Serial.println("READ_START");     // 最初に1度だけ Start を表示

void loop () {
Vcc = cpuVcc();      //基準電圧の取得
Temp = GetTemp(analogRead(A0));     //温度の取得
Val = GetVal(analogRead(A1));      //電圧を取得
Serial.print("Vcc=");     //基準電圧の表示
Serial.print(Vcc);
Serial.print(" TEMP=");     //温度の表示
Serial.print(Temp);
Serial.print(" V=");     //電圧の表示
Serial.println(Val);
delay(50);     // 0.05s 待つ
}
//センサーの値から温度を計算
float GetTemp (int raw){
float V_R0 ;
float R ;
float t;

V_R0 = raw * Vcc / 1.024;     //回路内抵抗の消費電圧を算出
R = Vcc * 1000.0 / V_R0 * T_R1 - T_R1;     //サーミスタの抵抗値を算出
t = (1000 / (1 / (0.001 * T0)+log(R / T_R0)*1000 / B) - 273);     //温度の計算
return(int)(t * 10.0);     //10倍にして整数にする
}
//センサーの値から電圧を計算
int GetVal(int A){
float V;
V = A * Vcc / 1024.0 /V_R2 * (V_R1 + V_R2);     //電圧の計算
return(int)(V * 100.0);     //100倍して整数にする
}

float cpuVcc(){     // 電源電圧(AVCC)測定関数
long sum=0;
adcSetup(0x4E);     // Vref=AVcc, input=internal1.1V
for(int n=0; n < 10; n++){
sum = sum + adc();     // adcの値を読んで積分
}
return (1.1 * 10240.0)/ sum;     // 電圧を計算して戻り値にする
}

void adcSetup(byte data){     // ADコンバーターの設定
ADMUX = data;     // ADC Multiplexer Select Reg.
ADCSRA |= ( 1 << ADEN);     // ADC イネーブル
ADCSRA |= 0x07;     // AD変換クロック CK/128
delayMicroseconds (500);     // 安定するまで待つ
}

unsigned int adc(){     // ADCの値を読む
unsigned int dL, dH;
ADCSRA |= ( 1 << ADSC);     // AD変換開始
while(ADCSRA & ( 1 << ADSC) ){     // 変換完了待ち
}
dL = ADCL;     // LSB側読み出し
dH = ADCH;      // MSB側
return dL | (dH << 8);     // 10ビットに合成した値を返す
}


以上のプログラムを書き込み、バッテリーを接続後、シリアルモニタを表示すると下のように表示します。
(このプログラムを使う際、マイコンVINの接続を切っておかないと、バッテリー電圧が高く表示されてしまいます。)



うまく表示できたら、今度はヒーターを動かしてみます。



プログラムは以下の通り。

//ヒーター制御プログラムテスト
//入出力ピンの名称変更
#define HEATER 2     //ヒーター制御出力
#define Temp_Input A0     //サーミスタ入力
#define Val_Input A1     //電圧測定入力
#define LED 13     //マイコンLED

//定数の宣言
const int V_R1 = 1000;     //電圧測定VIN側抵抗値(Ω)
const int V_R2 = 1000;     //電圧測定GND側抵抗値(Ω)
const int B = 4100;     //サーミスタB定数
const int T_R0 = 10000;     //サーミスタ基準抵抗値[Ω]
const int T_R1 = 10000;     //サーミスタバランス抵抗値[Ω]
const int T0 = 298;     //サーミスタ基準温度[K]
const int Limit_Val = 740;     //測定電圧下限値[V×100]
const int Limit_L_Temp = -200,Limit_H_Temp = 400;     //正常温度閾値[℃×10]
const int L_Temp = 280;     //温度下限値[℃×10]
const int H_Temp = 300;     //温度上限値[℃×10]
//変数の宣言
float Vcc = 0;     //マイコン電源電圧[V]
int Val = 0;     //測定電圧[V×100]
int Temp = 0;     //測定温度[℃×10]

void setup () {
//入出力ピンの設定
pinMode(HEATER, OUTPUT);
pinMode(LED, OUTPUT);
delay(1000);     //電源投入時1s待つ
}

void loop () {
Vcc = cpuVcc();     //マイコン電源電圧の取得
Temp = GetTemp(analogRead(Temp_Input));     //温度の取得
Val = GetVal(analogRead(Val_Input));      //電圧を取得

while (Val < Limit_Val) {     //測定電圧が下限値を下回るとヒーターをオフにし、
digitalWrite(HEATER, LOW);     //マイコンLEDが長い間隔で点滅する
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(1000);
}

while (Temp > Limit_H_Temp || Temp < Limit_L_Temp){     //測定温度が正常な範囲内から外れると
digitalWrite(HEATER, LOW);     //ヒーターをオフにし、マイコンLEDが短い間隔で点滅する
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
}

digitalWrite(13, LOW);

if (Temp <= L_Temp) {     //測定温度が下限値以下になると
digitalWrite(HEATER, HIGH);     //ヒーターをオンにする
}

if (Temp >= H_Temp) {     //測定温度が上限値以上になると
digitalWrite(HEATER, LOW);     //ヒーターをオフにする
}
delay(100);     //0.1s待つ
}
//センサーの値から温度を計算
float GetTemp (int raw) {
float V_R0 ;
float R ;
float t;

V_R0 = raw * Vcc / 1.024;     //バランス抵抗の消費電圧を算出
R = Vcc * 1000.0 / V_R0 * T_R1 - T_R1;     //サーミスタの抵抗値を算出
t = (1000 / (1 / (0.001 * T0) + log(R / T_R0) * 1000 / B) - 273);     //温度の計算
return (int)(t * 10.0);     //10倍にして整数にする
}
//センサーの値から電圧を計算
int GetVal(int A) {
float V;
V = A * Vcc / 1024.0 / V_R2 * (V_R1 + V_R2);     //電圧の計算
return (int)(V * 100.0);     //100倍して整数にする
}

float cpuVcc() {     // 電源電圧(AVCC)測定関数
long sum = 0;
adcSetup(0x4E);     // Vref=AVcc, input=internal1.1V
for (int n = 0; n < 10; n++) {
sum = sum + adc();     // adcの値を読んで積分
}
return (1.1 * 10240.0) / sum;     // 電圧を計算して戻り値にする
}

void adcSetup(byte data) {     // ADコンバーターの設定
ADMUX = data;     // ADC Multiplexer Select Reg.
ADCSRA |= ( 1 << ADEN);     // ADC イネーブル
ADCSRA |= 0x07;     // AD変換クロック CK/128
delayMicroseconds (500);     // 安定するまで待つ
}

unsigned int adc() {     // ADCの値を読む
unsigned int dL, dH;
ADCSRA |= ( 1 << ADSC);     // AD変換開始
while (ADCSRA & ( 1 << ADSC) ) {     // 変換完了待ち
}
dL = ADCL;     // LSB側読み出し
dH = ADCH;     // MSB側
return dL | (dH << 8);     // 10ビットに合成した値を返す
}


プログラムの動きとしては、
電源接続後、1秒待ってから動作開始。

温度、電圧の取得。

電圧が下限値(7.4V)を下回ると無限ループで停止、LEDを1秒間隔、0.1秒点灯させる。

温度が異常な値(40℃を超え、-20℃を下回る)を示すと無限ループで停止、LEDを0.1秒間隔、0.1秒点灯させる。

温度が下限値(28℃)以下になるとヒーターをオンにする。

温度が上限値(30℃)以上になるとヒーターをオフにする。

以下繰り返し。

テストの結果うまくいったので、次からは実装を行います。  

Posted by 名無しのナナシ at 21:13Comments(0)エアガンカスタムエアガンマイコン

2018年11月10日

ガスガン内蔵ヒーター制御装置を作る その1

以前、このようなものを作りましたが、
問題があり、改良することにしました。

問題点としては、
1.モバイルバッテリーを使用しているので準備に手間と資金がかかる。
2.電圧が5Vでは25℃前後の保温が精一杯。

これらを解決するため、電動ガン用の7.4V LiPoバッテリーを使用したいと思いますが、
これの問題点として、
1.現状のままLiPoバッテリーを繋ぐと非常に高温となり危険。
2.バッテリーが過放電してしまい使用不能になってしまう。

これを解決するためヒーターの制御装置を作ることにしました。



初めはこのような既存の温度センサースイッチとオートカットを使うつもりでしたが、
この回路は動作電圧が12Vで、扱いが難しく頓挫していましたが、
いいものを見つけたのでそれを使います。




Amazonで売っていたマイコンボードです。
Arduino Nanoというマイコンボードの互換機で、
7V~12Vで動作するので7.4V LiPoバッテリーで使うことが出来ます。
これにセンサー類を取り付け、プログラムを書き込めばヒーターの制御装置を作ることが出来ます。



先ほどの温度センサースイッチと比べてとても小型です。

プログラムを書き込むにはArduino IDEという物が必要です。
こちらからダウンロードできます(英語のページ)。
インストール方法などの詳細はこちらから
互換機をそのままPCに接続しても認識しないので、CH340Gというドライバが必要です。
こちらからダウンロードできます(中国語のページ)。



とりあえずLEDを光らせることは出来たので、これから制御回路やプログラムを作っていきます。  

Posted by 名無しのナナシ at 00:15Comments(0)エアガンカスタムエアガンマイコン

2018年11月06日

10月28日、熊本FRONT LINE BATTLE FIELDにて

10月28日に熊本FRONT LINE BATTLE FIELDに行って来ました。
この日はハロウィンイベントがあったのでコスプレした人が多かったです。




















  

Posted by 名無しのナナシ at 00:08Comments(0)サバゲー熊本

2018年09月09日

動画投稿、7月29日分

7月29日、熊本 FRONT LINE BATTLE FIELDの動画を投稿しました。





  

Posted by 名無しのナナシ at 23:55Comments(0)サバゲー動画熊本イベント限定

2018年08月28日

次世代AK47 木製ストック取り付け他

次世代AK47に木製ストック取り付けます。


取り付けるのはMULE(CAW)製の木製ストックです。

まずは純正パーツを取り外します。


ハンドガードの取り外しは説明書P25のヒューズ交換のしかたを参照してください。


ハンドガードについている金属パーツを取り外します。
金属パーツは木製ハンドガードに接着剤を使って取り付けます。
取り付けネジは使わないので純正パーツと一緒に保管します。


グリップは下のネジを取り外せば外れます。
このネジも使わないので純正パーツと一緒に保管します


モーターはEG1000が付いています。


木製グリップは付属のネジで取り付けます。
ネジの頭は黒く塗りました。




ストックは根元のネジを3つ外します。
このネジは木製ストックの取り付けに使います。
木製ストックにはネジ穴が開いていないのでドリルで穴を開けます。
バットプレートは取り外して木製ストックに取り付けます。




取り外したパーツの合計重量は281g。




取り付けるパーツの合計重量は493g。
交換後は重量が212g増加します。


交換後の見た目。
ハンドガードとグリップが純正より太くなっているので、手が小さい人は握りにくくなるかもしれません。

バッテリーは問題無く入りました。


スリングはKM企画のAK用コットンスリングを取り付けます。


銃本体のスイベルの前から後ろにスリングのフック側を通します。


スリングを折り返してバンドを通します。



アジャスターを通して銃身のスイベルにフックを取り付けて完成です。


ガンカメラ取り付け用にバレルマウントを取り付けます。



クリーニングロッドが邪魔になったので外しました。
取り外しはクリーニングロッド先端を下に曲げながら引き出します。


マガジンは8本購入、付属の1本と合わせて9本携行します。



M14用のチェストリグを使ってゲームをしましたが、使いにくかったので
AK用のチェストリグを購入しました。  

Posted by 名無しのナナシ at 22:59Comments(0)エアガンカスタムエアガン

2018年08月22日

東京マルイ 次世代 AK47 TYPE-3

AKが欲しかったので東京マルイの次世代 AK47 TYPE-3を買いました。





見た目は綺麗に出来ていますが、ストック、ハンドガード、グリップはプラに木目風の塗装で
合わせ面がくっきり見えており、フレームはアルミダイキャスト製、
海外製のAKに比べれば目劣りします。
ただ、コストなどの制約上仕方ないと思います。
強度は鈍器として使用しないならば十二分です。
重量は3150g、持った感じはとても軽く感じました。


付属品はBB弾、フロントサイト調整治具、保護キャップ、スタンダード用マガジンを使うためのアダプター2つ
これにクリーニングロッド、チャージャー、説明書が付属します。


バッテリーはハンドガード内に入ります。
7.4V 2000mAhのリポバッテリーを入れてみましたが問題無いようです。


セレクターを操作すると本体に傷が入ります。
操作感は固めです。


ボルトハンドルを引くとホップダイヤルが現れます。
操作感はかなり軽く、奥まで引くと少し重くなり、オートストップを解除できます。


マガジンは分解してリアルカウントにすることができます。
マガジン上部前方の六角ネジを外してマガジンインナーを取り出します。


マガジンインナーのレバーを左にするとリアルカウントになります。


7.4V 2000mAhのリポバッテリーを入れた状態のサイクルと初速。
初速は97m/sを超えることがあり、レギュレーションによってはデチューンが必要でしょう。
リコイルは自分が持っているSCAR-Lに比べて軽めで、フルオートだと心地良いです。
オートストップ機構とリアルな操作感も相まって、撃っていて楽しい銃です。  

Posted by 名無しのナナシ at 23:55Comments(0)エアガン

2018年08月19日

A&K M1ガーランド 調整、手直し

A&K M1ガーランドの調整、手直しを行ないます。
ゲームで使用しながら調整したので少し時間がかかりました。

まずは内部の調整から。

メカボックスはピストンをSHSピストン+マルイ純正ピストンヘッドに、シリンダーをフルシリンダーに交換。


スプリングはKMの0.8Jスプリングに交換。


配線はシリコンコードに交換。
モーターにSBDを取り付け。


インナーバレルは長すぎるので500mmに切断。

チャンバーは色々と難ありなので手間がかかりました。

2重給弾対策に給弾口直上(赤丸の場所)に弾止まりの窪みをつけます。


ホップクッションが入るようにホップ窓を拡張します。


ホップ窓にはいる大きさにホップクッションを切ります。


元から付いていたホップパーツをホップクッションの高さに合わせて調整します。


上の2つを接着して1つにします。


ホップパッキンをマルイ純正に交換、ガタ取りにテープを巻きました。


初速は91~93m/s前後になりました。

内部の調整は終わり、今度は外装の手直しです。


ストックの塗装が良くなかったので、サンダーで全て削り落としました。



塗装はワトコオイルのマホガニー、ダークウォルナットを使いました。


こんな感じで仕上がりました。


レシーバー左の忌まわしいセレクターをオミットします。
セレクター自体はネジを外せば取れます。
あとは削ってパテで埋めて再塗装するので、他の部品を取り外します。




リアサイトは左のネジを取り外し、シャフトを右から取り外すと全て外せます。



ボルトリリース(マガジンキャッチ)はレシーバーを裏返し、前に付いている芋ネジを取り外し、
シャフトを前に押し出すと取り外せます。
だた、構造がおかしいのでシャフトを押し出すのが難儀です。
細いマイナスドライバーをねじ込んで押し出しました。



元の塗装を塗装はがし剤を使って剥がします。
あまり強い塗装ではないようで簡単に剥がれました。



削りとパテ埋めした後、ラッカースプレーのつや消し黒で塗装しました。
あとは元通りに組んで本体は完了です。

最後にマガジンの手直しを行ないます。



弾薬ポーチに入れるのにマガジンに付いているプレートが邪魔なので取り外します。
マガジンに引っかかっているだけなので簡単に外せます。



弾薬ポーチに入れるとこんな感じです。


プレートを外したままだと見た目が悪いので、マガジン交換時にプレートを付け替えることにしました。
ただ、リロードはやり難くなってしまいます。


マガジンを傾けるとプレートが自重で脱落してしまうので、
プレートにアルミテープを貼って脱落しないようにしました。


わずかな衝撃で弾をぶちまけたので、プラリペアでストッパーを延長しました。

これで全て完了です。  

Posted by 名無しのナナシ at 20:09Comments(0)エアガンカスタムエアガン

2018年08月16日

動画投稿、7月15日分その2

7月15日、熊本 FRONT LINE BATTLE FIELDの動画を投稿しました。





  

Posted by 名無しのナナシ at 23:19Comments(0)サバゲー動画熊本

2018年08月15日

サマトリウム・コバルトモーター試してみた

夏のボーナスが出たので、サマトリウム・コバルトモーターを買ってみました。



巷ではすごいと評判のモーターですが、正直「モーターごときに1万円も出せるか!」と思って今まで手を出さずにいました。



M14に入れるのでフォートレスのショート加工済みのものを買いました。



M14にはEG1000を入れていたのでそれと比較をします。
それぞれの発射音を録音してみました。
なお、M14にはライラクスのダブルトルクギアが組み込まれているのでサイクルが純正より遅くなっています。

EG1000モーター発射音


サマトリウム・コバルトモーター発射音


音を聞いた感じだとなんとなく変わったような気がするのですが、よく分からないので
編集ソフトを使って視覚化してみました。

セミオートの発射音(クリックで大きく表示します)

上の数字はフレーム数で、速度を10%にしてあるので600フレーム/秒です。
赤い線が発射音の先頭を示しています。
サマトリウム・コバルトモーターが約4フレーム早いのが分かります。


フルオートの発射音(クリックで大きく表示します)

こちらは速度を100%にしてあるので60フレーム/秒です。
どちらも約11発/秒で、立ち上がりはサマトリウム・コバルトモーターの方が早く
次第にEG1000モーターに追い越されています。

比較した感想は
セミオートでは確かに違いは出ますが、かなりの僅差です。
ただ、今回試したM14は低負荷型なので高負荷のカスタムなら違いは大きくなると思います。
フルオートでは3発ほどのバースト射撃なら有利です。
じっくり狙って撃つ銃に適したモーターだと思います。
  

Posted by 名無しのナナシ at 12:02Comments(0)エアガンカスタムエアガン

2018年08月15日

8月12日、大分CAMP御戦フィールドにて

8月12日に大分のCAMP御戦フィールドに行ってきました。
フィールドホームページ https://camp-onsen.com/





平地のCQBエリアと山の斜面を利用した森林エリアがある複合フィールドです。
至近距離での撃ち合いが多発するのでフェイスガードの装備をお勧めします。
またゲームの流れがかなり早いので、あまり重装備すると大変です。
装備をなるべく軽くし、銃もコンパクトな物を使うと良いでしょう。

























  

Posted by 名無しのナナシ at 00:29Comments(0)サバゲー大分

2018年08月02日

7月29日、熊本FRONT LINE BATTLE FIELD G&Gコラボイベントにて

7月29日に行なわれた熊本FRONT LINE BATTLE FIELD G&Gコラボイベントに行ってきました。
途中で雨で中止になってしまいましたが楽しめました。






























  

Posted by 名無しのナナシ at 22:51Comments(0)サバゲー熊本イベント限定

2018年07月26日

動画投稿、7月15日分その1

7月15日、熊本 FRONT LINE BATTLE FIELDの動画を投稿しました。





  

Posted by 名無しのナナシ at 23:30Comments(0)サバゲー動画熊本

2018年07月19日

動画投稿、6月17日分その2

6月17日、熊本砂銃フィールドの動画を投稿しました。





  

Posted by 名無しのナナシ at 23:35Comments(0)サバゲー動画熊本

2018年07月18日

手持ちのゴーグルをサイドレールマウントに改造

ヘルメットをサイドレール付きに替えたので、手持ちのゴーグルを
サイドレールマウントに改造します。



改造するために用意したのは
FMA OPS-CORE ヘルメット用 ゴーグルスイベルクリップ 36mmです。
これをゴーグルのストラップに取り付けます。



ゴーグルのストラップを半分に切って、片方にスイベルクリップを縫い付け、
もう片方はゴーグルのフレームを通してアジャスターで止めます。



もう一方も同じようにして完成です。



ヘルメットへの取り付けは、まずスイベルクリップの基部をサイドレールに取り付けます。



スイベルクリップの基部にストラップ側のパーツを取り付けます。
外すときは取り付けと逆の順序です。  

Posted by 名無しのナナシ at 23:09Comments(0)装備装備カスタム

2018年07月16日

7月15日、熊本FRONT LINE BATTLE FIELDにて

6月15日に熊本のFRONT LINE BATTLE FIELDへ遊びに行きました。
フィールドのホームページ(Amebaブログ)

今回は新しいガンカメラ用のマウントを使っています。
サイドレールのない銃でも安定して撮影できるようになるでしょう。































































  

Posted by 名無しのナナシ at 22:10Comments(0)サバゲー熊本

2018年07月12日

動画投稿、6月17日分その1

6月17日、熊本 砂銃フィールドの動画を投稿しました。





  

Posted by 名無しのナナシ at 21:42Comments(0)サバゲー動画熊本

2018年07月05日

自分だけのタクティカルヘルメットを作る

BDUの新調ついでにヘルメットを新調することにしました。



今回はスケボー用のヘルメットをイーグルフォースのヘルメット用部品を使って改造し、
自分だけのヘルメットを作ります。




元々付いていた内張りと顎紐を取り外します。




サイドレールをヘルメットの輪郭に合わせ、取り付けネジ用の穴を開けます。




サイドレールを仮止めし、サイドレールに合わせてヘルメットを切ります。
元から開いている穴はプラリペアで埋めました。





新たに取り付ける内張りがヘルメットの形状に合っていないので
削り、空気穴を開けました。






前と後ろの空気穴に弾が入らないようにステンレスメッシュを張りました。



GoPro用マウントを接着。
これから塗装に入ります。



塗装下地としてストーン調スプレーを使います。
これは塗料の中に砂が入っており、表面がザラザラになります。




メッシュの目が詰まらないように下地の時だけマスキングします。
ヘルメットは水研ぎしてあります。



下地塗装後の状態。



新調したBDUに合わせて塗装します。
使用した塗料は
ニッペ ホビー用スプレー アイボリー
Mrカラースプレー タン
Mrカラースプレー ルマングリーン
タミヤカラー オリーブドラブ2
Mrカラースプレー ダークグリーン
ニッペ ホビー用スプレー ライトカーキ
Mrカラースプレー つや消しブラック











こんな感じになりました。




ベルクロを貼り付け、空気穴に合わせて切り抜きました。




内装を取り付けて完成。  

Posted by 名無しのナナシ at 21:08Comments(0)装備装備カスタム

2018年06月28日

動画投稿、5月20日分

5月20日、福岡サバゲーランド新宮店の動画を投稿しました。





  

Posted by 名無しのナナシ at 20:08Comments(0)サバゲー動画福岡