Skip to content

Make MOTIONER IMU and Controller_jp

konnokeina edited this page Jun 15, 2015 · 63 revisions
概要 システム 基板作成 ストラップ作成 装着 使用 購入リスト ダウンロード
トラブルシューティング RAM project

#基板(IMUとController)作成

目次

基板、パーツを注文する

  1. パーツを注文します。詳しくはパーツリストを参照してください。

    • 基盤の実装注文を行う場合も、自作する場合も、各パーツとも多めに購入する事をお勧めします。
  2. MOTIONERのEagleファイルをダウンロードし、お使いのPCBサービスで基板を注文してください。

  • FusionPCBを利用する場合

    1. seeedstudio.comのサイトからEagleデザーンルールをダウンロードします。

    2. MOTIONERIMU.brdをEagleで開きます。

    3. File > CAM Processorを選択し、さらにFile > Open > Job…を選択してFusion Eagle/Seeed_Gerber_Generater_v0r95_DrillAlign.cam開きます。

    4. Process Jobボタンをクリックします。

    5. 出力されたファイルの中から下記拡張しのファイルのみを集めて、一つのフォルダにまとめてzip形式で圧縮します。: *.GTL *.GBL *.GTS *.GBS *.GTO *.GBO *.TXT

    6. FusionPCB siteのページに行き、Choose Fileボタンをクリックします。 先ほどzip形式で圧縮したファイルを選択してアップロードしてください。

    7. PCB Thicknessは0.8 mmに、PCB Dimensionは5x5cmに、Quantityは少なくとも20以上で、必要に応じて増やしてください。

    8. Add to Cartボタンをクリックしてください。

    9. 同様にMOTIONERController.brdのガーバーデータも作成します。手順は先ほどと同じです。

    10. こちらはPCB Thickness1.0~1.2mm程度に、PCB Dimensionは10x10cm、Quantityは10にしてください(実際に使用するのは1枚ですが、FusionPCBでは10枚からのオーダになります)。

    11. Add to Cartをクリックし、全ての注文を確定してください。

    12. 多くの場合は2週間程度で基板が到着します。

  • P板.comを利用する場合

    • 基盤製造注文

      1. P板.comのページに行き、1-Click 見積もりボタンを押します。

      2. 以下の画像のように、記入欄に記入します。(製造枚数、リピート製造枚数、レジスト色は任意に設定してください)

      3. コースを選んで注文手続きに進んでください。

      4. 注文手続きの際、製造ファイル登録の箇所でファイルを選択をクリックして、MOTIONERIMU_pban.zipをアップロードしてください。

    • 実装注文

      1. P板.comのページに行き、1-Click 見積もりボタンを押します。

      2. 基盤製造注文の記入に加えて、以下の画像のように記入してください。(実装枚数は任意に設定してください)

      3. コースを選んで注文手続きに進んでください。

      4. 実装ファイル登録の箇所で、「部品リスト」ではMOTIONERIMU_pban_Implementation/partslist.xlsを、「実装図」ではMOTIONERIMU_pban_Implementation/MOTIONER+IMU_face layout.pdfを、メタルマスク用ガーバーデータではMOTIONERIMU_pban_Implementation/fabricationData.zipをアップロードしてください。

トップに戻る

はんだステンシルマスクを作成する

  • 基板に塗布するクリームはんだのマスク用のステンシルを作成します。
  1. circuit/eagle/v051/imu/MOTIONERIMU.brdを開きます。

  2. EagleでULPボタンを押します。

  3. circuit/stencil/cream-dxf.ulpを開きます。

  4. "Run"ボタンを押します。.dxfファイルがcircuit/eagle/v051/imu/フォルダに出力されます。

  5. MOTIONERNode-tcream.dxfのみを利用します。 Adobe Illustratorなどの、カッティングマシーンが対応しているアプリケーションでファイルを開いてプリント(カット)してください。cutting machine

実装

  1. クリームはんだを基板に塗布します。

  2. クリームはんだを塗布する基板と同じ厚みの基板を四方に置き、しっかり中央の基板を挟み込んでから周囲の基板をテープで止めます。

  3. はんだマスクを基板の上に置いてテープで止めます。マスクの全ての穴から銀色のパターンが見える様に注意深く調節してください。

  4. スキージ等でクリームはんだを塗布します。多すぎず、少なすぎずなるべく一度に全てのパターンを塗りつぶします。

  5. 余分なはんだをスキージを縦にした状態で掻き取ります。力強くやり過ぎると必要なはんだまで無くなってしまい上手くいきません。

  6. 全てのパーツを基板上に慎重に置いていきます。

    • Eagleの配線図とパーツリストを確認しながら全てのパーツを精密ピンセットで置いていきます。

    • 0.1uFのコンデンサなど、背が低く数の多いパーツから始めていく事をお勧めします。

    • LEDと各種ICには向きがあるため正しい向きに置く様に注意してください。

    • パーツを置いたらピンセットでパーツの上から軽く押さえて固定します。

    • もしチップ部品やICがパターンからずれてしまった場合はピンセットで優しくずらして位置を合わせます。特にMPU6050とHMC5883Lに関しては確実にパターンの中心にパーツを置く様にしてください。

  7. ホットプレートで基板をリフローします。

    1. ホットプレートの上にパーツを乗せ終わった基板を置きます。

    2. 180Cで3分間余熱(プレヒート)します。

    3. 温度を230Cに設定します。

    4. クリームはんだを観察します。

    5. 何秒かするとクリームはんだが溶け始めます。

    6. すべてのはんだが溶け切ったら、30秒間待ってからホットプレートの電源を切り、冷えるまで待ちます。

    • 冷ます前に取り出す場合は、パーツがずれない様に注意してください。また、火傷に注意してください。
  8. 全てのピンにはんだのブリッジがない事を確認します。隣りあったピンとはんだで繋がっていないかチェックします。

    • テスターで全てのICの隣り合ったピン同士を調べるのが簡単です。中にはパターン上で繋がっているピン同士もあるため配線図も参照してください。

    • もしはんだブリッジを見つけた場合ははんだ吸い取り線で取り除きます。

  9. ピンソケットを半田付けします。

    • 1x6ピン
    • 2x3ピン
    • 1x2ピン

トップに戻る

Arduinoのスケッチをアップロードする

準備

  1. Arduinoソフトウェアをインストールします。 詳しくはGetting Started with Arduinoを参照してください。
  2. ◎お使いのPCの環境によってはFTDIドライバというソフトをインストールする必要があります。ArduinoをPCとUSBケーブルで接続した場合にPCがポートを認識できない場合はFTDI社ウェブサイトからドライバを入手してインストールしてください。
  3. MOTIONER Arduinoスケッチをダウンロードします。
  4. MOTIONER/Arduino/LibrariesフォルダをArduinoの/Librariesフォルダにコピーします。

ATMega328P AUにブートローダーを書き込む

  1. "Arduino ISP"を作成します。

    1. Arduino Duemilanoveを使って作成する場合
      1. 下記イメージのとおりにジャンプワイヤーをArduino Duemilanoveに繋ぎます。

      2. 120Ωの抵抗を下記イメージの通りに差し込みます。

      3. 完成したArduino ISPをコンピュータに接続します。

      4. メニューのTools > Board >からArduino Duemilanove w/ ATMega328を選択します。

      5. 作成したArduino ISPのシリアルポートをTools > Boardから選択します。

      6. メニューからFile > Examples > Arduino ISPを選択します。

      7. Arduino ISPスケッチが開かれるので、File > Uploadを選択してスケッチをアップロードします。

    2. Arduino Unoを使って作成する場合
      1. 下記イメージのとおりにジャンプワイヤーをArduino Unoに繋ぎます。

      2. 10μFのコンデンサを下記のイメージ通りに差し込みます。

        ※ シールド基盤を作成しても良いでしょう

      3. 完成したArduino ISPをコンピュータに接続します。

      4. メニューのTools > Board >からArduino Unoを選択します。

      5. 作成したArduino ISPのシリアルポートをTools > Boardから選択します。

      6. メニューからFile > Examples > Arduino ISPを選択します。

      7. Arduino ISPスケッチが開かれるので、File > Uploadを選択してスケッチをアップロードします。

  2. ブートローダーを書き込みます。

    1. MOTIONER IMUの2x3列のピンソケットにArduino ISPのジャンプワイヤーを接続します。
      • 上記図では茶色のケーブルがIMUの左側に来る様になっています。向きに注意してください。Arduino ISPのVCCから出ているワイヤーと、IMUのVCCを対応させる様に接続します。Eagleの配線図も参照してください。正しく接続されると、基板左下のMCP2551の隣のLEDが点灯します。
    2. Tools > Board >からArduino Pro or Pro Mini (5V, 16MHz) w/ ATMega328を選択します。
    3. Arduino ISPのシリアルポートを選択します。
    4. Tools > Programmer >からArduino as ISPを選択します。
    5. Tools > Burn Bootloaderをクリックします。
      • ブートローダーが書き込まれるまでにしばらく時間が掛かります。

テスト1(Arduinoとしての動作確認)

  1. Arduino/LEDandSerialDebug/LEDandSerialDebug.inoスケッチをArduinoソフトウェアで開きます。 2.Arduino Pro or Pro Mini (5V, 16MHz) w/ ATMega328Tools > Board >から選択します。
  2. USB Mini BケーブルとFTDI Basic Breakout 5Vを繋げてMOTIONER IMUをコンピュータに接続します。FTDI Basic Breakoutの向きに注意してください。正しく接続されるとLEDがひとつ点灯します。
  3. 正しいシリアルポートをTools > Serial Port >から選択します。
  4. File > Uploadを選択してIMUにスケッチをアップロードします。
  5. 問題なくアップロードが完了すれば、IMUの右端、ATMega328Pの隣のLEDが点滅し始めます。
  6. Arduinoソフトウェアのシリアルモニターを開き、ボーレートは57600を選択します。 "-- MOTIONERIMU LED and serial debug --"というログが表示されます。
  7. これでMOTIONER IMUが問題なくArduino互換機として動作する事が確認出来ました。スケッチが書き込めない場合などは正しく動作していませんので、はんだブリッジやIC、LEDの向き等を確認してください。

テスト2(CAN(Controller Area Networkの動作確認)

  1. Arduino/CANDebug/CANDebug.inoスケッチをIMUにアップロードします。
  2. Arduinoソフトウェアのシリアルモニターを開きます。
  1. "0x55 0xAA 0x00 0xFF…"といったがログが表示されていればCAN(Controller Area Network)が正しく動作しています。"0x00 0x00…"といったログ等の場合は正しく動作していません。Arduino ISPの作成から再度行ってください。また、自作の場合ははんだブリッジやICの向き等を確認してください。

テスト3(IMUの各センサの動作確認)

  1. Arduino/IMUDebug/IMUDebug.inoスケッチをIMUにアップロードします。
  2. Arduinoソフトウェアのシリアルモニターを開きます。
  3. シリアルモニターに表示されるログの末行に"calibration loaded from default values"と表示されていれば各センサーが正しく動作しています。
  4. キャリブレーションセクションに移ってください。

キャリブレーションする

1. キャリブレーション用台座を作成する ※ 台座を作らずに手で回転させても、キャリブレーションを行うことはできます。 1. 台座部分を作成します 1. [360度回転サーボモーター](http://akizukidenshi.com/catalog/g/gM-01969/)、Arduino Uno、[タクトスイッチ](http://akizukidenshi.com/catalog/g/gP-02561/)、ジャンプワイヤー、[12kΩ抵抗](http://akizukidenshi.com/catalog/g/gR-25123/)、[ブレッドボード](http://akizukidenshi.com/catalog/g/gP-05294/)[クリップ](http://www.askul.co.jp/p/8484484/)、MDF(3㎜厚)を用意します。 2. 下記イメージのように、MDFを切り出し、穴を開けて、張り合わせます。
        ![](https://github.com/YCAMInterlab/MOTIONER/wiki/res/Make-MOTIONER-IMU-and-Controller/Calibrate0.png)
    3. MDFとクリップを張り合わせます

        ![](https://github.com/YCAMInterlab/MOTIONER/wiki/res/Make-MOTIONER-IMU-and-Controller/Calibrate1.png)
    4.	MOTIONER IMUを[プラネジ、プラナット](http://akizukidenshi.com/catalog/g/gP-02743/)などで台座に固定します。
2. 制御部分を作成します
    1. 下記のイメージのとおりに、ジャンプワイヤーで、サーボモーターとArduino Unoを繋ぎます。

        ![](https://github.com/YCAMInterlab/MOTIONER/wiki/res/Make-MOTIONER-IMU-and-Controller/Calibrate2.png)
    
    2. [MOTIONER_calibration_sketch_drawings](https://github.com/YCAMInterlab/MOTIONER/wiki/downloads/MOTIONER_calibration_sketches.zip) をダウンロードします。
    3. `MOTIONER_calibration_sketch_drawings/Arduino/Libraries`フォルダをArduinoの`/Libraries`フォルダにコピーします。
    4. `MOTIONER_calibration_sketch_drawings/Arduino/calibrationServo`フォルダを開けて、`calibrationServo.ino`を開きます。
    5. Arduino Unoをコンピュータに接続します。
    6. メニューの`Tools > Board >`から`Arduino Uno`を選択します。
    7. 正しいシリアルポートを`Tools > Board`から選択します。
    8. `File > Upload`を選択してスケッチをアップロードします。
  1. キャリブレーションを行う
    1. MOTIONER IMUをMacまたはWindowsに接続します。
    2. Arduino/IMUDebug/IMUDebug.inoがMOTIONER IMUにアップロードされている事を確認します。
    3. Processing/MagnCalibration/MagnCalibration.pdeを開きます。 0. スケッチのSERIAL_PORT_NUMを正しいポート番号に設定します。
      1. 地磁気センサのキャリブレーションを行います。

      2. キャリブレーション用台座を使用する場合は、下記のイメージのようにMOTIONER IMUを取り付けたパーツをクリップではさみ、タクトスイッチを押して台座を1回転半以上回転させます。

      3. 回転させ終わったら、クリップで挟む場所を変えて、3カ所同じ事を行ってください。

      • このキャリブレーションの目標は最も大きな球体を描く事です。回転させるときにIMUを向けている方角によって大きさが変わるので注意してください。詳しくは RazorAHRS Extended magnetometer calibrationを参照してください。
      1. 十分な数の点が描画された事を確認したら、Enter/Returnキーを押します。キャリブレーションデータはMOTIONER IMUのEEPROMに保存されます。
      2. 上手く行かなかった場合は'r'キーでリセットできます。
    4. Processing/AcceCalibration/AcceCalibration.pdeを開きます。 0. スケッチのSERIAL_PORT_NUMを正しいポート番号に設定します。
      1. 加速度センサのキャリブレーションをします。
      2. キャリブレーション用台座を使用する場合は、MagnCalibrationと同様に、MOTIONER IMUを回転させてください。 ※ 純粋な重力をサンプリングするために、IMUを非常にゆっくりと全ての方向に回転させます。このキャリブレーションの目標はXYZ全ての軸で純粋な重力の最小値と最大値を取得する事です。
      3. Enter/Returnキーを押します。キャリブレーションデータはMOTIONER IMUのEEPROMに保存されます。
      4. 上手く行かなかった場合は'r'キーでリセットできます。
    5. Processing/GyroCalibration/GyroCalibration.pdeを開きます。 0. スケッチのSERIAL_PORT_NUMを正しいポート番号に設定します。
      1. ジャイロセンサのキャリブレーションを行います。
      2. IMUを絶対に動かない様にします。
      3. もし動かしてしまった時はrキーでいつでもリセットできます。
      4. 10秒ほど待ちます。
      5. Enter/Returnキーを押します。キャリブレーションデータはMOTIONER IMUのEEPROMに保存されます。
    6. Processing/GyroCalibration/IMUVisualization.pdeを開きます。 0. スケッチのSERIAL_PORT_NUMを正しいポート番号に設定します。
      1. 画面上に現れる赤い四角形が、MOTIONER IMUの動きに合わせて動いていたら成功です。
      2. 赤い四角形が全く動かない場合は、キャリブレーションを始めからやり直してください。

トップに戻る

MOTIONERIMUファームウェアをアップロードする

  1. Arduinoを立ち上げて、Arduino Pro or Pro Mini (5V, 16MHz) w/ ATMega328Tools > Board >から選択します。
  2. 正しいシリアルポートをTools > Serial Port >から選択します。
  3. Open Arduino/MOTIONERIMU/MOTIONERIMU.inoをアップロードします。
  4. Arduinoのシリアルモニターを開き、@nコマンドをIMUに送信します。
  5. ノード(関節、ジョイント)IDの入力待機状態になるのでa~rまでのいずれかの文字を送信してノードIDを設定します。IDはaから数えて順番に0-17に割り振られています。

各関節名と関節ID、コマンドの対応は下記の通りです。

Joint Name ID command
HIPS 0 @na
ABDOMEN 1 @nb
CHEST 2 @nc
NECK 3 @nd
LEFT_HIP 4 @ne
LEFT_KNEE 5 @nf
LEFT_ANKLE 6 @ng
RIGHT_HIP 7 @nh
RIGHT_KNEE 8 @ni
RIGHT_ANKLE 9 @nj
LEFT_COLLAR 10 @nk
LEFT_SHOULDER 11 @nl
LEFT_ELBOW 12 @nm
LEFT_WRIST 13 @nn
RIGHT_COLLAR 14 @no
RIGHT_SHOULDER 15 @np
RIGHT_ELBOW 16 @nq
RIGHT_WRIST 17 @nr

これでMOTIONER IMUを使う準備ができました。

トップに戻る

mbedのプログラムをアップロードする

  1. mbedをコンピュータに接続します。mbed/MOTIONERController_LPC1768.binmbed/settings.txtをフラッシュメモリとして認識されたmbedにドラッグアンドドロップします。
  2. mbedのリセットボタンを押します。

###Controllerの設定のカスタマイズ###

mbed/settings.txtを編集することでControllerが接続するネットワーク、ControllerのIPアドレスなどを変更出来ます。変更が完了したら再度mbedにドラッグアンドドロップしてください。

  • Line 1: MotionerNet > Controllerを接続するコンピュータで作成するSSIDです。
  • Line 2: 192
  • Line 3: 168
  • Line 4: 2
  • Line 5: 1 > Line 2 ~4はControllerを接続するコンピュータのIPアドレスです。(例では192.168.2.1)
  • Line 6: 192
  • Line 7: 168
  • Line 8: 2
  • Line 9: 103 > Line 6 ~9はControllerのIPアドレスです。2代目以降のControllerではLine 9の数字を104や105など、Line 4、0、255以外の異なる値に変更する必要があります。(例:192.168.2.104)

トップに戻る

XBee Wi-Fiをセットアップする

* Windowsのみ * Macユーザーの方はシリアルターミナルソフトを使う事でXBeeWiFiの設定を行う事が出来ます。(e.g. CoolTerm.app)

  1. XBee Wi-Fi Explorer USBを作成します。

    • XBee Wi-Fiは起動時に大量の電力を消費します。その為モデムのリセットを防ぐ為に470uFのコンデンサをsparkfun XBee Explorer USBのVCCとGNDピンの間に接続する必要があります。

  2. 最新版のX-CTUをDigi InternationalのwebサイトのSupport > Diagnostics``Utilities and MIBs > X-CTU(from list) > Select this product > XCTU ver x.x.x.x installerからダウンロードします。

  3. 先ほど作成したXBee Wi-FiエクスプローラをWindowsに接続します。ドライバが自動的にインストールされます。

  4. X-CTUを起動します。

  5. 正しいcom portがPC Settingsタブで選択されているか確認します。Windowsのデバイスマネージャーから正しいCOMポートを確認する事が出来ます。

  6. baudrateから9600を選択してTest/Queryボタンをクリックします。

  7. モデムへの接続が確認出来たら、ModemConfigurationタブを選択します。

  8. Readボタンをクリックして、/MOTIONER/XBee/MOTIONER_XBeeWiFi_settings.proを読み込みます。

  9. 必要であればIPアドレスを変更します。(Default is 192.168.20.5).

  10. Writeボタンをクリックします。

    • もし失敗したらcom portとbaudrateをPC settingsタブから確認します。
    • MOTIONER IMUのデフォルトのbaudrateは115200のため、一度書き込み終をした後はbaudrateから115200を選択する必要があります。

トップに戻る

ケーブルを作成する

[パーツリスト](https://github.com/YCAMInterlab/MOTIONER/wiki/Parts-list)にケーブルの本数と長さが記載されています。

下記行程を計18本分繰り返します。

  1. 適切な長さにケーブルを切断します。
  2. ケーブルの先端の被服をワイヤーストリッパーなどで剥きます。
  3. JST PHコネクタ用コンタクトをケーブルに圧着工具で圧着します。
  4. コンタクトを下記の図の順番の通りにPHコネクタに差し込みます。

ピン配列

トップに戻る

-- Creative Commons License
This Document by YCAM InterLab, Yoshito Onishi is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.