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

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

ユーザ用ツール

サイト用ツール


ch_protchrm

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ch_protchrm [2019/03/06 18:49]
klab
ch_protchrm [2019/03/15 16:15]
klab
ライン 69: ライン 69:
 繰り返し実行=「 繰り返し実行=「
  左ライト!点灯。  左ライト!点灯。
- 左ライト!1 待つ。+ プロッチ!1 待つ。
  左ライト!消灯。  左ライト!消灯。
- 左ライト!1 待つ。+ プロッチ!1 待つ。
 」。 」。
 プロッチ!転送。 プロッチ!転送。
 </​code>​ </​code>​
  
-**手順2**:​プログラムの実行(実行ボタン)\\ +**手順2**:​通信用のプログラムをプロッチに転送\\ 
-**手順3**:​動作確認する\\ + * プログラム実行すると次のダイアログが表示するので、「はい」を押す\\ 
-**手順4**:​動作を終了する\\+(画像を追加)\\ 
 +**手順3**:​動作を終了する\\
   * 実行画面の「動作終了」ボタンを押す(ドリトルからの制御命令の送信を終了する)   * 実行画面の「動作終了」ボタンを押す(ドリトルからの制御命令の送信を終了する)
  
ライン 129: ライン 130:
 プロッチ!転送。 プロッチ!転送。
 </​code>​ </​code>​
-上記のプログラムでは、+上記のプログラムでは、左ライトが1秒間点灯する。
  
 **左ライト・右ライトの命令一覧** **左ライト・右ライトの命令一覧**
ライン 144: ライン 145:
 」。 」。
 繰り返し実行=「 繰り返し実行=「
-  「(左スイッチ! ​押された?​)==はい」! なら「+  「(左スイッチ! ​接触?​)==はい」! なら「
     左ライト! 点灯。     左ライト! 点灯。
   」そうでなければ「   」そうでなければ「
ライン 150: ライン 151:
   」実行。   」実行。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
  上記のプログラムでは、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行の中に書いているため、何度の実行される。例えば、プロッチが箱に衝突したことを知らせるために左ライトを点灯するなどができる。  上記のプログラムでは、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行の中に書いているため、何度の実行される。例えば、プロッチが箱に衝突したことを知らせるために左ライトを点灯するなどができる。
ライン 170: ライン 172:
   計測結果!(左光センサ!明るさ?​)書く。   計測結果!(左光センサ!明るさ?​)書く。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
  
ライン 185: ライン 188:
   」実行。   」実行。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
  下図は、左光センサを手で隠すと暗くなるのでLEDが点灯している。  下図は、左光センサを手で隠すと暗くなるのでLEDが点灯している。
ライン 198: ライン 202:
  
 ## サーボモータの利用 ## サーボモータの利用
- プロッチにはサーボモータ用の端子がある。サーボモータは**角度**を使うことで指定した角度にモータを動かすことができる。端子は左右にあり、左側のサーボモータを制御するオブジェクトを「左サーボモータ」、右側のサーボモータを制御するオブジェクトを「右サーボモータ」にした。サーボモータの接続方法は下図のとおりである。サーボモータを利用するときは、外部電源に電池ボックスを接続する必要がある。+ プロッチにはサーボモータ用の端子がある。サーボモータは**角度**を使うことで指定した角度にモータを動かすことができる。端子は左右にあり、左側のサーボモータを制御するオブジェクトを「左サーボ」、右側のサーボモータを制御するオブジェクトを「右サーボ」にした。サーボモータの接続方法は下図のとおりである。サーボモータを利用するときは、外部電源に電池ボックスを接続する必要がある。
  
 {{:​pasted:​protch_servo.jpg}} {{:​pasted:​protch_servo.jpg}}
ライン 212: ライン 216:
  右サーボ!0 角度。  右サーボ!0 角度。
 」。 」。
 +
 +プロッチ!転送。
 </​code>​ </​code>​
  
-**右サーボモータ・左サーボモータの命令一覧**+**右サーボ・左サーボの命令一覧**
 ^ 命令 ^ 機能 ^ ^ 命令 ^ 機能 ^
 |角度 |0度~180度の間で角度を指定する| |角度 |0度~180度の間で角度を指定する|
ライン 233: ライン 239:
   プロッチ!停止。   プロッチ!停止。
 」。 」。
 +
 +プロッチ!転送。
 </​code>​ </​code>​
  
ライン 245: ライン 253:
  
 繰り返し実行=「 繰り返し実行=「
-  「左スイッチ!押された?​」!なら「+  「左スイッチ!接触?)==はい」!なら「
     プロッチ!255 255 速度。     プロッチ!255 255 速度。
     プロッチ!1 前進。     プロッチ!1 前進。
-  」そうでなければ「右スイッチ!押された?​」なら「+  」そうでなければ「右スイッチ!接触?)==はい」なら「
     プロッチ!100 100 速度。     プロッチ!100 100 速度。
     プロッチ!1 前進。     プロッチ!1 前進。
   」実行。   」実行。
 」。 」。
 +
 +プロッチ!転送。
 </​code>​ </​code>​
  
ライン 264: ライン 274:
 |左回り | 右側のモータが標準の速度で正回転し、左側のDCモータが標準の速度/​5の速度で正回転する | |左回り | 右側のモータが標準の速度で正回転し、左側のDCモータが標準の速度/​5の速度で正回転する |
 |右回り | 左側のモータが標準の速度で正回転し、右側のDCモータが標準の速度/​5の速度で正回転する | |右回り | 左側のモータが標準の速度で正回転し、右側のDCモータが標準の速度/​5の速度で正回転する |
-|速度設定 ​| DC モータの速度を0 から255 までの値で設定する。標準では100になっている |+|速度 | DC モータの速度を0 から255 までの値で設定する。標準では100になっている |
  
 ## ラインセンサの利用 ## ラインセンサの利用
ライン 277: ライン 287:
 繰り返し実行=「 繰り返し実行=「
  計測結果!(左ラインセンサ!読む)書く。  計測結果!(左ラインセンサ!読む)書く。
 + プロッチ!0.5 待つ。
 」。 」。
 </​code>​ </​code>​
 ### ライントレースカー ### ライントレースカー
- ラインセンサの反射量は、物体の色によって変化する。この特性を使うことでラインの白と黒を判断することができる。ライントレースカーは、ラインセンサで地面に描かれた線(黒色)を判断し、コースに沿って動くようにモータを制御する。\\+ ライントレースカーは、ラインセンサで地面に描かれた線(黒色)を判断し、コースに沿って動くようにモータを制御する。\\
  次のプログラムでは、左右のラインセンサを比較し、線の上にいなければ右折し、線の上にいれば左折する。  次のプログラムでは、左右のラインセンサを比較し、線の上にいなければ右折し、線の上にいれば左折する。
  
ライン 295: ライン 306:
  」実行。  」実行。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
  
ライン 320: ライン 331:
   」実行。   」実行。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
 {{:​pasted:​protch_distance.png}} {{:​pasted:​protch_distance.png}}
ライン 344: ライン 355:
  通信端子!"​こんにちは"​送信。  通信端子!"​こんにちは"​送信。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
  
ライン 358: ライン 369:
   受信ラベル!(通信端子!受信)書く。   受信ラベル!(通信端子!受信)書く。
 」。 」。
 +
 +プロッチ!転送。
 </​code>​ </​code>​
  
ライン 366: ライン 379:
  
 ### チャットプログラム ### チャットプログラム
- 次のプログラムでは、フィールドオブジェクトに書いた文字をボタン動作で出力している。また、読む命令を0.1秒間隔で実行することで受信した文字をテキストエリアに書いている。+ 次のプログラムでは、フィールドオブジェクトに書いた文字をプロッチ左スイッッチの押下により送信している。また、
  
 <​code>​ <​code>​
ライン 372: ライン 385:
 最初に実行=「 最初に実行=「
   送信フィールド=フィールド! 作る。   送信フィールド=フィールド! 作る。
-  送信ボタン=ボタン!"​送信"​作る。 
   受信エリア=テキストエリア! 作る。   受信エリア=テキストエリア! 作る。
-  送信ボタン:動作=「シリアル! (送信フィールド! 読む)出力」。 +」。 
-  前回受信値=""​. + 
-  「 +繰り返し実行=「 
-   受値=シリアル! 読む。 +  「(左スイッチ!接触?)==はい」!なら「 
-   前回受信値! =受信値」! なら「+    通信端子! (送信フィールド! 読む)送信 
 +  実行。 
 +  受信値=通端子! 受信。 
 +  「受信値!=””」! なら「
     受信エリア! (受信値)書く。     受信エリア! (受信値)書く。
-   」実行。 +  」実行。
-   前回受信値=受信。 +
-   プロッチ!0.1 待つ。 +
-  」! 1000 繰り返す+
 」。 」。
  
 +プロッチ!転送。
 </​code>​ </​code>​
  上記のプログラムを実行すると下図のような実行画面が現れる。①はフィールドに記述した文字を「送信」ボタンを押すことで送信する。②は送られてきた文字が書かれる。  上記のプログラムを実行すると下図のような実行画面が現れる。①はフィールドに記述した文字を「送信」ボタンを押すことで送信する。②は送られてきた文字が書かれる。
ch_protchrm.txt · 最終更新: 2019/03/15 16:15 by klab