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

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

ユーザ用ツール

サイト用ツール


ch_protchrm

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ch_protchrm [2018/10/21 19:24]
klab
ch_protchrm [2019/03/15 16:15]
klab
ライン 1: ライン 1:
 # プロッチを使ってみよう # プロッチを使ってみよう
- LEDや各種センサ、通信機能を持つロボット「**プロッチ**」を使ってプログラムで操作してみよう。プロッチのプログラミングは、ダウンロード版のドリトルのみ対応している+ LEDや各種センサ、通信機能を持つロボット「**プロッチ**」を使ってプログラムで操作してみよう。
  
 ## プロッチについて ## プロッチについて
- プロッチは、山崎教育システム株式会社が開発したロボット教材である。LEDの点灯や、センサを利用した各種計測、モータの制御を行うことができる。またプロッチを2台使用することによりパソコン間での文字のやりとり(チャット)などのプログラムを作ることが可能る。現在ドリトルで対応しているプロッチは「オリジナルプロッチ((プロッチの仕様については同社のサイト(http://​protch.jp/​)に詳しく掲載されている。))」という製品である。+ プロッチは、山崎教育システム株式会社と株式会社モノ・グラムが開発・販売する教育教材である。LEDの点灯や、センサを利用した各種計測、モータの制御を行うことができる。またプロッチを2台使用することにより2つのパソコン間での文字や数字のやりとりをするプログラムを作ることる。\\ 
 + なお、ドリトルでは「オリジナルプロッチ」に対応している。((プロッチの仕様については同社のサイト(http://​protch.jp/​)に詳しく掲載されている。))
  
  
 ### プロッチの各部品の名称 ### プロッチの各部品の名称
- プロッチは標準でセンサが6つ、LEDライトが2つータが2つ、ブザーが1つ搭載している。また、拡張パーツには距離センサ、サーボモータ、通信コードがある。それぞれの配置下図((赤色:センサ類、青色:モータ類緑色:拡張パーツ、黒色:ボットを動かすために必要な部分))に+ プロッチで利用できるセンサ、アクチュエータ、拡張パーツを下図や表示す。なお、図についてセンサを赤色アクチュエータを青色、拡張パーツを緑色電源やUSBなどプグラムの実行に必要な部品を黒色でしている
  
 {{:​pasted:​protch.png}} {{:​pasted:​protch.png}}
- 
- 各部品の説明を下表に示す。 
  
 ^部品名^説明^ ^部品名^説明^
-|電源ボタン|プロッチを起動するボタ。プロッチを動かときは電源を入れる必要がある| +|電源ボタン|プロッチの電源・オフする| 
-|リセットボタン|プロッチに書き込まれたプログラムをもう一度実行するボタン+|リセットボタン|プロッチに書き込まれたプログラムをもう一度実行する| 
-|外部電源|サーボモータを利用する際に必要なる| +|外部電源|サーボモータの制御に必要な外部電源を接続する| 
-|USBポート|パソコンとUSB接続するためのポートプログラムの転送やプロッチを動かときに接続する必要がある| +|USB|パソコンとプロッチUSBポートで接続し、パソコンからプログラムの転送やプロッチを制御する| 
-|ライト|LEDライトを点灯、消灯ができる| +|ライト|LEDライトを点灯、消灯る| 
-|スイッチ|スイッチのON、OFFを検出できる。障害物の衝突を検出したり、スイッチをコントローラにしたりできる| +|スイッチ|スイッチのON、OFFを検出し、障害物の衝突を検出したり、スイッチをコントローラにしたりる| 
-|光センサ|センサの周辺の明るさを計測できる| +|光センサ|センサの周辺の明るさを計測る| 
-|ブザー|音を出力できる。音の音階に合ったブザー音がな+|ブザー|音階や音長指定して、ブザーで演奏する| 
-|ラインセンサ|赤外線の反射量を計測できる。計測値からラインの白と黒を判断できる| +|ラインセンサ|赤外線の反射量を計測し、計測値からラインの白と黒を判断できる| 
-|モータ|左右のモータを回転させて、プロッチを動かすことができる。コースを走らすことができる+|モータ|左右のタイヤを回転させて、プロッチを動かす| 
-|サーボモータ|[拡張パーツ]角度を指定できるモータ| +|サーボモータ|指定した角度モータを制御する。※利用する場合、外部電源が必要になる
-|距離センサ|[拡張パーツ]超音波跳ね返ってくるまでの時間から距離を計測できる| +|超音波センサ|超音波を出力し、壁や障害物から跳ね返ってくるまでの時間から距離を計測る| 
-|通信コード|[拡張パーツ]パソコンとパソコンの間に通信コードで繋げたプロッチ2台をることでパソコン間の文字の交換ができる|+|通信端子|プロッチ2台の通信端子ケーブルで接続し、そぞれをパソコンとUSBで接続して、文字や数値やり取りをする|
  
 +## ドリトルとプロッチの導入手順
 + ドリトルでプロッチを制御するには、ドリトルのダウンロードの他、プロッチエディタ及びUSBデバイスドライバのインストールが必要になる。以下がインストールの手順である。なお、ソフトウェアとドライバのインストールを行うため、OSの管理者権限が必要となる場合がある。
 +  - **プロッチエディタをインストールする**
 +    * 株式会社山崎教育システムのプロッチ公式サイト(http://​protch.jp/#​section2)の指示に沿ってインストールを行う。
 +  - **プロッチのデバイスドライバのインストールする**
 +    * プロッチの電源を入れた状態でPCとプロッチをUSBケーブルで接続する。自動的にドライバがインストールされる。
 +    * 「Prolific USB-to-Serial Comm Port (COM*)((COM*の部分は環境によって異なる。)) デバイスドライバーソフトウェアが正しくインストールされました。」と表示される。\\写真を貼る。\\
 +  - **ドリトルをインストールする**
 +    * ドリトルのサイト(http://​dolittle.eplang.jp)のダウンロードから最新版のWindows用のドリトルをダウンロードして任意のフォルダに展開する。(「C:​」直下が好ましい)
 +  - **追加パッケージをダウンロードする**
 +    * ダウンロードから追加パッケージ「ロボット制御ライブラリ」をダウンロードし、ファイルを解凍する。
 +    * 「robotPS」フォルダ内のファイル(iniファイル,​exeファイル等)を、ドリトルのルートフォルダ(dolittle.jarやdolittle.batが置いてあるフォルダ)に上書き保存する。{{:​pasted:​robotps_install.png}}
 +   - **ドリトルの起動**
 +    * エクスプローラからdolittle.batを実行する。((「発行元を確認できませんでした。このソフトウェアを実行しますか?」のダイアログが出る場合は「このファイルを開く前に常に警告する(W)」のチェックを外してから「実行(R)」を選択する。))
  
-## ドリトルでプログラムをする手順 
- ドリトルによるプロッチのプログラミングは以下の手順で行う。 
-  - ドリトルとプロッチのプログラム環境の導入(初回のみ必要な作業) 
-  - 開発モードでのプログラミング(パソコンとプロッチをUSBケーブルで接続した状態でプログラムの動作を確認する) 
-    * プロッチに通信用のプログラムを転送する(最初に一度だけ) 
-    * プログラムの作成・実行を行う 
-    * センサの計測値をドリトルの画面で確認しながらプログラムの修正・改良を行う 
-  - 独立モードでのプログラミング(プログラムをプロッチに転送して、USBケーブルを外した状態で動作を確認する) 
-    * プログラムを作成する 
-    * 作成したプログラムをプロッチに転送する 
-    * 転送後はケーブルを外して動作を確認する 
  
-### モー利用可能な機能 +## ドリトルによるプロッチ制御方法の種類 
- 以下、各モードの利用可能な機能を示す。基本的にドリトルのGUIを使ったプログラムに関して、開発モドでみ利用可能とる。+ ドリトルよるプロッチの制御は通信モードと自立モードがある。下表にそれぞれメリット・デメリットを示す。 
 +^ ^メリット^デメリット^ 
 +|通信モード|ドリトルのGUIが利用できる \\ ・「ボタン」、「ラベル」、「テキストエリア」|PCとUSBケーブルで接続できる範囲でしか動作できない \\ ケーブル抜くとエラーになる可能性がある| 
 +|自立モード|プログラムを転送後PCから離れた場所でも動作できる|センサやアクチュエ動作の確認するすべがい| 
 +|:::​|:::​|:::​|
  
-^ ^部品^開発モード^独立モード^ + 実際の開発にあたって、最初に通信モードでセンサの性質やアクチュエータの動作を確認しながら、プログラムを作成し、めどが立ってから自立モードでロット単独で動作させことが考えられる。
-|アクチュエータの制御|LEDの点灯・消灯制御|◯|◯| +
-|:::|モータの回転制御|◯|◯| +
-|:::|サーモータの角度制御|◯|◯| +
-|:::​|ブザーの音程制御|×((現在対応進めてい))|◯| +
-|センサの入力値の計測|スイッチの入力計測|◯|◯| +
-|:::​|光センサの光量計測|◯|◯| +
-|:::​|ラインセンサの赤外線の反射量の計測|◯|◯| +
-|:::​|距離センサの距離計測|◯|◯| +
-|通信機能|文字の交換|◯|×| +
-|ドリトルGUI機能|センサ値の画面表示|◯|×|+
  
-## ドリトルとプロッチの導入手順 +## 通信モーでのプロッチの制御方法 
- Windowsが導入されたコンピュータドリトルとプロッチを通信するには、以下の設定おこなうこのとき、ソフトウェアのイストールを行うため、OSの管理者権限が必要なる場合がある。 +ここは、通信モードでの制御方法について説明する。なお、自立モードでの制御方法関しては、〜〜参照してください\\ 
-  - プロッチの標準ソフトウェアインストールする + 通信モードではンとプロッチをUSBケで接続した状態でプロッチの制御行うドリトルではプログ実行するとUSBシリアル通信用いてプッチに制御命令送信してる。送信さた命令をプロッチ受信、命令にわせて動作を行
-    * 株式会社山崎教育システムのサイト(http://​protch.jp/#​section2)のインストールページのインストール手順に沿って行う。 +
-  - プロッチのデバイスドライバのインストールする +
-    * プロッチの電源を入れた状態でPCのUSBポートにプロッチを接続する1.が正しくインスされていれば自動的にドイバがインストールされる +
-    * ドライバのインストールが完了するの待つ。完了すると「Prolific ​USB-to-Serial Comm Port (COM*)((COM*の部分は環境によって異なる。)) デバイスドライバーソフトウェが正しくインストールされました。」と表示される +
-  - ドリトルをインストールする +
-    * ドリトルのサイト(http://​dolittle.eplang.jp)のダウンードから最新版のWindows用のドリトルダウンロードして任意のフォルダに展開する。(可能であば、「C:​」直下に入れる((ファイルパスが256文字超える場合はドリトルが起動しない問題がある))) +
-  - ドリトルの起動 +
-    * エクスプローラからdolittle.batを実行する。((「発行元を確認できませんでした。このソフトウェアを実行しますか?」のダイアログが出る場は「このファイル開く前に常に警告する(W)」のチェックを外してから「実(R)」を選択する))+
  
 +{{ :​pasted:​protch_process.png?​400 }}
  
-## プロッチを開発モードで利用するための準備 
- 開発モードでは、ドリトルからプロッチを制御するための通信プログラムを転送しておく必要がある。通信プログラムは、独立モードのプログラムを転送しない限り一度だけ転送すればよい。通信プログラムの転送手順は(https://​dolittle.eplang.jp/​ch_protchrm/​remote)を参照してください。 
-  
 ## プログラムの入力から実行まで ## プログラムの入力から実行まで
- ここではドリトルのプログラムの入力から実行までの手順を説明する。 + ここではプロッチのLEDを交互に点滅するプログラムを使って、ドリトルのプログラムの入力から実行までの手順を説明する。\\ 
- +**手順1**:​プログラムを編集画面に入力\\ 
-**手順1**:​プログラムを編集画面に入力 + 次のプログラムを入力する。(サンプルプログラム(**.dtl))
- +
- 次のプログラムを入力する。+
 <​code>​ <​code>​
 システム!"​protchrm"​使う。 システム!"​protchrm"​使う。
ライン 85: ライン 69:
 繰り返し実行=「 繰り返し実行=「
  左ライト!点灯。  左ライト!点灯。
- プロッチ1 待つ。+ プロッチ!1 待つ。
  左ライト!消灯。  左ライト!消灯。
  プロッチ!1 待つ。  プロッチ!1 待つ。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
  
-**手順2**:​プログラムの実行(実行ボタン)\\ +**手順2**:​通信用のプログラムをプロッチに転送\\ 
-**手順3**:​動作開始する + * プログラム実行すると次ダイアログが表示するので、はい」を押す\\ 
-  * 実行画面の「動作開始ボタンを押す(ドリトルからプロッチ制御する命令の送信が開始する) +(画像追加)\\ 
- +**手順3**:​動作を終了する\\
-{{:​pasted:​protchrm_startpng.png}} +
- +
-**手順4**:動作を確認できたら動作を終了する+
   * 実行画面の「動作終了」ボタンを押す(ドリトルからの制御命令の送信を終了する)   * 実行画面の「動作終了」ボタンを押す(ドリトルからの制御命令の送信を終了する)
  
  ​{{:​pasted:​protchrm_end.png}}  ​{{:​pasted:​protchrm_end.png}}
  
- 今回のプログラムでは、左のLEDが1秒ごとに点滅すれば正しく動作している。+ 今回のプログラムでは、左のLEDが1秒ごとに点滅すれば正しく動作している。プログラムの説明は、後にしている。
  
  
-### プロッチのプログラムの基本+### プロッチの制御プログラムを書く時ルール
  ドリトルからプロッチを制御するプログラムを説明する。  ドリトルからプロッチを制御するプログラムを説明する。
  
-**書き方1**\\+**ルール1**\\
  プロッチを**使う**プログラムを作成することを示すため、先頭の行に記述する。プロッチ本体を表す「プロッチ」((「protch」「プロ」も使用できる。))というオブジェクトや各種センサやモータなどを表すオブジェクトが使えるようになる。  プロッチを**使う**プログラムを作成することを示すため、先頭の行に記述する。プロッチ本体を表す「プロッチ」((「protch」「プロ」も使用できる。))というオブジェクトや各種センサやモータなどを表すオブジェクトが使えるようになる。
 <​code>​ <​code>​
ライン 114: ライン 96:
 </​code>​ </​code>​
  
-**書き方2**\\ +**ルール2**\\ 
- 一度だけ実行したい処理を**最初に実行**のブロックに書く。開発モードでは、「動作終了」のイミングによってはLEDが点灯した状態やモータが回転した状態が残ってしまうで、LED処理モータ停止する処理を書くことが考えられる。 + 一度だけ実行したい処理を**最初に実行**のブロックに書く。モータの速度設定ること、動作の開始合図するためのブザー音などの処理を書くことが考えられる。
 <​code>​ <​code>​
 最初に実行=「 最初に実行=「
ライン 122: ライン 103:
 」。 」。
 </​code>​ </​code>​
-**書き方3**\\ +**ルール3**\\
- 今回は、LEDが点灯した状態が残ってしまうことを考慮し、最初に実行にLEDの**消灯**命令を書いた。プロッチはLEDが2つ搭載されているため、左側のLEDを制御するオブジェクトを「左ライト」、右側のLEDを制御するオブジェクトを「右ライト」にした。 +
-<​code>​ +
-左ライト!消灯。 +
-</​code>​ +
- +
-**書き方4**\\+
  何度も実行したい処理を**繰り返し実行**のブロックに書く。LEDの点滅やセンサの計測値によって動作を分岐するような処理を書くことが考えられる。  何度も実行したい処理を**繰り返し実行**のブロックに書く。LEDの点滅やセンサの計測値によって動作を分岐するような処理を書くことが考えられる。
- 
 <​code>​ <​code>​
 繰り返し実行=「 繰り返し実行=「
ライン 137: ライン 111:
 </​code>​ </​code>​
  
-**書き方5**\\ +**ルール4**\\ 
- 今回は、LED点滅をするため、**点灯**命令と**消灯**命令を書いた。点灯と消灯命令の間には、プログラムの実行止めるプロッチオブジェクトの**待つ**命令書いている。待つ単位は秒である。\\ + 最初に実行や繰り返し実行ブロックに書いたプログラムをプロッチに送るために**転送**を使用する。通信モード場合、制御命令を一プロッチる。
- 「点灯」「1秒待」「消灯」「1秒待」を繰り返しているので1秒間隔でLEDが点滅していることる。+
 <​code>​ <​code>​
-左ライト!点灯。 +プロッチ!転送。 
-プロッチ!1 待つ。 +</​code>​ 
-左ライト!消灯。 + 
-プロッチ!1 待つ。+## ライトを点灯しよう 
 + プロッチに搭載しているライトは、「左ライト!点灯。」や「右ライト!点灯。」を使うことでライトを点灯することができる。また、「左ライト!消灯」や「右ライト!消灯」を使うことでライトを消灯することができる。 
 + 
 +<​code>​ 
 +システム!"​protch"​使う。 
 +最初に実行=「 
 +  左ライト!点灯。 
 +  プロッチ!1 待つ。 
 +  左ライト!消灯。 
 +  プロッチ!1 待つ。 
 +」。 
 +プロッチ!転送
 </​code>​ </​code>​
 +上記のプログラムでは、左ライトが1秒間点灯する。
  
 **左ライト・右ライトの命令一覧** **左ライト・右ライトの命令一覧**
ライン 153: ライン 138:
    
 ## スイッチの利用 ## スイッチの利用
- プロッチに搭載しているスイッチは、**押された?​**を使うことでスイッチのONとOFFを検出できる。スイッチは左右に搭載しており、左側のスイッチを制御するオブジェクトを「左スイッチ」、右側のスイッチを制御するオブジェクトを「右スイッチ」にした。\\ + プロッチに搭載しているスイッチは、「左スイッチ!接触?「右スイッチ!接触?を使うことでスイッチのONOFFを検出できる。
- 次のプログラムは、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行に書いているため、何度の実行される。 +
 <​code>​ <​code>​
 システム! "​protchrm"​ 使う。 システム! "​protchrm"​ 使う。
ライン 162: ライン 145:
 」。 」。
 繰り返し実行=「 繰り返し実行=「
-  「左スイッチ! ​押された?」! なら「+  「(左スイッチ! ​接触?)==はい」! なら「
     左ライト! 点灯。     左ライト! 点灯。
   」そうでなければ「   」そうでなければ「
ライン 168: ライン 151:
   」実行。   」実行。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
- 下図は、プロッチが箱に衝突し、左スイッチが押されたので左ライトが点灯している。 + 上記のプログラムでは、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行の中に書いているため、何度の実行される。例えば、プロッチが箱に衝突したことを知らせるために左ライトを点灯するなどができる。
  ​{{:​pasted:​protch_switch.jpg}}  ​{{:​pasted:​protch_switch.jpg}}
  
 **左スイッチ・右スイッチの命令一覧** **左スイッチ・右スイッチの命令一覧**
 ^ 命令 ^ 機能 ^ ^ 命令 ^ 機能 ^
-|読む | スイッチの入力を0か1で取得する | +|接触? | スイッチの入力を「はい」「いいえ」で取得する |
-|接触? | スイッチの入力を01で取得する |+
  
 ## 光センサの利用 ## 光センサの利用
ライン 190: ライン 172:
   計測結果!(左光センサ!明るさ?​)書く。   計測結果!(左光センサ!明るさ?​)書く。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
  
ライン 205: ライン 188:
   」実行。   」実行。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
  下図は、左光センサを手で隠すと暗くなるのでLEDが点灯している。  下図は、左光センサを手で隠すと暗くなるのでLEDが点灯している。
ライン 218: ライン 202:
  
 ## サーボモータの利用 ## サーボモータの利用
- プロッチにはサーボモータ用の端子がある。サーボモータは**角度**を使うことで指定した角度にモータを動かすことができる。端子は左右にあり、左側のサーボモータを制御するオブジェクトを「左サーボモータ」、右側のサーボモータを制御するオブジェクトを「右サーボモータ」にした。サーボモータの接続方法は下図のとおりである。サーボモータを利用するときは、外部電源に電池ボックスを接続する必要がある。+ プロッチにはサーボモータ用の端子がある。サーボモータは**角度**を使うことで指定した角度にモータを動かすことができる。端子は左右にあり、左側のサーボモータを制御するオブジェクトを「左サーボ」、右側のサーボモータを制御するオブジェクトを「右サーボ」にした。サーボモータの接続方法は下図のとおりである。サーボモータを利用するときは、外部電源に電池ボックスを接続する必要がある。
  
 {{:​pasted:​protch_servo.jpg}} {{:​pasted:​protch_servo.jpg}}
ライン 226: ライン 210:
 システム!"​protchrm"​使う。 システム!"​protchrm"​使う。
 最初に実行=「 最初に実行=「
- 左サーボモータ!180 角度。 + 左サーボ!180 角度。 
- 右サーボモータ!180 角度。+ 右サーボ!180 角度。
  プロッチ!1 待つ。  プロッチ!1 待つ。
- 左サーボモータ!0 角度。 + 左サーボ!0 角度。 
- 右サーボモータ!0 角度。+ 右サーボ!0 角度。
 」。 」。
 +
 +プロッチ!転送。
 </​code>​ </​code>​
  
-**右サーボモータ・左サーボモータの命令一覧**+**右サーボ・左サーボの命令一覧**
 ^ 命令 ^ 機能 ^ ^ 命令 ^ 機能 ^
 |角度 |0度~180度の間で角度を指定する| |角度 |0度~180度の間で角度を指定する|
ライン 245: ライン 231:
 システム! "​protchrm"​ 使う。 システム! "​protchrm"​ 使う。
 最初に実行=「 最初に実行=「
-  モータ!1 前進。 +  プロッチ!1 前進。 
-  モータ!1 後進。 +  プロッチ!1 後進。 
-  モータ!1 左折。 +  プロッチ!1 左折。 
-  モータ!1 右折。 +  プロッチ!1 右折。 
-  モータ!1 左回り。 +  プロッチ!1 左回り。 
-  モータ!1 右回り。 +  プロッチ!1 右回り。 
-  モータ!停止。+  プロッチ!停止。
 」。 」。
 +
 +プロッチ!転送。
 </​code>​ </​code>​
  
ライン 261: ライン 249:
 システム! "​protchrm"​ 使う。 システム! "​protchrm"​ 使う。
 最初に実行=「 最初に実行=「
-  モータ!停止。+  プロッチ!停止。
 」。 」。
  
 繰り返し実行=「 繰り返し実行=「
-  「左スイッチ!押された?​」!なら「 +  「左スイッチ!接触?)==はい」!なら「 
-    モータ!255 255 速度設定。 +    プロッチ!255 255 速度。 
-    モータ!1 前進。 +    プロッチ!1 前進。 
-  」そうでなければ「右スイッチ!押された?​」なら「 +  」そうでなければ「右スイッチ!接触?)==はい」なら「 
-    モータ!100 100 速度設定。 +    プロッチ!100 100 速度。 
-       モータ!1 前進。+    プロッチ!1 前進。
   」実行。   」実行。
 」。 」。
 +
 +プロッチ!転送。
 </​code>​ </​code>​
  
-**モータの命令一覧**+**プロッチのモータの命令一覧**
 ^ 命令 ^ 機能 ^ ^ 命令 ^ 機能 ^
 |前進 | 左右のモータを正回転する| |前進 | 左右のモータを正回転する|
ライン 284: ライン 274:
 |左回り | 右側のモータが標準の速度で正回転し、左側のDCモータが標準の速度/​5の速度で正回転する | |左回り | 右側のモータが標準の速度で正回転し、左側のDCモータが標準の速度/​5の速度で正回転する |
 |右回り | 左側のモータが標準の速度で正回転し、右側のDCモータが標準の速度/​5の速度で正回転する | |右回り | 左側のモータが標準の速度で正回転し、右側のDCモータが標準の速度/​5の速度で正回転する |
-|速度設定 ​| DC モータの速度を0 から255 までの値で設定する。標準では100になっている |+|速度 | DC モータの速度を0 から255 までの値で設定する。標準では100になっている |
  
 ## ラインセンサの利用 ## ラインセンサの利用
ライン 297: ライン 287:
 繰り返し実行=「 繰り返し実行=「
  計測結果!(左ラインセンサ!読む)書く。  計測結果!(左ラインセンサ!読む)書く。
 + プロッチ!0.5 待つ。
 」。 」。
 </​code>​ </​code>​
 ### ライントレースカー ### ライントレースカー
- ラインセンサの反射量は、物体の色によって変化する。この特性を使うことでラインの白と黒を判断することができる。ライントレースカーは、ラインセンサで地面に描かれた線(黒色)を判断し、コースに沿って動くようにモータを制御する。\\+ ライントレースカーは、ラインセンサで地面に描かれた線(黒色)を判断し、コースに沿って動くようにモータを制御する。\\
  次のプログラムでは、左右のラインセンサを比較し、線の上にいなければ右折し、線の上にいれば左折する。  次のプログラムでは、左右のラインセンサを比較し、線の上にいなければ右折し、線の上にいれば左折する。
  
ライン 306: ライン 297:
 システム!"​protchrm"​ 使う。 システム!"​protchrm"​ 使う。
 最初に実行=「 最初に実行=「
-  モータ!停止。+  プロッチ!停止。
 」。 」。
 繰り返し実行=「 繰り返し実行=「
   「(左ラインセンサ!読む)<​(右ラインセンサ!読む)」!なら「   「(左ラインセンサ!読む)<​(右ラインセンサ!読む)」!なら「
-    モータ!左回り。 +    プロッチ!左回り。 
  」そうでなければ「  」そうでなければ「
-    モータ!右回り。+    プロッチ!右回り。
  」実行。  」実行。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
  
ライン 331: ライン 322:
 システム!"​protchrm"​使う。 システム!"​protchrm"​使う。
 最初に実行=「 最初に実行=「
-  モータ!停止。+  プロッチ!停止。
 」。 」。
 繰り返し実行=「 繰り返し実行=「
   「(距離センサ!距離?​)<​40」!なら「   「(距離センサ!距離?​)<​40」!なら「
-    モータ!1 停止。+    プロッチ!1 停止。
   」そうでなければ「   」そうでなければ「
-    モータ!前進。+    プロッチ!前進。
   」実行。   」実行。
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
 {{:​pasted:​protch_distance.png}} {{:​pasted:​protch_distance.png}}
ライン 362: ライン 353:
 システム! "​protchrm"​ 使う。 システム! "​protchrm"​ 使う。
 最初に実行=「 最初に実行=「
- シリアル!"​こんにちは"​出力+ 通信端子!"​こんにちは"​送信
 」。 」。
 +プロッチ!転送。
 </​code>​ </​code>​
  
ライン 372: ライン 363:
 システム! "​protchrm"​ 使う。 システム! "​protchrm"​ 使う。
 最初に実行=「 最初に実行=「
-  受信ラベル=ラベル!""​作る。+  受信ラベル=ラベル!作る。
 」。 」。
  
 繰り返し実行=「 繰り返し実行=「
-  受信ラベル!(シリアル!読む)書く。+  受信ラベル!(通信端子!受信)書く。
 」。 」。
 +
 +プロッチ!転送。
 </​code>​ </​code>​
  
ライン 386: ライン 379:
  
 ### チャットプログラム ### チャットプログラム
- 次のプログラムでは、フィールドオブジェクトに書いた文字をボタン動作で出力している。また、読む命令を0.1秒間隔で実行することで受信した文字をテキストエリアに書いている。+ 次のプログラムでは、フィールドオブジェクトに書いた文字をプロッチ左スイッッチの押下により送信している。また、
  
 <​code>​ <​code>​
ライン 392: ライン 385:
 最初に実行=「 最初に実行=「
   送信フィールド=フィールド! 作る。   送信フィールド=フィールド! 作る。
-  送信ボタン=ボタン!"​送信"​作る。 
   受信エリア=テキストエリア! 作る。   受信エリア=テキストエリア! 作る。
-  送信ボタン:動作=「シリアル! (送信フィールド! 読む)出力」。 +」。 
-  前回受信値=""​. + 
-  「 +繰り返し実行=「 
-   受値=シリアル! 読む。 +  「(左スイッチ!接触?)==はい」!なら「 
-   前回受信値! =受信値」! なら「+    通信端子! (送信フィールド! 読む)送信 
 +  実行。 
 +  受信値=通端子! 受信。 
 +  「受信値!=””」! なら「
     受信エリア! (受信値)書く。     受信エリア! (受信値)書く。
-   」実行。 +  」実行。
-   前回受信値=受信。 +
-   プロッチ!0.1 待つ。 +
-  」! 1000 繰り返す+
 」。 」。
  
 +プロッチ!転送。
 </​code>​ </​code>​
  上記のプログラムを実行すると下図のような実行画面が現れる。①はフィールドに記述した文字を「送信」ボタンを押すことで送信する。②は送られてきた文字が書かれる。  上記のプログラムを実行すると下図のような実行画面が現れる。①はフィールドに記述した文字を「送信」ボタンを押すことで送信する。②は送られてきた文字が書かれる。
ch_protchrm.txt · 最終更新: 2019/03/15 16:15 by klab