blogこの広告は、90日以上更新していないブログに表示しています。まとめにつき、内容に誤りがあればご指摘いただけると助かります。本記事内容の参照は自己責任にてお願いします。モータの軸の延長モータの出力軸は短いため、用途によってはカップリングを用いて軸の延長を行う。このとき、軸が長くなるとすりこぎ運動(歳差運動)が起きやすくなる。軸が振れないようにする。このとき、2つの軸受を用い、離れた2点で軸を支えると安定する。回転の軸(axial)方向の成分に分解できる。それぞれを、ラジアル荷重とアキシアル荷重と呼ぶ。軸受は支えられる荷重の方向と大きさが決まっているため、モータにかかる荷重に合わせて軸受を選定する必要がある。滑り軸受の2種類が存在する。転がり軸受の方は動きが軽く、高速回転に強い。すべり軸受は、シンプルな構造のため構造強度が高く、厚さが薄くなるのでコンパクト化がはかれる。今回は、転がり軸受を用いることにした。参考:https://www.igus-japan.jp/bearing_2_slide_rolling/そして転がり軸受は、受けられる荷重の方向によってラジアル軸受スラスト軸受に分類される。これらは主に接触角によって使い分けられ、それぞれ異なる方向の荷重を支えるのに適している。一般に接触角が45°以下では、ラジアル荷重の負荷が大きいためラジアル軸受を用いる。接触角が45°を超えると、アキシアル荷重の負荷が大きくなるのでスラスト軸受を用いる(アキシアル軸受ではないらしい)。モータにかかる荷重を理解し、適切な軸受の選定を行う必要がある。してカタログに与えられている。して、軸受には一方向成分かつ一定の荷重がかかるものとして定義されている。実際の利用では、軸受にはラジアル荷重とアキシアル荷重の合成荷重がかかり、大きさも一定とは限らない。ラジアル軸受の場合は純ラジアル荷重(アキシアル成分なし)、スラスト軸受の場合は純アキシアル荷重(ラジアル成分なし)として等価荷重を算出する。等価荷重への換算を行うための式や係数はカタログで与えられている。得られた等価荷重を参考に、軸受の選定を行う。等価荷重の計算の例NSKではカタログに計算式が示されている(要追記)。今回は、延長したモータの軸先に円板を取り付け、軸の長いターンテーブルを作りたい。偏心によるラジアル荷重(要調査:加速度の影響もあるらしい?)である。ここで、モータの軸を延長するためには当然軸受だけでなく、延長する軸自体(シャフト軸)も選定する必要がある。シャフト軸の選定モータの出力軸を延長し、軸受によって支えられるシャフト軸は、軸受を選定したあとに決めるのがよい。これは、穴加工の方が棒加工よりも困難なためである。内輪と軸のはめあいを考えながら軸を選定する。https://www.jstage.jst.go.jp/article/jjspe1986/71/3/71_3_327/_pdfはめあいとは一体にする穴と軸の組み合わせの関係であり、その関係には以下の3種類が存在する。機能に差し支えのない範囲の寸法の誤差は許容しなければ、時間的にもコスト的にも不利である。そのため事前に寸法の誤差の許容範囲を定め、それをふまえた上で設計を行う。以下の例では、基準となる寸法50.000mmを中心に、上下に0.005mmずつの誤差を許容している。この「公差域の位置」と「寸法公差」は、公差域クラス(JIS規格)としてアルファベット+数字で記述される。公差域クラス※公差域クラスは基準寸法によって異なった値を取ることに注意する。アルファベットは公差域の位置を表し、後ろの数字は公差域の幅を表している。公域差の幅は、IT基本公差に則っている。軸の公差域クラスは小文字、穴の公差域クラスは大文字のアルファベットで記述される。基準寸法が10mmのとき、h7の軸の寸法許容差は上が0μm、下が15μmf7の軸の寸法許容差は上が-13μm、下が-28μmである。公差域の位置は異なるが、幅はどちらも15μmとなっている。ここでIT基本公差の表を見ると、基準寸法が10mmのとき、公差等級の数字7が示す基本公差の値が15μmであることが確認できる。軸:上の寸法許容差が0μm、下の寸法許容差が-15μm穴:上の寸法許容差が+15μm、下の寸法許容差が0μmである。このとき、穴に軸を通した際には最小で0μm、最大で30μmのすきまが生じ、しまりの状態になることはない。よって、h7とH7のはめあいはすきまばめであることがわかる。実際に軸受を使う際は、軸を内輪の穴に通し、外輪をハウジングの穴に固定する。このとき、軸と内輪/外輪とハウジングをそれぞれ「すきまばめ」にするのか「しまりばめ」にするのかは、回転の区分と荷重の性質によって決定する。各軌道輪にかかる相対的な荷重について考えることで、穴と軸のはめあいが決定できる。軌道輪に回転荷重が作用する場合、しまりばめにする必要がある。軌道輪に静止荷重が作用する場合、すきまばめにすることができる。荷重は軸・内輪とともに回転するため、内輪にかかる荷重は相対的に静止している静止している外輪に沿って荷重を持った内輪が回転するため、外輪にかかる荷重は回転しているとみなすことができる。よってこのときの荷重の性質は内輪静止荷重かつ外輪回転荷重である。上記の荷重の性質によって決まるはめあいは、実際には更に細かい条件に応じてしまり・ゆるみの調整することが奨められている。以下に、ラジアル軸受に対して常用される軸の公差域クラスの表を示す。荷重の大きさや軸の設置条件、または荷重の方向によって、異なる程度のしまり・ゆるみが示されている。以下の表では軸の寸法許容差は公域差クラスで示されているのに対して、内輪の寸法許容差は公差域クラスで考えられていないことに注意する(0級、6X級、6級)。(NTNの技術資料より引用)軸受の等級ラジアル軸受の内輪寸法の許容差は、上述した穴の公差域クラスでなく、等級やその他の手法で表されることがある。NTNの軸受はJISの等級で分類され、この等級は0級が最も一般的である。等級における穴の寸法の許容差は(平面内)平均内径の寸法差として表され、0級の場合上が0μm,下が-8μmである。等級による軸受の精度は以下の資料の中で示されている。軸受の精度(NTN)等級における内輪の寸法差と、その等級と軸の公差域クラスとのはめあいの関係は以下の表で示されている。(NTNの技術資料より引用)補足:旭精工の軸受ユニットの場合、その精度は以下の表で示される。(旭精工の技術資料より引用)また、旭精工は上記の軸受ユニットの取扱いとして、以下の資料内で推奨する軸の寸法許容差を示している。16:52モータの軸を延長して回すTweet広告を非表示にするもっと読むコメントを書く2017-06-16L6470でステッピングモータを動かすステッピングモータこの記事についてL6470(を使用した既存のモータードライブキット)でステッピングモータを動かす記事です。この記事は、サンプルコードを拾ってきて、とりあえず動かす(動かした)だけでは少しモヤモヤするという人に向けて書いています。私もモヤモヤしたので、可能な範囲で調べてこの記事を書いています。そのため、記事内容に収まらない応用方法についてはお答えできないかもしれません。L6470はバイポーラステッピングモータのドライブICですが、基本的には実装されたキット全体を指してL6470と書いています。L6470などと書いています。BlueL6470でステッピングモータを回すピンの役割と接続モータの制御はマイコンとL6470をピンで接続し、SPI通信によってコマンドを送受信することで行われる。Master(制御する側)とSlave(制御される側)を以下としたときの各デバイスのピンの役割を理解し、正しい対応関係でピン同士を接続する。デジタル信号を渡すことでスレーブを選択する。LOWが渡されたスレーブはマスタとの通信をおこなう。HIGHが渡されたときマスタからのデータを無視する。負論理ArduinoとL6470の各ピンを比較すると、以下の対応関係でピンを接続することがわかる。(#CS)その他のピン必要に応じてその他のピンも接続することで、L6470に機能を追加して利用することができる。bitがLOW(0)のときdefault)・デフォルトの状態では、コマンド実行中はLOWになる。到達)、このBUSYピンは解放される。bitがHIGH(1)のとき)・このモードでのステップクロック信号は、SYNC_SELとSTEP_SELパラメータの組み合わせに応じて出力される。アラーム発生時にFRAGピンをGNDに接続する。ロジック出力ピンの電圧範囲を設定。VDDpinは内部でVregまたは3.3V電源に接続されていない。mode時に入力された信号によってモータの動きが定義される。levelでlogicをリセット、デバイスをスタンバイモードに。使わない場合はVDDにつなげておく。L6470やモータを動かすためには当然電源が必要。L6470)を動かすロジック電源が必要である。キットではジャンパピンの挿入によって、MCUへの電源電圧の供給方法を設定することができる。MCUは3.3~5Vの間で動作し、MCUからマイコンへ入力されるデジタル信号の電圧もロジック電源の電圧によって決定される。L6470は内部のレギュレータによってモータ電源から3Vの電圧をMCUに回すことができるが、その場合はArduinoに入力するデジタル信号も3Vとなってしまう。Arduinoは5V駆動であるため、3Vのデジタル信号をArduinoに入力することは好ましくない。よって、MCUの内部レギュレータは使用せずに、Arduinoの5VピンからEXT-VDDピンに電圧を供給してMCUを駆動させるのが良い。(下図真ん中の方式)SPI通信の設定をするL6470を使う際には、初めにコマンドを送るためのSPI通信の設定を以下のように記述する。これらの設定はL6470のSPI通信の仕様に従って決めたものであり、仕様はデータシートで確認できる(データシートの確認については後述)。)}以下では、上の各設定についてそれぞれ説明する。SPI.begin()SPIバスを初期化する。SCK、MOSI、SSの各ピンは出力に設定され、SCKとMOSIはlowに、SSはhighになる。日本語リファレンスSPI.setBitOrder()SPI.transfer()という関数で送信する1バイト(8ビット)分の情報を、左端(最上位)と右端(最下位)のどちらから送信するかを決める。2通りがあり、いずれかを選択する。LSB以下の表で示している通り。polarity)という2つの要素を決定する。SPI_MODE3SPIの設定まとめSPI.setBitOrder()とSPI.setDataMode()の設定の組み合わせは以下の通り。Interface)。(追記予定)コマンドの送信方法L6470は、SPI通信で内部のレジスタにコマンドをシフト(送信)することで制御することができる。送信する8ビットごとに、CS(SS)のHIGH->LOWを行うことが必要であり、以下のようなコマンド送信用の関数を用意すると良い。モータ制御のために送信するコマンドについてはこの次に記述する。3バイト以上送ろうとしたら回避する処理をちゃんと書いた方が良いと思う...}制御のパラメータを設定するL6470には、モータの制御に関するパラメータを設定するための内部レジスタ(記憶回路)が多く存在する。レジスタのアドレスを指定したのちに値を送信することで、パラメータを設定することができる。各レジスタは可変長、22ビットや4ビット等がある。各レジスタの内部アドレスは0x01~0x19が割り当てられている各レジスタのパラメータには初期設定(デフォルト値)が決まっており、電源投入直後にはデフォルト値が設定される大体はデフォルトの値で動作する。setup()内で、モータ駆動する前に以下の内容を実行する。L6470_send(0xc0);}nop命令を4回(4byte分)送った後に、デバイスをリセットする(ResetDeviceコマンドを送る)。ネット販売データシート和訳L6470のデータシートの一部を翻訳してみました。北の国から電子工作(仮)L6470ステッピングモータドライバを動かす。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。