奮闘記【17】 ロボット製作「アーム」

2018年10月05日 16:51:04 by fdkltd

どうもhataです。

今週は八尾ロボコンのロボット作製に向け、アームのグリッパに使用するサーボモータの動かし方と、腕関節に使用するサーボモーターの動かし方を勉強していました。その勉強が終わった後、アーム全体の制御を始めました。

まずは、アームのグリッパに使用するサーボドライバーの勉強から始めました。使用するのは『PCA9685 16チャンネルPWM サーボドライバー』です。PWMをONにするタイミングとOFFにするタイミングを設定してデューティー比を決めるドライバーで、I2Cで通信します。これを使って、サーボモータの中央位置と左右の限界位置を調べようと思ったのですが、仕様をきちんと理解しないまま進めてしまい、誤った認識のままプログラムを書いたので、うまく使うことが出来ず悩みました。仕様書を再確認し、正しい動かし方を理解することで、サーボモータの中央位置と左右回転方向の限界値を調べることができました。

次は、ロボットアームの腕関節に使用するサーボモータの勉強についてです。ロボットに使用するサーボモータは近藤科学の『KRS4033HV』ですが、まずは勉強のために『KRS3301』を使用ました。このサーボモータは、ICS規格という半二重通信で行う近藤科学独自の通信プロトコルが使用されており、マイコンのUARTから通信するためには変換回路が必要でした。今回は、近藤科学純正の変換回路を使用して通信を行いました。勉強に用いた3301は、ファームウェアがICS3.6であり、現在角度取得のコマンドがありますが、ロボットに使用する4033は、ファームウェアがICS3.5のため、そのコマンドがありません。そのため、ICS3.5でも現在角度が取得できるようにプログラムの変更が必要で、そのために仕様書を読み直しました。現在角度の値の取得ができるようになると、フリー状態で止まっている位置から角度制御を開始することができるようになりました。その後、中央位置や左右の限界値、ゆっくり動かす、などを行うことができました。それらができるようになったところで、八尾ロボコンで使う予定のロボットアームのテストを始めました。

まだロボットアームはゆっくり前後に動かす事しかできていません。なので、来週にはオブジェを『まっすぐ穴から引き抜く』という動作をできるようにしたいと思います。