ターンテーブルの調査その4 [ds-DCCデコーダ]
京都鉄道博物館に行って、本物のターンテーブルにロック機構があったことにとても感動してしまったので、久しぶりにトミックスのターンテーブル(1631 TCS電動ターンテーブルN-AT212-15(F))のDCCデコーダからの制御に向け、実験を再開しました。
今日はArduinoUnoにモーターデコーダをつないでPCから制御するということをします。(DCCまではやらない)
まずはYaasan様から5VならBD6211を使いましょうとのアドバイスのもとにBD6211をDIP変換します。
次に、駆動は一応PWMが使えるTimer1,Timer2部分を使うことにして、
ターンテーブルの回転側はTimer1(9ピン、10ピン)とします。
ターンテーブルのロック側をTimer2(3ピン、11ピン)とします。
で、BD6211をつないだ時のユニバーサル基板が以下の感じです。
一応図面にすると以下の感じになります。(これで本当に正しいかどうか見直していません)
で、ターンテーブルと一緒に記念撮影です。なお、本日はDCC信号は入れずに、PCのUSB給電でターンテーブルが動いております。
動画です。
スケッチは、最初、こうしてこうして・・・というのをIf文とLoop内の時間割り込みでやっていましたが、すぐにソースがスパゲティーになって限界が見えました(土曜日の夜中)ので、ステートマシンに変えました(今日の夜)。
ということでステートマシンでのスケッチはこちらです。
loop内でSerialでPCからの命令を待ちます。命令は
Serial 115200bpsで
1+enter, 左回り
2+enter, 右回り
です。1+enterを3回連続で送ると、3個分動いて、ロックをかけます。
ターンテーブルからのセンサ入力はチャタリングが結構ひどいので、ソフト的に数回検知したら変更するみたいなルーチンにしています。
将来的にPCからのSeialRead部分をDCCからのReadに変更しなければいけないのですが、どんなかんじになるかはちょっと未知です。
あと、DCCでやろうとすると、一度基板をおこさないと面倒ですが、これをやるか、後はDCCにつなげるだけだと言ってやらずにKatoを試すか、悩むところです。先にKatoのを確認してから共用の基板を作るというのでよい気もします。(共用化できるかしら)
基板化するなら、昇圧ポイントデコーダのでっかいコンデンサの部分を取り払って、つくる感じかと思います。
今日はArduinoUnoにモーターデコーダをつないでPCから制御するということをします。(DCCまではやらない)
まずはYaasan様から5VならBD6211を使いましょうとのアドバイスのもとにBD6211をDIP変換します。
次に、駆動は一応PWMが使えるTimer1,Timer2部分を使うことにして、
ターンテーブルの回転側はTimer1(9ピン、10ピン)とします。
ターンテーブルのロック側をTimer2(3ピン、11ピン)とします。
で、BD6211をつないだ時のユニバーサル基板が以下の感じです。
一応図面にすると以下の感じになります。(これで本当に正しいかどうか見直していません)
で、ターンテーブルと一緒に記念撮影です。なお、本日はDCC信号は入れずに、PCのUSB給電でターンテーブルが動いております。
動画です。
スケッチは、最初、こうしてこうして・・・というのをIf文とLoop内の時間割り込みでやっていましたが、すぐにソースがスパゲティーになって限界が見えました(土曜日の夜中)ので、ステートマシンに変えました(今日の夜)。
ということでステートマシンでのスケッチはこちらです。
loop内でSerialでPCからの命令を待ちます。命令は
Serial 115200bpsで
1+enter, 左回り
2+enter, 右回り
です。1+enterを3回連続で送ると、3個分動いて、ロックをかけます。
ターンテーブルからのセンサ入力はチャタリングが結構ひどいので、ソフト的に数回検知したら変更するみたいなルーチンにしています。
将来的にPCからのSeialRead部分をDCCからのReadに変更しなければいけないのですが、どんなかんじになるかはちょっと未知です。
あと、DCCでやろうとすると、一度基板をおこさないと面倒ですが、これをやるか、後はDCCにつなげるだけだと言ってやらずにKatoを試すか、悩むところです。先にKatoのを確認してから共用の基板を作るというのでよい気もします。(共用化できるかしら)
基板化するなら、昇圧ポイントデコーダのでっかいコンデンサの部分を取り払って、つくる感じかと思います。
2016-10-31 00:34
コメント(2)
トラックバック(0)
>あと、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)
コメントありがとうございます。
>デコーダ開発ボード
そうですね。ArudinoUnoのドータボードみたいのつくったら、全部のピンが出てて実験楽そうですね。
>スケッチ内で、ステート名をenumで定義しておくといいですね。
今回、カッコを付けてenumでステートマシンのステートを定義しています。
考えながら作ったから、定義しているのに使っていないステートとかあってカッコ悪いですが。
by fujigaya2 (2016-11-01 00:05)