2014年07月04日

RAPIRO製作日誌 プログラミング編3 サーボモータを動かしてみよう!!

さてシリーズ第四弾となりました。RAPIRO製作日誌シリーズ!!
いよいよ本格的にサーボモータを動かしてみよう!!
が今回の記事内容でございます。
やっぱり動かしてみないとわからない、それもロボットの醍醐味でございます。

今回はプログラム上のサーボモータの数値を変更すればどういう動きになるか、という事をご紹介するためにちょっと特殊なモーションを作成しました。
かなり特殊なフレーム数とモーションの数なので、コピー&ペーストで参考にして頂くにはいささか不向きなモーションになっております。
そのため、こちらのモーションを参考にされる際にはご注意ください。

今回はRAPIROに搭載されている12個のサーボモータを一つ一つ動かしてみるというモーションです。
動かす順番は、プログラムに記載されている順番に左端から順に割り振られていいるモータを動かして
基本姿勢に戻す。ということを数値を変えて実践してみました。

まずこの特殊なモーションを作成するために必要なのが、変数の宣言!!
これはマイコンにここのデータはこれだけの量有るんだよ。という事を教えてあげる作業の事を指します。
これをしてあげないとマイコンはデータをキチンと認識できません。
逆を言えばこの数が合ってさえいれば、その数の中で変更を行うことは容易です。
マイコンにキチンとデータ認識させるために必要な作業なのです。

では今回どの変数を変更するのかと言いますと

サンプルスケッチ初期値赤枠

こちらの赤枠で表示されている部分の変数を変更します。
まず赤枠の部分の上の部分の変数を変更します。
上の部分はモーションの数を指しています。ここの数値でモーションの数を指定します。
残念ながらRAPIRO搭載基板でどこまでモーションを追加できるかは検証出来ておりません。
今回は動作確認用特殊モーションと、静止状態のモーションのみを書き込みますので、変数の値は「2」となります。
次に特殊モーションを実行するために必要なフレーム(コマ)の数を変更していきます。
今回は12個のサーボモータを一つずつ動かして、元の姿勢に戻すという動作が必要なので、一つのサーボモータにつき2個フレームを使う事になります。
よって、必要なフレーム数12×2フレームつまり24フレーム必要になります。
ここのフレーム数を調整する事で一つのモーションでざまざまな動きをコマンドを入力することなく一連の動作として登録する事も可能になります。
今回は初期のサンプルスケッチから今回動作させるのに必要の無いモーションの記述は削除してプログラムを書き換えました。
なので実際のところ複数のモーションのフレームを増やした場合、どの程度まで増やせるのかは、検証できておりません。
マイコンの書き込み容量に制限があるためです。

実際に変数を変えてみたものがこちら

赤枠サーボ確認用特殊モーション変数確認スクショ

変更の際は半角数字で入力してください。全角で入力するとエラーが発生します。
これで変数の宣言は完了しました。

ではこれで書き込んでいいかといわれるとそうではありません。
このまま書き込んでしまうとエラーが発生します。
何故か?
データの数の宣言は変更したけれども肝心のデータを変更していないためマイコンは
「あれ数が合わないよ?」となって混乱してしまうわけです。
なので混乱させないために、データの量を揃えてやりましょう。

データの量、つまりモーションの数とフレームの数なわけですが、今回はモーションの数は二個、フレームの数は24個となります。
最初の静止時のモーションの変更は簡単です。
2フレーム目以降をコピーして貼り付けて24フレームにしていくだけ。
ただしここで重要なのがしっかり『}』のマークでデータが閉じられているか、基本的にこういったデータはデータの中身を『{}』で閉じてやる必要があります。
こういった文法に関しましては、C言語の入門書などで学んでいただければなと思います。
まず基本的な文法を身に付けられた上で、プログラムの書き換えを行っていただければなと思います。

実際に今回サーボモータの動作を確認するために用いた数列(データ)はこちら

特殊モーションサーボモータ配列スクショ

これはほんの一部なのですが、この数列が24行あってその各々の値に振られた値を読み込んでモーションが生成されます。

まず静止モーションの24行がこちら!!
24行スクショ静止
特殊モーションの24行がこちら!!
24行モーションスクショ

実際動かしてみたモーションがこちら!!



今回のプログラムではモーションシリアルコマンドを二つしか使用しておりません。
『#M0静止』と『#M1特殊モーション』
この二つのみで構成されています。
フレームを増やす事で一つのモーションでここまで出来る、と言う事と
実際サーボモータの値をいじくってみると任意の角度で動かせる、と言う事が
今回の記事でご理解いただけたかと思います。

今回は初心者の方でも編集しやすいところを変更してみました。
一番ややこしい演算処理、ロボットを動かすために必要な計算の部分は変更しておりません。
その部分は本当にプログラミングと言うものを理解してから変更される事をオススメします。

いよいよ連載記事もシリーズ第四弾を終え、次回は醍醐味である部分に挑んでみようかと思う所存であります。

RAPIROは一回売り場及び通販ページにて

¥45360-

で販売いたしております!!

<記事:福島>


RAPIRO製作日誌シリーズ

RAPIRO 製作日誌 〜組み立て編〜

ラピロ製作日誌 プログラム編 ロボット開発基礎の基礎

RAPIRO製作日誌 プログラム編2 プログラムを書き換えてみよう!



siliconhouse at 18:56│TrackBack(0)1階売り場情報 

トラックバックURL