SSブログ

ターンテーブルの調査その4 [ds-DCCデコーダ]

 京都鉄道博物館に行って、本物のターンテーブルにロック機構があったことにとても感動してしまったので、久しぶりにトミックスのターンテーブル(1631 TCS電動ターンテーブルN-AT212-15(F))のDCCデコーダからの制御に向け、実験を再開しました。
 今日はArduinoUnoにモーターデコーダをつないでPCから制御するということをします。(DCCまではやらない)
 まずはYaasan様から5VならBD6211を使いましょうとのアドバイスのもとにBD6211をDIP変換します。
re_DSC01051.jpg
 次に、駆動は一応PWMが使えるTimer1,Timer2部分を使うことにして、
ターンテーブルの回転側はTimer1(9ピン、10ピン)とします。
ターンテーブルのロック側をTimer2(3ピン、11ピン)とします。
で、BD6211をつないだ時のユニバーサル基板が以下の感じです。
re_DSC01054.jpg
 一応図面にすると以下の感じになります。(これで本当に正しいかどうか見直していません)
Arduino_TurnTable.PNG
 で、ターンテーブルと一緒に記念撮影です。なお、本日はDCC信号は入れずに、PCのUSB給電でターンテーブルが動いております。
 re_DSC01053.jpg
 動画です。

 スケッチは、最初、こうしてこうして・・・というのをIf文とLoop内の時間割り込みでやっていましたが、すぐにソースがスパゲティーになって限界が見えました(土曜日の夜中)ので、ステートマシンに変えました(今日の夜)。
 ということでステートマシンでのスケッチはこちらです。
 loop内でSerialでPCからの命令を待ちます。命令は
Serial 115200bpsで
1+enter, 左回り
2+enter, 右回り
です。1+enterを3回連続で送ると、3個分動いて、ロックをかけます。
 ターンテーブルからのセンサ入力はチャタリングが結構ひどいので、ソフト的に数回検知したら変更するみたいなルーチンにしています。
 将来的にPCからのSeialRead部分をDCCからのReadに変更しなければいけないのですが、どんなかんじになるかはちょっと未知です。
 あと、DCCでやろうとすると、一度基板をおこさないと面倒ですが、これをやるか、後はDCCにつなげるだけだと言ってやらずにKatoを試すか、悩むところです。先にKatoのを確認してから共用の基板を作るというのでよい気もします。(共用化できるかしら)
 基板化するなら、昇圧ポイントデコーダのでっかいコンデンサの部分を取り払って、つくる感じかと思います。

コメント(2)  トラックバック(0) 

コメント 2

あやのすけ

>あと、DCCでやろうとすると、一度基板をおこさないと面倒ですが、
デコーダー開発ボードが便利ですよ。
http://desktopstation.net/wiki/doku.php/decoder_development_board
もうちょっと、atmegaの空きピンが基板に出ていると、良いですが。

スケッチ内で、ステート名をenumで定義しておくといいですね。
http://ayabu.blog.shinobi.jp/attiny85dcc/%E3%82%B5%E3%83%BC%E3%83%9C%E3%83%A2%E3%83%BC%E3%82%BF%E3%81%AE%E5%88%B6%E5%BE%A1
今は、case 分に数字を書いているから、増やしたい時に、
非常に苦労していますw

でも、名前付けのセンスがないので、悩んじゃいますが(^^;

by あやのすけ (2016-10-31 21:25) 

fujigaya2

コメントありがとうございます。

>デコーダ開発ボード
そうですね。ArudinoUnoのドータボードみたいのつくったら、全部のピンが出てて実験楽そうですね。

>スケッチ内で、ステート名をenumで定義しておくといいですね。
今回、カッコを付けてenumでステートマシンのステートを定義しています。
考えながら作ったから、定義しているのに使っていないステートとかあってカッコ悪いですが。


by fujigaya2 (2016-11-01 00:05) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

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