名称 MIRS1904標準機製作報告書
番号 MIRS1904-REPT-0001

版数 最終更新日 作成 承認 改訂記事
A02 2019.5.24 杉山七海 大沼

ドキュメント内目次



1. はじめに

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


2.担当

  tabel.1 は製作担当の振り分けである。

table.1 製作担当
役割 担当者
駆動系電源ボード 杉山、大川
Arduino 山本、中尾
RasberryPi 渡部、村松、佐藤
標準機メカニクス 太田、土屋、佐藤

3.製作手順

 標準機製作における作業手順を示す。
   3.1 電源ボード
   3.2 Arduino
   3.3 RasberryPi
   3.4 標準機メカトロニクス

3.1 電源ボード

 電源の回路は以下の回路図(Fig.1)を元に実装し、部品面はFig.2、はんだ面はFig.3のようになった。

Fig.1 回路図
Fig.1 回路図

Fig.2 部品面
Fig.2 部品面

Fig.3 はんだ面
Fig.3 はんだ面

 基板配線にはケーブルか、金属線(リード線をカットしたもの)を用いた。
 バッテリーおよびMCB接続の端子は、入力側(バッテリ)を緑、出力側(MCB)を青とし、Fig.3のようにターミナルブロック2ピン(縦・小)を用いた。
 MCB接続部の端子はブロックを二つに増やし、接続しやすくした。

3.2 Arduino

3.2.1 ユニバーサル基板の作成

 MIRS4Dドキュメント管理台帳のArduinoのセットアップとデバイス接続(MIRSMG4D-SYST-0003)を参考にし、Fig.4、Fig.5のように配線を行った。

Fig.4 Arduino基盤(表面)
Fig.4 Arduino基盤(表面)

Fig.5 Arduino基盤(裏面)
Fig.5 Arduino基盤(裏面)

3.2.2 導通チェック

 管理台帳の回路実装図を見て配線したが、間違えてつないだ箇所があったため回路の仕組みを理解した上で実装するべきであった。具体的にはピンヘッダと繋ぐべき線を全体的にそれぞれ2穴ずつずらして付けてしまったために、ArduinoのGND等とつながらず電流が流れないといったことがあった。ですので、後から見て回路がわかるようにきれいに配線することを心がけ、またgnd、vcc等につながる線には印をつけわかりやすいようにした。
 実装後すべての配線の導通・非導通チェックを行い、つながるべき線はつながり、つながるべきでない線はつながっていないことが確認できた。

3.3 RasberryPi

3.3.1 ユニバーサル基板の作成

 MIRSMG4Dドキュメント管理台帳のRaspberryPi のセットアップとデバイス接続(MIRSMG4-SYST-0004)を参考にしてFig.6、Fig.7のように配線を行った。
 Raspberry Pi用の20ピンx2列のピンソケット、I2Cレベル変換チップ用の8ピンICソケット、 IOデバイス用の2ピンのハウジングを3個、超音波センサ用の4個の4ピンハウジングをハンダ付けした。

Fig.6 ユニバーサル基板実装(表面)
Fig.6 ユニバーサル基板実装(表面)

Fig.7 ユニバーサル基板実装(裏面)
Fig.7 ユニバーサル基板実装(裏面)

3.3.2 導通チェック

 テスターを使用し、ハンダ付けを行った全ての回路系に対し導通・非導通のチェックを行った。このとき、導通・非導通ともに問題ないことを確認した。

3.4 標準機メカトロニクス

3.4.1 製作手順

 SolidWorksと3Dプリンタを使用して必要部品を作成した。
 今回は必要部品として、制御用バッテリーと駆動用のバッテリー、モータマウントを作成した。
 制御用バッテリーホルダーをFig。8に、製品図面をFig.9に示す。
 駆動用バッテリーホルダーをFig。10に、製品図面をFig。11に示す。
 モータマウント、モータマウントサポートをFig.12、Fig.13に、製品図面をFig.14、Fig.15に示す。

Fig.8 制御用バッテリーホルダー
Fig.8 制御用バッテリーホルダー

制御用バッテリーホルダー(製品図面)
Fig.9 制御用バッテリーホルダー(製品図面)

 制御用バッテリーホルダーの製作では,バッテリーのズレ防止を目的として,バッテリーの湾曲部に合わせた局面構造で製作した.
 しかし,湾曲部はズレに対して役割は果たさず前年度のマウントと取付精度は変わりなかった.

Fig.10 駆動用バッテリーホルダー
Fig.10 駆動用バッテリーホルダー

Fig.11 駆動用バッテリーホルダー(製品図面)
Fig.11 駆動用バッテリーホルダー(製品図面)

 駆動用バッテリーホルダー製作では、模型バッテリーの凸部をマウント側は凹部にすることで高さのあるマウント形状でも問題なくかみ合うように設計した。これによりバッテリーがズレにくくなった。
 今回のマウントでは、バッテリー個々のサイズ誤差により使用できないものがあると分かった。その点を踏まえサイズ可変式のマウントを検討する必要がある。

Fig.12 モータマウント
Fig.12 モータマウント

Fig.13 モータマウントサポート
Fig.13 モータマウントサポート

Fig.14 モータマウント(製品図面)
Fig.14 モータマウント(製品図面)

Fig.15 モータマウントサポート(製品図面)
Fig.15 モータマウントサポート(製品図面)

 モータマウント、 モータマウントサポートに関しては前年度と同じものを作成した。
 だだし、前年度は3Dプリンタにおける積層方向の影響で折れやすいという問題があったため、積層方向の変更を行った。これにより、使用中にマウントが折れる心配はなくなった。
 寸法はFig.7, Fig.8 のとおりである。

3.4.2 標準機組み立て手順

 標準機の組み立てはMIRSMG4D ドキュメント管理台帳標準機組み立て手順書(MIRSMG4D-MECH-0003) に従って行った。
 使用部品をtable。1に示し、使用したねじ類をtable。2に示す。

table.2 使用部品
table.2 使用部品

table.3 使用ねじ類
table.3 使用ねじ類

4.単体試験結果

4.1 Arduino

 Arduino単体での動作試験をもとにテストプログラムを実施した。その結果を以下に記す。

4.1.1 モータ動作テスト test_motor(左PWM、 右PWM);

 Arduinoに任意のPWM値を入力したときの10秒間当たりのモータの回転数を確認した。結果はtable.4のようになった。

table.4 モータ動作テスト
PWM値 10秒あたりの回転数
右モータ 50 8
100 18
左モータ 50 8
100 18


 table.4から左右のモータともに正常に作動していることがわかる。また、PWM値を2倍にすることで回転速度もおよそ2倍になった。

4.1.2 エンコーダテスト motor_set(左PWM、 右PWM); test_encoder();

 Arduinoに任意のPWM値を入力したときのパルス波をオシロスコープで測定した。その時の様子を以下に示す。

  • 右モータ
  • Fig.16 パルス波1(PWM値:50)
    Fig.16 パルス波1(PWM値:50)

    Fig.17 パルス波2(PWM値:100)
    Fig.17 パルス波2(PWM値:100)

  • 左モータ
  • Fig18. パルス波3(PWM値:50)
    Fig.18 パルス波3(PWM値:50)

    Fig.19 パルス波4(PWM値:100)
    Fig.19 パルス波4(PWM値:100)


     左右のモータともに正常にエンコーダが動作していることがわかる。また、PWM値を2倍にすることで波形の数も2倍になることが確認できた。

    4.1.3 距離計テスト moter_set(左PWM、 右PWM); test_distance();
     table.5から、左右のモータともに正常な値を出力していることがわかる。またPWM値を2倍にすることで距離もおよそ2倍になった。しかし、PWM値を150にしたときは大きくずれた。それは、エンコーダの分解能が足りずバグが発生したからだと考えられる。

    table.5 距離計テスト
    PWM値 距離 [cm] 平均速度 [cm/s]
    右モータ 50 641.48 22.12
    100 1405.92 48.48
    150 2960.9 102.1
    左モータ 50 640.03 22.07
    100 1429.99 49.31
    150 2998.6 103.4


     table.5から、左右のモータともに正常な値を出力していることがわかる。またPWM値を2倍にすることで距離もおよそ2倍になった。しかし、PWM値を150にしたときは大きくずれた。それは、エンコーダがPWM値150まで保証していないからだと考えられる。

    4.1.4 速度制御のテスト

     任意に入力した速度と実際に計測された速度を比較した。左モータの直径を86.8mm、右モータの直径を86.9mmとする。

    table.6 速度比較
    入力速度 [cm/s] 回転数 実際の速度 [cm/s]
    右モータ 25 9.25 25.2529
    50 18.5 50.50581
    左モータ 25 9.25 25.22384
    50 18.5 50.44769


     table.6より、左右のモータともに適切な速度が出力されたと言える。

    4.1.5 走行制御のテスト test_run_ctrl(直進or回転、 速度or角速度、 距離or角速度)

     任意の直進、回転をさせたときの所要時間を計測した。
     直進走行制御テストの結果をtabel.7に示す。

    tabel.7 直進
    tabel.7  直進
     tabel.7は1秒ごとの速度と距離を測定したものである。速度が約100[mm/s]の等速運動をしていると考えるならば、1秒ごとに距離が約10[cm]伸びており正しい結果が出力されていると言える。また、その結果は動き出すときの加速の影響があるため、時間が経つほど安定していることがわかる。
     回転走行制御テストの結果をtabel.8に示す。


    table.8 回転
    時間 [s] 角速度[deg/s]
    8.91 45
    4.36 90

     table.8より、角速度を二倍にすることで回転速度も二倍になることがわかる。

    4.1.6 バッテリー値の確認 test_batt();

     テスターで計測したスイッチボードの電圧とArduinoで読み取った電圧、直流安定化電源の電圧値を比較した。
    table.9 電圧比較
    表示電圧 [V] スイッチボード [V] Arduino [V]
    8.02 8.04 8.11
    7 7.02 7.07
    6 6.01 6.05
    5 5.01 5.04
    4 3.99 4.01
    3 3 3.01
    2 2 1.99
    1 1 0.99
    0.5 0.5 0.48


     table.9より、入力電圧が高いとスイッチボードやArduinoにかかる電圧との誤差も大きくなることがわかる。

    4.2 Raspberry Pi

     MIRSMG4D ドキュメント管理台帳の Raspberry Pi での動作試験(MIRSMG4D-SYST-0008)を参考にして単体動作試験を行った。

    4.2.1 Raspberry Piと周辺機器のデバイスセットアップ

     ラズパイにキーボード、マウスをUSB接続、ディスプレイをHDMIケーブルで接続した。
     起動後、カメラをUSB接続し、超音波センサとIOスイッチをユニバーサル基盤に接続した。超音波センサは必要に応じてアドレスを変更した。

    4.2.2 ソースファイルのダウンロードと展開

     Raspberry Pi を起動後MIRSMG4D-SYST-0008からmg4_pi_ver3.0.1.tar.gzをダウンロードしてアーカイブマネージャなどを利用して展開した。

    4.2.3 動作確認

     4.2.2でダウンロードしたプログラムを使ってMIRSMG4D-SYST-0008を参考にしながらテストを行った。table.10 は試験結果である。


    table10 単体試験結果(Raspberry Pi)
    試験デバイス 試験内容・評価基準 試験結果
    タッチセンサ タッチセンサとの接続と正常な値が返ってくるか 接続、結果ともに正常だった
    超音波センサ 超音波センサとの接続と正常な値が返ってくるか 接続、結果ともに正常だった
    カメラ カメラが映像を写すか 常に写された
    カメラに写った数字を認識するか 正しく数字を認識した


    4.2.4 Arduinoとの結合実験

     Arduinoと接続し、Arduino側をslaveモードで起動後、test_requestを実行した。正常に通信できていることを確認し、正常な状態とモーター速度制御が正しくできることを確認した。

    5.統合試験結果

     table.11 は試験結果である。

    table.11 統合試験結果
    試験内容 評価基準 結果
    動作確認 モーターがプログラムどおりに動作するか 指定速度が遅いとモーターが非常にカクつく動作をした。
    しかし速度が速くなればそのようにカクつくこともなく正常な動作をした。
    走行テスト 直線的に走るか 多少左右へのブレが生じたがほぼ直線的に走行した。
    ゲイン調整 正確な距離を走行できるか PID (10.0、 0、 100)、 (7、 0、 70)、 (7、 0.8、 70)と順番にゲインを調整した。また、距離を各パラメータの結果が明確に見られるように距離は200cmとした。
    結果、距離の誤差は+-3cm以内で収めることができた。
    直線的に走るか 50cm/sと100cm/sで試した。
    結果、すべてのゲインに共通として速度を上げるとブレが大きくなった。また、ゲインを調整していくと初動でふらつきがすぐに調整されて直線的に走ることが確認できた。
    角度通りに回転するか 360度 90deg/sで回転させた。
    結果として目測でわずかに数度の誤差が発生した。そこで回転減速ゲインを0=>5度に変更をした。すると誤差なく回るようになった。


    6. 不具合報告書

     標準機製作の不具合報告書を以下に示す.
  • スイッチの燃焼
  • モーターの回転不良
  • ロータリーエンコーダーの不具合