Arduinoでロボットを作ってみました!【9】落下防止センサ&スコープユニットの組込

測距モジュールを利用した落下防止センサユニットと3自由度の首関節を持つスコープユニットを作っていきます。

落下防止センサユニット

f:id:msdesign-tokyo:20160406145033p:plain

厚紙で図のような3つの部品を作り、木工用ボンドで接着し組み立てます。シャープ測距モジュールGP2Y0A21YK0Fを左右に1個ずつ、十字穴付なべ小ねじと六角ナットで固定します。

f:id:msdesign-tokyo:20160406145101j:plain

外側から見える部品については、組込前に塗装を行いました。

f:id:msdesign-tokyo:20160406145846j:plain

100均のダイソーでアクリル絵の具を見つけましたので、4色ほど購入し適当に混ぜて使いました。


αβステージ

3自由度の首関節の内αβステージには、マイクロサーボ9g SG90を使います。

f:id:msdesign-tokyo:20160406150358p:plain

これも厚紙でマイクロサーボ保持部とテーブルとを作ります。

f:id:msdesign-tokyo:20160406150547j:plain

f:id:msdesign-tokyo:20160406150603j:plain

右側のナットを接着している部品がβステージ用テーブルで、このナットでスコープユニットを取り付けます。左側のナットがないテーブルがαステージ用テーブルです。

マイクロサーボSG90にサーボホーンを固定する前に、SG90を中心位置に動かしておきます。その際使用したスケッチは、


#include <Servo.h>      // ライブラリの読み込み<Servo.h>
Servo servo0,servo1,servo2;     // Servo型の変数は「servo0」~「servo2」とする
void setup()             // 初期設定
{
  servo0.attach(4);       // Servo型の変数は「servo0」をピン4(θ軸)に割り当てる
  servo1.attach(5);       // Servo型の変数は「servo1」をピン5(α軸)に割り当てる
  servo2.attach(6);       // Servo型の変数は「servo2」をピン6(β軸)に割り当てる
}
void loop()               // メインの処理
{
  servo0.write(90);       // サーボ出力。Servo0角度は90°
  delay(1000);            // タイマ(1秒)
  servo1.write(90);       // サーボ出力。Servo1角度は90°
  delay(1000);            // タイマ(1秒)
  servo2.write(90);       // サーボ出力。Servo2角度は90°
  delay(1000);            // タイマ(1秒)
}


上記のスケッチでSG90を90°の位置にしてサーボホーンを固定したのですが、

f:id:msdesign-tokyo:20160406152212p:plain

SG90のサーボホーン取付軸のギザギザとサーボホーン取付穴のギザギザの位置関係のためか、SG90が90°の位置でサーボホーンを水平に取り付けることができません。そこで、ここでは、αβ各ステージのテーブルが水平になる位置を中心位置とするように、サーボ指令の角度を調整します。

f:id:msdesign-tokyo:20160406152947p:plain

  αステージ:中心位置 80° 可動範囲 55°~105°

  βステージ:中心位置 82° 可動範囲 57°~107°

※中心位置±25°を超えて動かすと、テーブルとマイクロサーボ保持部とが干渉しますので、上記の可動範囲を超えて角度設定をしないように注意します。

f:id:msdesign-tokyo:20160406153843j:plain

完成したαステージ(左)、βステージ(右)です。

θαβステージ

f:id:msdesign-tokyo:20160406163240p:plain

θステージにはGWSサーボ S03N/2BBBMG/JRを使い、αステージ、βステージはそれぞれ接着固定します。

θステージの中心位置(90°)は、

f:id:msdesign-tokyo:20160406165032p:plain

αβステージと同じように、サーボを90°にしてサーボホーンを取り付けるとサーボホーンが水平にならないので、こちらはθテーブルの固定穴をずらすことで対応します。

  θステージ:中心位置 90° 可動範囲 45°~135°

※θステージについては、中心位置±45°を超えても干渉する箇所はないので、ここでの可動範囲は仮設定として、最終的には動作確認をしながら決めていきます。

 スコープユニット

f:id:msdesign-tokyo:20160406172801p:plain

スコープユニットといっても、レンズやカメラを組み込んでいるわけではなく、外観のイメージのみですが、障害物などを検出するための測距モジュールと表情を演出するための白色LEDを組み込みました。このユニットの部品もほとんど、板目表紙で作っていますが、筒については、ラップの芯を利用しています。

                   f:id:msdesign-tokyo:20160406173231j:plain

θαβステージにスコープユニットを取り付けます。

f:id:msdesign-tokyo:20160406183301p:plain

ここで、αステージテーブルの強度を確認しておきます。αステージ上にβステージおよびスコープユニットが搭載されていますので、これらの荷重によってαステージテーブルがどの程度変形するかを計算します。

 材質:板目表紙(縦目)

 縦弾性係数:3.89 GPa

 密度:749.1 kg/m^3 (*1)

 ポアソン比:0.3 (*2)

  (*1) 板目表紙 445 x 306 x 0.7 (mm) 1枚の質量実測値:71.4gから計算

  (*2) 参考資料見つけられず適当に設定

拘束条件:サーボホーンへの取り付け穴及び回転支点穴を完全拘束

荷重条件:βステージ+スコープユニットの合計質量=60.5gより0.593Nがαステージテーブルのβステージ接着面に負荷されたとして計算

f:id:msdesign-tokyo:20160406190849p:plain

最大変位:0.07mm

荷重条件を3倍の1.799N(181.5g)とした場合

f:id:msdesign-tokyo:20160406192356p:plain

最大変位:0.21mm

以上より、αβステージのテーブルを厚紙1枚から作りましたが、強度は大丈夫そうです。


 落下防止センサユニットとスコープユニットとを本体に組み込んでいきます。

f:id:msdesign-tokyo:20160407081535p:plain

落下防止センサユニットとスコープユニットは十字穴付きなべ小ねじと六角ナットでユニバーサルプレートに固定するのですが、ユニバーサルプレートの裏面に六角ナットを保持するのも作業性が悪いので、厚紙に穴を開けてナットを接着したナットプレートを作りました。

f:id:msdesign-tokyo:20160407081950p:plain

タクトスイッチ基板は、スコープユニット固定部品に接着します。

カバーを除いて、機構部、電源、制御基板、配線がほぼ完成です。

f:id:msdesign-tokyo:20160407093029p:plain

配線がごちゃごちゃしていますので、動作試験完了後に整理したいと思います。


 

次は【10】動作試験Part1:首関節が痙攣してる!!