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

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

ユーザ用ツール

サイト用ツール


ch_protch

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ch_protch [2018/10/13 19:42]
klab
ch_protch [2019/03/19 17:33]
klab
ライン 1: ライン 1:
-# プロッチを動かそう +# プロッチを使ってみよう 
- **プロッチ**というデバイスを使ってLEDやセンサなどの入出力や通信機能を使ってチャットプログラミングをしてみよう。プロッチを使用するためには、ダウンロード版のドリトルが必要になる+ LEDや各種センサ通信機能を持つロボット「**プロッチ**」を使ってプログラムで操作してみよう。
  
-## プロッチについて +## 1. プロッチについて 
- プロッチは、株式会社山崎教育システムが開発したロボット教材である。LEDの点灯や、センサ計測、モータの制御を行うことができプロッチを2台使用することで文字の交換をするチャットプログラミング行うことできる。ドリトルでは「オリジナルプロッチ」う製品で動作の確認を行った。((プロッチの仕様については同社のサイト(http://​protch.jp/​)に詳しく掲載されている。))下図には、プロッチに搭載しているセンサやモータの配置図を示す。((赤色:センサ類、青色:モータ類、緑色:拡張パーツ、黒色:ロボットを動かすために必要な部分))+ プロッチは、山崎教育システム株式会社と株式会社モノ・グラムが開発・販売する教育教材である。LEDの点灯や、センサを利用した各種計測、モータの制御を行うことができる。またプロッチを2台使用することにより2つのパソコン間字や数字のやりとりをするプログラ作ることできる。\\  
 + なお、ドリトルでは「オリジナルプロッチ」に対応して。((プロッチの仕様については同社のサイト(http://​protch.jp/​)に詳しく掲載されている。))
  
-{{:​pasted:​protch.png}} 
  
-## ドリトルで対応しているプロッチについて +### 1.1 プロッチの各部品の名称 
- ドリトルからプロッチを動かす方法は2つあ。 + プロッチで利用できセンサ、アクチュエタ、拡張パーツを下図や表す。なお、図については、センサを赤色、アクチュエタを青色、拡張パーツを緑色、電源やUSBなどプログラムの実行必要な部品黒色で示している
-    * 接続モド:ソコンとUSBケブルで接続した状態でドリトルからプロッチ信号を送信して制御 +
-    * 独立モド:ドリトルのプログラムをプロッチ転送し、転送後はUSBケーブルして単体で動かす+
  
- 以下にそれぞれのモードでできること、できないことを示す。 +{{:​pasted:​protch.png}}
-    * ◯は使用可能、×は使用不能を表す。 +
- +
-^ ^接続モード^独立モード^ +
-|LEDの利用|◯|◯| +
-|センサの利用|◯|◯| +
-|モータの利用|◯|◯| +
-|ブザーの利用|×((現在対応を進めている))|◯| +
-|チャットプログラミング|◯|×| +
-|画面出力|ドリトルの画面にセンサの入力値を表示することが可能|×| +
-|ロボットを動かせる場所|パソコンからUSBケーブルが届く範囲で動かすことが可能|パソコンから離れた場所でも動かすことが可能|  +
- +
-## ドリトルからプロッチを動かすための設定 +
- Windowsが導入されたコンピュータでドリトルとプロッチを通信するには、以下の設定をおこなう。このとき、デバイスドライバのインストールを行うため、OSの管理者権限が必要となる場合がある。なお、Windows7でのインストールを例として以下の手順で設定する。 +
-  - プロッチの標準ソフトをインストールする +
-    * 株式会社山崎教育システムのサイト(http://​protch.jp/#​section2)のインストールページのダウンロード手順に沿って行う。 +
-  - プロッチの接続 +
-    * PCのUSBポートにプロッチを接続する。 +
-    * プロッチの電源ボタンを押し、電源を入れる。 +
-    * 自動的にドライバがインストールされ、「Prolific USB-to-Serial Comm Port (COM*) デバイスドライバーソフトウェアが正しくインストールされました。」と表示される。((COM*の部分は環境によって異なる。)) +
-  - ドリトルをインストールする +
-    * ドリトルのサイト(http://​dolittle.eplang.jp)のダウンロードから最新版のWindows用のドリトルをダウンロードして任意のフォルダに展開する。 +
-  - ドリトルの起動 +
-    * エクスプローラからdolittle.batを実行する。((「発行元を確認できませんでした。このソフトウェアを実行しますか?」のダイアログが出る場合は「このファイルを開く前に常に警告する(W)」のチェックを外してから「実行(R)」を選択する。)) +
- +
- +
-## プロッチを接続モードで動かしてみよう +
- ここでは、ドリトルからプロッチを接続モードで動かす方法について解説する。接続モードでは、ドリトルからプロッチを制御するための通信プログラムを転送しておく必要がある。((通信プログラムは、一番最初に書き込むか、独立モードのプログラムを書き込んだ場合に転送が必要になる。)) +
- +
-### ドリトルから通信プログラムを転送する。 +
- 通信プログラムの転送の手順について解説する。 +
-  * ドリトルの編集画面でプログラムを記述する。 +
- +
-<​code>​ +
-システム!"​protchrm"​使う。 +
-プロッチ!通信プログラム転送。 +
-</​code>​ +
-  * プログラムを実行する。 +
-  * 「通信プログラムを転送しますか?​」と表示されるので「はい(Y)」を選択する。((「Windowsセキュリティの重要な警告」が表示された場合は「アクセスを許可する(A)」を選択する。)) +
-{{:pasted:protch_remote.png}} +
-  * 「ポートを選択してください。」と表示されるのでプロッチを接続してるCOMポートを選択する。((COM*の部分は環境によって異なる。)) +
-{{:​pasted:​protch_comport.png}} +
-  * プロッチに転送が行われ「転送完了」が表示されるまで待つ。((5秒程度かかる。)) +
-  * 「OK」を選択して閉じる。 +
-{{:​pasted:​protch_remote2.png}} +
- +
-通信プログラムが転送されると下図のようにプロッチが赤色の点灯状態になる。((緑色の点灯は、電源を入れている状態を示す。)) +
- +
-{{:​pasted:​protch_transmision_status.jpg}} +
- +
-### 動作確認と操作方法について +
- ここでは、動作環境が正しく準備できたかの確認と一緒に操作方法について説明する。動作確認には、次のプログラムを使用する。 +
-<​code>​ +
-システム!"​protchrm"​使う。 +
-最初に実行=「 +
- プロッチ!動作確認。 +
-」。 +
-</​code>​ +
- +
- プロッチのプログラムを実行すると下図のように「動作開始」ボタンと「動作終了」ボタンが現れる。 +
-  * 動作開始ボタン:プログラムを実行してから、押すことで動作が開始する。 +
-  * 動作終了ボタン:動作を終了するときに押すことで終了する。 +
- +
-{{:​pasted:​protch_test.png}} +
- +
- 上記のプログラムを実行した場合、左ライトが一回点灯すればOKである。最後に「動作終了」ボタンを押して終了することに注意する。 +
- +
- +
-### プロッチのプログラムの基本 +
- ドリトルからプロッチを制御するプログラムは、次の形で記述する。先頭の行では、プロッチを**使う**プログラムを作成することを示している。以後、プロッチ本体を表す「プロッチ」((「protch」「プロ」も使用できる。))というオブジェクトを使うことができるようになる。 +
- +
-<​code>​ +
-システム!"​protchrm"​使う。 +
-最初に実行=「 +
-   ・・・ +
-」。 +
-繰り返し実行=「 +
-   ・・・ +
-」。 +
-</​code>​ +
-**最初に実行**の「...」の部分には、一度だけ実行したいプログラムを書く。 +
- +
-**繰り返し実行**の「...」の部分には、何度も繰り返して実行したいプログラムを書く。 +
- +
- +
-### LEDの利用 +
- プロッチに搭載しているLEDは**点灯**や**消灯**を使うことで制御できる。プロッチにはLEDが2つ搭載しているため、左側のLEDは「**左ライト**」、右側のLEDは「**右ライト**」というオブジェクトがある。 +
- +
-**LEDの命令一覧** +
-^ 命令 ^ 機能 ^ +
-|点灯 | LEDを点灯する | +
-|消灯 | LEDを消灯する | +
- +
- 次のプログラムでは、左右のLEDを1秒間点灯し、消灯するプログラムである。 +
-<​code>​ +
-システム!"​protchrm"​使う。 +
- +
-最初に実行=「 +
- 左ライト!点灯。 +
- 右ライト!点灯。 +
- プロッチ!1 待つ。 +
- 左ライト!消灯。 +
- 右ライト!消灯。 +
-」。 +
- +
-</​code>​ +
- +
-### スイッチの利用 +
- プロッチに搭載しているスイッチは、**接触?​**を使うことでスイッチのONとOFFを検出できる。スイッチは左右に搭載しているので左側のスイッチである「左スイッチ」、右側のスイッチである「右スイッチ」というオブジェクトがある。 +
- +
-**スイッチの命令一覧** +
-^ 命令 ^ 機能 ^ +
-|読む | スイッチの入力を0か1で取得する | +
-|接触? | スイッチの入力を0か1で取得する | +
- +
- 次のプログラムでは、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行に書いているため、何度の実行される。 +
- +
-<​code>​ +
-システム! "​protchrm"​ 使う。 +
-繰り返し実行=「 +
-  「左スイッチ! 接触?​」! なら「 +
-    左ライト! 点灯。 +
-  」そうでなければ「 +
-    左ライト! 消灯。 +
-  」実行。 +
-」。 +
-</​code>​ +
- 下図は、プロッチが箱に衝突し、左スイッチに接触しているので左ライトが点灯している。 +
- ​{{:​pasted:​protch_switch.jpg}} +
- +
-### 光センサの利用 +
- プロッチに搭載している光センサは**明るさ?​**を使うことで周辺の光量を取得できる。光センサは左右に搭載しているので左側の光センサである「左光センサ」、右側の光センサである「右光センサ」というオブジェクトがある。 +
- +
-**光センサの命令一覧** +
-^ 命令 ^ 機能 ^ +
-|読む | 光量を0〜255の範囲で取得する。暗い程、取得する値は大きくなる | +
-|明るさ? | 光量を0~255の範囲で取得する。暗い程、取得する値は大きくなる| +
- +
- 次のプログラムでは、周辺の光量が100より大きい時に左のライトが点灯する。プログラムは繰り返し実行に書いているため、何度の実行される。 +
- +
-<​code>​ +
-システム! "​protchrm"​ 使う。 +
-繰り返し実行=「 +
-  「(左光センサ! 明るさ?​)>​100」! なら「 +
-    左ライト! 点灯。 +
-  」そうでなければ「 +
-    左ライト! 消灯。 +
-  」実行。 +
-」。 +
-</​code>​ +
- 下図は、左光センサを手で隠すと暗くなるのでLEDが点灯している。 +
-{{:​pasted:​protch_light.png}} +
- +
-### サーボモータの利用 +
- プロッチにはサーボモータを接続するための端子がある。サーボモータは**角度設定**を使うことで角度を指定することができる。サーボモータは左右に接続でき、左側の端子の「左サーボモータ」、右側の端子の「右サーボモータ」というオブジェクトがある。サーボモータの接続方法は下図のとおりである。サーボモータを利用するときは、外部電源に電池ボックスを接続する必要がある。 +
- +
-{{:​pasted:​protch_servo.jpg}} +
- +
-  +
-**サーボモータの命令一覧** +
-^ 命令 ^ 機能 ^ +
-|角度設定 |0度~180度の間で角度を指定する| +
- +
- 次のプログラムでは、左右のサーボモータの角度を1秒ごとに180度と0度に動作する。 +
-<​code>​ +
-システム!"​protchrm"​使う。 +
-最初に実行=「 +
- 左サーボモータ!180 角度設定。 +
- 右サーボモータ!180 角度設定。 +
- プロ!1 待つ。 +
- 左サーボモータ!0 角度設定。 +
- 右サーボモータ!0 角度設定。 +
-」。 +
-</​code>​ +
- +
-### モータの利用 +
- プロッチには左右にタイヤにつながったモータが搭載している。次のプログラムでは、1秒ごとに前進、左折、右折、後進、停止をしている。 +
- +
-**モータ**の命令一覧 +
-^ 命令 ^ 機能 ^ +
-|前進 | 左右のモータを正回転する| +
-|後進 | 左右のモータを逆回転する | +
-|停止 | 左右のモータを停止する | +
-|左折 | 右側のモータを正回転する | +
-|右折 | 左側のモータを正回転する | +
-|左回り | 右側のモータが標準の速度で正回転し、左側のDCモータが標準の速度/​5の速度で正回転する | +
-|右回り | 左側のモータが標準の速度で正回転し、右側のDCモータが標準の速度/​5の速度で正回転する | +
-|速度設定 | DC モータの速度を0 から255 までの値で設定する。標準では100になっている | +
- +
-<​code>​ +
-システム! "​protchrm"​ 使う。 +
-最初に実行=「 +
-  モータ! 1 前進。 +
-  モータ! 1 左折。 +
-  モータ! 1 右折。 +
-  モータ! 1 後進。 +
-  モータ! 1 停止。 +
-」。 +
-</​code>​ +
- +
-### ラインセンサを使ったライントレース +
- ライントレースカーは左右のDCモーターを使い、地面に描かれた線のコースに沿って動く。プロッチに搭載しているラインセンサを利用することで赤外線の反射量の値から線の上にいるかどうかを判断できる。ラインセンサは**読む**を使用することで、0〜255の値で検出できる。ラインセンサは左右に一つずつ搭載しており、左側のセンサの「左ラインセンサ」、右側のセンサの「右ラインセンサ」というオブジェクトがある。 +
- +
-**ラインセンサ**の命令一覧 +
-^ 命令 ^ 機能 ^ +
-|読む |赤外線の反射量を0〜255の範囲で取得する| +
-|明るさ? |赤外線の反射量を0〜255の範囲で取得する| +
- +
- 次のプログラムでは、左右のラインセンサを比較し、線の上にいなければ右折し、線の上にいれば左折する。 +
- +
-<​code>​ +
-システム!"​protchrm"​ 使う。 +
- +
-繰り返し実行=「 +
-  「(左ラインセンサ!読む)<​(右ラインセンサ!読む)」!なら「 +
-    モータ!左回り。  +
- 」そうでなければ「 +
-    モータ!右回り。 +
- 」実行。 +
-」。 +
- +
-</​code>​ +
- +
-{{:​pasted:​protch_line.png}} +
- +
-### 距離センサの利用 +
- プロッチでは距離センサを利用可能である。距離センサは**距離?​**を使うことで、プロッチの正面にあるモノまでの距離をmmで取得できる。次のプログラムでは、障害物が近くにあると停止する。 +
- +
-**距離センサ**の命令一覧 +
-^ 命令 ^ 機能 ^ +
-|読む |距離センサの計測値をmmで取得する | +
-|距離? |距離センサの計測値をmmで取得する | +
- +
-<​code>​ +
-システム!"​protchrm"​使う。 +
-繰り返し実行=「 +
-  「(距離センサ!距離?​)<​40」!なら「 +
-    モータ!1 停止。 +
-  」そうでなければ「 +
-    モータ!前進。 +
-  」実行。 +
-」。 +
- +
-</​code>​ +
-{{:​pasted:​protch_distance.png}} +
- +
-## 双方向通信 +
- プロッチを2台使うことでチャットプログラミングが可能である。チャットプログラムは、ドリトルの画面に入力した文字を送信したり、受信した文字をドリトルの画面に表示したりするため接続モードでのみ利用可能な機能である。チャットプログラミングはシリアルオブジェクトの**出力**で文字を送信し、**読む**で送信された文字を取得できる。チャットプログラムをするためにプロッチ2台を下図のように線で繋ぐ必要がある。 +
- +
-{{:​pasted:​protch_rm.jpg}} +
- +
-**シリアルオブジェクトの命令一覧** +
-^命令^機能^ +
-|出力|文字を出力します| +
-|読む|送信された文字を取得します|+
  
-### メセージ送信する +^部品名^説明^ 
- メッセー送信は、シリアルオブジェクト利用する。次のプログラムでは「こんちわ」送信して +|電源ボタン|プロチの電源オン・オフする| 
-<​code>​ +|リットボタン|プロッチに書き込まれたプログラムをもう一度実行する| 
-システム! "​protchrm"​ 使う。 +|外部電源|サボモータ制御必要な外部電源接続する
-最初実行=「 +|USB|パソコンとプロッチをUSBポートで接続し、パソコンからプログラムの転送やプロッチを制御する| 
- シリアル!"​こんちわ"​出力 +|ライト|LEDライトを点灯消灯する| 
-」。+|スイッチ|スイッチのON、OFFを検出し、障害物の衝突を検出したり、スイッチをコントローラしたりする| 
 +|光センサ|センサの周辺の明るさ計測する| 
 +|ブザー|音階や音長を指定して、ブザーで演奏す| 
 +|ラインセンサ|赤外線の反射量を計測し、計測値からラインの白と黒を判断できる| 
 +|モータ|左右のタイヤを回転させて、プロッチを動かす| 
 +|サーボモータ|指定した角度モータを制御する。※利用する場合、外部電源が必要なる| 
 +|超音波センサ|超音波を出力し、壁や障害物から跳ね返ってくるまでの時間から距離を計測する| 
 +|通信端子|プロッチ2台の通信端子をケーブルで接続し、それぞれをパソコンとUSBで接続して、文字や数値のやり取りをする|
  
-</code>+## 2. ドリトルとプロッチの導入手順 
 + ドリトルでプロッチを制御するには、ドリトルのダウンロードの他、プロッチエディタ及び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(またはdolittle_tab.bat)を実行する。((「発行元を確認できませんでした。このソフトウェアを実行しますか?」のダイアログが出る場合は「このファイルを開く前に常に警告する(W)」のチェックを外してから「実行(R)」を選択する。))
  
-### メッセージを受信する 
- メッセージの送信には、シリアルオブジェクトを利用する。次のプログラムでは、「こんにちわ」を送信している。 
-<​code>​ 
-システム! "​protchrm"​ 使う。 
-受信ラベル=ラベル!""​作る。 
-繰り返し実行=「 
- 受信ラベル!(シリアル!読む)書く。 
-」。 
  
-</​code>​+## 3. ドリトルによるプロッチの制御方法(利用方法) 
 +ドリトルによるプロッチの制御は通信モードと組み込みモードがある。それぞれの制御方法には、下記の特徴がある。
  
-### チャットプログラム +^ ^特徴^開発例^ 
- 文字の**出力**と**読む**使ってチャットプログラミングが可能。次のプログラムでは、フィオブジェクト書いた文字をボタンの動作で出力している。また、読む命令0.1秒間隔で実行することで受信した文字をテキストエリアに書ている。+|通信モード|USBケーブルを接続して、ドリルとプロッチが通信しながらプログラムを実行する。 \\ ・プロチが計測したセンサの値をPC画面で確認可能\\ ・ドリルのGUIプログラミングと連携る \\ ・ケーブルの接続が必須|・プロッチプログラミング練習(動作確認) \\ ・プロッチセンサのモニタープログラム ​\\ ・プロッチコントローラプログラム \\ など| 
 +|組み込みモード|プロッチすべてプログラムを書き込み、プロッチ単独で動作る。 ​\\ ・プログラム実行時にケーブルの接続が不要 \\ ・電源ONにするだけ、書き込んだプログラムを実行可能 \\ ・センサの計測値をPCで確認することきな|・迷路脱出ロボット \\ ・ライントレースカー \\ など| 
 +|:::​|:::​|:::​|
  
-<​code>​ +また、プロッチを2台をブッジとして利用すことで、2台のコピュータをUSBケでつぎ、チャットプログラムなどを利用ることもできる(ブリッジモード)
-システム!"​protchrm"​使う。 +
-最初に実行=「 +
-  送信フィールド=フィールド! 作る。 +
-  送信ボタン=ボタン!"​送信"​作る。 +
-  受信エア=テキストエリア! 作。 +
-  送信ボタ:動作=「シリアル! (送信フィールド! 読む)出力」。 +
-  前回受信値=""​. +
-  「 +
-   受信値=シリアル! 読む。 +
-   「前回受信値! =受信値」! ​ら「 +
-    受信エリア! (受信値)書く。 +
-   」実行。 +
-   前回受信値=受信。 +
-   プロ!0.1 待つ。 +
-  」! 1000 繰り返。 +
-+
  
-</​code>​ +  * **[[ch_protchremote|通信モードによ制御説明はこちら]]**. 
- 上記のプログラムを実行すと下図のような実行画面が現れ。①フィドに記述した文字を「送」ボタを押すことで送信する。②れてきた文字が書かれる。+  * **[[ch_protchembed|組み込みモードによる制御の説明こちら]]**. 
 +  * **[[ch_protchcommunication|ブリッジモードによるPC間通プログラミグの説明こち]]**.
  
-{{:​pasted:​protch_serial.png}} 
  
 +**<color #​ed1c24><​ワンポイントアドバイス></​color>​**\\
 +  - 初めてプログラミングを行うときは、最初に通信モードで基本的なプログラムの書き方、センサの性質やアクチュエータの動作を確認を行うことを推奨します。
 +  - 通信モードで作ったプログラムのうち、ドリトルのGUIを用いないものについては、プログラムの最初の行の記述を変更するだけで、組み込みモードでも利用可能です。
ch_protch.txt · 最終更新: 2019/03/19 17:33 by klab