プログラミング言語「ドリトル」

大阪電気通信大学 兼宗研究室

ユーザ用ツール

サイト用ツール


ref_protch

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ref_protch [2018/10/12 04:48]
klab
ref_protch [2018/10/13 21:03] (現在)
klab
ライン 3: ライン 3:
 ##​プロッチ ##​プロッチ
   * プロッチを制御するためのオブジェクトです。   * プロッチを制御するためのオブジェクトです。
-  * プロッチは、対話的な動作自律的な動作がありま。(すみません。ここ修正します。) +  * プロッチは、パソコンに接続した状態で制御する「接続モード」プログラムを転送し、転送後は独立で動作する「独立モード」に対応ています。 
-  * 対話的な動作のプログラムでは、先頭に次の1 行を記述してください。+  * 接続モードのプログラムでは、先頭に次の1 行を記述してください。
 <​code>​ <​code>​
  システム! "​protchrm"​ 使う。  システム! "​protchrm"​ 使う。
 </​code>​ </​code>​
-  ​自律的な動作のプログラムでは、先頭に次の1 行を記述してください。+  ​独立モードのプログラムでは、先頭に次の1 行を記述してください。 
 <​code>​ <​code>​
  システム! "​protch"​ 使う。  システム! "​protch"​ 使う。
 </​code>​ </​code>​
-  * Protch ​オブジェクトは「プロ」「protch」という名前で使用できます。+  * プロッチオブジェクトは「プロッチ」「プロ」「protch」という名前で使用できます。
   * これらのオブジェクトはあらかじめ用意されており、「作る」を実行する必要がありません。   * これらのオブジェクトはあらかじめ用意されており、「作る」を実行する必要がありません。
 +  * **通信プログラム転送** : 接続モードのみの命令です。ドリトルとプロッチを通信するためのプログラムを転送する命令です。プログラムの最後の行に記述してください。
 +    * (例)通信プログラムを転送します。
 +<​code>​
 + プロッチ! 通信プログラム転送。
 +</​code>​
 +  * **転送** : 独立モードのみの命令です。ドリトルのプログラムをコンパイルし、Protch に転送する命令です。プログラムの最後の行に記述してください。
 +    * (例)プログラムを転送します。
 +<​code>​
 + プロッチ! 転送。
 +</​code>​
   * 以下に、Protch オブジェクトに共通の命令を示します。   * 以下に、Protch オブジェクトに共通の命令を示します。
   * **待つ**: プログラムの実行を止める命令です。引数に秒数を指定してください。   * **待つ**: プログラムの実行を止める命令です。引数に秒数を指定してください。
     * (例)実行を1 秒待ちます。 ​     * (例)実行を1 秒待ちます。 ​
 <​code>​ <​code>​
- プロ! 1  待つ。+ プロッチ! 1  待つ。
 </​code>​ </​code>​
- +  ​* **テスト動作**: プロッチの動作確認用の命令です。命令を実行することで左イトが点灯ます。 
-  ​* **転送** : ドリトルのプログラムをコンパイルし、Protch に転送する命令です。プログムの最後の行に記述てください。 +    * (例)テスト動作行います。 ​
-    * (例)プログラム転送します。+
 <​code>​ <​code>​
- プロ! ​転送+ プロッチテスト動作
 </​code>​ </​code>​
 +
 +
 ## ライト ## ライト
   * ライト(LED) のオブジェクトです。   * ライト(LED) のオブジェクトです。
ライン 31: ライン 43:
   * 制御したい方のオブジェクトを記述してください。   * 制御したい方のオブジェクトを記述してください。
   * **点灯**: LED の点灯命令です。   * **点灯**: LED の点灯命令です。
-  ​* (例)左ライトを点灯します。+    ​* (例)左ライトを点灯します。
 <​code>​ <​code>​
  左ライト! 点灯。  左ライト! 点灯。
 </​code>​ </​code>​
   * **消灯**: LED の消灯命令です。   * **消灯**: LED の消灯命令です。
-  ​* (例)右ライトを消灯します。+    ​* (例)右ライトを消灯します。
 <​code>​ <​code>​
  右ライト! 消灯。  右ライト! 消灯。
ライン 42: ライン 54:
  
 ## サーボモータ ## サーボモータ
-  ​* サーボモータの回転角度を制御します。 +  ​* サーボモータの回転角度を制御します。 
- * 0~180 までの角度を制御値としてパラメータに設定します。 +  * 0~180 までの角度を制御値としてパラメータに設定します。 
- * 左サーボモータと右サーボモータのオブジェクトを準備しています。 +  * 左サーボモータと右サーボモータのオブジェクトを準備しています。 
- * 制御したい方のオブジェクトを記述してください。+  * 制御したい方のオブジェクトを記述してください。
   * **角度設定**:​ サーボモーターの制御を行う動作命令です。   * **角度設定**:​ サーボモーターの制御を行う動作命令です。
-  ​* (例)左サーボモーターを180 度に制御をします。+    ​* (例)左サーボモーターを180 度に制御をします。
 <​code>​ <​code>​
  左サーボモータ! 180  角度設定。  左サーボモータ! 180  角度設定。
ライン 56: ライン 68:
 </​code>​ </​code>​
 ## モータ ## モータ
-  ​* モーターの回転を制御します。 +  ​* モーターの回転を制御します。 
- * 前進、後進、停止、左折、右折、右回り、左回り命令の引数に秒数を指定することで指定した時間の間動作し、その後0.5 秒停止します。 +  * 前進、後進、停止、左折、右折、右回り、左回り命令の引数に秒数を指定することで指定した時間の間動作し、その後0.5 秒停止します。 
- * 引数を与えない場合は、実行後に停止しません。+  * 引数を与えない場合は、実行後に停止しません。
   * **前進**: 両輪を同じ速度で正回転します。   * **前進**: 両輪を同じ速度で正回転します。
-  ​* (例)1 秒間、前進します。+    ​* (例)1 秒間、前進します。
 <​code>​ <​code>​
  モータ! 1  前進。  モータ! 1  前進。
 </​code>​ </​code>​
-後進: 両輪を同じ速度で逆回転します。 +  * **後進**: 両輪を同じ速度で逆回転します。 
-(例)1 秒間、後進します。+    ​* ​(例)1 秒間、後進します。 
 +<​code>​
 モータ! 1  後進。 モータ! 1  後進。
-停止: 両輪の回転を停止します。 +</​code>​ 
-(例)1秒間、停止します。 +  * **停止**: 両輪の回転を停止します。 
-20 付録A ドリトルの命令一覧+    ​* ​(例)1秒間、停止します。 
 +<​code>​
 モータ! 1  停止。 モータ! 1  停止。
-左折: 右側のモータを正回転します。 +</​code>​ 
-(例)3 秒間、左折します。+  * **左折**: 右側のモータを正回転します。 
 +    ​* ​(例)3 秒間、左折します。 
 +<​code>​
 モータ! 3  左折。 モータ! 3  左折。
-右折: 左側のモータを正回転します。 +</​code>​ 
-(例)3 秒間、右折します。+  * **右折**: 左側のモータを正回転します。 
 +    ​* ​(例)3 秒間、右折します。 
 +<​code>​
 モータ! 3  右折。 モータ! 3  右折。
-左回り: 右側のモータが標準の速度で正回転し、左側のDC モータが標準の速度/​5 の速度で +</​code>​ 
-前転します。 +  * **左回り**: 右側のモータが標準の速度で正回転し、左側のDC モータが標準の速度/​5 の速度で前転します。 
-(例)2秒間、左回りします。+    ​* ​(例)2秒間、左回りします。 
 +<​code>​
 モータ! 2  左回り。 モータ! 2  左回り。
-右回り: 左側のモータが標準の速度で正回転し、右側のDC モータが標準の速度/​5 の速度で +</​code>​ 
-前転します。 +  * **右回り**: 左側のモータが標準の速度で正回転し、右側のDC モータが標準の速度/​5 の速度で前転します。 
-(例)2秒間、右回りします。+    ​* ​(例)2秒間、右回りします。 
 +<​code>​
 モータ! 2  右回り。 モータ! 2  右回り。
-速度設定:​ DC モータの速度を0 から255 までの値で設定します。標準では100 になってい +</​code>​ 
-ます。 +  * **速度設定**: DC モータの速度を0 から255 までの値で設定します。標準では100 になっています。 
-(例)両輪の速度を255 に設定し、2秒間、前進します。+    ​* ​(例)両輪の速度を255 に設定し、2秒間、前進します。 
 +<​code>​
 モータ! 255  255  速度設定。 モータ! 255  255  速度設定。
 モータ! 2  前進。 モータ! 2  前進。
-ブザー +</​code>​ 
- 書き込み版のみオブジェクトです。 + 
-演奏: ブザーの出力命令です。 +## ブザー 
-(例)ドの音階を鳴らします。+  * 独立モードのみ利用可能なオブジェクトです。 
 +  * **演奏**: ブザーの出力命令です。 
 +    ​* ​(例)ドの音階を鳴らします。 
 +<​code>​
 ブザー! "​ド"​ 演奏。 ブザー! "​ド"​ 演奏。
-メロディ +</​code>​ 
-譜面に相当するオブジェクトです。 +### メロディ 
-生成したメロディを演奏の引数に与えることができます。 +  ​* ​譜面に相当するオブジェクトです。 
-作る: メロディオブジェクトの生成命令です。 +  ​* ​生成したメロディを演奏の引数に与えることができます。 
-(例)音楽という名前のメロディオブジェクトを作成し、ドの音階を設定します。+  * **作る**: メロディオブジェクトの生成命令です。 
 +    ​* ​(例)音楽という名前のメロディオブジェクトを作成し、ドの音階を設定します。 
 +<​code>​
 音楽=メロディ! "​ド"​作る。 音楽=メロディ! "​ド"​作る。
-追加: 生成したメロディオブジェクトに音階を追加する命令です。。 +</​code>​ 
-A.1 Protch オブジェクト21 +  * **追加**: 生成したメロディオブジェクトに音階を追加する命令です。。 
-(例)メロディオブジェクトの「音楽」にレの音階を追加します。+    ​* ​(例)メロディオブジェクトの「音楽」にレの音階を追加します。 
 +<​code>​
 音楽! "​レ"​追加。 音楽! "​レ"​追加。
-(例)メロディオブジェクトを演奏の引数に与えます。+</​code>​ 
 +  * (例)メロディオブジェクトを演奏の引数に与えます。 
 +<​code>​
 ブザー! (音楽) 演奏。 ブザー! (音楽) 演奏。
-スイッチ +</​code>​ 
-スイッチの計測値を取得します。 + 
-左スイッチと右スイッチのオブジェクトを準備しています。 +## スイッチ 
-取得したい方のオブジェクトを記述してください。 +  ​* ​スイッチの計測値を取得します。 
-読む: スイッチが押されている時は0 を、押されていない時は1 を返します +  ​* ​左スイッチと右スイッチのオブジェクトを準備しています。 
-(例)左スイッチの入力値が0 なら『…』を実行します。+  ​* ​取得したい方のオブジェクトを記述してください。 
 +  * **読む**: スイッチが押されている時は0 を、押されていない時は1 を返します 
 +    ​* ​(例)左スイッチの入力値が0 なら『…』を実行します。 
 +<​code>​
 「(左スイッチ! 読む)==0」! なら「…」実行。 「(左スイッチ! 読む)==0」! なら「…」実行。
-接触?: スイッチが押されている時は0 を、押されていない時は1 を返します +</​code>​ 
-(例)左スイッチの接触があれば『…』を実行します。+  * **接触?**: スイッチが押されている時は0 を、押されていない時は1 を返します 
 +    ​* ​(例)左スイッチの接触があれば『…』を実行します。 
 +<​code>​
 「左スイッチ! 接触?​」! なら「…」実行。 「左スイッチ! 接触?​」! なら「…」実行。
-光センサ +</​code>​ 
-左光センサと右光センサのオブジェクトを準備しています。 + 
-取得したい方のオブジェクトを記述してください。 +## 光センサ 
-読む: 光センサの値を0~255 の値で返します。センサの周辺が暗いほど値が大きくなりま +  ​* ​左光センサと右光センサのオブジェクトを準備しています。 
-す。 +  ​* ​取得したい方のオブジェクトを記述してください。 
-(例)左光センサの入力値が100 より大きかったら『…』を実行します。+  * **読む**: 光センサの値を0~255 の値で返します。センサの周辺が暗いほど値が大きくなります。 
 +    ​* ​(例)左光センサの入力値が100 より大きかったら『…』を実行します。 
 +<​code>​
 「(左光センサ! 読む) > 100」! なら「…」実行。 「(左光センサ! 読む) > 100」! なら「…」実行。
-明るさ?: 光センサの値を0~255 の値で返します。センサの周辺が暗いほど値が大きくな +</​code>​ 
-ります。 +  * **明るさ?**: 光センサの値を0~255 の値で返します。センサの周辺が暗いほど値が大きくなります。 
-(例)左光センサの入力値が100 より大きかったら『…』を実行します。+    ​* ​(例)左光センサの入力値が100 より大きかったら『…』を実行します。 
 +<​code>​
 「(左光センサ! 明るさ?​)>​ 100」! なら「…」実行。 「(左光センサ! 明るさ?​)>​ 100」! なら「…」実行。
-ラインセンサ +</​code>​ 
-ラインセンサ(赤外線フォトリフレクタ)の値を取得します。 +## ラインセンサ 
-左ラインセンサと右ラインセンサのオブジェクトを準備しています。 +  ​* ​ラインセンサ(赤外線フォトリフレクタ)の値を取得します。 
-22 付録A ドリトルの命令一覧 +  ​* ​左ラインセンサと右ラインセンサのオブジェクトを準備しています。 
-取得したい方のオブジェクトを記述してください。 +  ​* ​取得したい方のオブジェクトを記述してください。 
-読む: ラインセンサの値を0~255 の値で返します。反射が明るいほど値が大きくなりま +  * **読む**: ラインセンサの値を0~255 の値で返します。反射が明るいほど値が大きくなります。 
-す。 +    ​* ​(例)右ラインセンサの入力値が130 より大きかったら『…』を実行します。 
-(例)右ラインセンサの入力値が130 より大きかったら『…』を実行します。+<​code>​
 「(右ラインセンサ! 読む) > 130」! なら「…」実行。 「(右ラインセンサ! 読む) > 130」! なら「…」実行。
-明るさ?: ラインセンサの値を0~255 の値で返します。反射が明るいほど値が大きくなり +</​code>​ 
-ます。 +  * **明るさ?**: ラインセンサの値を0~255 の値で返します。反射が明るいほど値が大きくなります。 
-(例)右ラインセンサの入力値が130 より大きかったら『…』を実行します。+    ​* ​(例)右ラインセンサの入力値が130 より大きかったら『…』を実行します。 
 +<​code>​
 「(右ラインセンサ! 明るさ?) > 130」! なら「…」実行。 「(右ラインセンサ! 明るさ?) > 130」! なら「…」実行。
-バッテリ +</​code>​ 
-読む: バッテリの残量を1~5 で返します。 +## バッテリ 
-(例)バッテリの残量が3 以上なら『…』を実行します。+  * **読む**: バッテリの残量を1~5 で返します。 
 +    ​* ​(例)バッテリの残量が3 以上なら『…』を実行します。 
 +<​code>​
 「(バッテリ! 読む) >= 3」! なら「…」実行。 「(バッテリ! 読む) >= 3」! なら「…」実行。
-残量?: バッテリの残量を1~5 で返します。 +</​code>​ 
-(例)バッテリの残量が3 以上なら『…』を実行します。+  * **残量?**: バッテリの残量を1~5 で返します。 
 +    ​* ​(例)バッテリの残量が3 以上なら『…』を実行します。 
 +<​code>​
 「(バッテリ! 残量?) >= 3」! なら「…」実行。 「(バッテリ! 残量?) >= 3」! なら「…」実行。
-距離センサ +</​code>​ 
-距離センサの値を取得します。 +## 距離センサ 
-読む: 距離センサの値をmm(ミリメートル) で返します。 +  ​* ​距離センサの値を取得します。 
-(例)距離が130mm より大きかったら『…』を実行します。+  * **読む**: 距離センサの値をmm(ミリメートル) で返します。 
 +    ​* ​(例)距離が130mm より大きかったら『…』を実行します。 
 +<​code>​
 「(距離センサ! 読む) > 130」! なら「…」実行。 「(距離センサ! 読む) > 130」! なら「…」実行。
-距離?: 距離センサの値をmm(ミリメートル) で返します。 +</​code>​ 
-(例)距離が130mm より大きかったら『…』を実行します。+  * **距離?**: 距離センサの値をmm(ミリメートル) で返します。 
 +    ​* ​(例)距離が130mm より大きかったら『…』を実行します。 
 +<​code>​
 「(距離センサ! 距離?) > 130」! なら「…」実行。 「(距離センサ! 距離?) > 130」! なら「…」実行。
-シリアル +</​code>​ 
- リモー版のみ利用可能なオブジェクトです。 +## シリアル 
-読む: プロッチが受信した文字列を取得します。 +  * 接続モー版のみ利用可能なオブジェクトです。 
-(例)プロッチが受信した文字列をラベルを使って表示します。 +  * **読む**: プロッチが受信した文字列を取得します。 
-A.1 Protch オブジェクト23+    ​* ​(例)プロッチが受信した文字列をラベルを使って表示します。 
 +<​code>​
 ラベル!(シリアル!読む) 作る。 ラベル!(シリアル!読む) 作る。
-出力: 引数に指定した文字列を出力する命令です。 +</​code>​ 
-(例)「こんにちわ」の文字列を出力します。+  * **出力**: 引数に指定した文字列を出力する命令です。 
 +    ​* ​(例)「こんにちわ」の文字列を出力します。 
 +<​code>​
 シリアル!"​こんにちわ"​出力。 シリアル!"​こんにちわ"​出力。
 +</​code>​
ref_protch.1539287288.txt.gz · 最終更新: 2018/10/12 04:48 by klab