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

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

ユーザ用ツール

サイト用ツール


ch_protch

差分

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

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

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