あやの
NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 借りている容量が最大に達しましたので、移転します。 ★移転先:http://maison-dcc.sblo.jp/
しばらく向かっていませんでしたが、納期があると仕事が進むというかw
なんとか、サーボモータアクセサリデコーダ(ポイント用ですね)と
サーボモータファンクションデコーダができました。
DCCの配線(赤・黒)とサーボモータの配線(茶:com・赤:-5V・黄:sig)
手元に電解コンデンサがなかったので、タンタルコンデンサ16V-100uFを実装
確認したのは、右の白いサーボモータHobbykingで売っているHK-5320
左のはリニアタイプのサーボモータ
1.5g Goteck Servo Micro Digital Analog Servo Loading Linear Actuator Servo inm https://ebay.us/byE5vF
ソースはqittaに上げました。
DCC サーボモータアクセサリデコーダ
https://qiita.com/masashi_214/items/09dc328c95dfb61fd161
DCC サーボモータファンクションデコーダ(DCC Servo Function Decoder)
https://qiita.com/masashi_214/items/14ea9cd830f56a31ccf8
動画
こんな感じ(^^; や、こんな感じ。メカ部がいまいちなので、ギクシャク
補足説明
・ON/OFFの状態を都度EEP-ROMに書き出しています。
・ファンクションデコーダの方はコマンドステーションの起動時に一度0を送るようなので、
一旦OFFになります。
CV値
DCC サーボモータアクセサリデコーダ
CV01 : 3 DCCアドレス
CV08 : xx デコーダーリセット
CV17 : 0 DCCアドレスXX XXYY
CV18 : 0 DCCアドレスYY XXYY
CV60 : 8 位置0時のパルス幅 8で500uS
CV61 : 36 パルス幅 36で2400uS
CV62 : 180 ON時の角度
CV63 : 0 OFF時の角度
CV64 : 0 電源を切る前の角度(未使用)
CV65 : 20 On時の速度 20:2000msec
CV66 : 20 Off時の速度 20:2000msec
CV67 : 0 電源を切る前のON/OFF情報
CV値
DCC サーボモータファンクションデコーダ
CV01 : 3 DCCアドレス
CV08 : xx デコーダーリセット
CV17 : 0 DCCアドレスXX XXYY
CV18 : 0 DCCアドレスYY XXYY
CV60 : 8 位置0時のパルス幅 8で500uS
CV61 : 36 パルス幅 36で2400uS
CV62 : 180 ON時の角度
CV63 : 0 OFF時の角度
CV64 : 0 電源を切る前の角度(未使用)
CV65 : 20 On時の速度 20:2000msec
CV66 : 20 Off時の速度 20:2000msec
CV67 : 0 電源を切る前のON/OFF情報
CV68 : 4 ファンクション番号
配布は悩み中。タンタルコンデンサ付けたり、リード付けるのがメンドくさい・・・。
(作業時間に対する価格が釣り合わない(^^;
なんとか、サーボモータアクセサリデコーダ(ポイント用ですね)と
サーボモータファンクションデコーダができました。
DCCの配線(赤・黒)とサーボモータの配線(茶:com・赤:-5V・黄:sig)
手元に電解コンデンサがなかったので、タンタルコンデンサ16V-100uFを実装
確認したのは、右の白いサーボモータHobbykingで売っているHK-5320
左のはリニアタイプのサーボモータ
1.5g Goteck Servo Micro Digital Analog Servo Loading Linear Actuator Servo inm https://ebay.us/byE5vF
ソースはqittaに上げました。
DCC サーボモータアクセサリデコーダ
https://qiita.com/masashi_214/items/09dc328c95dfb61fd161
DCC サーボモータファンクションデコーダ(DCC Servo Function Decoder)
https://qiita.com/masashi_214/items/14ea9cd830f56a31ccf8
動画
こんな感じ(^^; や、こんな感じ。メカ部がいまいちなので、ギクシャク
補足説明
・ON/OFFの状態を都度EEP-ROMに書き出しています。
・ファンクションデコーダの方はコマンドステーションの起動時に一度0を送るようなので、
一旦OFFになります。
CV値
DCC サーボモータアクセサリデコーダ
CV01 : 3 DCCアドレス
CV08 : xx デコーダーリセット
CV17 : 0 DCCアドレスXX XXYY
CV18 : 0 DCCアドレスYY XXYY
CV60 : 8 位置0時のパルス幅 8で500uS
CV61 : 36 パルス幅 36で2400uS
CV62 : 180 ON時の角度
CV63 : 0 OFF時の角度
CV64 : 0 電源を切る前の角度(未使用)
CV65 : 20 On時の速度 20:2000msec
CV66 : 20 Off時の速度 20:2000msec
CV67 : 0 電源を切る前のON/OFF情報
CV値
DCC サーボモータファンクションデコーダ
CV01 : 3 DCCアドレス
CV08 : xx デコーダーリセット
CV17 : 0 DCCアドレスXX XXYY
CV18 : 0 DCCアドレスYY XXYY
CV60 : 8 位置0時のパルス幅 8で500uS
CV61 : 36 パルス幅 36で2400uS
CV62 : 180 ON時の角度
CV63 : 0 OFF時の角度
CV64 : 0 電源を切る前の角度(未使用)
CV65 : 20 On時の速度 20:2000msec
CV66 : 20 Off時の速度 20:2000msec
CV67 : 0 電源を切る前のON/OFF情報
CV68 : 4 ファンクション番号
配布は悩み中。タンタルコンデンサ付けたり、リード付けるのがメンドくさい・・・。
(作業時間に対する価格が釣り合わない(^^;
PR
久しぶりに、DCC用サーボモータスケッチを動かしたら、すっかり忘れていて、
思い出しながらソースをいじっていました。
このまま進展無いのもアレなので、SmileFunctionDecoder Servoセットとして、
通販のページに追加しました。
Webページも記事を追加しました。
在庫数0ですが、最近、出張ばかりで自宅にいないので(^^;
こんな感じに、HobbyKingのHK-5320を接続した状態で動作確認した上で
配布しようかなと考えています。
スケッチは読みやすい様に改良中です・・
前に色々確認したDCC servoの記事はこちら。
思い出しながらソースをいじっていました。
このまま進展無いのもアレなので、SmileFunctionDecoder Servoセットとして、
通販のページに追加しました。
Webページも記事を追加しました。
在庫数0ですが、最近、出張ばかりで自宅にいないので(^^;
こんな感じに、HobbyKingのHK-5320を接続した状態で動作確認した上で
配布しようかなと考えています。
スケッチは読みやすい様に改良中です・・
前に色々確認したDCC servoの記事はこちら。
今日も、わけのわからない書き込みですw
SmileFunctionDecoder使って、サーボモータ用のスケッチ(プログラム)を
作っているんですね。
■やった事
オシロスコープで5Vラインとサーボモータ制御線を観察
サーボモータの制御終了後、現在の角度をCV値としてEEP-ROMに書き出すようにした。
線路電圧が掛かった最初に前回の最終角度を読みだし、コマンドステーションから
送られていくるコマンドと比較して、角度スーイープ処理を入れて初期角度を設定
するようにした。
■わかった事
5V系に電解コンデンサを33uFつけてみたが、電圧降下にあまり効果がなかった。
(三端子レギュレータの供給能力不足)
サーボモータを急変させると電流が多く流れる。
起動時に前回の角度を読み出す方法はうまくいった。
DCS50Kは前回のファンクッションの状態を覚えており、
最初F4=offしばらくして、F4=onを送ってくるので、前回onで終わらせた状態を
EEP-ROMに記録しているのに、一度サーボモータがoffになって、またonになる
動きが見られた(どうしようもない・・・)
■次やる事
パンタグラフステートマシンも同様の処理を加えて動作確認
パンタグラフとサーボモータ間の光ファイバロッドの修理
----
以下の波形は黄色がサーボモータの制御波形、水色がデコーダの5V
サーボモータの角度を急変させた時、2.82Vまで低下しています。
5Vラインに電解コンデンサを足しても、大差ありませんでした。
数百uFくらい積まないとだめなんでしょうね)
多少5Vがドロップしても動くので良しとします?!
プログラムはこんな感じに、サーボモータの制御完了時に現在の角度を書き出す様に
しました。
analogWriter()関数を使っていると、シリアルデバックコマンドの関数がメモリに
入りきらないので外してカット&トライでデバックしていましたが、
中々取れないんで、夕飯以降はw
analogWrite()関数を全部コメントアウトして、シリアルデバックしていました。
※サーボモータの動作がないので、数値だけでデバックする事になります。
ステートマシンで作ってあるので、ステートと現在の角度をシリアル出力させるだけで、
分岐条件とか目に見えるので、すぐバグが見つかります。
間違って、Dcc.setCV(initDeg.nowDeg); と書いていました。
※変数initDegはCV番号では無く、初期角度を格納している変数w
CV_initDegと書く必要がありました。
SmileFunctionDecoder使って、サーボモータ用のスケッチ(プログラム)を
作っているんですね。
■やった事
オシロスコープで5Vラインとサーボモータ制御線を観察
サーボモータの制御終了後、現在の角度をCV値としてEEP-ROMに書き出すようにした。
線路電圧が掛かった最初に前回の最終角度を読みだし、コマンドステーションから
送られていくるコマンドと比較して、角度スーイープ処理を入れて初期角度を設定
するようにした。
■わかった事
5V系に電解コンデンサを33uFつけてみたが、電圧降下にあまり効果がなかった。
(三端子レギュレータの供給能力不足)
サーボモータを急変させると電流が多く流れる。
起動時に前回の角度を読み出す方法はうまくいった。
DCS50Kは前回のファンクッションの状態を覚えており、
最初F4=offしばらくして、F4=onを送ってくるので、前回onで終わらせた状態を
EEP-ROMに記録しているのに、一度サーボモータがoffになって、またonになる
動きが見られた(どうしようもない・・・)
■次やる事
パンタグラフステートマシンも同様の処理を加えて動作確認
パンタグラフとサーボモータ間の光ファイバロッドの修理
----
以下の波形は黄色がサーボモータの制御波形、水色がデコーダの5V
サーボモータの角度を急変させた時、2.82Vまで低下しています。
5Vラインに電解コンデンサを足しても、大差ありませんでした。
数百uFくらい積まないとだめなんでしょうね)
多少5Vがドロップしても動くので良しとします?!
プログラムはこんな感じに、サーボモータの制御完了時に現在の角度を書き出す様に
しました。
analogWriter()関数を使っていると、シリアルデバックコマンドの関数がメモリに
入りきらないので外してカット&トライでデバックしていましたが、
中々取れないんで、夕飯以降はw
analogWrite()関数を全部コメントアウトして、シリアルデバックしていました。
※サーボモータの動作がないので、数値だけでデバックする事になります。
ステートマシンで作ってあるので、ステートと現在の角度をシリアル出力させるだけで、
分岐条件とか目に見えるので、すぐバグが見つかります。
間違って、Dcc.setCV(initDeg.nowDeg); と書いていました。
※変数initDegはCV番号では無く、初期角度を格納している変数w
CV_initDegと書く必要がありました。
今日も、訳の分からない書き込みです。
■やった事
サーボモーターにトルクを掛けた時の電流波形を取得する。
■わかった事
トルクを掛けている時は、5V-100mA以上流れている事。
波形ではイマイチ分からなかった。
■次やる事
SmileFunctionDecoder用サーボモータ用スケッチのバグ取り。
以前にAllegroのACS712というホール素子タイプの電流センサをゲットしました。
検出回路と絶縁されているので、PWM波形と電流を一緒に観測する事が
できたりして、色々便利そうです。
0Aで、VIOUT端子に2.5Vが出力されています。
↓アマゾンで買えます。レンジが色々あるのですが、5Aタイプが良いかな。
ごちゃごちゃしていますが、SmileFunctionDecoderにサーボモータの
HK-5320の電源ラインに、ACS712電流センサを割り込ませてあります。
VIOUTに電圧テスターと、デジタルオシロで波形を観測しています。
ピーと音がするACアダプタだなーと思って、5Vラインを見たら、
リップルのすごいこと・・・
負荷が軽いから、こんなもんでしょうか・・・↓これを使うのをやめて、もう一つ5Vの
ACアダプタがあったので、そっちを使いました。
もう一個のACアダプタは若干5Vを超えているので、0A時にVIOUT端子は2.780Vでした。
サーボモータを手でトルクをかけて「み゛ー」とさせると、2.793Vになります。
ACS712は、185mVで1Aなので、軽く100mA以上流れています(^^;
テスターは実効値表示なのでピーク電流はもっと流れているでしょう・・・
SmileFunctionDecoderの三端子レギュレータが熱くなるわけです(^^;
オシロスコープの波形ではよくわかりませんでした(^^;
さて、一応、
某所でちゃんとした電源と測定器を使って、ACS712のデータを取りました。
こちら。
基準電流発生器が見つからなかったので、直流電源の定電流モードを使って、
DMMの電流レンジで電流値を合わせながら測定しました。
そこそこリニアリティはありそうですね。
数十mAクラスは、数mVの変化しか見えないので、オシロスコープではちょっと見えなさそう。
(結果的に、見えませんでした・・・アンプで増幅させないとダメですね。)
DCC電源を入れた瞬間、PWMを発生させた瞬間にギュンとサーボモータが動いてしまうので、
対策しないとダメです・・・
せっかく、光ファイバロッド(^^;直したのに、また千切っちゃいました・・・
ゼムクリップを伸ばしたロッドを試してみましたが、ロット自体を垂直駆動ができないと
うまくパンタグラフを上下させる事ができませんでした。
パンタグラフもパンタスパーク用にLEDをアロンアルファでくっつけたやつなので、
可動がスムーズでないので、新品を買ってきてから再トライしたほうがよさそうです。
■やった事
サーボモーターにトルクを掛けた時の電流波形を取得する。
■わかった事
トルクを掛けている時は、5V-100mA以上流れている事。
波形ではイマイチ分からなかった。
■次やる事
SmileFunctionDecoder用サーボモータ用スケッチのバグ取り。
以前にAllegroのACS712というホール素子タイプの電流センサをゲットしました。
検出回路と絶縁されているので、PWM波形と電流を一緒に観測する事が
できたりして、色々便利そうです。
・全体的な出力誤差 1.5% (TA = 25°C) 結構悪い・・・ホビーユースという事で・・・
・1.2 mΩ の内部導体抵抗 すごく低いので良いです。
・5.0 V、単一電源動作 電源は5Vだけで良いので、便利です。
・ほぼゼロの磁気ヒステリシス
0Aで、VIOUT端子に2.5Vが出力されています。
↓アマゾンで買えます。レンジが色々あるのですが、5Aタイプが良いかな。
ごちゃごちゃしていますが、SmileFunctionDecoderにサーボモータの
HK-5320の電源ラインに、ACS712電流センサを割り込ませてあります。
VIOUTに電圧テスターと、デジタルオシロで波形を観測しています。
ピーと音がするACアダプタだなーと思って、5Vラインを見たら、
リップルのすごいこと・・・
負荷が軽いから、こんなもんでしょうか・・・↓これを使うのをやめて、もう一つ5Vの
ACアダプタがあったので、そっちを使いました。
もう一個のACアダプタは若干5Vを超えているので、0A時にVIOUT端子は2.780Vでした。
サーボモータを手でトルクをかけて「み゛ー」とさせると、2.793Vになります。
ACS712は、185mVで1Aなので、軽く100mA以上流れています(^^;
テスターは実効値表示なのでピーク電流はもっと流れているでしょう・・・
SmileFunctionDecoderの三端子レギュレータが熱くなるわけです(^^;
オシロスコープの波形ではよくわかりませんでした(^^;
さて、一応、
某所でちゃんとした電源と測定器を使って、ACS712のデータを取りました。
こちら。
基準電流発生器が見つからなかったので、直流電源の定電流モードを使って、
DMMの電流レンジで電流値を合わせながら測定しました。
そこそこリニアリティはありそうですね。
数十mAクラスは、数mVの変化しか見えないので、オシロスコープではちょっと見えなさそう。
(結果的に、見えませんでした・・・アンプで増幅させないとダメですね。)
DCC電源を入れた瞬間、PWMを発生させた瞬間にギュンとサーボモータが動いてしまうので、
対策しないとダメです・・・
せっかく、光ファイバロッド(^^;直したのに、また千切っちゃいました・・・
ゼムクリップを伸ばしたロッドを試してみましたが、ロット自体を垂直駆動ができないと
うまくパンタグラフを上下させる事ができませんでした。
パンタグラフもパンタスパーク用にLEDをアロンアルファでくっつけたやつなので、
可動がスムーズでないので、新品を買ってきてから再トライしたほうがよさそうです。
ブログ内検索
カテゴリー
最新記事
(12/31)
(12/31)
(12/29)
(12/23)
(12/18)
リンク
プロフィール
HN:
あやのすけ
性別:
非公開