ここではラズパイからサーボを制御し、ロボットの体を動かすことに挑戦します。
【その1】から【その4】までが完了していることを前提に説明します。
ラズパイを起動してください。
X Window System の画面上端のタスクバーの左側にある黒いアイコンをクリックし、LX Terminalウィンドウを開きます。
コマンドラインからベゼリーのディレクトリに移動し、サンプルプログラムを実行します。
1 2 |
$ cd ~/bezelie/pi $ python sampleServo1.py |
この動画のようにロボットが動けば成功です。ループでずっと動き続けますので、停止したい場合は「Ctl + C」、つまりキーボードのコントロールキーと「C」を同時押ししてください。
動かなかった場合は、以前のページをあらためてご確認ください。
特にエラーがでるわけでもないのにピクりとも動かない場合は、以下のようなミスが考えられます。
・電池ボックスのスイッチがONになっていない。
・ラズパイとサーボドライバボードとをつなぐケーブルがはずれている。
初期姿勢で既にべゼリーが傾いてしまっている場合は、サーボのセンタリングが巧くいっていなかったのかもしれません。少しのズレでしたら、微調整用プログラムを用意しましたので、ご利用ください。
-
応用
- サンプルプログラムをテキストエディタ「nano」で開いてみましょう。
-
1$ sudo nano sampleServo1.py
- nano の操作方法がわからないかたは、こちらをご覧ください。「Raspbianの代表的なアプリ」の使いかた
-
- このプログラムは拡張子が「py」となっていることからもわかるとおり、Pythonで書かれています。ラズパイのパイはパイソンのパイですから、ラズパイの標準プログラミング言語と言ってもよいと思います。
- 12行目でベゼリーの首を上下に振る関数は以下のように記述されています。
-
1234bezelie.moveHead ( 20)bezelie.moveHead (-20)bezelie.moveHead ( 0)sleep (0.5)
- なんとなくわかったかもしれませんが、moveHead()は頭部のサーボを動かす命令で、首の縦方向に振らせることができます。
- カッコ内の数字は、角度です。0度が正面で、正の値を入れると下を向き、負の値を入れると上を向きます。つまり「20」の場合は、下方向に20度向きます。
- 15行目の「sleep (0.5)」はPythonのtimeモジュールに含まれている命令で、「0.5秒待て」という命令です。
- 16行目に出てくるmoveBack()は背中のサーボを回すことで、体を横方向に揺らすことができます。
- 20行目のmoveStage()はステージを回転させます。
- まずは自分なりに回転角度を変えてみることから始めてみるとよいのではないでしょうか。
- 編集終了後に保存するファイル名を聞かれますが、上書きしてしまうと間違ったとき元に戻せなくなりますので、別名に変えて保存しましょう。
-
- サンプルプログラムをテキストエディタ「nano」で開いてみましょう。