|
ロゴ坊でのプログラミングによるロボット制御について
概要
手動で直にロボットを動かすのではなくロボットにさせたい動きを前もってプログラム
しておいて動かします。
理想の動きに近づくようにプログラムを組み立て修正していきます。
ロゴ坊で新型RB-01を動作させるための命令一覧表
|
********************作業の流れ********************
|
|
@ロゴ坊のインストール
弊社ソフトSF-01内のロゴ坊lb213.exeをインストールします。
ロゴ坊の詳しい使用方法はロゴ坊作者兼宗氏のホームページでご確認下さい。
《logo情報室のURL:http://www.logob.com/logo/ 》
A3.5インチFDへサンプルプログラムをコピー
弊社のサンプルプログラムを3.5インチFDにコピーします。
サンプルプログラムダウンロード
Bインターフェイスを接続
弊社の「インターフェイス(IF-01R)」をシリアルポート(RS-232C)のCOM1ポートへ接続
します。
Cロボットを起動
弊社ロボット「RB-01」の先頭にある入力スイッチを押したまま006P電池を接続します。
両方のキャタピラが同時に「前後前後」と動き、IF-01Rからの命令を受け付けること
が出来るようになります。
|


|
******************ロゴ坊での操作******************
|
|
1. ロゴ坊の起動
@ショートカットの作成
次からの起動をし易くするために、ロゴ坊のショートカットアイコンを作成します。
「Cドライブ」の中の「logob」フォルダーにロゴ坊起動アイコン「logob.exe」があり
ます。このアイコンにマウスポインタを合わせて、右クリックをして「送る」の中の「デ
スクトップ(ショートカットとして)」でショートカットを作成し「ロゴ坊」を起動しま
す。
A使用ドライブを3.5インチFDへ変更
ドライブを指定しないまま実習に入ると、ロゴ坊で製作したファイルはハードディスク
に保存されます。上書き保存によるデータの消失や破損を防ぐためにも生徒個人の3.5
インチフロッピーディスクからの起動、データ管理を行います。
ロゴ坊の起動後に
『drive "a』
と入力して、Aドライブ(フロッピーディスクドライブ)へ使用ドライブを変更します。
(ドライブの指定は、使用されるパソコンの状態に合わせます)
Bスタートアップを起動
3.5インチフロッピーディスクにコピーしたサンプルプログラムの中には、ロボットを動
かす命令を付属したオリジナルの「startup.lg」ファイルが納められています。
『load startup』
と入力します。
3.5インチFD内のファイル「startup.lg」を読み込みます。
【ファイル startup.lgを読み込んでいます...】
と表示され命令一覧が下に表示されます。
(この「startup.lg」ファイル中に「startup」という名前のプログラムが入っています)
|
 |
2. 接続したインターフェイスから赤外線通信
(ロゴ坊で赤外線通信するための準備をします。)
@シリアルポート(RS-232C)を開く
パソコンのRS-232CのCOM1ポートを使用可能にします。
『sopen 1』
と入力します。(COM2ポートの場合sopen 2)
「通信速度を9600から9600に変更しました」
とメッセージが出ます。
これによりインターフェイス(IF-01R)からデータを赤外線で送信出来ます。
A赤外線通信とロボットの動作確認
試しにインターフェイスをロボットの赤外線センサに向けて
『frt 10』
と入力します。その直後にロボットが2.5秒、前進します。
命令一覧表を見て、動きを確認します。
|
 |
3. 3.5インチFDからの読み込み方法
(既成のサンプルプログラムを読み込み実行させます。)
@3.5インチFDからプログラムの読み込み
3.5インチFD内のサンプルプログラム「demo1」を読み込みます。
『load demo1』
と入力します。 このサンプルプログラム中に、命令一覧表にある動作命令が、16個連続プログラムされてます。
【ファイル demo1.lgを読み込んでいます...】
demo1
と、表示されます。これで読み込みはOKです。
Aプログラムをロボットへの転送
パソコンに読み込んだdemo1の命令を赤外線でロボットへ送信します。
インターフェイスをロボットの赤外線センサへ向け、
『demo1』
と入力して送信します。
読み込んだプログラム名が、そのまま送信命令になります。
ロボットが「前後前後」と動いて命令を受信したことを知らせます。
B命令の起動
ロボットに実行命令を送信します。
インターフェイスをロボットの赤外線センサへむけて
『rob』
と入力します。
demo1のプログラム内容でロボットが動き始めます。
|
4. 3.5インチFDへの書き込み
(読み込んだデモプログラムを別名のファイルとして保存します。)
@プログラム画面のエディタを開きます。
サンプルプログラムのエディタを開きプログラムを変えてみます。
『to demo1』
と入力し、サンプルプログラムである「demo1」ファイルを呼び出し、エディタでプログラムを作れるようにします。
別ウインドウで「ロゴ坊エディタ - demo1.lg」が開きます。
ロゴ坊エディタで開かれた「demo1.lg」ファイルの内容は以下の通りです。
(「;」以下は各命令内容のコメントです。)
to demo1 ;「前へ一秒、待ち時間一秒、後ろへ一秒」動かすプログラム
pgm
frt 4 ;0番目の命令 一秒間前進させる命令
tim4 ;1番目の命令 待機時間の命令 tim4は約一秒待機します。
bck 4 ;2番目の命令 一秒間後進させる命令
tim1 ;3番目の命令 待機時間の命令(何もしない命令)
tim1 ;4番目の命令
tim1 ;5番目の命令
tim1 ;6番目の命令
tim1 ;7番目の命令
tim1 ;8番目の命令
tim1 ;9番目の命令
tim1 ;10番目の命令
tim1 ;11番目の命令
tim1 ;12番目の命令
tim1 ;13番目の命令
tim1 ;14番目の命令
tim1 ;15番目の命令
end
|
|
|
Aファイル名とプログラム名を変更し、別ファイルを作成します。
このデータ形式でプログラムを組むので、ファイルとプログラム名を変えて保存します。
プログラムの一番最初にある、「to demo1」の「demo1(プログラム名)」を自分の名前等に変えます。
例 『to hisatomi1』
次に、「ファイル(F)」の「名前をつけて保存する(A)」で変更したプログラム名を入力し、「保存する場所」を「3.5インチFD」を選択して保存します。
例 『hisatomi1』
to demo1 → to hisatomi1 (demo1をhisatomi1に変更)
pgm pgm
frt 4 frt 4
tim4 tim4
bck 4 bck 4
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
end end
ここで重要なのは、ファイルの中にプログラムがあるので「ファイル名」と、プログラムの先頭にある「プログラム名」が同じであることです。
ファイル名とプログラム名が一致していないとエラー出て読み込みません。
B名前を変更したプログラムを実行します。編集したプログラムは一度ロゴ坊に読み込ませなければ実行出来ません。
よってロゴ坊で、変更したプログラムを読み込みます。
(3.@〜Bを参照してロボットを動かします。)
プログラムの内容は変更していないので、ロボットは「demo1」と同じ動作をします。
ここの説明では「;」以下のコメントを消していますが、実際は「〜番目の命令」は残しておいたままにしておきます。
|
5. 制御命令の作成
既成のデモプログラムの形式を使用して、独自に動きについてプログラムします。
プログラムは、0〜15までの計16個の命令で組み立てます。 ゆえに15個以下や、17個以上の命令ではプログラムが動きません。
@先ほど別名で作ったファイルを読み込みます。参照3.@
A0番目〜3番目の制御命令と時間を、命令一覧表より変更し,上書き保存します。
注意! tim(時間)にはスペースが要りません。
《tim4 ←0 tim 4 ←x》
to hisatomi1 to hisatomi1 (変更点)
pgm pgm ↓
frt 4 → ftr 4 (frt 4「前進1秒」をftr 4「右の車輪を前進一秒」に)
tim4 → frt 4 (tim4「待機時間の命令」をfrt「前進一秒」に)
bck 4 → ftl 4 (bck 4「後進1秒」をftr 4「左の車輪を前進一秒」に)
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
tim1 tim1
end end
|
6. サンプルプログラムを応用して、それぞれの迷路やコース抜けのプログラムを行います。
サンプルプログラムは、以下の内容です。それぞれを別名で保存してプログラムを変
更してみます。参照4.@〜B
@ロボットの入力スイッチを押したときに転送したプログラムを起動させるプログラム「inp1」は起動命令を送信後、ロボット先端の入力スイッチを押すことにより、以下に続く命令でロボットが始動します。
一斉スタートや迷路等でロボットを動かすときに使用すると便利です。
to demo2 ;「ロボットの入力スイッチ」で始動するプログラム
pgm
inp1 ;0番目の命令 ロボットの入力スイッチを押すことで起動する命令
frt 4 ;1番目の命令 一秒間前進させる命令
bck 4 ;2番目の命令 一秒間後進させる命令
tim1 ;3番目の命令 待機時間の命令
tim1 ;4番目の命令
tim1 ;5番目の命令
tim1 ;6番目の命令
tim1 ;7番目の命令
tim1 ;8番目の命令
tim1 ;9番目の命令
tim1 ;10番目の命令
tim1 ;11番目の命令
tim1 ;12番目の命令
tim1 ;13番目の命令
tim1 ;14番目の命令
tim1 ;15番目の命令
end
|
|
|
A入力スイッチをセンサーとしてロボットを右左折、させるプログラム
lmv(前進中入力があれば左折)、rmv(前進中に入力があれば右折)
to demo3 ;入力スイッチ(センサー)を使用して左右に曲がるプログラム
pgm
inp1 ;0番目の命令 入力スイッチの入力(押す)で起動し始める命令
lmv ;1番目の命令 入力があるまで前進し、入力後自動的に左折する命令
rmv ;2番目の命令 入力があるまで前進し、入力後自動的に右折する命令
tim1 ;3番目の命令 待機時間の命令(何もしない命令)
tim1 ;4番目の命令
tim1 ;5番目の命令
tim1 ;6番目の命令
tim1 ;7番目の命令
tim1 ;8番目の命令
tim1 ;9番目の命令
tim1 ;10番目の命令
tim1 ;11番目の命令
tim1 ;12番目の命令
tim1 ;13番目の命令
tim1 ;14番目の命令
tim1 ;15番目の命令
end
|
|
|
B繰り返し命令を使用して、同じ動作を繰り返します。
cnt1(繰り返し)、lop1(命令の戻り先の指定)を使って、ある動作を指定回数繰り返します。
このループは一つのプログラムで一度しか使用出来ないので2重ループを組むことは出来ません。
to demo4 ;繰り返し命令を使い「前後へ一秒間ずつ2回動かす」プログラム
pgm
inp1 ;0番目の命令 *1(下記の命令内容を参照して下さい)
cnt1 2 ;1番目の命令 *2
frt 4 ;2番目の命令 *3
bck 4 ;3番目の命令 *4
lop1 2 ;4番目の命令 *5
tim1 ;5番目の命令
tim1 ;6番目の命令
tim1 ;7番目の命令
tim1 ;8番目の命令
tim1 ;9番目の命令
tim1 ;10番目の命令
tim1 ;11番目の命令
tim1 ;12番目の命令
tim1 ;13番目の命令
tim1 ;14番目の命令
tim1 ;15番目の命令
end
demo4の命令内容
*1 「inp1」はロボット本体の入力スイッチを押す(入力)ことで始動させる命令です。
ロボットに命令を転送し、3.Bの起動方法で起動命令を送信した後は、ロボット本体の入力スイッチを押すまで、待機します。
*2 「cnt1」と「lop1」との命令の間に挟まれた命令を指定回数分繰り返します。
「cnt1」と「lop1」は常に対になっており、どちらが欠けても繰り返しは行いません。
「cnt1 2」の「2」は、繰り返し回数をあらわしています。
*3 一秒間前進させます。
*4 一秒間後進させます。
*5 16個の命令には、それぞれ0番〜15番の番号が割り振られており「lop1 2」の数字「2」は命令の戻り先の番号を示しています。
ここで戻り先の番号は『「cnt1」の次の命令の番号』を指定します。
|
|