*

C言語でEV3開発(13)-opOUTPUT_STEP_SPEEDコマンド

公開日: : 最終更新日:2015/05/06 マインドストーム/EV3, 開発

どもです。
今回のエントリーは、モーターを動かすコマンドである
「opOUTPUT_STEP_SPEED」コマンドについて書きます。

(1). opOUTPUT_STEP_SPEEDコマンド
今回紹介するコマンドです。
コマンドのフォーマットは、以下の通りです。

バイトインデックス内容
1コマンドコードopOUTPUT_STEP_SPEED(0xAE)
2チャンネル
3スピード-100~100(%)
4Step1(スピードに達するまでに回転する角度)0~4294967295(°)
5Step2(スピードで回転する角度)0~4294967295(°)
6Step3(スピードが0になるまでに回転する角度)0~4294967295(°)
7ブレーキ0 = ブレーキをかけない
1 = ブレーキをかける

このコマンドでは、コマンド名が似ていることもそうですが、コマンドフォーマット自体も「opOUTPUT_STEP_POWER」コマンドに似ています。
なお、基本的な動作は、opOUTPUT_STEP_POWERコマンドと同様で、Step1~Step3に設定したそれぞれの「角度」だけモーターが回転します。
すなわち、コマンドの動作が完了した際には、Step1~Step3に設定した値の分だけモーターが回転しています。
なお、単位は「°」です。
「rad(ラジアン)」ではないので、注意が必要です。

(2). サンプルコード
というわけで、opOUTPUT_STEP_SPEEDコマンドを使用してモーターを動かします。
サンプルプログラムは、以下の通りです。

(3). 動画
というわけで、実際に動かしてみた場合の動画です。

見てわかるように、モーターは最初ゆっくり動き始め、その後だんだんゆっくりになり、最終的に停止します。

(4). コマンドの注意点
このコマンドを使用する際には、opOUTPUT_STEP_POWERのときと同様の注意点があります。
すなわち、回転方向はPowerの値で決定し、この値に負数を指定した場合には、モーターは逆方向に回転します。
たとえば、「-100」を指定した場合には、「出力100%、回転方向は逆」として認識されてしまいます。

また、Powerに0を設定した場合です。
これは、理想的にはモーターが動作しないことです。
しかし、実際に動かしてみると、モーターは動作してしまいます。
原因は、不明です。

次に、StepNに設定する値です。
ます、Step1には、必ず値を設定しなければなりません。
Step1に値を設定しなかった場合、モーターはきちんと動作しないようです。(というか、しませんでした。)
Step2、およびStep3ですが、Step1が設定してあれば、特に設定する必要はないようです。(実際に、値を設定しなくても、モーターは動作しました。)

また、次に記載する点がopOUTPUT_STEP_POWERコマンドと大きな違いです。
すなわち、コマンド実行前にopOUTPUT_STARTコマンドを実行する必要がありません。
いきなりopOUTPUT_STEP_SPEEDコマンドを実行した場合でも、モーターが動作します。

以上、今回は、opOUTPUT_STEP_SPEEDコマンドについて書きました。
次回も、引き続きモーターを動作させるためのコマンドを紹介していきます。
では。

関連記事

think_about_utest

単体テストの効率化を考える(6)-スタブの自動生成ツール

どもです。 「単体テストの効率化について考える」の6回目です。 1回目から5回目まではコチラ

記事を読む

eclipse_oxygen

Eclipse/CrossCompile環境でプロジェクトをクリーンできない

どもです。 今回は、Eclipseでクロスコンパイル環境を作成した場合、を実行すると「指定されたフ

記事を読む

no image

C言語でEV3開発(4)

どもです。 今回のエントリーは、前回のエントリー内容/EclipseでEV3の実行ファイルをビルド

記事を読む

RasPi_Qt

Rasbianの新しいバージョンが出たので、クロス環境を更新してみた。(その後)

どもです。 前回、Linux/RaspberryPiでのQt(QtCreator)のクロス開発

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(10)-SPI通信をしてみた(その2)

どもです。 えー。 「Qtで…」とか書いておきながら、今回もやっぱりQtは出てきません。

記事を読む

DIY_eye_catch

自宅で電子工作(2)-ラズパイのSPIコネクタ自作

どもです。 今回は、電子工作です。 1.何を作った 今回紹介(?)するのは、Raspber

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(5):pigpioを使ってみた

どもです。 RaspberryPiを購入して、LEDも手に入れたのでコレをチカらせてみようと思いま

記事を読む

iot_at_home_eye_catch

IoT開発(14)
ESP-WROOM-02の稼働時間を延ばす工夫をしてみる

どもです。この記事は、以下の続きです。 IoT開発(4)-ESP-WROOM-02を電池で駆動

記事を読む

google_test

C言語でEV3開発(6)

どもです。 今回のエントリーは、前回のエントリーの続き、google testでの単体テスト環境に

記事を読む

no image

C言語でEV3開発(7)

どもです。 今回のエントリーでは、いよいよEV3を動かしていきます。 新しい環境に対して、最もよ

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

c_sharp_eye_catch
セルに「取り消し線」が設定されているかを判定してみた

どもです。 前回、前々回と、エクセルのセル内の文字列から、「取り

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」の削除を簡単にしてみた

どもです。 前回、C#/OpenXmlを用いて、エクセルのセル内

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」を削除してみた

どもです。 今回は、C#/OpenXmlの組み合わせで、エクセル

c_sharp_eye_catch
C#でバッファの内容を表示する処理を実装してみた-
データ型に従って動的に書式を設定する

どもです。 最近、C#でバッファ/配列の値をコンソールに表示した

arduino_relay_switch_003_self_preservation_circuit_eye_catch
Arduinoでリレースイッチ(3)-自己保存回路

どもです。 前回の記事で、リレースイッチ「AE-G5V-DRV」

→もっと見る

PAGE TOP ↑