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

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

ユーザ用ツール

サイト用ツール


ch_protch

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
最新リビジョン 両方とも次のリビジョン
ch_protch [2018/10/13 19:38]
klab
ch_protch [2019/03/15 19:32]
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}}+
  
-**シリアルブジェクの命令覧** +^部品名^説明^ 
-^命令^機能^ +|電源ボタン|プロッチの電源をン・オフする| 
-|出|文字を出力します| +|リセッボタン|プロッチに書き込まれたプログラムをもう度実行する| 
-|読む|文字を取得します|+|外部電源|サーボモータの制御に必要な外部電源を接続する| 
 +|USB|パソコンとプロッチをUSBポートで接続し、パソコンからプログラムの転送やプロッチを制御する| 
 +|ライト|LEDライトを点灯、消灯する| 
 +|スイッチ|スイッチのON、OFFを検し、障害物の衝突を検出したり、スイッチをコントローラにしたりする| 
 +|光センサ|センサの周辺の明るさを計測する| 
 +|ブザー|音階や音長を指定して、ブザーで演奏する| 
 +|ラインセンサ|赤外線の反射量を計測し、計測値からラインの白と黒を判断できる| 
 +|モータ|左右のタイヤを回転させて、プロッチを動かす| 
 +|サーボモータ|指定した角度にモータを制御する。※利用する場合、外部電源が必要になる| 
 +|超音波センサ|超音波を出力し、壁や障害物から跳ね返ってくるでの時間から距離を計測
 +|通信端子|プロッチ2台の通端子をケーブルで接続し、そぞれをパソコンとUSBで接続して、文字や数値のやり取りをす|
  
-### メセージ送信する +## 2. ドリトルとプロチの導入手順 
- メッセージの送信には、オブジトを利用する。のプロは、こんちわ」を送信してる。 + ドリトルでプロッチ制御するには、のダウンロードの他、プロッチエディタ及びUSBデバイスドライバのインストールが必要になる。以下がインストールの手順である。なお、ソフトウアとドライバのインスール行うため、OSの管理者権限が必要となる場合がある。 
-<​code>​ +  - **プロッチエディタをインストールする** 
-システム! "​protchrm"​ 使う。 +    * 株式会社山崎教育システムのプロッチ公式サイト(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>​ 
  
-### メッセージを受信す +## 3. ドリトルによプロ制御方法(利用方法) 
- メセージ送信には、シオブジェクトを利用す。次のプログラムで、「こんにちわ」を送している。 +によるプロッチの制御モードと組み込みモードがある。それぞれの制御方法には、下記の特徴がある。
-<​code>​ +
-システム! "​protchrm"​ 使う。 +
-受信ラベル=ラベル!""​作。 +
-繰り返し実行=「 +
- 受信ラベル!(シリアル!読む)書く。 +
-+
  
-</​code>​+^ ^特徴^開発例^ 
 +|通信モード|USBケーブルを接続して、ドリトルとプロッチが通信しながらプログラムを実行する。 \\ ・プロッチが計測したセンサの値をPC画面で確認可能\\ ・ドリトルのGUIプログラミングと連携できる \\ ・ケーブルの接続が必須|・プロッチのプログラミング練習(動作確認) \\ ・プロッチセンサのモニタープログラム \\ ・プロッチコントローラプログラム \\ など| 
 +|組み込みモード|プロッチにすべてのプログラムを書き込み、プロッチ単独で動作する。 \\ ・プログラム実行時にケーブルの接続が不要 \\ ・電源をONにするだけで、書き込んだプログラムを実行可能 \\ ・センサの計測値をPCで確認することはできない|・迷路脱出ロボット \\ ・ライントレースカー \\ など| 
 +|:::​|:::​|:::​|
  
-### チャットプログラム +また、プロッチを2台をブリッジとして利用することで、2台のコンピュータをUSBケーブルでつなぎ、チャットプログラムなどを利用すこともでき(ブッジモード
-  +
-<​code>​ +
-システム!"​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