So-net無料ブログ作成
  • ブログをはじめる
  • ログイン

Cバネの影響 [APS]

見直したら、図が間違っていたので、張りなおし。


再来週は京都で、公式練習会だったかなが開かれますが、すでに、枠いっぱいで出場できないしおじゃけです。今回もトリガープルネタです。

Cスプリングをはずすと軽くなるけど、キレが悪くなる。なんていわれておりますがいったいどういうことかというと、図示してやろうじゃないかということで、前回紹介したトリガーゲージを使ってとってみました。

この絵は、トリガーゲージの隠し機能である、シリアル通信ログをエクセルでグラフ化したものだけど、
CSpring.jpg

赤線がバネあり、青線がバネなしです。
いわれているとおり、トリガープルが566から350まで減少しています(gってかいてあるけど、グラムかどうかは不明。まあ、傾向ということで)。
なるほど軽くなってる。
でも、思っていたものとは波形が違う気がします。

トリガープルは実際にはバネと、シアの摩擦で作ってあり、シアの関係が変わらないのであれば、トリガープルは、

F=kxに従うことに穴なり、両者ともファーストステージ途中の6mm位までは、この法則に見事にのっとっています。

6mm以降は最初の変曲点があらわれます。たぶんここで、シアA(Bかな)が作動し始め、7.4mm付近から本引きが始まり、
Cバネなしのほうでは、8.7mm辺りで撃発される。問題はCバネありのほうで、Cバネが入るとCシアが有効な働きをして、重くなるのは、よくて、8.7mmあたりから本引きに当たるトリガープルになる。どれが本引きと感じてるのかよくわからないので、ちょっと差分でグラフをかいてみたm

まず、バネあり
WithCSpring.jpg
グラフをよく見るとなんとく二つのトレンドがあるように見える。たぶん最初のシアの傾向とCシアの傾向だと思うんだけど、本来連続で作用するはずだからこんな風に見えることはないような気がするし。出もチョコチョコあるけど、8.8ぐらいから後に大きな山があり、これが本引きに見えてるような気がする。

続いてバネなし。
withoutCSpring.jpg
撃発てんより後ろにあるのはちょっとおいといて、バネなしの面白いところは、撃発の瞬間は、ほぼ差分が出ていない(これは前と一緒ということ)なるほど切れる瞬間がわかりにくいというのはあってるのかもしれない。

LEとかのデータは無くしちゃったので、また次回。


コメント(0) 
共通テーマ:趣味・カルチャー

トリガーゲージ [APS]

前々回の記事でコレでいいのSPI版のLCDを紹介した。
液晶画面というのは、いままでの入出力デバイスの中で、2次元でも表現できるとんでもないもんだと思う。それがチョチョイといじくれば、自分の思い通りに操作できるのはどう考えてもすごい。

これを自由に制御できるとうれしいなあ。でもなんに使うんだろ。

とかおもうまえに、グラフ表示を使用なんて思いついたんだけど、何に適用しようかと思ったら、

トリガーゲージ

置き針式のトリガーゲージだと、切れたときの重さは表現できるけど、そこにいたるまでの荷重変化は見えない。
世のなかそんなものは必要ないのであれば、作ってしまえとばかりにすでにつくられたかたが、ここにいるが、もうちょっとデジタルな感じでやってみることにした。


ということで、まずは、土台の設計から。ということで、いつものFUSION360で、図面作成。
おいらは製図なんぞはやったことないので、形状を作るという観点でしかできないし、強度計算なんかもできない。ただのモデリングツールとして使用。だけど、こいつは直感的でやりやすい。
TriggerGage v7.png

で、去年の夏ごろお目見えした3Dプリンターによって、出力するだ。
iphone/image-20160217221822.png

で、印刷したパーツをくみ上げていくわけだけど、その段階の写真はないので、そのつもりで。

スライダーの移動は、ステップモータでドライブした、スレッドロッドなんだけど、実は、5mmの150mmのステンレスなべボルトの頭を落としたやつ。あたま落とさないほうが造形的に面白かったかもしれないけど、まあいい。
iphone/image-20160217221924.png

スライダーには、プレッシャーバーが設置されている。片方がねじ止めされていてそこを支点として、作用点に圧力センサ、力点にトリガーが当たるようになっている。明確にトリガーに当たるようにするために、そこには、電動消しゴムが半分の長さで搭載されている。

iphone/image-20160217221834.png

搭載されているセンサは、
スライダーゼロポジションセンサ(実はスイッチ)、圧力センサ、と音声センサが搭載してある。
音声センサは撃発を検出しようと思ったけど、定数の設定が悪いのか0ボルトまでキッチリ引きなくて、割り込みトリガにならない。0.4V位まではさがらないといけないけど、0.7Vまでしか下がらない。抵抗をもっとでかいのにすればいいとおもうけど、使わないことにした。
iphone/image-20160217221917.png

ユーザからの制御用の入力装置としては、スイッチが二つ。リセットスイッチと、実行スイッチ。
iphone/image-20160217221908.png

見えるかな。リセットスイッチは、コレでいいののリセットそのもので、リセット=コンピュータのリセットとなっている。
ソリッドステートのArduinoは、規模が小さいけど、処理が定型なら、その辺気にしなくて良いから良い。



リセットが押される。もしくは、電源が入ると、スライダーを左端に移動させる。動画だとすでに銃が載ってるけど、基本的には、銃はないとおもう。左端まで移動が終わると、LEDで準備完了を表示する。

このとき、と銃を置くに十分なクリアランスができるので、そこで、銃を設置し、コッキングを行い、測定ボタン(ビデオの中では実行ボタンだったり、ランボタンだったりいろいろ呼び方があるぼたんだけど)、を押すと計測が始まる。



動作が開始されると、開始点(最初にトルクがかかる点)を探しに良く。”Find start”。
スライダーは、トリガーに触れるまでは荷重がかからないので、荷重がかかるまでスライドし、0.5mmほど後退させ”Revert 0.5mm”、その点をトリガー0ポイントとする。
この時点で、画面は第1象限グラフに切り替わる。

その後は、700g相当の荷重がかかるまで、右にスライド、荷重の計測を繰り返し、現在位置、と荷重をプロットしていく。
トリガーのリリースポイントまで行くとストンと荷重が減るところがあるので、その直前の最大値をトリガープルとして表示する。
その後も、後引きを表示するために、700gになるまで、加圧し続け、グラフを表示する。


ていうわけ。
1.png

このグラフのいままでの仕掛けだとできないはずだけど、説明は次回。



コメント(4) 
共通テーマ:趣味・カルチャー

プレートタイマー [Arduino]

Arduinoシリーズで、プレート用のタイマー作ってみました。
単純にボタンを押すと1秒間ブザーがなり、その後2秒間の無音のあと1秒間のブザーがなるものです
image-20160128225150.png

今回のはAVR単体みたいなArduinoもどきの”あちゃんでいいの”を使ってます。これもアイテンドです。
image-20160128225219.png

考えてみればただのAVRに水晶つけただけみたいな回路なので、秋月のPICのキットの4558のとあまり
変わらない。書き込み用の装置だけそろえてしまえば、こっちのほうがいろいろ手軽にできる感じではあります。


ただArduinoIDEはリモートデバッグができないので、その辺りはちょいとPICのほうが勝ってるかもしれない。もっとも石によるんだけどね。
ICSP端子ももともとあるわけだから本当はリモートデバッグできるのかもしれないけど。

ちょっと本気で組むとちょっと面倒かもしれないけど、USBを使ったprintfデバッグができるので、まあ、それなりってところかも。
あんまりほしい人もいるとは思わないけど、参考に。
#define BUZZ    9
#define TRIGGER 10
#define MODE    11
#define LED     13
int sw=0;
int md=0;
int fl=0;
int mdDly=0;

void setup() {
  pinMode(BUZZ,OUTPUT);
  pinMode(TRIGGER,INPUT);
  pinMode(MODE,INPUT);
  pinMode(LED,OUTPUT);
  
  // put your setup code here, to run once:
  digitalWrite(BUZZ,LOW);
  sw=0;
  md=digitalRead(MODE);
  sw=digitalRead(TRIGGER);
  if (md==1){
    digitalWrite(LED,HIGH);
  }
  if (sw==1){
      mdDly=1;
      long rs=0;
      digitalWrite(LED,HIGH);
      while(sw==1){
        rs++;
        delay(10);
        if (rs>100000){
          rs=0;
        }
        sw=digitalRead(TRIGGER);
      }
      digitalWrite(LED,LOW);
      randomSeed(rs);
      delay(1000);
  }
}

void loop() {
  // put your main code here, to run repeatedly:

  sw=digitalRead(TRIGGER);
  md=digitalRead(MODE);

  if(md ==1 || sw==1){
    if (mdDly){
      int dt=2000+random(1000);
      delay(dt);
    }
    digitalWrite(BUZZ,HIGH);
    delay(1000);
    digitalWrite(BUZZ,LOW);
    delay(2000);
  };
  if (sw ==1){
    digitalWrite(BUZZ,HIGH);
    delay(1000);
    digitalWrite(BUZZ,LOW);
  }
}

コメント(0) 
共通テーマ:趣味・カルチャー

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。