に投稿 2件のコメント

サーボを動かす

– microsaurus visual programming tutorial 3 –

●サーボを動かす


サーボを動かしてみましょう。サーボの出力軸(白いギザギザのところ)は通常0°~180°の範囲で回転しますが、その位置はサーボの容器に対して絶対的に決まっています。そのため出力軸の回転位置を気にせずに適当にロボットを組み立ててしまうと、出力に取り付けられた部品が思い通りに動いてくれません。まずはサーボの出力軸を90°の位置に停止させるプログラムをつくります。

下の写真を参考に配線してください。サーボは電池から電源を供給する回路になっていますので、今回は電池をつなぎます。サーボは2個使いで、それぞれ前脚用、後脚用となります。サーボのコネクタは逆向きに挿しても動きませんが壊れることはありません。中央のピンがプラス電源となっているためです。一方、電池のワイヤーは逆につけるとマイコンが壊れますので絶対に間違えないでください。
電源スイッチはOFF側にしておきます。
*サーボを取り扱う際の注意
サーボは非常に精密なギアで構成されています。出力軸を回そうとして(「バックドライブ」と言います。)引っ掛かりがある場合に無理に回そうとするとギアを破損します。

servo_setting

ハードウェアの準備ができましたらプログラムを作っていきます。
「Blockly@rduino」で新しい画面を準備してください。前回のブロックが残っている場合は右下のゴミ箱に捨ててください。
今回からサーボを使いますので、「サーボ」->「サーボセット」を選んでドラッグ&ドロップします。id#は「SERVO」となっていますのでクリックして「名前の変更」で「servo1」とします。ピンは「数値」から「0」をドラッグしてきて接続し、”9″に変更します。このブロックを右クロックして「複製」し「servo2」と命名、ピンは”10″とします。

次に「サーボ」->「サーボ駆動」を選んでドラッグ&ドロップ、名前を「servo1」とします。これを「複製」し名前を「servo2」とします。
9番ピンにつながっているサーボを90°の位置に、10番ピンにつながっているサーボを90°の位置に動かす、というブロックです。

microsaurus_tutorial_visual_3-1

Arduino IDEを起動して「ボード」と「シリアルポート」の設定をしてください。
前回と同様にArduinoタブの中身を全てコピーしてArduinoプログラムに貼り付けます。

チェックボタンでコンパイルが成功したら、矢印ボタンでメイン基板に書き込みます。「ボードへの書き込みが完了しました。」と出たら基板の電源スイッチをONにします。サーボが動いて90°の位置(センター位置)で停止します。(新品のサーボを用いた場合はもともと90°の位置になっていて動かない場合があります。)この状態でサーボホーン(長いタイプ)をサーボの長手方向と平行になるように取り付けます。ぴったり合わなくても構いません。後でソフトで調整します。

●練習問題
角度を変えてサーボの軸が動くことを確認してください。一応30°~150°ぐらいの範囲にとどめてください。
*最後に90°に戻しておいてください。

●プログラムの説明

Pin番号の9と10はサーボの信号線がつながっているArduino基板上のピン番号です。
なお、今回は簡単にするためにサーボの角度設定ブロックが何度も繰り返し実行されるようになってしまっていますが、本来はこれは一度実行すれば良いので、下のようにしても同様の結果となります。
「初期設定」ブロックは「Arduino」の中にあります。この中に入れたブロックは最初に1回だけ実施されます。
なお下の図は、各ブロックを右クリックして「横方向で入力」にして横長にしてあります。

microsaurus_tutorial_visual_3-2

●往復運動させる
ブロックを少し加えてサーボを往復運動させてみます。プログラムの意味はわかると思います。右側の塊りは上から下へ順に実行されたのち、また上に戻って繰り返されます。servo1の駆動が先でservo2の駆動があとになりますが、これは一瞬なのでほぼ同時です。

microsaurus_tutorial_visual_3-3

サーボがセンター位置を中心に往復運動することを確認してください。

●デバッグの方法
サーボとは直接関係ありませんが、プログラムが思い通りに動かない時などに原因を調べるひとつの方法です。
上のプログラムに少し追加します。
「初期設定」の中に「シリアル通信 速度」を接続、速度は9600にします。「サーボ駆動」の下に「シリアルで1行送る」を接続し表示させる文字を入れておきます。

microsaurus_tutorial_visual_3-4

プログラムをメイン基板に転送して実行し、Arduino IDEの「ツール」->「シリアルモニタ」からシリアルモニタを起動します。

“angle= “という文字が1秒ごとに出てくると思います。このように実行中のプログラムの状況を調べることができます。

今回の成果は”ms03″などとして保存しておきましょう。
●Blockly@rduino
「Save project」ボタンで、”ms03″などとして保存します。

<= マイクロサウルス チュートリアル ビジュアル版(2)
チュートリアルベース
マイクロサウルス チュートリアル(4) =>

サーボを動かす

」に2件のコメントがあります

  1. […] <= マイクロサウルス チュートリアル ビジュアル版(1) チュートリアルベース マイクロサウルス チュートリアル ビジュアル版(3) => […]

  2. […] 部品の確認 / Arduino IDEのインストール (2) 最初のプログラム (3) サーボを動かす (4) ロボットを組み立てる (5) 基準姿勢の調整・歩行 (6) リモコンを使う (7) […]

現在コメントは受け付けていません。