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

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

ユーザ用ツール

サイト用ツール


ch_protch

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ch_protch [2018/10/13 20:14]
klab
ch_protch [2019/03/19 17:33] (現在)
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}}
  
-{{:​pasted:​protch_stand.jpg}}+^部品名^説明^ 
 +|電源ボタン|プロッチの電源をオン・オフする| 
 +|リセットボタン|プロッチに書き込まれたプログラムをもう一度実行する| 
 +|外部電源|サーボモータの制御に必要な外部電源を接続する| 
 +|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で確認することはできない|・迷路脱出ロボット \\ ・ライントレースカー \\ など| 
 +|:::​|:::​|:::​|
  
-**転送**+また、プロッチを2台をブリッジとして利用することで、2台のコンピュータをUSBケーブルでつなぎ、チャットプログラムなどを利用することもできる(ブリッジモード)。
  
-<​code>​ +  * **[[ch_protchremote|通信モードによる制御の説明はこちら]]**. 
-システム!"​protch"​ 使う。+  * **[[ch_protchembed|組み込みモードによる制御の説明はこちら]]**. 
 +  * **[[ch_protchcommunication|ブリッジモードによるPC間通信プログラミングの説明はこちら]]**.
  
-最初に実行=「 
- 左ライト!点灯。 
- プロ!1 待つ。 
- 左ライト!消灯。 
- プロ!1 待つ。 
-」。 
-プロッチ!転送。 
-</​code>​ 
  
- +**<color #ed1c24><​ワンポアドバス></color>**\\ 
-### LEDの利用 +  - 初めてプログラうときは、最初通信モード基本的なプログラムの、センサの性質やアクュエータの動作確認うことを推奨します。 
- プロッチに搭載しているLEDは**点灯**や**消灯**を使うことで制御できる。プロッチにはLEDが2つ搭載しているため、左側のLEDは「**左ライト**」、右側のLEDは「**右ライト**」というオブジェクトがある。 +  - 通信モーで作ったプログラムのうちドリGUIのには、プログラムの最初記述を変更するだけ、組み込みモー利用可能です。
- +
-**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.1539429255.txt.gz · 最終更新: 2018/10/13 20:14 by klab