11 モーターの位置制御 
         (サンプルプログラム Cドライブ:\Program Files\System Watt\Robocube\Samples\position.toy)


  動作仕様
   ・ 速度30で60度(入力数値300)回転して3秒停止。これを繰り返す。
   ・ カウンタを使用してモーターが一回転したところで回転を停止する。


●初期設定について

モーターは基本的に速度制御か位置制御のいずれかのモードで使用します。
プログラム途中でのモード変更には注意が必要です。 (取扱説明書p54参照)。

●速度制御(回転方向制御)

回転方向(CW,STOP,CCW)と回転速度を設定します。
タイマーを使用したり、センサー情報を判定したりして、回転、停止を制御します。
ライントレーサー等のセンサー機能付自律走行車を駆動する場合、この速度制御が適しています。

●位置制御

速度と位置(角度)を設定し、予め設定した位置で停止させる時に使用します。

設定位置まで回転させる時の回転速度データの設定が必要です。

モーターの回転が設定位置に到達するまで待って、次のプロセスに移るよう、 自動的に”ステータス待ち”が付加されます。



11・1 制作準備

  ○使用するもの

◇センターブロック
◇モーターブロック
◇ジョイントボタン  8個

◇RS232Cシリアルケーブル
◇ACアダプター
◇モーター回転方向がわかるテープなど

  ○前準備
   <パソコン>
 
    パソコンを立ち上げ、スタートメニューから  プログラム → Robocube アプリケーション 
     →Toy App アプリケーションをクリックし起動させます。 デスクトップに描画ウィンドウが表示されます。
   <ブロックの組み立て>
    ・センタブロックのモードスイッチを(プログラミングモード)にします。
    ・モーターブロックのDigiスイッチの番号は”0”とします。
    ・センターブロックとモーターブロックをジョイントボタンを使用してつなぎます。
    ・シリアルケーブルのコネクタピンをセンターブロックの RS232Cポートに しっかり根元まで差し込み、
     9ピンのコネクタをパソコンのシリアルポートに接続します。
    ・最後にACアダプターをつなぎ、各ブロック緑色モニターLEDが点灯することを確認します。

11・2 各ブロックのオートバインディング


 ※画面及び各アイコンのデザインは バージョンにより異なります。 
画面選択メニューから 組立てウィンドウを選択し、 バインディングツールボタンをクリックして オートバインディングを行います。
各々のパーツ情報パネルの OKボタンを
クリックすると、最後にバインディング正常
画面が表示されます。
OK
ボタンをクリックします。

  
これにより、センターブロックとパソコン間で通信を行うことができるように なります。
(取扱説明書p13参照)

11・3 コマンドタイル作成

  コマンドタイル定義ウィンドウで、パーツリストからMotor_0 アイコンをドラックして
  右側画面緑色のライン上に配置し、 これをダブルクリックして、モーターの設定パネルを開きます。
  
 モーター
 初期設定

初期化画面で位置制御を選択し、 タイルプログラミングモードに切り替えて 位置制御をドラッグしてMotor_0アイコンの隣に 配置します。

リミットリセット,原点復帰も同様にドラッグして縦に並べます。
原点復帰に時間がかかる場合があるため、シーケンスタイルリストから
ステータス待ちをドラッグして配置します。

初期化と制御モードに切り替えて位置制御画面を開きます。(※タイルプログラミングモードの状態でこの操作を行うとシステムがフリーズします。)

速度に30を入力し、タイルプログラミングモードに切り替えて
速度をステータス待ちアイコンの下にドラッグします。

タイル定義の登録ボタンをクリックし、
アイコンを選択し、名前”モーター 初期設定”を入力します。

 時計回り

上述同様に、パーツリストからMotor_0 アイコンをドラックして
これをダブルクリックして、モーターの設定パネルを開きます。

シーケンスタイルリストからレジスタロードをドラッグしMotor_0アイコンの隣に 配置します。 レジスタAXの値(この場合0,300,600,900・・・と増加する) が 位置情報として扱われます。

位置制御画面を開き、タイルプログラミングモードに切り替えて 位置のテキストボックスをレジスタAXの下にドラッグします。位置データには直前にあるレジスタAX内のデータがセットされます。

タイル定義の登録ボタンをクリックし、
アイコンを選択し、名前”時計回り”を入力します。


11・4 テストタイルの作成
  
   テストタイル定義ウィンドウで、パーツリストからMotor_0 アイコンをドラッグして
  右側画面緑色のライン上に配置し、 これをダブルクリックして、モーターの設定パネルを開きます。
  各々オペラントのリストから必要なアイコンをドラッグし、下図のように並べてコマンドリンクでつなぎます。

reset

数値を0に設定し、レジスタAXに入力し、
データをリセットします。

タイル定義の登録ボタンをクリックし、
アイコンを選択し、名前”reset”を入力します。

300

モーターの回転を300(60度)刻みにするため、
300づつ位置データを増加させます。

タイル定義の登録ボタンをクリックし、
アイコンを選択し、名前”300”を入力します。

11・5 タイルを使ったプログラミング 

プログラミングウィンドウで 作成したコマンドタイルとテストタイルを ドラッグし図のように配置します。

システムタイルのリストからタイマーを ドラッグし、ダブルクリックして
時間3秒(3000ms)を入力します。

これらをコマンドリンクでつなぎます。

 

動作確認

実行ボタン@をクリックしてプログラムの動作確認をします。
トレース機能Aボタンをクリックすると、実行中のタイルの色が
変化し、 プログラムの進行状況が良く理解できます。


  確認が終われば、停止Bをクリックして、 プログラムを終了します。
  

次にこのプログラムにカウンタを設置してモーターが一回転 したら停止するようにします。
カウンタセット、カウンタを挿入する位置のコマンドリンクを削除します。

システムタイルのリストからカウンタセットをドラッグして配置し、ダブルクリックして設定パネルを開きます。

カウンタ値に6(一回転は60度×6 )を入力し、OKボタンをクリックしてパネルを 閉じます。

システムタイルのリストからカウンタをドラッグして配置し、ダブルクリックして設定パネルを開きます。
0を入力した場合、カウンタは6から0までカウントダウンします。
6から1まではカウンタの右上の出口から”数値”(True)が出力され、
0になった時、右下の出口から”0”(False) が出力されます。

上図のようにコマンドリンクでつなぎ直して、動作確認を行います。

自律モードで動作させたい場合は

まず、PCとROBOCUBEの接続ケーブル(RS232Cポート) を外します。
センターブロックの”モードスイッチ””R”(RUNモード〔自律モード〕に します。)
ACアダプターを一旦外し、再度取り付けます。