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

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

ユーザ用ツール

サイト用ツール


ch_protch

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン 両方とも次のリビジョン
ch_protch [2018/10/13 21:10]
klab
ch_protch [2019/03/15 19:22]
klab
ライン 1: ライン 1:
-# プロッチを動かしてみよう +# プロッチを使ってみよう 
-## プロッチを接続モードで動かしてみよう + LEDや各種センサ、通信機能を持つット「**プロッチ**」使ってプログラムでしてみよう
- ここでは、ドリルからプロッチを独立モードで動かす方法につい解説する。独立モードでは、ドリトルで作成した制御プログラムをプロッチに転送し、プロッチ単体の動が可能である+
  
-### ドリトルからプログラムを転送する +## 1. プロッチについて 
- ドリトル記述したプログラムは次手順転送する。 + プロッチは、山崎教育システム株式会社と株式会社モノ・グラムが開発・販売する教育教材ある。LEDの点灯や、センサを利用した各種計測、モータ制御を行うことがる。またプロッチを2台使用することにより2つのパソコン間での文字や数字のやりとりをするプログラムをる。\\  
-  * ドリトルの編集画面でプログラム記述する。 + なお、ドトルでは「オリジナルプロッチ」に対応してる。((プロッチ仕様ついは同社のサイト(http://protch.jp/​)に詳しく掲載されている。))
-  *  ​プログラムを実行すると「protchへの転送を実行しますか?​」と表示されるの「はい(Y)」を選択する。((「Windowsセキュティの重要な警告」が表示された場合は「アクセスを許可する(A)」を選択する。)) +
- ​{{:​pasted:​protch_stand2.png}} +
-  *  「ポートを選択してください。」と表示されるのでプロッチを接続してるCOMポートを選択する。((COM*部分は環境よっ異なる。)) +
-{{:pasted:​protch_comport.png}} +
-  * プログラムの転送が行われ 「転送完了」が表示されるまで待つ。((5秒程度かかる。)) +
-{{:​pasted:​protch_remote2.png}}+
  
  
 +### 1.1 プロッチの各部品の名称
 + プロッチで利用できるセンサ、アクチュエータ、拡張パーツを下図や表に示す。なお、図については、センサを赤色、アクチュエータを青色、拡張パーツを緑色、電源やUSBなどプログラムの実行に必要な部品を黒色で示している。
  
-### 動作確認と利用方法について +{{:pasted:protch.png}}
- ここでは、動作環境が正しく準備できたかの確認と利用方法について説明する。動作確認には、次のプログラムを使用する。 +
-<​code>​ +
-システム!"​protch"​使う。 +
-最初に実行=「 +
- プロッチ!テスト動作。 +
-」。 +
-プロッチ!転送。 +
-</​code>​+
  
- 上記のプログラムを転送し、下図ようにプロッチのスイッチを一度押とで転送したプログラムが実行される。左ライト一回点灯すればOK+^部品名^説明^ 
 +|電源ボタン|プロッチ電源をオン・オフする| 
 +|リセットボタン|プロッチに書き込まれたプログラムをもう一度実行する| 
 +|外部電源|サーボモータの制御に必要な外部電源を接続する| 
 +|USB|パソコンとプロッチをUSBポートで接続し、パソコンからプログラム転送やプロッチを制御する| 
 +|ライト|LEDライトを点灯、消灯する| 
 +|スイッチ|スイッチのON、OFFを検出し、障害物の衝突を検出したり、スイッチをコントローラにしたりる| 
 +|光センサ|センサの周辺の明るさを計測する| 
 +|ブザー|音階や音長を指定して、ブザーで演奏する| 
 +|ラインセンサ|赤外線の反射量を計測し、計測値からラインの白黒を判断きる| 
 +|モータ|左右のタイヤを回させて、プロッチを動かす| 
 +|サーボモータ|指定した角度にモータを制御する。※利用する場合、外部電源必要になる| 
 +|超音波センサ|超音波を出力し、壁や障害物から跳ね返ってくるまでの時間から距離を計測る| 
 +|通信端子|プロッチ2台の通信端子をケーブルで接続し、そぞれをパソコンとUSB接続して、文字や数値のやり取りをす|
  
-{{:pasted:protch_stand.jpg}}+## 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)」を選択する。))
  
  
-##プロッチのプログラムの基本 +## 3. ドリトルによるプロッチの制御方法(利用方法) 
- ドリトルからプロッチ制御するプログラム、次の形で記述する。先頭行では、プロッチを**使う**プログラムを作成することを示している。以後、プロッチ本体を表す「プロッチ」((「protch」「プロ」も使用できる。))というオブジェクトを使うことできるようになる。+ ドリトルによるプロッチ制御は通信モードと組み込みモードがある。それぞれ制御方法には、下記の特徴る。
  
-<​code>​ +^ ^特徴^開発例^ 
-システ!"​protch"​使う。 +|通信モード|USBケーブルを接続して、ドリトルとプロッチが通信しながらプログラ実行する。 \\ プロッチが計測したセンサの値をPC画面で確認可能\\ ​ドリトルのGUIプログラミングと連携できる \\ ケーブルの接続が必須|プロッチのプログラミング練習(動作確認) \\ プロッチセンサのモニタープログラム \\ ・プロッチコントローラプログラム \\ など| 
-最初に実行=「 +|組み込みモード|プロッチすべてのプログラムを書き込み、プロッチ単独で動作する。 \\ ・プログラム実行時にケーブル接続が不要 \\ ・電源をONするだけで、書き込んだプログラムを実行可能 \\ ・センサの計測値をPCで確認することはできない|・迷路脱出ロボット \\ ・ライントレースカー \\ など| 
-   ・・・ +|:::​|:::​|:::​|
-」。 +
-繰り返し実行=「 +
-   ・・・ +
-」。 +
-プロッチ!転送。 +
-</​code>​ +
-**最初に実行**「...」の部分は、一度だけ実行したいプログラムを書く。+
  
-**繰り返し行**「...」の部分は、何度も繰り返して実行しいプログラムを書く。 + 開発て、最初に通信モードでセンサの性質やアクチュエータの動作を確認がら、プログラムを作成し、めどが立って組み込みモードでロボットを単独動作させることが考える。
- +
-**転送**を実行すると、プログラムがコンパイルされ、プロッチに転送される。 +
- +
-### LEDの利用 +
- プロッチに搭載しいるLEDは**点灯**や**消灯**を使うことで制御できる。プロッチにはLEDが2つ搭載しているため左側のLEDである「**左ライト**」、右側のLEDである「**右ライト**」というオブジェクトがある。 +
- +
-**LEDの命令一覧** +
-^ 命令 ^ 機能 ^ +
-|点灯 | LEDを点灯する | +
-|消灯 | LEDを消灯する | +
- +
- 次のプログラムでは、左右のLEDを1秒間点灯し、消灯するプログラムである。 +
-<​code>​ +
-システム!"​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 停止。 +
-」。 +
-プロッチ!転送。 +
-</​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_protchremote|通信モードによる制御の説明はこちら]]**.
 +  * **[[ch_protchembed|組み込みモードによる制御の説明はこちら]]**.
ch_protch.txt · 最終更新: 2019/03/19 17:33 by klab