1. 仕様
Ver.1で作成するロボットアームの仕様を決めます。タイムアウト時間など異常系をもっと考えなくてはいけませんが、まあ趣味のレベルの物なので、そこら辺はそのうち対応できればと考えています。
1.1 動作仕様
- 制御はパソコンで行う
- パソコンからの指示で移動する
- パソコンからの指示でタップする
1.2 ハードの仕様
- PIC(PIC12F1822)
- サーボ(Tower Pro マイクロサーボ SG90)
- フレームは3Dプリンタで作成
- 軸数は3軸
1.3 通信仕様
- PCとPIC間はシリアル通信とする
- シリアル通信の速度は115200bpsとする
1.4 異常系
異常関係の処理は特に考慮しないものとする。ただし、スマホなどを破壊しない様にだけはする。
1.5 精度
使用するパーツがどれも安いものなのでざっくりとそこらへんに移動する、というレベルの精度としています。エンコーダさえつけていませんので・・・フィードバックなしのラジコンサーボそのまま使用なので精度を高めることは難しいです。
2. 設計
ロボットアームと言っても3次元動作をさせるわけではないので、構造はとても簡単です。軸は台座、関節およびタップ用の3軸とします。
2.1 ロボットアームの概略図
ロボットアームは以下のような構造にします。台座にサーボ1、関節部分にサーボ2、アーム先端にタップ用のサーボ3を取り付けます。図にサーボ1とサーボ2の可動範囲も記載してます。
2.2 アームの移動先の計算
アームの先端の目的地を指示し、その位置になるようにアームを動かします。2軸だけなので、単純にそれぞれの角度を求めることができれば制御可能です。
アームの長さはわかっているので、台座とアームの先端のそれぞれのアームの長さで円を描き、その円の交点を求めることで2軸目の位置を求めることができます。その後、台座からサーボ2の角度、サーボ2からアーム先端の角度を求めます。交点や角度を求めるには、円の方程式や三角関数などを使って計算します。
2.3 タップ機構
アーム先端に取り付けるタップするための機構は、ラジコンサーボの回転運動を垂直動作に変換する必要があります。サーボに直結してもいいのですが、できればスマホやタブレットに対して垂直に動作するようにしたいので、リンク機構を利用して動きを変換します。
画面を破損しないようにするために、押しすぎないようにするための機構を考えました。しかし、構造が複雑(作るのがちょっと大変)でサイズも大きくなってしまうため、今回はつけませんでした。完成後、動作させてみたところ、アームなど全体的にたわむため安全装置なしでも問題は発生しませんでした。(たわむこと自体本当はよくない気もしますが・・・まあ、趣味のレベルの物なので)
2.4 回路説明
ラジコンサーボ制御ユニットとして、PICとラジコンサーボを1つのユニットとしています。PICの機能を絞ることで今後の機器や機能の追加を簡単に行うためです。今回はラジコンサーボを3個使用するので、3個の制御ユニットを接続します。接続のイメージは以下の通りです。
2.5 通信
PCとPICはシリアル通信を行います。接続は以下のように行います。PICを並列に繋いでいます。使い方によっては破損する可能性もあると思うので気を付けてください。破損しても自己責任でお願いします。
本来マルチドロップ(今回のような接続形式)する場合、RS-485などの回路が必要です。PIC同士のTxDを接続し、通信を行うとショートする可能性があります。そこで、送信が無い時はPICのTxDピンをハイインピーダンスにすることで、疑似的にマルチドロップを行っています。
PCからPICへ命令を送信するとすべてのPICが受信します。そこで、どのPICへの命令かわからるようにPICにユニークなIDを設定し、命令にそのIDを登録して送信します。命令に追加したIDと同じIDを持つPICが応答を返します。PCはPICからの応答を確認後、次のIDを指定して命令を送信します。以上の手順を繰り返すことで各PICと通信を行います。
<更新履歴>
版 | 更新日 | 説明 |
新規作成 | 2015年9月27日 | 新規作成 |