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

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

ユーザ用ツール

サイト用ツール


ch_protch

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン 両方とも次のリビジョン
ch_protch [2018/10/13 20:09]
klab
ch_protch [2018/10/13 21:10]
klab
ライン 5: ライン 5:
 ### ドリトルからプログラムを転送する ### ドリトルからプログラムを転送する
  ドリトルで記述したプログラムは次の手順で転送する。  ドリトルで記述したプログラムは次の手順で転送する。
-  ​ドリトルの編集画面でプログラムを記述する。 +  ​ドリトルの編集画面でプログラムを記述する。 
-  ​プログラムを実行すると「protchへの転送を実行しますか?​」と表示されるので「はい(Y)」を選択する。((「Windowsセキュリティの重要な警告」が表示された場合は「アクセスを許可する(A)」を選択する。)) +  ​*  ​プログラムを実行すると「protchへの転送を実行しますか?​」と表示されるので「はい(Y)」を選択する。((「Windowsセキュリティの重要な警告」が表示された場合は「アクセスを許可する(A)」を選択する。)) 
-  ​「ポートを選択してください。」と表示されるのでプロッチを接続してるCOMポートを選択する。((COM*の部分は環境によって異なる。)) + {{:​pasted:​protch_stand2.png}} 
-  ​プログラムの転送が行われ 「転送完了」が表示されるまで待つ。((5秒程度かかる。))+  *  ​「ポートを選択してください。」と表示されるのでプロッチを接続してるCOMポートを選択する。((COM*の部分は環境によって異なる。)) 
 +{{:​pasted:​protch_comport.png}} 
 +  ​プログラムの転送が行われ 「転送完了」が表示されるまで待つ。((5秒程度かかる。)) 
 +{{:​pasted:​protch_remote2.png}}
  
  
-### 動作確認と操作方法について + 
- ここでは、動作環境が正しく準備できたかの確認と一緒に操作方法について説明する。動作確認には、次のプログラムを使用する。+### 動作確認と利用方法について 
 + ここでは、動作環境が正しく準備できたかの確認と利用方法について説明する。動作確認には、次のプログラムを使用する。
 <​code>​ <​code>​
 システム!"​protch"​使う。 システム!"​protch"​使う。
ライン 21: ライン 25:
 </​code>​ </​code>​
  
- 上記のプログラムを実行た場合、左ライトが一回点灯すればOKである。+ 上記のプログラムを転送し、下図のようにプロッチのスイッチを一度押すことで転送したプログラムが実行される。左ライトが一回点灯すればOKである。 
 + 
 +{{:​pasted:​protch_stand.jpg}} 
  
 ### プロッチのプログラムの基本 ### プロッチのプログラムの基本
ライン 40: ライン 47:
 **繰り返し実行**の「...」の部分には、何度も繰り返して実行したいプログラムを書く。 **繰り返し実行**の「...」の部分には、何度も繰り返して実行したいプログラムを書く。
  
-**転送**+**転送**を実行すると、プログラムがコンパイルされ、プロッチに転送される。
  
 +### LEDの利用
 + プロッチに搭載しているLEDは**点灯**や**消灯**を使うことで制御できる。プロッチにはLEDが2つ搭載しているため、左側のLEDである「**左ライト**」、右側のLEDである「**右ライト**」というオブジェクトがある。
 +
 +**LEDの命令一覧**
 +^ 命令 ^ 機能 ^
 +|点灯 | LEDを点灯する |
 +|消灯 | LEDを消灯する |
 +
 + 次のプログラムでは、左右のLEDを1秒間点灯し、消灯するプログラムである。
 <​code>​ <​code>​
-システム"​protch"​ 使う。+システム!"​protch"​使う。
  
 +最初に実行=「
 + 左ライト!点灯。
 + 右ライト!点灯。
 + プロッチ!1 待つ。
 + 左ライト!消灯。
 + 右ライト!消灯。
 +」。
 +プロッチ!転送。
 +</​code>​
 +
 +### スイッチの利用
 + プロッチに搭載しているスイッチは、**接触?​**を使うことでスイッチのONとOFFを検出できる。スイッチは左右に搭載しているので左側のスイッチである「左スイッチ」、右側のスイッチである「右スイッチ」というオブジェクトがある。
 +
 +**スイッチの命令一覧**
 +^ 命令 ^ 機能 ^
 +|読む | スイッチの入力を0か1で取得する |
 +|接触? | スイッチの入力を0か1で取得する |
 +
 + 次のプログラムでは、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行に書いているため、何度の実行される。
 +
 +<​code>​
 +システム! "​protch"​ 使う。
 +繰り返し実行=「
 +  「左スイッチ! 接触?​」! なら「
 +    左ライト! 点灯。
 +  」そうでなければ「
 +    左ライト! 消灯。
 +  」実行。
 +」。
 +プロッチ!転送。
 +</​code>​
 + 下図は、プロッチが箱に衝突し、左スイッチに接触しているので左ライトが点灯している。
 +
 + ​{{:​pasted:​protch_switch.jpg}}
 +
 +### 光センサの利用
 + プロッチに搭載している光センサは**明るさ?​**を使うことで周辺の光量を取得できる。光センサは左右に搭載しているので左側の光センサである「左光センサ」、右側の光センサである「右光センサ」というオブジェクトがある。
 +
 +**光センサの命令一覧**
 +^ 命令 ^ 機能 ^
 +|読む | 光量を0〜255の範囲で取得する。暗い程、取得する値は大きくなる |
 +|明るさ? | 光量を0~255の範囲で取得する。暗い程、取得する値は大きくなる|
 +
 + 次のプログラムでは、周辺の光量が100より大きい時に左のライトが点灯する。プログラムは繰り返し実行に書いているため、何度の実行される。
 +
 +<​code>​
 +システム! "​protch"​ 使う。
 +繰り返し実行=「
 +  「(左光センサ! 明るさ?​)>​100」! なら「
 +    左ライト! 点灯。
 +  」そうでなければ「
 +    左ライト! 消灯。
 +  」実行。
 +」。
 +プロッチ!転送。
 +</​code>​
 + 下図は、左光センサを手で隠すと暗くなるのでLEDが点灯している。
 +
 +{{:​pasted:​protch_light.png}}
 +
 +### サーボモータの利用
 + プロッチにはサーボモータを接続するための端子がある。左右に接続でき、左側の端子である「左サーボモータ」、右側の端子である「右サーボモータ」というオブジェクトがある。サーボモータは**角度設定**を使うことで角度を指定することができる。サーボモータの接続方法は下図のとおりである。サーボモータを利用するときは、外部電源に電池ボックスを接続する必要がある。
 +
 +{{:​pasted:​protch_servo.jpg}}
 +
 + 
 +**サーボモータの命令一覧**
 +^ 命令 ^ 機能 ^
 +|角度設定 |0度~180度の間で角度を指定する|
 +
 + 次のプログラムでは、左右のサーボモータの角度を1秒ごとに180度と0度に動作する。
 +<​code>​
 +システム!"​protch"​使う。
 +最初に実行=「
 + 左サーボモータ!180 角度設定。
 + 右サーボモータ!180 角度設定。
 + プロ!1 待つ。
 + 左サーボモータ!0 角度設定。
 + 右サーボモータ!0 角度設定。
 +」。
 +プロッチ!転送。
 +</​code>​
 +
 +### モータの利用
 + プロッチには左右にタイヤにつながったモータが搭載している。次のプログラムでは、1秒ごとに前進、左折、右折、後進、停止をしている。
 +
 +**モータ**の命令一覧
 +^ 命令 ^ 機能 ^
 +|前進 | 左右のモータを正回転する|
 +|後進 | 左右のモータを逆回転する |
 +|停止 | 左右のモータを停止する |
 +|左折 | 右側のモータを正回転する |
 +|右折 | 左側のモータを正回転する |
 +|左回り | 右側のモータが標準の速度で正回転し、左側のDCモータが標準の速度/​5の速度で正回転する |
 +|右回り | 左側のモータが標準の速度で正回転し、右側のDCモータが標準の速度/​5の速度で正回転する |
 +|速度設定 | DC モータの速度を0 から255 までの値で設定する。標準では100になっている |
 +
 +<​code>​
 +システム! "​protch"​ 使う。
 最初に実行=「 最初に実行=「
- 左ライト点灯。 +  モータ! 1 前進。 
- プロ!1 待つ。 +  モータ! 1 左折。 
- 左ライト消灯。 +  モータ! 1 右折。 
- プロ!1 待つ+  モータ! 1 後進。 
 +  モータ! 1 停止
 」。 」。
-プロ!転送。+プロッチ!転送。
 </​code>​ </​code>​
 +
 +### ラインセンサを使ったライントレース
 + ライントレースカーは左右のDCモーターを使い、地面に描かれた線のコースに沿って動く。プロッチに搭載しているラインセンサを利用することで赤外線の反射量の値から線の上にいるかどうかを判断できる。ラインセンサは**読む**を使用することで、0〜255の値で検出できる。ラインセンサは左右に一つずつ搭載しており、左側のセンサの「左ラインセンサ」、右側のセンサの「右ラインセンサ」というオブジェクトがある。
 +
 +**ラインセンサ**の命令一覧
 +^ 命令 ^ 機能 ^
 +|読む |赤外線の反射量を0〜255の範囲で取得する|
 +|明るさ? |赤外線の反射量を0〜255の範囲で取得する|
 +
 + 次のプログラムでは、左右のラインセンサを比較し、線の上にいなければ右折し、線の上にいれば左折する。
 +
 +<​code>​
 +システム!"​protch"​ 使う。
 +
 +繰り返し実行=「
 +  「(左ラインセンサ!読む)<​(右ラインセンサ!読む)」!なら「
 +    モータ!左回り。 
 + 」そうでなければ「
 +    モータ!右回り。
 + 」実行。
 +」。
 +プロッチ!転送。
 +</​code>​
 +
 +{{:​pasted:​protch_line.png}}
 +
 +### 距離センサの利用
 + プロッチでは距離センサをつけることができる。距離センサは**距離?​**を使うことで、プロッチの正面にあるモノまでの距離をmmで取得できる。次のプログラムでは、障害物が近くにあると停止する。
 +
 +**距離センサ**の命令一覧
 +^ 命令 ^ 機能 ^
 +|読む |距離センサの計測値をmmで取得する |
 +|距離? |距離センサの計測値をmmで取得する |
 +
 +<​code>​
 +システム!"​protch"​使う。
 +繰り返し実行=「
 +  「(距離センサ!距離?​)<​40」!なら「
 +    モータ!1 停止。
 +  」そうでなければ「
 +    モータ!前進。
 +  」実行。
 +」。
 +プロッチ!転送。
 +</​code>​
 +{{:​pasted:​protch_distance.png}}
 +
 +###​音楽演奏
 + プロッチに搭載しているブザーを利用して音楽の演奏が可能である。((現在、音楽演奏の機能は独立モードでのみ利用可能))次のプログラムでは、ブザーを使ってドレミの音階を鳴らしている。
 +
 +**ブザーの命令一覧**
 +^命令^機能^
 +|演奏|引数の音階を演奏する|
 +
 +<​code>​
 +システム! "​protch"​ 使う。
 +最初に実行=「
 + ブザー! "​ドレミ"​ 演奏。
 +」。
 +プロ! 転送。
 +</​code>​
 +
 + また、ブザーを用いてメロディの演奏が可能である。((現在、「音符」「オクターブ」の対応を進めている))ここでは、譜面に相当するメロディオブジェクトに旋律を書き込み、それを演奏する。次のプログラムでは、「きらきらぼし」という名前のメロディオブジェクトを生成し、「"​..."​」の形で旋律を追加してから、ブザーに演奏させている。
 +
 +**メロディの命令一覧**
 +^命令^機能^
 +|作る|配列を作る|
 +|追加|作った配列に音階を挿入する|
 +
 +<​code>​
 +システム!"​protch"​使う。
 +最初に実行=「
 +  きらきらぼし=メロディ! 作る。
 +  きらきらぼし! "​ドドソソララソ~ファファミミレレド~"​ 追加。
 +  きらきらぼし! "​ソソファファミミレ~ソソファファミミレ~"​ 追加。
 +  きらきらぼし! "​ドドソソララソ~ファファミミレレド~"​ 追加。
 +  ブザー!(きらきらぼし) 演奏。
 +」。
 +プロ! 転送。
 +
 +</​code>​
 +
ch_protch.txt · 最終更新: 2019/03/19 17:33 by klab