忍者ブログ

あやの

NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 DCC館 http://1st.geocities.jp/dcc_digital/ DCC2号館 http://dcc.client.jp/

2019/04    03« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  »05
※やっつけ記事なので、色々と適当です・・・

ちょっと分かりにくいですけど、φ0.5の光ファイバーを瞬間接着剤で固定して、
車内まで引き込んでいます。
カーボンロッドを使うと強度とかも良さそうですが、見た目重視の為、
光ファイバーを使いました(強度が無いんだけどね・・・)



そして、サーボモーターを収める為に、車両を刻みますw
ホットナイフが欲しいですね。


くり抜きました。


こんな感じに収まる予定。
この後、0度でパンタ下限、90度でパンタ上限を実現させるには、下の写真の
位置では都合が悪いので、上側に移動させる為に、さらに刻みました。



サーボホーンの穴に光ファイバーを通してダイソーで買ってきた
エポキシ接着剤で固定します。

※ツナ缶は、ゴミ入れですw(以外と便利)

サーボモーターはダイソーで売っていたクールガン(ポリガン)で
固定しました。


HK-5320を5個仕入れましたので、人柱用に配布しようかなと。


最初、F4 OFF時に0deg、F4 ON時に90degの設定で動かしてますが、
途中エポキシ接着剤がはがれましたw
次のDCS50Kで何をやっているかと言いますと、
CV62はON時の角度なので、50deg、CV63はOFF時の角度なので、9degに
設定します。(後日動画を撮り直します)


動画撮る前に、上下の角度を9deg,50degに調整していい感じに昇降ができていたのですが、
動画を撮る為に、デフォルトの0deg,90degに設定して撮影したところ、無理掛かって
接着剤が外れましたw

ちなみに、デコーダーにトルクがかかると、「み゛ー」とサーボから音がし出して、
かなり電流が流れるようで、3端子レギュレータがものすごく熱くなります。
「み゛ー」と鳴らないように、CV62と63を使って角度を調整してあげます。

車体を刻めば、HK-5320が入り、Nゲージでもパンタグラフを昇降させるギミックの
実装が可能です。

拍手[0回]

PR
なんとか形になりましたの、パンタグラフ昇降スケッチの紹介します。



例の小型サーボモータを使って、SmileFunctionDecoderの応用例として、
パンタグラフ昇降を想定した、サーボモータを動かしてみました。
ちなみに、プログラム内でこんなパターンを作っておきます。

//panta patern
//Cmd,Time,deg
//O:出力,E:終了
byte upptn[7][3]  = {{'O',0,0},{'O',4,90},{'O',4,70},{'O',4,90},{'4',5,80},{'O',4,90},{'E',0,0}};
byte downptn[5][3] = {{'O',0,80},{'O',4,0},{'O',2,10},{'O',2,0},{'E',0,0}};

動画では、F4は単純に200msで0degから90degを動かしています。
F3がパンタグラフの昇降を模擬させています。




参考にした動画はこれでです。
パンタグラフが架線にあたり、一度跳ね返っている動作を模擬しましたw
下ろすときも、なんとなく跳ね返っている動作を入れました。



ATtin85のPWMは8bitしかないので、細かな角度設定が実は難しいです。
周波数も狙った値にできなくて、キャリアは236Hzです(いいのかな?)
0〜90degの分解能は1.3degです。(中途半端ですね・・・)
なので、サーボモータの移動量はfloatで計算させています。




メモ
Arduino使って、状態遷移を使って動かす場合、一定の時間で駆動される(イベントドリブン)
プログラムを作る場合、状態遷移部分に定期的にアクセスする必要があります。
処理が重くなっていないかを確認するのに、I/Oピンに信号を出力させて、
オシロスコープで波形を確認して周期を確認します。

digitalRead()で読み込んだ値に!を付けて反転させて、digitalWriteで出力させ、



波形でみると、こんな感じにパタパタするので、上記のプログラムの場合、10ms周期でアクセス
される為、ちゃんと動いていることが確認できます。
digitalWriter(O3,!digitalRead(O3)); の組み合わせはちょっと便利です。




シリアルデバックする際に、float内の変数を出力させようと、sprintf を使っていましたが、
ちゃんと表示されず、変だなと思ったらArduinoはdtostrf()を使わないとダメだそうです。
 

拍手[0回]

ちょっと前に購入した、
小型のサーボモータ「HK-5320 Ultra-Micro Digital Servo 1.7g」を取り寄せてみました。
ですが、とりあえず、SmileFunctionDecoderに繋げてみました。

買ってきた時のレビュー
ちなみに、通常は0deg〜90degの範囲で使いますが、実験した所±15degほど余裕がありました。
(0deg〜120degまで行けます)


分度器の左が0deh、上が90degです。


DCCの電源を入れると0degに合わせます。
動画ではその後,F4を記録したコマンドを受信して、90degに変わります。


サーボモータ駆動時は結構電流を消費しているので、5Vラインの落ち込みが
大きいので、キープアライブコンデンサが必要かも。

動画はF4でOn/Offを制御させ、Offで0deg、Onで90degまでサーボモーターが動きます。
CV設定で色々パラメータをもたせました。

#define CV_zeroDeg 60       // 0deg時のPWMの値
#define CV_ninetyDeg 61     // 90deg時のPWMの値
#define CV_onDeg 62         // on時の角度
#define CV_offDeg 63        // off時の角度
#define CV_initDeg 64       // 起動時の角度
#define CV_onSpeed 65       // off->onに移行する時間
#define CV_offSpeed 66      // on->offに移行する時間

この処理入れたら、また8kbyteのメモリをほぼ食い尽くしてしまいました。

onからoffに戻したときに、行き過ぎてしまうので、どっかバグっているかも。

今後の実装予定
・シーケンス(プログラム運転)機能
(パンタグフを上げた時の架線との接触時にビヨンビヨンするギミック等w
・スロットルとの連動した角度設定
 何使うんだw(単に面白そうだからw
・リクエスト、アイディアありましたら、ください。

拍手[0回]

ブログ内検索

プロフィール

HN:
あやのすけ
性別:
非公開
<< Back  | HOME
Copyright ©  -- あやの --  All Rights Reserved
Design by CriCri / Material by もずねこ / powered by NINJA TOOLS / 忍者ブログ / [PR]