l MIRS1705-REPT-0001 作業報告書
名称 MIRS1705 作業報告書
番号 MIRS1705-REPT-0001

版数 最終更新日 html作成 承認 改訂記事
A01 2017.6.8 渡邉莉奈 初版
A02 2017.6.12 渡邉莉奈 大林先生 第二版
レビューで指摘された点について修正

ドキュメント内目次



1.はじめに

本ドキュメントは、平成29年 5月26日に行われたMIRS1705の統合試験までの作業報告書である。


2.製作手順

2.1 Arduino

Arduino のセットアップとデバイス接続に従い、ユニバーサル基板の実装をした。
使用したピンを以下に示す。
Table 1 使用ピン一覧
ピン番号 接続デバイス IN/OUT 備考
2 左エンコーダ(A層) IN プルアップ、割り込み(CHANGE)
3 右エンコーダ(B層) IN プルアップ、割り込み(CHANGE)
4 左エンコーダ(A層) IN プルアップ
7 左エンコーダ(B層) IN プルアップ
8 左エンコーダ OUT
9 左エンコーダ OUT PWM
11 左エンコーダ OUT PWM
12 左エンコーダ OUT
A5(19) 左エンコーダ IN 抵抗分圧により1/2倍値を入力
完成した基板の部品面をFig1、はんだ面をFig.2に示す。

Fig.1  Arduino UNO用ユニバーサル基板(部品面)
Fig.1 Arduino UNO用ユニバーサル基板(部品面)

  Fig.2  Arduino UNO用ユニバーサル基板(はんだ面)
Fig.2 Arduino UNO用ユニバーサル基板(はんだ面)



Fig.1の赤字に示したように実装した。
導通チェックで問題は発見されなかった。
しかし、その後エンコーダ及びモーター用コネクタのピン配置の間違い(本来のものよりVccとGNDが逆になっている)と、基板の左右とモーター用コネクタの左右が逆になっている、という2つのミスが発覚した。
前者はエンコーダ及びモーターと繋がるケーブルの線を差し替えて接続先を入れ替えることで対処し、後者は基板の配線を変えることで対処した。
修正した基板のはんだ面をFig.3に示す。

 Fig.3 Arduinoユニバーサル基板の修正箇所(修正後)
Fig.3 Arduinoユニバーサル基板の修正箇所(修正後)

2.2 Raspberry Pi

Raspberry Pi のセットアップとデバイス接続に従い、ユニバーサル基板に20ピン×2列のピンソケット、信号線、ハウジング、icソケットの基板実装を行った。


実装後、導通チェックをした結果、下図赤丸部の配線が間違っていることが判明したため、修正を行った。

 Fig.4 Raspberry Piユニバーサル基板の修正箇所(修正後)
Fig.4 Raspberry Piユニバーサル基板の修正箇所(修正後)

修正後、導通チェックをした結果正しく配線されていることが確認できた。
完成した基板をFig.3に示す。

Fig.5 Raspberry Pi用ユニバーサル基板(部品面)
Fig.5 Raspberry Pi用ユニバーサル基板(部品面)

  Fig.6 Raspberry Pi用ユニバーサル基板(はんだ面)
Fig.6 Raspberry Pi用ユニバーサル基板(はんだ面)

2.3 電源ボード、ケーブル製作

電源ボードを以下の回路図に従って実装した。


  Fig.7 電源ボード基板回路
Fig.7 電源ボード基板回路

完成した基板をFig.8に示す。

  Fig.8 電源ボード基板
Fig.8 電源ボード基板

Fig.8のようにユニバーサル基板上に実装した。
スイッチは基板用押しボタンスイッチ(赤・オルタネート)の PS-85Sを用いることとした。
初期状態の電源ボード(ターミナル1個)ではケーブル2本が入りきらなかったため、新たに、同じ仕様のターミナルを増設した。
増設後の電源ボードを以下に示す。

  Fig.9 電源ボード基板(増設)
Fig.9 電源ボード基板

2.4 シャーシ組み立て

使用部品をtable.2に示す。                    
Table2 部品一覧
名称部品コード 個数 材質 備考
上段シャーシ MIRGMG4S_UC 1枚 アクリル板拡張部
中段シャーシ MIRGMG4S_MC 1枚 アクリル板制御部
下段シャーシ MIRGMG4S_LC 1枚 アルミ板 駆動部・標準のものには電源ボード固定穴がないので注意
短支柱 MIRGMG4S_SP 4本 アクリル棒下段・中段接続用
長支柱 MIRGMG4S_LP 4本 アルミ棒下段・上段接続用
タイヤホイール MIRGMG4S_TW 2個 ABS樹脂
モータマウント MIRGMG4S_MM 2個 ABS樹脂
モータマウントサポート MIRGMG4S_MS 2個 ABS樹脂
制御用バッテリーホルダ MIRGMG4S_CH 2個 ABS樹脂
駆動用バッテリーホルダ MIRGMG4S_DH 2個 ABS樹脂
超音波センサマウント MIRGMG4S_UM 2個 ABS樹脂 オプション
2017.4.27時点では、短支柱と長支柱はABS樹脂であったが、Table2のようにアクリル棒とアルミ棒に変更した。


使用したねじをTable.3に示す。                                                                                       
Table3 使用したねじ
名称用途 長さ[mm] 個数 SWの有無ナットの有無
5mmキャップボルト モータマウント固定 12 8
短支柱固定 12 8
長支柱固定 12 8
3mmねじ モータマウント固定 15 8
モータマウント固定 15 8
制御用バッテリーホルダ固定 12 8
超音波センサマウント固定 12 4
3mmねじ Arduino固定 12 4
モータドライバ固定 12 8
電源ボード固定 12 4
2.6mmねじ Raspberry Pi固定 30 4
キャスター固定 10 6
スペーサ Arduino固定 5 4
モータドライバ固定 5 8
電源ボード固定 5 4
Raspberry Pi固定 10 6

①下段シャーシへの電源ボード固定穴加工
加工済みの下段シャーシは本来上下反転して使用することを考えていたため、電源ボード固定穴が上方向のみに空いていた。
電源ボード固定穴は下方向に必要なため、接合予定の基板を添えて追加加工穴の位置を定めΦ3.2の穴を4か所追加加工した。
3つの穴を開け最後の一つというところでドリルが貫通しなくなった。
位置的に力がかけづらかったことが原因なので、他の3つの時よりも力をかけて加工した。


   Fig.10 追加加工穴
Fig.10 追加加工穴


②タップ加工
3Dプリンタで作成した長支柱、短支柱、モータマウント、モータマウントサポートのタップ下穴にタップ加工を行った。
ABS樹脂は割れやすいので力のかけ過ぎに注意しなければならなかった。
モータマウントサポートの一つの穴がタップ加工したにもかかわらず、ネジを引っ張ると抜けてしまった。
モータマウントサポートを一つ壊した。
ABS樹脂の加工を行うのは初めてであり、力加減がわからなかったためであった。
予備をもらい、対応した。


③駆動部の組み立て
タイヤの中に細いタイヤ2本をセットした。
タイヤホイールとタイヤを接続した。タイヤホイールを一つ割ってしまった。予備をもらい、対応した。マイナスドライバーを活用すると設置しやすかった。
モータマウントサポートをモータに通し、モータマウントとモータをM3のネジで固定した。
モータシャフトにタイヤホイールを固定した。

④組み立て
中断シャーシに超音波センサマウント(2個)と制御用バッテリーホルダ(4個)をM3ねじとナットで固定した。
モータマウント、モータマウントサポートを下段シャーシにM5のキャップボルトで固定した。
モータマウント、モータマウントサポートを下段シャーシにM5のキャップボルトで固定した。
駆動用バッテリーホルダ(4個)をM3ねじとナットで固定した。
ボールキャスター(2個)をM2.6ねじとナットで固定した。
長支柱と短支柱を下段シャーシにM5キャップボルトで固定した。
中段シャーシと短支柱をM5キャップボルトで固定し、下段シャーシと接合した。


完成した機体をFig.11に示す。

    Fig.11 標準機機体
Fig.11 標準機機体


2.5メカ作業報告

使用ソフト solidworks

①作業内容 Solidworksを使用しバッテリーケースを作成した。Fig.12に作成したバッテリーケース、Fig.13に作成中の図面を示す。

Fig.12 バッテリーケース
Fig.12 バッテリーケース

  Fig.13 バッテリーケースの図面
Fig.13 バッテリーケースの図面

②工夫点 バッテリー全体を囲むようにし、丈夫になるよう設計した。 コードが通る部分は空洞にした。

③失敗点 大きく作り過ぎた為、印刷するときにゆがんでしまった。 青木先生がゆがまないように固定してくれたため、使用はできた。

3.単体試験結果

3.1 Arduino

①デバイス接続
Arduino単体での動作試験を参照し、arduinoを配線した。
この段階で、ユニバーサル基板のピン配置のミスが発覚したため、配線に使用するケーブルの並び順を変えることによって対処した。

②arduinoの設定
Arduino単体での動作試験から、arduino用のソフトウェアをダウンロードした。
arduino IDEでソフトウェアファイルを開き、モーターのギア比にプログラムを変更した。

③動作テスト
実機にて、モーター回転、エンコーダ出力、速度制御を行い、エンコーダ出力テスト時にオシロスコープでPWM波形とエンコーダ波形を確認した。
PWMが51/255で20%のときのPWM波形をFig.14とFig.15に示す。

Fig.14 右モータのPWM波形(20%)
Fig.14 右モータのPWM波形(20%)

  Fig.15 左モータのPWM波形(20%)
Fig.15 左モータのPWM波形(20%)

PWMが127.5/255で50%のときのPWM波形をFig.16とFig.17に示す。

Fig.16 右モータのPWM波形(50%)
Fig.16 右モータのPWM波形(50%)

  Fig.17 左モータのPWM波形 50%)
Fig.17 左モータのPWM波形(50%)

Fig.14とFig.15では1周期の20%が、Fig.16とFig.17では1周期の50%が立ち上がっていることが確認できた。

モータの速度を50に設定したときのエンコーダ波形をFig.18とFig.19に示す。
波形のA層は青、B層は黄色で表されている。

Fig.18 エンコーダ波形(左)
Fig.18 エンコーダ波形(左)

  Fig.19 エンコーダ波形(右)
Fig.19 エンコーダ波形(右)

図から、A層、B層は1/4周期ずれているのが確認できた。

3.2 Raspberry Pi

Raspberry Pi のインストールとセットアップに従いセットアップを行った。

①環境設定
Raspbianの環境設定を行った。
具体的にはタイムゾーンとインターフェイスの設定、無線LANの接続、jfbtermのインストールを行った。

②デバイス接続
超音波センサ、WebカメラをRaspberry Piに接続した。
タッチセンサは、接続できるものがなかったため、導線を短絡開放させることで簡易的に実現した。

③I2Cの設定
2つの超音波センサを扱う場合は、互いに違うアドレスが設定されている必要がある。
しかし超音波センサのアドレスを確認したところ、2つのセンサのアドレスが元から異なっていたので、アドレス変更は必要なかった。

④テストプログラムの実行
まず、ドキュメントからRaspberry Pi用MG4標準ソフトウェアをダウンロードし、展開した。
展開したファイルの中にある以下のテストプログラムを実行し、それぞれ動作を確認した。

・test_uss: 超音波センサの距離計測
・test_io: ON/OFF IO(タッチセンサ)の信号出力
・test_camera: カメラ映像を出力
・test_number: 数字認識

全てのプログラムが正常に動作することを確認できた。

4.統合試験結果

以下の手順で統合試験を行った。

① Arduinoプログラムの"slave()"をアンコメントして有効にし、他の命令がコメントアウトされていることを確認して、編集したプログラムをArduinoに転送した。

②ArduinoとRaspberry PiをUSB接続し、Raspberry Piでテストプログロム"test_reqest"を実行して、モータが正しい方向に回転していることを確認した。

③標準機体にArduino、Raspberryを実装し、標準機を完成させた。ArduinoとRaspberry Piを実装させた標準機機体をFig.11に示す。

    Fig.20 標準機機体
Fig.20 標準機機体


④Raspberry Piで"test_request"を実行し、直進制御が正確かどうか確認した。初期状態で直進させたところ、機体が左右に振れてしまったので、Pゲインを小さくして、直進がスムーズになるように調整した。そのときのPゲインは4。

5.不具合報告

標準機作成から統合試験までに起きた不具合を以下に示す。


1. Arduinoユニバーサル基板のコネクタ向き間違い
2. Arduinoユニバーサル基板のモータの左右配線間違い
3. バッテリーケースのゆがみ



MIRS DATABASE