KATOのターンテーブルの改良

 KATOのターンテーブルの改良で一番の難題だったのが原点設定と原点復帰でした。ターンテーブルの本体を改良することなくケーブルを接続するだけで、ArduinoのソフトウェアでEEPROMに書込んだり読出したりして、原点の保存設定と原点復帰の動作が実現できるかをプロトタイプのプログラムを作成してテストしていました。

 デバッグとテストの試行錯誤中
操作変更
 I2CのLCDに変数を表示させてデバッグしているので、わかりやすくデバッグできました。結果、原点の保存が可能であり、原点復帰せずに電源をOFFにした場合には、電源投入時に自動で原点復帰するようにできます。また、手動で修正して原点設定もできます。

 原点設定と原点復帰の操作ができるようになったので、操作パネルの割り当てを変更しました。
試行錯誤中
 今回のテストではロータリーSWでの操作でも、スマホでの操作もどちらでもできるように改良しました。ただし、同時には操作しないという条件です。今後、メインプログラムに原点操作の機能を盛り込みます。そろそろ本体のハードウェアをどのようなケースにするかを考えていきます。
0

    ターンテーブルの無線化にチャレンジ

     KATOのターンテーブルのコントローラを自作しており、今まで基本動作や減速動作とうまくできたので、今度はBluetoothによる無線化にチャレンジしてみました。すでに、Arduino unoを利用してBluetoothによる無線のテストをしていたので、意外と合体がうまく出来て動作確認できました。

     スマホからの操作テスト

     
     反転するように指示したり、左隣へ、右隣へと移動する操作を確認しました。出来上がったゲームコントローラ風のGUIを利用したので簡単なテストをしてみました。なお、無線化に際してロータリーSWの信号を切ってBlutoothからの信号に切替えました。ソフトウェアで切替えるようにする必要があります。


     単純な動作テストですが、意外とあっさりとBluetoothによる無線化が実現できてしまいびっくりしています。まずはこのGUIを利用すれば、短期間でターンテーブルを無線化できることが確認できました。今後は、スマホのGUIのボタンに何を割り当てるかを検討して本格的な自作コントローラに取り組みます。

     GUI設定の予定(追加)
    GUI設定
     EEPROM読出しとEEPROM書込みは、初期設定のためで初期設定のアルゴリズムを検討中なので、EEPROMの読出しと書込みだけを設定しています。前進/後退とポイント切替は、リレー駆動で切替るようにして、ソフトウェアではデジタルI/OのHIGH/LOWで行なう予定です。それ以外はソフトウェアで実現できるので、すでにスケッチを変更して動作確認できました。

     なお、サウンドボックスのコントロールコマンドと端子接続の仕様が分かれば、サウンドボックスを直接、Bluetoothによる無線化でコントロールが出来そうである。

    0

      ターンテーブルの仮想原点によるアルゴリズムの検討

       Arduino UNOのEEPROMの変数記録の書き込みと読み出しのテストがうまくできたので、仮想原点を決めて動作するターンテーブルのアルゴリズムを検討してみた。ターンテーブルの原点位置と現位置をEEPROMに記録することで、原点に戻すことや指定位置にまわす操作ができるようになります。

      Setup()では
      1.EEPROMに記録されているm_Count1の値を読み出す(仮想原点はmCount0で0)
      2.m_Count1が0でない場合は、その差が0になるように自動的に動く
        (トラブルがあった場合には、手動で緊急停止ボタンSWで停める)
      3.2.で位置がズレている場合には、手動で位置を合わせる
      4.原点とする位置が決まったら、原点リセットは押しボタンSWを押す
      5.EEPROMにm_Count1の変数値に0を記録する
      6.仮想原点はmCount0に0を設定する

      loop()では
      1.回転方向を仮想原点はmCount0から判別(−/+)をする
      2.回転した時のセンサー回数をカウントしてm_Count1に格納する
        (緊急停止もあるので、実際のセンサー回数をカウント)
      3.1回転(36)したm_Count1を回転方向によって加算と減算を行なう
      4.Stop状態になった時点で、現在のm_Count1をEEPROMにm_Count1の変数値を記録する
      0

        ターンテーブルの緊急停止の追加

         ターンテーブルの動作確認をしながら、機能の改良や追加をしています。なお、端子をできる限り空けておきたいので、LCDはI2Cインターフェイスを使用しています。

         開発とデバッグ中のコントローラ


        改良した機能
         3接点タイプのロータリーSWで左回転、停止、右回転を指示できるようにしました。抵抗分割したロータリーSWの出力をArduinoのアナログ端子に接続して、電圧検出でSWの位置を決めています。なお、ロータリーSWはショートタイプでないため、誤動作を防ぐため電解コンデンサで切替時の電圧を保持させています。

        追加した機能
         実際に操作していると回りすぎるため手動で停止させたくなる場合があるので、緊急停止の押しボタンを追加しました。さらに、緊急停止の時でも減速機能が働くようにしました。ソウトウェアの改良の余地があり、不要になるかもしれない機能です。

        課題
         課題は0原点をどのように実現するかです。1つは原点検出をどのようにするか。もう1つはCPUのEEPROMに原点を記憶させておくこと。原点検出はどうしてもターンテーブルの改造が必要になり、出来る限り加工を少なくしたいのでアイデアを思案中です。ATmega328には1024bytesのEEPROMを内蔵しているので、ライブラリもありそうで何とかなりそうである。

        1つの原点のアイデア
         ターンテーブルを加工しないですぐにできることは、毎回ではあるが起動したらすぐに原点する位置まで移動して押しボタンでその位置を記憶させる。それ以降は、センサーの回数と回転方向からその位置からの加減算で現在の位置を割り出すというアイデアです。何よりも無加工でソフトウェアで実現できるのでよい方法だと思います。EEPROMを使ってソウトウェアのアルゴリズムが複雑になる。

        もう1つの原点のアイデア
         ターンテーブル本体を加工しないですぐにできること方法を思いつきました。利用しない対抗するレールをロータリーSWのように使用するのです。原点とするレールと反対側のレールに通電されるので、その電圧を検出して原点の位置とする方法です。ハードウェアの具体的な回路にどうのようにするか。
        0

          ターンテーブルの減速動作の確認

           KATOのターンテーブルをArduinoで動作させようとチャレンジ中です。今回はターンテーブルが回転して停止する前に減速させるようにできました。
           HブリッジのVREFという端子を今まではVccに接続していましたが、これをVcc以下の電圧にすることでその比率で出力が25KHzのPWM出力にすることができます。デューティーはVREFとVccの電圧比で決まります。まだ試作なので今回は50%にしてみました。

           減速動作の動画
           
           Arduinoの端子で切替えを制御して、止まる前から減速します。また、隣に移動する場合は、はじめから減速して動作します。もう少し減速を大きくしたいので、正式版では抵抗分割比を変更してVREFの電圧を下げて調整する予定です。
           これでKATOのターンテーブルを動作させることができたので、今後はどのようなコントロールするかの検討に入ります。

           すでにあるパワーパックをどう改造するか
          パワーパック
           ロータリースイッチは23接点までしかなく高価なので、他の入力方法を考えなければこのサイズには収まらない。当然、どんな小さいテンキーでもサイズ的に無理である。現在の回転方向のスイッチに小さいLED表示をプラスして何番線にするかを決めるしかないかもしれない。
          0

            ターンテーブルの基本動作の確認

             まずKATOのターンテーブルをArduino UNOを利用して動作させることを目標にチャレンジしてきました。ゲヌマ・フジガヤ2さんのサイトのKatoターンテーブルの制御を参考にさせてもらいながら、なんとか基本動作できるところまできました。

             現時点の動作確認はArduinoIDEのシリアルモニタでも出来ますが、TeraTermをインストールして使用すればいちいちArduinoIDEを立ち上げなくても動作させることは出来ます。

             10回、右回りと左回りと回転


             位置合わせの確認

             KATOのターンテーブルはメカ機構がよく考えられているので、2つのDCモーターをうまく制御できれば、位置ズレは生じないように出来ています。残るは停止する前に減速する方法とその回路を出来る限りシンプルになるように考えてます。
            0

              ターンテーブルのコントローラの基本動作

               KATOのターンテーブルのコントローラを自作してみようと、チャレンジを始めました。ソフト開発するためにも開発ツールが必要であり、仕様確認にも必要なので、Arduino UNOに載せる開発シールドを製作して基本動作を確認しました。

               開発シールドでは先日のコネクタでターンテーブルに接続できるようになったので、Arduinoの5V信号を3.3V信号にレベルシフト回路(単に抵抗分割)で変換してからHブリッジドライバ(Vcc=3.3V)に接続して、ターンテーブルの2つのモーターを動作させます。位置が合うとセンサー信号が出てくるので、それをLED点灯させています。

              【補足】
               レベルシフト回路がないとHブリッジドライバに逆電圧が掛かかり誤動作の原因になるためです。基本的にICに電源以上の電圧を掛けることは避ける必要があります。

               基本動作の地味な動画
               
               ターンテーブルを壊さないように少しづつ動かしています。ロックとロック解除がわかりにくいので、ターンテーブルに何かつけようかと考えています。
              0

                KATOのターンテーブルとの接続検討

                 KATOのターンテーブルのコントローラを自作した場合に、どのように接続するかを検討しました。付属しているケーブルと同じコネクターが入手できれば、一番簡単なのですが横浜の店では見つからず秋葉原まで探しに行くのも煩わしい。そこで、購入していたKATOのターンテーブル用の延長ケーブルを利用して、その延長ケーブルの専用コネクタを使います。フラットケーブルを3分割して3本になったケーブルにコネクタを取り付けて利用することにしました。
                 補足ですが、専用コネクタは2mmピッチなので2.54mmピッチの基板には変換してからでないと接続できません。基板側には2.54mmピッチのコネクタにしてケーブルを介してピッチ変換も行なってしまうということです。コネクタのピン製作では専用工具を使うのですがピンが小さいので、出来る限り2.54mmで行なわないと失敗のリスクが高くなります。今回も32本中3本も失敗しました。

                製作したケーブルとコネクタ
                A:基板コネクタのメスと線対線コネクタのメス
                B:専用コネクタのメスと線対線コネクタのオス
                C:専用コネクタのオスと線対線コネクタのメス

                利用方法
                ・延長ケーブルとして使うときは、BとCを接続します。


                ・自作基板と接続するときは、A+Bを接続します。

                 これでいつでも動作確認できるようになりました。汎用コネクターにしたので延長はケーブルさえあれば自由な長さにできることになりました。今回はここまで、またいつか気が向いたら報告します。
                0

                  KATOのターンテーブルの電気信号の情報

                   KATOのターンテーブルを専用のコントローラでなく、コントローラをArduinoを利用して自作しようとしている方の情報を集めて整理してみました。うまくできれば、Arduinoを使って自作のコントローラができればと考えています。基本動作が完成すれば、それを改良して自分にとって使い勝手がよくなるように改良してみたい。

                   物理的な分解は、鉄道模型机上の空論のサイトで、KATO電動ターンテーブル分解 をご覧ください。KATOのターンテーブルの機構の情報がわかりやすく説明されていますので、コントローラの電気信号を理解する上で参考になります。

                  1.ケーブルの信号アサイン
                   まず、コントローラとターンテーブル間のフラットケーブルの信号がどのように配置されているのかの情報です。なお、レール給電では、NゲージのSL1、2台だけを駆動するので、自動で極性を変える場合には5V駆動リレーで12V/1Aが流せれば良いと思います。
                   1番ピン ターンテーブルのセンサー入力信号(フラットケーブルの赤線側)
                   2番ピン ターンテーブルのセンサーのGND
                   3番ピン 回転モーター1
                   4番ピン 回転モーター2
                   5番ピン LOCKモーター1
                   6番ピン LOCKモーター2
                   7番ピン レール給電+
                   8番ピン レール給電ー

                  2.制御ICの信号アサイン
                   KATOのコントローラの制御ICはマイコン(attiny24A)が使われており、ICのプログラムは当然読み出し不許可となっているようです。このマイコンのピン番号〜マイコン信号名〜ターンテーブルへの接続をまとめた情報です。
                   1番ピン VCC 5V
                   2番ピン PB0 TURN- MOTORの選択1
                   3番ピン PB1 LOCK- MOTORの選択2
                   4番ピン PB3 RESET-
                   5番ピン PB2 PUSH-
                   6番ピン PA7 PULL-
                   7番ピン PA6 緑LED 
                   8番ピン PA5 ターンテーブル回転スイッチ入力1
                   9番ピン PA4 ターンテーブル回転スイッチ入力2
                   10番ピン PA3 (未使用?)
                   11番ピン PA2 ターンテーブルの位置センサー
                   12番ピン PA1 (未使用?)
                   13番ピン PA0 (未使用?)
                   14番ピン GND

                  3.動作フローチャート
                  3−1.基本的には
                   ・回転用モーターとロック用モータのどちらを動かすかを選択
                   ・モーターの動作方向は正/逆を選択
                   ・デジタル信号は負論理で動作
                   ・ターンテーブルの2つのモーターは3.3V仕様、制御ICは5Vで動作
                   ・5V/3.3Vのレベルシフト回路が必要かも
                    (3.3Vのセンサ信号は制御ICのアナログ端子で判定可)
                    (制御ICのモータードライブICへの5V/3.3Vは抵抗分割の簡易回路でも可)
                   .蹈奪モーターでロックを外す
                   ▲拭璽鵐董璽屮襪魏鹽召気擦
                   センサが位置決めポイントまで回転させ続ける
                   ぅ札鵐気位置決めポイントに近くにきたら減速する
                   ゥ札鵐気位置決めポイントに合ったら回転を止める
                   Ε蹈奪モーターでターンテーブルをロックする
                   上記の動作を組み合わせて信号を出しているようです。制御ICにおける操作と信号の関係は以下の通りです。分かりやすく、Lはオン(0V)、Hはオフ(5V)、Pはパルス(100Hz、50%)で表わしている。
                   
                  3−2.回転レバーを左に倒した場合
                   ゲ鹽哨譽弌爾鮑犬謀櫃
                  TURN-=H、LOCK-=L、PUSH-=H、PULL-=Lを1秒間 -> ギーという音でロック解除
                  ◆イ修猟掌紊
                  TURN-=H、LOCK-=H、PUSH-=L、PULL-=Lを0.1秒間(Wait 100ms)
                  .回転開始
                  TURN-=L、LOCK-=H、PUSH-=L、PULL-=H
                  ぁゲ鹽哨譽弌爾鯡瓩->回転がゆっくりになる
                  TURN-=L、LOCK-=H、PUSH-=P、PULL-=H 
                  ァイ修慮絅譟璽襪琉銘屬一致する
                  TURN-=H、LOCK-=L、PUSH-=L、PUL-L=Hを1秒間 -> ギーという音でロックする
                  Αイ修猟掌紊
                  TURN-=H、LOCK-=H、PUSH-=L、PULL-=Lを0.1秒間(Wait 100ms)

                  3−3.回転レバーを右に倒した場合
                   ゲ鹽哨譽弌爾魃Δ謀櫃
                  TURN-R=H、LOCK-=L、PUSH-=H、PULL-=Lを1秒間 -> ギーという音でロック解除
                  ◆イ修猟掌紊
                  TURN-=H、LOCK-=H、PUSH-=L、PULL-=Lを0.1秒間(Wait 100ms)
                  .回転開始
                  TURN-=L、LOCK-=H、PUSH-=H、PULL-=L
                  ぁゲ鹽哨譽弌爾鯡瓩垢伐鹽召ゆっくりに
                  TURN-=L、LOCK-=H、PUSH-=H、PULL-=P
                  ァゥ譟璽襪琉銘屬一致する
                  TURN-=H、LOCK-=L、PUSH-=L、PULL-=Hを1秒間 -> ギーという音でロックする
                  Αイ修猟掌紊
                  TURN-=H、LOCK-=H、PUSH-=L、PULL-=Lを0.1秒間(Wait 100ms)

                  上記の0.1秒間は、モーターの回転を止める時に必ずでてきます。但し、50%デューティ=低速回転の場合は除く。
                  KATOのコントローラを壊したくないので、Arduinoとブレッドボードを利用してノンビリと開発していこうと思います。回路としては2つのモーターを動かすHブリッジドライブIC(BD6211)だけが必要です。オプションでLCDも利用しようと考えていますが、LCDは流用するつもりです。
                  0

                    KATOの電動ターンテーブルの操作室を改造

                     KATO製の電動ターンテーブル(20-283)の操作室(紛らわしいので運転台から変更)には、小型のモーターが入っているので窓が開いていないのがずーと気にいらなかった。ワールド工芸のグレードアップキットの再販売を期待したのですが、無理なようなので操作室を改造することにしました。
                     窓枠の細い桟があり型崩れを防ぐために、初めにくり抜くところをカッターナイフで切り込みを入れておいてから、くり抜く部分をピンバイスで0.5mmと1mmの穴を慎重に空けていきました。何とかミスせず桟もきれいに残っており加工は成功です。

                     穴あけした操作室
                    穴あけした操作室

                     加工した操作室をターンテーブルに取付け
                    穴あけした操作室
                     内部のモーターが見えても窓が開いている方がリアル感がましますね。窓にガラスを入れようと薄い透明なシートを入れましたが、きつくなり入らなくなったので一旦は諦めて窓は開いたままにしました。いろいろなターンテーブルの写真を見るとオリジナルの操作室の色はないようなので塗装してみることにしました。

                     グレーに塗装した操作室(錆びがあるように敢えてムラに)
                    穴あけした運転台
                     やはり色を変えた方がワンポイントのアクセントがきいていいですね。塗装が少し荒れているようですが、錆びがあるように敢えてムラにした方がローカル線のリアル感が増したように思い、これで一応満足です。

                     操作室を改造したターンテーブル
                    操作室の改造
                    操作室の改造
                    操作室の改造

                     操作室を改造したターンテーブルと新C11
                     

                     操作室を改造したターンテーブルとC59(長いSL)
                     

                    【追加】
                     窓にガラスを入れることについて一旦は諦めましたが、実家の整理をしていて手ごろで薄い透明なシートが見つかったので、製作してみました。少しきつくなりましたが。うまく収まったので成功です。大満足です。
                    0

                      | 1/2PAGES | >>

                      カレンダ

                        12345
                      6789101112
                      13141516171819
                      20212223242526
                      2728293031  
                      << May 2018 >>