TNCT-Mechatech / MotorDriver-Controller_v3

DCモータドライバ及びエンコーダの管理を統合したシステムです。
Apache License 2.0
1 stars 1 forks source link

MDController version.3


 モータドライバを4つ複数運用するシステムです。また、4つの高精度ロータリーエンコーダのデコードを行うことができます。

概要

必要な環境

導入

 まず、本リポジトリを任意の位置にクローンします。ここでは、次の通りのパスに配置したとします。 C:/Users/UserName/Arduino/MDController_v3  Arduino IDE を起動し、ファイル > 環境設定 から、スケッチの保存場所を本リポジトリのある位置に変更します。 画像1

 次に、Tiny85に必要なスケッチを書き込んでいきます。最初に、ファイル > スケッチ例 > 11.ArduinoISP > ArduinoISPを選択しISP用のArduinoUNOに書き込んでおきます。  Tiny85とArduinoUNOを次のように結線し、ArduinoUNO側をPCと接続します。 画像2

 Tiny85の設定を行います。ツール > ボード > ATtinyX5_WireNodeを選択します。それ以外の設定はそのままでよいです。書き込み装置を Arduino as ISP に設定し、シリアルポートの状態を確認して、ブートローダを書き込む を押して書き込みが終わるのを待てば設定は完了です。なお、ブートローダの書き込みは一度行ったものであれば再度行う必要はありません。 画像3

 設定が完了したものにスケッチを書き込みます。接続はブートローダを書き込んだ時の配線と同じです。書き込むスケッチはファイル > スケッチブック > tiny85 > IncrementalDecoderから開くことができます。

 書き込む際は、ツール > ボード > I2CSlaveAddressの番号をデバイスごとに指定しながらそれぞれ書き込んでいきます。特に指定がなければ、MDController用に4つ分のaddr1~addr4までの値をしていけば問題ないです。

 次に、atMega328p-pu側のスケッチを書き込む。ArduinoUNOとして扱うので、基板設計の際の発振周波数及び、書き込み部分に関してはこちらの回路図を参考にしてください。  スケッチはファイル > スケッチブック > uno > MDControllerを書き込んでください。

使用方法

 MDControllerの使い方について説明する。

コンフィグモード

 MDControllerのD12ピンをGND短絡した状態で起動すると、内蔵されたEEPROMに必要な設定をUARTから書き込むコンフィグモードに移行します。LEDが短く点滅する状態が目印です。  また、デバッグモードでの操作はArduino IDEに付属しているシリアルモニターで行うことを推奨します。

 コンフィグモードが起動すると、UARTモニタに現在設定されている自身のI2CアドレスとPWM出力の周波数及び各ポートのPID制御用の設定が表示されます。これを見て、変更したい項目のコマンドを入力してください。

 コマンドは次の通りです。なお、入力コマンドはASCII文字で大文字小文字を区別し、改行はLFのみです。x,Xには任意の数値が入ります。

入力コマンド 説明
"RR\n" EEPROMの内容を全て初期化します。
"a x\n" 本体のI2Cスレーブアドレスを設定します。(x=I2Cアドレス)
"px X\n" PIDのPゲインを設定します。(x=ポートID,X=ゲイン(符号なしfloat))
"ix X\n" PIDのIゲインを設定します。(x=ポートID,X=ゲイン(符号なしfloat))
"dx X\n" PIDのDゲインを設定します。(x=ポートID,X=ゲイン(符号なしfloat))
"rx X\n" エンコーダの単相パルスを指定します。(x=ポートID,X=パルス数[PPR])
"sx X\n" 回転速度の最大値を設定します。(x=ポートID,X=最大回転速度[RPS])
"SS\n" 変更した事項をEEPROMに書き込みます。

通常モード

 MDControllerのD12ピンを解放した状態で起動すると、LEDが点灯し起動処理の後、ホストマイコンと通信を行いモータを操縦する通常モードになります。LEDがゆっくり点滅する状態が目印です。

起動処理について

 必要なセッティングを行います。Tiny85の接続は起動前に行っておいてください。一つも接続されていない場合通常モードへの移行ができません。  また、UARTの方に起動時の各パラメータを表示しています。I2C通信を行う前に必ずご確認ください。  

動作中について

 I2C通信を介してホストマイコンと交信を行っています。通信の内容について知りたい方は こちら の文書を参考にして下い。  

リリース

 本ソフトウェアは、ApacheLicense2.0の下で配布されます。詳しくはLICENSEファイルをご確認ください。

 質問や連絡等はこちらにメールをください。

taiyou24690@gmail.com