EASY84シリーズその6「プロジェクト・アームジョー」(PCアプリ編)(2003)

EASY84シリーズとは、PIC16F84を使って簡単な電子工作を楽しもうという企画である。


今回は、「プロジェクト・アームジョー」(ハード編)のつづきの、PICソフト編のさらにつづきのPCアプリ編である。


アームジョーとPCとのデータのやりとりは次のようである。

  PC アームジョー
D0〜D3にデータをセット。 STRBを監視。
STRBをLoにする。 STRBを監視。
Loを維持 STRBがLoになったことを検出。
Loを維持 D0〜D3を読む。
STRBをHiにする。  

PCでは、アームジョーの状態にかかわらず、プログラムに従い上記のように動作する。
STRBをHiにするタイミングは、アームジョーがD0〜D3を十分読み終わったと思われる時である。

アームジョーコントローラ

というわけで、ここから一気に話は飛躍してアプリケーションの機能紹介である。
このアプリケーションは、Delphi4を使って作成した。

1.アームジョーのマニュアル操作
キーボードまたは、画面のボタンを押すことで、アームジョーの各関節を動かすことができる。
図のボタンをクリックするか対応キーを押すかで、操作する。


下図のように押されたボタンと動いている関節を示す。



2.操作の記録
マニュアル操作をした手順を記録する。
メニューから記録を選択すると、その時点からの操作を記録していき、図の表部分に表示されていく。




3.記録の再生
記録した操作を再生する。
メニューから再生を選択すると、記録した操作をPCが再現する。




4.記録の最適化
マニュアル操作時のムダな操作を効率化する。
また、開始位置に戻る動作を追加する。




5.アームジョーへ転送
操作記録をアームジョーへ転送する。 転送後、アームジョーのオート動作スタートボタンを押せば、 コンピュータにつながずとも動作が再現される。




6.記録の保存
操作の記録をファイルとして保存する。
ファイルはテキストファイルなので、保存後テキストエディタで編集が可能。




7.記録の読み込み
保存した操作の記録を読み込む。読み込んだ記録は、再生や転送が可能。





プロジェクト・アームジョー製作後記

ということで、完成したアームジョーを動かしてみた。

操作はアームジョーを見ながらやらなくてはいけない。コンピュータの画面を見ることはできない。
従って、画面のボタンを押すのはムリである。(ボタン、意味ないじゃん)
キーボードに手を置き、対応キーを覚えておいて操作する。
一応ホームポジションキーを割り当てたので、指を動かすことは少ないが、でもかなりムズカシイ。
行き過ぎてしまったり、次の動作までだいぶ時間がかかったり。

そういうわけで、操作の記録をしてみると、とてもムダが多い。
そこで、最適化をする。
これにより行き過ぎてもどしたりした操作をキャンセルして、動作を少なくし、また、考えて止まっていた時間を短縮(1秒)する。

また、一連の操作を再実行しても、スタート時の状態が違えば、同じ動作をさせることはできない。
そこで、停止時からさかのぼり、動作をキャンセルをする操作を自動的に加える。

再生してみよう。
おおっ、動作にムダがなくなり、しかも元の位置、いやかなり近くに帰ってきた。
アームジョーのしくみから考えて完全に元の位置にもどるのは、不可能である。

次にこの動作をアームジョーに転送。
そして、アームジョーのオート動作スタートを押すと、先ほどと同じ動作を再現した。

しかし、スタート位置を同じにしておかなければならない。仕方がないので、毎回手で位置決めをしてやる。

このシステムの最大にして重大な欠点は、各関節の状態(位置)が制御側でわからないことである。
モータを同じ時間動かしても正確に同じ状態にはならないし、逆回転させても元の位置には戻らない。
もともとロボットアーム自体のメカがそうなのだから仕方ないが。

というわけで、このシステムはそれっぽい動作しかしないのである。
これを改善するには、モータを時間で制御するのではなく、各関節にセンサをとりつけ、どれくらい回転したかをモニタして、その回転量で制御するといった方 法が考えられる。
とはいえ、センサの取り付けにまたひと工夫必要ではあるが。


EASY84シリーズ完結にあたって

これで、EASY84シリーズは終わりである。
着手してすでに、3年が過ぎてしまった。
PICもシリーズラインナップが豊富になり、選択肢がとても増えたが、やはり16F84はバランスがよく とても扱いやすいと思う。(というか他のデバイス知らないし・・・)

今後、機会を見てさらに詳細内容を報告していきたいと思う。

ロボットアームのお求めは
ロボットアーム MR-999ロボットアーム MR-999