サーボモータ初体験

芸の幅を広げたくてメカ系というか模型の領分というかまあそっち方面へ進出。とりあえずサーボモータを動かせばあとはどうにかなるんじゃないか。ということでツクモRobot王国へ足を運ぶんだけど平日まっぴるまなもんで店員さん2人に対しお客さんボクだけ。あまりの緊張感に耐え切れず秋月へ非難。秋月はうちの庭みたいなもんだがメカ系の部品を買うとなると勝手が違う。サーボモータを探すのに一苦労。間の悪いことに旧知の店員さん(いつも見かけるというだけの間柄だけど)がいなくてレジをおばさんがやっている日。その背中あたりの壁にぶらさがっているのを発見。いちばん安いPWS/PICO/STD(800円、現時点では売り切れ)を特に必要のないLPC810と一緒に購入。なにびびってんだろ。エロ本買いたい中学生か。
servo_GWS_PICO_STD

まずはロボットの腕だけでも何とかしようとまたツクモRobot王国へ。しかしあのブラケットっていうんだろうか金属片を曲げただけのやつってのはどう考えるとサーボモータより高い値段が付くんだろ。ロボットの腕なんか作ったら破産しそうなのでただサーボモータを単独で動かしてみる。が、PWS/PICO/STDのデータシートには動かしかたが書いてない。あれもこれもメカの世界が理解できない。しかたがないから一般的にはこうやるという話を当てはめて1~2m秒のパルスを20m秒ごとに出力、パルス幅と回転角の関係は実測で確認する。というわけでサーボモータの前面に目盛板を取り付けたらロボットの腕とは大違いだがいちおう工作した感じにはなった。

servo1

パルスの出力にはことさらパワーのあるマイコンを使わなくていいのでArduinoなんかがちょうどいいと思うが、たまたまその関係のプログラムを書いていたBeagleBone Blackを使う。BeagleBone Blackは2ヶ月に1回くらい秋月の店頭に出てはたちまち売切れてしまう状態。つまり入手困難。こんなマイコンで動かしたら第三者の再現が困難になり人に自慢しにくい。われながらやってることがちぐはぐなのはやっぱりどこか他人の領分に踏み込んだようなうしろめたさがあるせいだろうか。とにかくBeagleBone Blackではじめてしまった以上はしかたがない。ロジックの電圧は3.3VだがPWS/PICO/STDは4.5V以上ないと動かない。トランジスタのスイッチをかませて接続。

servo6

せっかくのBeagleBone Blackなので、DebianのFLTKでGUIのコントロールプログラムfl_servoを作った。ソースとバイナリの一式をGitGubのリポジトリで公開。これはbbbライブラリを使っていて、それはこちら。ありゃりゃタイトルバーの文字まちがえてるのはそのうちなおします。fl_servoは一般的なサーボモータを制御できると思うが(何しろPWS/PICO/STDは売り切れてるから)、トランジスタのスイッチがある前提で作ってありパルスの方向が天地逆になっていることに注意。

servo5

サーボモータの軸とホーンはギアで噛み合うため目盛板とうまく角度があわない。fl_servoはそれを調整し、そのうえでダイアルを回せばその角度に回転する。

servo2servo3

サーボモータの制御に成功。メカ系デビュー作としてはまあまあか。

広告
カテゴリー: BeagleBoneBlack パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中