MIRS1702 管理台帳へ戻る
名称 MIRS1702 標準機製作報告書
番号 MIRS1702-REPT-0001

最終更新日:2017.5.19

版数 最終更新日 作成 承認 改訂記事
A01 2017.5.26 本郷稜 初版
A02 2017.6.22 本郷稜 青木先生 第二版

目次


  1. はじめに

    本ドキュメントは、MIRS1702の標準機製作報告書である。







  2. 作業担当

    以下に作業担当を記す。

    Table1.作業担当
    担当箇所 担当者
    電源ボード 増田俊平、本郷稜
    Arduino 田中健太、樋口健
    Raspberry Pi 塚本笙、杉山秀吾
    メカ 海野真乙、由衛拓己






  3. 電源ボード

    3.1 製作

    MIRSMG4D 駆動系 電源ボードをもとに製作した。
    この基板の回路はスイッチを用いてバッテリーの電源のON/OFFを切り替え、モータ制御ボードとArduinoへ電気を送る。
    ターミナルブロックの周辺に極性を識別しやすいように+,-を書き込んだ。
    完成した基板を以下に示す。


    fig.1 電源ボード(表)


    fig.2 電源ボード(裏)

    また、4pinコネクタコードを使ってモータのエンコーダのコードを延長した。
    延長したコードの画像を以下に示す。


    fig.3 コード延長

    3.2 導通試験

    テスターを用いて導通試験をしたが、ショートや断線は無かった。
    バッテリーを繋いでの試験では、スイッチをONにしたときにLEDが点灯し、モータ制御ボードとArduinoへの出力ピンにバッテリーと 同じ7.2Vの電圧がかかっていることが確認できた。
    よって試験は成功した。







  4. Arduino

    4.1 製作

    Arduinoのセットアップをもとにユニバーサル基盤を製作した。
    基盤の画像を以下に示す。


    fig.4 Arduinoユニバーサル基盤表

    fig3のように、縦型のコネクタでな横型のコネクタを用いることでケーブルがごちゃごちゃしにくいように工夫した。
    また、できる限り間隔をつめることで今後の拡張時のスペースを確保した。
    そして、コネクタのつなぐピをArduinoの接続するピンにできる限り近いところに配置することで、配線を最小限にした



    fig.5 Arduinoユニバーサル基盤裏

    fig4のように基盤中央にGND線とVCC線の2本を配置することで、拡張性と各ピンへの配線の簡略化をした。




    4.2 導通試験

    導通試験を行ったが、線のショート(主にGNDとVCC)や断線等の不具合はなかった。
    また、バッテリー電圧監視用のA5ピンには、バッテリーの半分の3.6Vの電圧がきていたので正常であった。 よって、試験は成功した。



    4.3 動作試験

    Arduino単体での動作試験をもとにArduinoの配線を行った。
    配線結果を以下に示す。


    fig6.Arduino単体実験の配線

    エンコーダ出力の確認をもとに波形の確認を行った。
    波形を以下に示す。


    ・エンコーダ


    fig.7 エンコーダA


    fig.8 エンコーダB

    オシロスコープのプローブが片方使用できない状態だったため、波形を二回に分けて測定した。
    よって、エンコーダのA層とB層の信号の動機の確認はできなかった。 けれど、A層・B層単体では正しく動作していて、パルス抜けなどは発生していなかった。


    ・PWM

    プログラムでの指定値5の場合と指定値120の場合の波形を以下に示す。


    fig.9 指定値 5


    fig.10 指定値 120


    指定値5のときはデューティー比が約2%(5/255)で、指定値120のときはデューティー比が約45%(120/255)で正常な値が出力されていた。 よって、エンコーダもPWM信号も正常に出力されていたので波形確認は正常に終了した。

    よって、波形確認、導通チェック無事終了したので、Arduino単体での動作試験は成功した。







  5. Raspbery Pi

    5.1 製作

    RaspberryPi のセットアップとデバイス接続をもとにユニバーサル基盤を製作した。
    基盤の画像を以下に示す。


    fig.11 RaspberryPiユニバーサル基盤


    fig.12 RaspberryPiユニバーサル基盤はんだ面


    fig.13 RaspberryPiユニバーサル基盤の配線

    ユニバーサル基板には、超音波センサ用の4ピンコネクタとタッチセンサ用の2ピンコネクタを実装する。
    超音波センサのSDA,SDC信号ピンにはGPIO2,GPIO3。タッチセンサにはGPGOの18,25,26ピンを使った。
    実装する際、すべてのタッチセンサは正面から見ると右側がグランドになるように実装した。
    現在接続できる超音波センサは4つ、タッチセンサは3つである。
    拡張性を持たせるためにコネクタは隅に配置し、一列に並べることによってコードの配線を分かりやすくした。

    5.2 導通試験

    テスターを用いて導通試験をした。
    導通試験では、レベル変換機から各超音波センサコネクタのSDA,SCL,Vcc,GNDピンが導通していること、Raspberry Piの
    GPIOピンとレベル変換機が正しく配線、導通されていることをチェックした。
    導通試験は不具合なく成功した。

    5.3 セットアップ

    演習室のPCを用いてマイクロSDにRaspbiannをインストールし、その後マイクロSDをRaspberryPiに挿入しRaspberry Pi のインストールとセットアップ をもとにRasbpery Piのセットアップを行った。

    5.4 単体動作試験

    Raspberry Pi での動作試験をもとに動作試験を行った。
    ダウンロードしたファイルmg4_pi_ver3.0.tar.gzディレクトリ内の以下3つのテストプログラムを用いてRaspberry Pi単体での動作試験を行いすべて正常に動作することを確認した。
    その際、超音波センサによる距離計測の限界を調べることや、数字の書かれた紙を5mほど遠ざけてカメラの数字認識の精度を調べることで、センサの能力を知ることができた。
    超音波センサの距離計測の最長は2.5m、数字認識の最長は5.5mであった。
    また、超音波センサのアドレスを71,72にそれぞれ変更することでどちらの超音波センサと通信をしているのかがわかるようにした。
    以下に使用したプログラム名とその概要を示す。
    ・test_uss(超音波センサ(I2Cアドレス 0x70, 0x71)の距離計測を行う。)
    ・test_camera(USBカメラ映像をチェックする。 )
    ・test_number(数字認識が可能かをチェックする。(MIRS2015で使用した数字ボードを50cmの距離に置いた状態で試験する))







  6. シャーシ取り付け

    6.1 仮支柱製作

    写真のような長支柱、短支柱を4本ずつ両端にM5タップ加工した。 当て木を用いて支柱に傷がつかないように気を付けた。


    fig.14 支柱1


    fig.15 支柱2

    6.2 下段シャーシへの電源ボード固定穴加工

    MIRSMG4D 標準機組み立て手順書を参考にΦ3.2の穴を4か所開け、電源ボード固定穴加工を行う。
    穴空けにはボール盤を使用した。
    ネジ径はφ3.0であるが、裏からナットで挟み込むためバカ穴でも構わない。
    この際ネジ径よりも10%大きい径にすべきだがφ3.3ドリルがなかったためφ3.2で加工を行った。

    fig.16 穴あけ

    6.3 組み立て

    ボードを組み立てした。画像を以下に示す。


    fig.17 組み立て1

    その後、正規の支柱が完成したので、長支柱は金属、短支柱はプラスチック製のものに変更した。変更後の画像を以下に示す。


    fig.18 組み立て2

    バッテリーが納まるように新しいバッテリーホルダーをsolidworksで作成し、取り付けた。 タイヤの取り付けはマイナスドライバで滑り込ませるようにして行う


    fig.18 支柱3

    fig.19 支柱4

    fig.20 バッテリーホルダー
    バッテリーホルダーはネジが内部に埋まるようにネジ頭分の径も空けた。バッテリーを上に乗せ、
    外側の塀でバッテリーを囲むように固定する。







  7. 走行動作確認

    Raspberry Pi での動作試験をもとにArduinoとRaspberry Piを接続して動作試験を行った。以下にその時の配線を示す。


    fig.21 配線

    まず、Arduinoのソフトウェアは単体試験のソースの「slave()」関数のみのこし、ほかの関数はすべてコメントアウトする。
    プログラムをArduinoのソースに示す。

    Raspberry Piは、test_requestのプログラムを用いて行った。
    まず、1m直進させて、正常にモーターが回ることを確認した。 次に後退50cm、旋回左180度、右180度の実機の動作の動画を示す。
    走行動作確認

    旋回の誤差は、右回転・左回転ともに±5度以内であった。

    最後にモーター制御のゲイン調整を行った。
    ゲイン調整はArduinoソースの「run_ctrl.ino」のKsという変数を変更した。
    この値を小さしても、あまり直進性には、変化はなかった。
    逆に値を100程度まで大きくしたら、首振りがひどくなりうまく前進しなかった。なので、首振りをぎりぎりしない値の40に決定した。

    ゲイン調整後の100cm/sの速度で500cmの前進を以下の動画に示す。
    前進精度

    動画の通り、発進時にモーターの起動差で若干右に曲がってしまったが、その後はほぼまっすぐ前進した。
    発進時の誤差込みで500cmあたりで右に約15cm。発進後の前進のみでは左右±5cm以内であった。

    以上で正常に走行することができたので、走行動作確認は完了した。
    なお、動作確認中にバッテリー電圧監視ピンとArduinoをつなぐケーブル・Arduinoとモータードライバ左をつなぐケーブルを焼失する不具合が発生した。この不具合を不具合報告書に示す。







  8. 標準機製作完了

    走行動作確認が正常に完了したので、標準機の製作を完了とする。
    完成した標準機を以下に示す。


    fig.22 標準機

    最終的にArduinoのポートは0~1,13,A0~A4の8ポート(アナログ入力可能ポートを5ポート含む)が空いている。
    RaspberryPiは、超音波センサを14個。GPIOピンは21ポート空いている。またUSBポートは、2つ空いている。
    そして、RaspberryPi用の電源のモバイルバッテリーの出力USBポートも1つ空いている。






  9. 不具合報告書

    不具合報告書を以下に記す。

    電源ボード_2pinコネクタ
    モータ回転方向制御不能



  10. 標準機作製報告会

    報告会資料を以下のリンクに示す。

    プレゼンテーション資料