ギヤ付DCモーターFM90を使った踏切
はじめに
今回の開発目的は小型化でしたが、同時に「車両搭載モーターの漏れ磁力による遮断棒揺れ対策」と「警報音の改善」、「双方向運転対応」も行ないました。
なおソフトデバッグのための動作テストはしましたが本格的なテストはsusukuma鉄道模型チャンネルでの設置後になります。
28BYJ-48(ギヤ付ステッピングモーター)の4モーター版と比較したメリット、デメリットは以下の通りです。
メリット
・線路に直角な方向の幅が狭くなった。(160mm --> 100mm)
・消費電力が減った。12V電源の最大電流 1A --> 100mA(センサ数=2の時)、140mA(センサ数=4の時)
・接続可能センサ数が増えたので(2-->4)、双方向運転の自動対応やリモート切替が可能になった。
デメリット
・ギヤ音がうるさい。
・遮断棒の動きがステッピングモーター版よりばらつく。
・遮断棒の上げ下げをあまり遅くできない。(max 3秒くらい)
・線路に平行な方向の幅が大きくなった。(180mm --> 210mm)
以下、詳細です。
駆動機構
DCモーターはステッピングモーターと異なり、回転速度と回転トルクを独立に制御できません。
低速にしようとあまり電圧を下げすぎるとトルクがなくなって止まってしまいます。
逆に電圧を上げすぎるとトルクが強すぎて可動範囲制限を機械的に行うと故障の原因になります。
そのため図のようなFM90の電圧対回転速度特性から0.5V~1V相当のPWM駆動で動かすことを目標にしました。
低速にしようとあまり電圧を下げすぎるとトルクがなくなって止まってしまいます。
逆に電圧を上げすぎるとトルクが強すぎて可動範囲制限を機械的に行うと故障の原因になります。
そのため図のようなFM90の電圧対回転速度特性から0.5V~1V相当のPWM駆動で動かすことを目標にしました。
設計の前に、まずは3Dプリンタ(ノズル径0.4mm)でどのくらい小さい歯車が作れるか試してみました。
その結果モジュール(ピッチ円直径/歯数)=0.5は精度的に厳しいですが0.65以上では使える感触を得ました。
試行錯誤の結果、最終的にラックアンドピニオン(モジュール=1.0)のみのシンプルなものができました。
裏面駆動機構の3Dプリンタ用STLデータを添付します。
図中番号 STLファイル 必要数 コメント
1 CR_FM90_S2S.stl ✕2 ラック(止め板両サイド型)
2 CR_FM90_S2.stl ✕2 ラック(止め板中央型)
3 CR_FM90_B2.stl ✕4 FM90取付台
4 CR_FM90_P2.stl ✕4 磁石ケース
5 FM90_C2.stl ✕4 ギヤ取付用カプラ
6 Gear_M1T8.stl ✕4 ピニオンギア
7 CR_FM90_Spacer_2.stl ✕1 基板取付用スペーサー
8 CR_FM90_Spacer_1.stl ✕2 基板取付用スペーサー
3Dプリント時にサポート材は無しでOKですが必要に応じてブリム付加のプリント設定をしてください。
その結果モジュール(ピッチ円直径/歯数)=0.5は精度的に厳しいですが0.65以上では使える感触を得ました。
試行錯誤の結果、最終的にラックアンドピニオン(モジュール=1.0)のみのシンプルなものができました。
裏面駆動機構の3Dプリンタ用STLデータを添付します。
図中番号 STLファイル 必要数 コメント
1 CR_FM90_S2S.stl ✕2 ラック(止め板両サイド型)
2 CR_FM90_S2.stl ✕2 ラック(止め板中央型)
3 CR_FM90_B2.stl ✕4 FM90取付台
4 CR_FM90_P2.stl ✕4 磁石ケース
5 FM90_C2.stl ✕4 ギヤ取付用カプラ
6 Gear_M1T8.stl ✕4 ピニオンギア
7 CR_FM90_Spacer_2.stl ✕1 基板取付用スペーサー
8 CR_FM90_Spacer_1.stl ✕2 基板取付用スペーサー
3Dプリント時にサポート材は無しでOKですが必要に応じてブリム付加のプリント設定をしてください。
3Dプリント後の各部品の後加工は以下の通り。
3は丸穴4ヵ所をM3タップ加工。
5は穴径の小さい片側をM2タップ加工
8は両側からそれぞれM3タップ加工
7はスリットの無い側のみM3タップ加工
上記の他に裏面駆動機構に必要な部品、素材は以下の通り。
FM90 ✕4個 (秋月電子通商)
Φ6mm✕3mm ネオジム磁石 ✕16個 (ダイソー、Amazon、etc)
M3 長さ10mmのナベネジ ✕10本
M3 長さ10mmの皿ネジ ✕15本
M2 長さ10mmのナベネジ ✕12本
M2 ナット ✕8個
3mm厚天板 (100✕210✕3mm) ✕1枚
6mm厚または3mm厚側面板(サイズは図面参照) ✕4枚
部品ごとの後加工が終わったら、接着またはねじ止めで組み上げます。
まずモーター軸に5のギヤ取付用カプラをはめてM2ネジで締め付けます。
空回りしないことを確認したら溶剤型接着剤で6のピニオンギヤを接着します。
次に1と2のラックに4の磁石ケースを写真のように接着します。
ラックを3のFM90取付台のスリットにはめてスムーズに動くことを確認したら、ラックを上から押さえるようにM2ネジとナットでFM90を3に取り付けます。
このときピニオン&ラックが引っかかりなく、また大きなガタが無いようにFM90の取り付け高さを調整します。
4の各磁石ケースに写真のようにΦ6✕3mmのネオジム磁石4個を1個はみ出すように取りつけます。
磁石の極性は遮断棒揺れ対策の磁石の配置変更の磁石配置2を参照してください。
遮断棒が垂直、または水平になるようラックの可動範囲を微調整するためのM3ネジを写真のように取りつけます。
遮断棒と警報灯
踏切警報灯は変更ありません。以前の記事踏切警報灯を参照してください。
警報灯は天板に直接接着しても良いのですが、抜きさししたい場合は以下の3mm天板用の部品を使います。
cross_con_base_2.stl
cross_con_base_3.stl
信号機の組立と同様に仕上げ加工し、2ピンの丸ピンコネクタ2個をcross_con_base_2に金属ピン部を挿しこんで瞬間接着剤で接着します。
それをcross_con_base_3に接着し、両端の取付穴をM3タップで溝切加工します。
丸ピンコネクタの穴側に配線を半田付けして引出し、XHコネクタを付けます。
警報灯は天板に直接接着しても良いのですが、抜きさししたい場合は以下の3mm天板用の部品を使います。
cross_con_base_2.stl
cross_con_base_3.stl
信号機の組立と同様に仕上げ加工し、2ピンの丸ピンコネクタ2個をcross_con_base_2に金属ピン部を挿しこんで瞬間接着剤で接着します。
それをcross_con_base_3に接着し、両端の取付穴をM3タップで溝切加工します。
丸ピンコネクタの穴側に配線を半田付けして引出し、XHコネクタを付けます。
遮断棒駆動箱はストッパー付で、遮断棒揺れ対策の【対策1】と同じです。
後加工や組み立て方は【対策1】を参照してください。
同じものですが3Dプリンタ用データを添付します。
crossing_box4_F.stl , crossing_box4_L.stl , crossing_box4_R.stl
後加工や組み立て方は【対策1】を参照してください。
同じものですが3Dプリンタ用データを添付します。
crossing_box4_F.stl , crossing_box4_L.stl , crossing_box4_R.stl
Magnet Holder
マグネットフォルダに取り付けるΦ2mm✕1mmの磁石4個の配置は遮断棒揺れ対策の磁石の配置変更の磁石配置2なので取り付け角が以前の45度とは異なり90度になっています。
新しいマグネットフォルダの3Dプリンタ用のデータを添付します。
組み立て方は以前の遮断棒や【対策1】と同じです。
【!!! 2023/1/2 修正 !!!】
申し訳ありません、以前掲載していたMagnetHolder6_L,R.stlは3Dプリンタノズル径0.2mm用の小サイズ試作品で掲載ミスでした。
上記 crossing_box4_*.stl のサイズに合うデータに置き換えました。
MagnetHolder4_jig.stl <-- プリント後の穴加工を容易にするための治具です。
組立
モーターや遮断棒、警報灯は箱に取付て動作テストや調整をしてからレイアウトに組み込むと良いでしょう。
ケース寸法図と写真を添付します。
CR_FM90_box_2D.pdf
天板に使った3mm厚板材は「アーテック しなベニヤ 300×225×3mm」をモノタロウで購入して使いました。
側板は在庫があった6mm厚バルサ材を使い、外形を100mmに押さえたいので警報灯コネクタ部を3mm堀込みましが3mm厚板材でも良いでしょう。
FM90のコネクタ付の配線はあまり長くないので回路基板の出力ピンが箱の中央付近にくるように基板をスペーサーで取り付けました。
スペーサーは3本です。
2本は両端をM3タップ加工して箱側と基板の両方をねじ止めします。
3本目は箱側はねじ止めし基板側はスペーサーのスリットに基板の1辺をはめて支えています。
ケース寸法図と写真を添付します。
CR_FM90_box_2D.pdf
天板に使った3mm厚板材は「アーテック しなベニヤ 300×225×3mm」をモノタロウで購入して使いました。
側板は在庫があった6mm厚バルサ材を使い、外形を100mmに押さえたいので警報灯コネクタ部を3mm堀込みましが3mm厚板材でも良いでしょう。
FM90のコネクタ付の配線はあまり長くないので回路基板の出力ピンが箱の中央付近にくるように基板をスペーサーで取り付けました。
スペーサーは3本です。
2本は両端をM3タップ加工して箱側と基板の両方をねじ止めします。
3本目は箱側はねじ止めし基板側はスペーサーのスリットに基板の1辺をはめて支えています。
透明プラ板取付(上面)
3Dプリントケース(2022/12/31追記)
上記のケースを木ではなく3Dプリンターで製作するためのデータも作りましたので添付します。
CR_FM90_BOX.stl
CR_FM90_BOX_L.stl
天板(CR_FM90_BOX.stl)は大きいので、そりにくいPLA樹脂でプリントするのがおすすめです。
L字フック(CR_FM90_BOX_L.stl)4個は取り付ける台板の厚み分だけ下げて4本の足に 溶剤型接着剤)で接着します。
CR_FM90_BOX_L.stl
天板(CR_FM90_BOX.stl)は大きいので、そりにくいPLA樹脂でプリントするのがおすすめです。
L字フック(CR_FM90_BOX_L.stl)4個は取り付ける台板の厚み分だけ下げて4本の足に 溶剤型接着剤)で接着します。
ABS樹脂などそりやすい樹脂を使う場合は以下の分割データで3Dプリントし接着すると良いでしょう。
CR_FM90_BOX_T.stl
CR_FM90_BOX_LR.stl
CR_FM90_BOX_FB.stl
CR_FM90_BOX_T.stl
CR_FM90_BOX_LR.stl
CR_FM90_BOX_FB.stl
回路
回路図、部品配置図、片面感光基板露光マスク、ドリルマップをまとめたものを添付します。
CROSSING_FM90_circuit.pdf
感光基板は片面で1mm厚の物を使いました。
PICマイコンは手持ちのPIC16F18456-I/SPを使ってソフト開発しましたが、その後最近マルツオンラインで買ったPIC16F18855-E/SPを載せた基板も作ってソフトを移植しました。
モータードライバ LV8548MCやその他の部品は秋月電子で購入しました。
モータードライバのみ表面実装部品なので裏面にはんだ付けします。
FM90のコネクタを挿すMTR11,MTR12,MTR21,MTR22のコネクタは2.54mmピッチのピンヘッダです。
J1~J3も同じピンヘッダですが、J2とJ3は現状のソフトでは利用していません。
実装時にダイオードやXHコネクタ、電解コンデンサ、モータードライバの向きに注意が必要です。
ショットキーバリアダイオード(1S4)は線の入っている方がマイナス側(回路図のダイオードマークの縦棒側)になります。
私は目視とテスタ(デジタルマルチメータ-)を使って以下のように順次テストしながら部品実装しています。
まず感光基板のパターンや開けた穴を目視チェックします。
次に3端子レギュレーターやコンデンサ、電源コネクタを半田付けし、12Vと5V間やGND間がショートしていないかテスタでチェックします。
ショートしていないことを確認したら電源を接続し、PICマイコンのGND/5Vピン間の電圧をチェックします。
残りの部品を実装し、電源を入れる前にはんだ付けでショートしやすそうな所を再度テスタでチェックします。
CROSSING_FM90_circuit.pdf
感光基板は片面で1mm厚の物を使いました。
PICマイコンは手持ちのPIC16F18456-I/SPを使ってソフト開発しましたが、その後最近マルツオンラインで買ったPIC16F18855-E/SPを載せた基板も作ってソフトを移植しました。
モータードライバ LV8548MCやその他の部品は秋月電子で購入しました。
モータードライバのみ表面実装部品なので裏面にはんだ付けします。
FM90のコネクタを挿すMTR11,MTR12,MTR21,MTR22のコネクタは2.54mmピッチのピンヘッダです。
J1~J3も同じピンヘッダですが、J2とJ3は現状のソフトでは利用していません。
実装時にダイオードやXHコネクタ、電解コンデンサ、モータードライバの向きに注意が必要です。
ショットキーバリアダイオード(1S4)は線の入っている方がマイナス側(回路図のダイオードマークの縦棒側)になります。
私は目視とテスタ(デジタルマルチメータ-)を使って以下のように順次テストしながら部品実装しています。
まず感光基板のパターンや開けた穴を目視チェックします。
次に3端子レギュレーターやコンデンサ、電源コネクタを半田付けし、12Vと5V間やGND間がショートしていないかテスタでチェックします。
ショートしていないことを確認したら電源を接続し、PICマイコンのGND/5Vピン間の電圧をチェックします。
残りの部品を実装し、電源を入れる前にはんだ付けでショートしやすそうな所を再度テスタでチェックします。
ソフト
PICマイコンに書き込むプログラムデータを添付します。
当初使用したPIC16F18456が在庫切れで入手しずらくなったため、同一機能にできる別型番にもプログラムを移植しました。
なお-I/SPと-E/SPは動作保証温度範囲が違うだけなのでどちらでも使えます。
PIC16F18456-I/SP用 crossing_FM90.X.production.hex
PIC16F18855-E/SP用 crossing_FM90_PIC16F18855.X.production.hex
PIC16F18857-I/SP用 crossing_FM90_PIC16F18857.X.production.hex
上記HEXファイルをダウンロード(右クリック-->名前を付けてリンク先を保存)してローカルPCに置きます。
基板に電源を供給し、MPLAB SNAP等のPIC書込みツールをPCと基板に接続します。
MPLAB IPEを起動してconnectボタンを押し、チップの型番とダウンロードしたHEXファイルを指定し
左上[settings]をクリック-->Release from Resetをクリックしてから【注:Hold on Reset解除】
programボタンを押して書き込みます。
書き込みツール等については「PICマイコンと開発ツール」のページやWeb情報を参照してください。
当初使用したPIC16F18456が在庫切れで入手しずらくなったため、同一機能にできる別型番にもプログラムを移植しました。
なお-I/SPと-E/SPは動作保証温度範囲が違うだけなのでどちらでも使えます。
PIC16F18456-I/SP用 crossing_FM90.X.production.hex
PIC16F18855-E/SP用 crossing_FM90_PIC16F18855.X.production.hex
PIC16F18857-I/SP用 crossing_FM90_PIC16F18857.X.production.hex
上記HEXファイルをダウンロード(右クリック-->名前を付けてリンク先を保存)してローカルPCに置きます。
基板に電源を供給し、MPLAB SNAP等のPIC書込みツールをPCと基板に接続します。
MPLAB IPEを起動してconnectボタンを押し、チップの型番とダウンロードしたHEXファイルを指定し
左上[settings]をクリック-->Release from Resetをクリックしてから【注:Hold on Reset解除】
programボタンを押して書き込みます。
書き込みツール等については「PICマイコンと開発ツール」のページやWeb情報を参照してください。
コネクタ接続と動作モード
警報灯やセンサ、モーターからの配線は図に示した名称の基板コネクタに接続します。
基板のSW1、SW2コネクタには動作設定やテスト用のプッシュスイッチ、SP1コネクタにはスピーカー、V12コネクタには12V電源(必要な電流容量=0.2A程度)を接続します。
スピーカーは警報音の改善で紹介したダイナミックスピーカーがおすすめです。
FM90モーターの2ピンコネクタは基板側の2.54mmピッチピンヘッダに挿す向きにより回転方向が変わります。
遮断棒の動きが逆の場合は挿す向きを変えてください。
基板のSW1、SW2コネクタには動作設定やテスト用のプッシュスイッチ、SP1コネクタにはスピーカー、V12コネクタには12V電源(必要な電流容量=0.2A程度)を接続します。
スピーカーは警報音の改善で紹介したダイナミックスピーカーがおすすめです。
FM90モーターの2ピンコネクタは基板側の2.54mmピッチピンヘッダに挿す向きにより回転方向が変わります。
遮断棒の動きが逆の場合は挿す向きを変えてください。
【列車進行方向が固定の場合のセンサ接続】
列車の進行方向が固定の場合、センサは踏切の手前側のみ接続します。
その場合、ピンヘッダJ1とDIRコネクタはオープン(接続無し)にします。
【列車進行方向が切り替わる場合のセンサ接続と動作モード】
進行方向が切り替わる場合は踏切の両側のセンサを接続します。
基板のピンヘッダJ1にジャンパピンを挿さない場合、SENS11が列車を検出すると、設定された踏切警報時間の2.5倍の間、SENS12の入力を無視します。
他のセンサが列車を検出した場合も同様に踏切の反対側のセンサ入力を踏切警報時間の2.5倍の間無視します。
この場合、DIRコネクタ入力は使用しません。
センサが踏切から等距離に設置され列車の速度が一定なら、この動作モードで列車走行方向切り替えに自動で対応できます。
基板のピンヘッダJ1にジャンパピンを挿した場合はDIRコネクタの入力によりセンサを選択します。
DIR1の入力がHigh(openまたは>2.5V)の場合、SENS12を無視します。Low(GND)の場合SENS11を無視します。
DIR2の入力がHigh(openまたは>2.5V)の場合、SENS22を無視します。Low(GND)の場合SENS21を無視します。
上記により2線路の列車の進行方向が常に逆方向の場合は図のようにトグルスイッチ1個で切り替えられます。
スイッチを2個接続すれば2線路の列車の進行方向を個別に選択することができます。
なおDIR1とDIR2の基板入力はダイオード+PICマイコンによるPull upで高電圧対応(max 40V)にしています。
また入力判定は1.8秒に1回以上の頻度でHigh(>2.5V)パルスを検出するとその間ずっとHighとみなします。
ですのでもし基板のGNDと列車を走らすパワーパックのGNDが共通(接続された状態)な場合、スイッチの代りにDIR1、DIR2をそれぞれの線路の片側に接続することでセンサ切替ができるかもしれません。(未検証です。)
調整
●位置調整ネジの設定
基板を取りつける前に位置調整ネジの設定を行ないます。
まず各ネジを緩めてラックが目いっぱい動かせるようにします。
遮断棒を取り付け、手でピニオンギヤをゆっくり回して遮断棒が垂直になる位置を探し、調整ネジでラックがその位置で止まるようにします。
そこからピニオンギヤを遮断棒が降りる方向にゆっくり回し、遮断棒がストッパーに触れて水平になる位置(ストッパーが無くても水平になる位置)を探します。
その状態で調整ネジの先端がラックの突起から3mm(6回転分)程度離した位置に来るようにします。
●モーターのトルクと駆動時間調整
基板の2つの半固定抵抗(ROT、PWM)の回転軸を小型のプラスドライバーで回して回転範囲の真ん中あたりにします。
基板にモーターやプッシュスイッチ、スピーカーを接続し電源をオンにします。
プッシュスイッチのどちらかを押して7~8秒待ち、押すのをやめます。
モーターが動かなかったらPWMの半固定抵抗を少し時計回りに回して駆動力を強めます。
逆に半固定抵抗を反時計回りに回すと駆動力が弱くなり遮断棒の動きが遅くなります。
上記を繰り返して遮断棒がゆっくり確実に動く最小の駆動力に調整します。
基板を取りつける前に位置調整ネジの設定を行ないます。
まず各ネジを緩めてラックが目いっぱい動かせるようにします。
遮断棒を取り付け、手でピニオンギヤをゆっくり回して遮断棒が垂直になる位置を探し、調整ネジでラックがその位置で止まるようにします。
そこからピニオンギヤを遮断棒が降りる方向にゆっくり回し、遮断棒がストッパーに触れて水平になる位置(ストッパーが無くても水平になる位置)を探します。
その状態で調整ネジの先端がラックの突起から3mm(6回転分)程度離した位置に来るようにします。
●モーターのトルクと駆動時間調整
基板の2つの半固定抵抗(ROT、PWM)の回転軸を小型のプラスドライバーで回して回転範囲の真ん中あたりにします。
基板にモーターやプッシュスイッチ、スピーカーを接続し電源をオンにします。
プッシュスイッチのどちらかを押して7~8秒待ち、押すのをやめます。
モーターが動かなかったらPWMの半固定抵抗を少し時計回りに回して駆動力を強めます。
逆に半固定抵抗を反時計回りに回すと駆動力が弱くなり遮断棒の動きが遅くなります。
上記を繰り返して遮断棒がゆっくり確実に動く最小の駆動力に調整します。
スイッチを押し続けるとROTの半固定抵抗で決まる駆動時間後にモーターは停止します。
ROTを時計回りに回すと駆動時間が長くなり、逆に回すと短くなるので4本のラックが位置調整ネジに当たって止まるように調整します。
PWMで駆動力を小さく設定していれば、ラックが調整ネジに当たった後少しの間モーターを駆動し続けても問題ありません。
ROTを時計回りに回すと駆動時間が長くなり、逆に回すと短くなるので4本のラックが位置調整ネジに当たって止まるように調整します。
PWMで駆動力を小さく設定していれば、ラックが調整ネジに当たった後少しの間モーターを駆動し続けても問題ありません。
●遮断棒降下開始までの待ち時間設定
SW1またはSW2に接続されたプッシュスイッチを押した状態にしてから電源をONにします。
電源をONにしてからスイッチを離すまでの時間が警報音/警報灯点灯開始から遮断棒降下開始までの待ち時間として記憶されます。
●センサによる車両検出から踏切警報解除までの時間設定
SENS11またはSENS12に接続されたセンサが列車を検出し踏切が警報開始したらSW1に接続されたスイッチを押して保持します。
すると警報開始からスイッチを離すまでの時間がSENS11及びSEN12が列車を検出してから警報解除されるまでの時間として記憶されます。
SENS21またはSENS22に接続されたセンサについてもSW2に接続されたスイッチで同様に警報解除までの時間を設定できます。
ただし、これらの設定時間は最小が5秒でそれ以下にはなりません。
●双方向対応モードの自動/手動選択
ピンヘッダJ1にジャンパピンを挿すと手動モード、挿さないと自動モードになります。
詳細は前述のコネクタ接続と動作モードの【列車進行方向が切り替わる場合のセンサ接続と動作モード】の通りです。
●警報音ON/OFF選択
SW2に接続したスイッチを2秒以内に2回押す毎に警報音のON/OFFが切り替わり、記憶されます。
●警報音の音量選択
SW1に接続したスイッチを2秒以内に2回押す毎に警報音の音量が3段階で切り替わり、記憶されます。
●警報音周波数選択
SW1に接続したスイッチを押した状態でSW2に接続したスイッチを押すと4種類の警報音が順次切り替わり、記憶されます。
SW2を押す間隔は2秒以上開けてください。