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

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

ユーザ用ツール

サイト用ツール


ch_protch

**以前のリビジョンの文書です**

プロッチを動かそう

 プロッチというデバイスを使って、LEDやセンサなどの入出力や通信機能を使ってチャットプログラミングをしてみよう。プロッチを使用するためには、ダウンロード版のドリトルが必要になる。

プロッチについて

 プロッチは、株式会社山崎教育システムが開発したロボット教材である。LEDの点灯や、センサの計測、モータの制御を行うことができ、プロッチを2台使用することで文字の交換をするチャットプログラミングを行うことができる。ドリトルでは、「オリジナルプロッチ」という製品で動作の確認を行った。1)下図には、プロッチに搭載しているセンサやモータの配置図を示す。2)

ドリトルで対応しているプロッチについて

 ドリトルからプロッチを動かす方法は2つある。

  • 接続モード:パソコンとUSBケーブルで接続した状態でドリトルからプロッチに信号を送信して制御する。
  • 独立モード:ドリトルのプログラムをプロッチに転送し、転送後はUSBケーブルを外して単体で動かす。

 以下にそれぞれのモードでできること、できないことを示す。

  • ◯は使用可能、×は使用不能を表す。
 接続モード独立モード
LEDの利用
センサの利用
モータの利用
ブザーの利用×3)
チャットプログラミング×
画面出力ドリトルの画面にセンサの入力値を表示することが可能×
ロボットを動かせる場所パソコンからUSBケーブルが届く範囲で動かすことが可能パソコンから離れた場所でも動かすことが可能

ドリトルからプロッチを動かすための設定

 Windowsが導入されたコンピュータでドリトルとプロッチを通信するには、以下の設定をおこなう。このとき、デバイスドライバのインストールを行うため、OSの管理者権限が必要となる場合がある。なお、Windows7でのインストールを例として以下の手順で設定する。

  1. プロッチの標準ソフトをインストールする
    • 株式会社山崎教育システムのサイト(http://protch.jp/#section2)のインストールページのダウンロード手順に沿って行う。
  2. プロッチの接続
    • PCのUSBポートにプロッチを接続する。
    • プロッチの電源ボタンを押し、電源を入れる。
    • 自動的にドライバがインストールされ、「Prolific USB-to-Serial Comm Port (COM*) デバイスドライバーソフトウェアが正しくインストールされました。」と表示される。4)
  3. ドリトルをインストールする
    • ドリトルのサイト(http://dolittle.eplang.jp)のダウンロードから最新版のWindows用のドリトルをダウンロードして任意のフォルダに展開する。
  4. ドリトルの起動
    • エクスプローラからdolittle.batを実行する。5)

プロッチを接続モードで動かしてみよう

 ここでは、ドリトルからプロッチを接続モードで動かす方法について解説する。接続モードでは、ドリトルからプロッチを制御するための通信プログラムを転送しておく必要がある。6)

ドリトルから通信プログラムを転送する。

 通信プログラムの転送の手順について解説する。

  • ドリトルの編集画面でプログラムを記述する。
システム!"protchrm"使う。
プロッチ!通信プログラム転送。
  • プログラムを実行する。
  • 「通信プログラムを転送しますか?」と表示されるので「はい(Y)」を選択する。7)

  • 「ポートを選択してください。」と表示されるのでプロッチを接続してるCOMポートを選択する。8)

  • プロッチに転送が行われ「転送完了」が表示されるまで待つ。9)
  • 「OK」を選択して閉じる。

通信プログラムが転送されると下図のようにプロッチが赤色の点灯状態になる。10)

protch_transmision_status.jpg

動作確認と操作方法について

 ここでは、動作環境が正しく準備できたかの確認と一緒に操作方法について説明する。動作確認には、次のプログラムを使用する。

システム!"protchrm"使う。
最初に実行=「
 プロッチ!動作確認。
」。

 プロッチのプログラムを実行すると下図のように「動作開始」ボタンと「動作終了」ボタンが現れる。

  • 動作開始ボタン:プログラムを実行してから、押すことで動作が開始する。
  • 動作終了ボタン:動作を終了するときに押すことで終了する。

 上記のプログラムを実行した場合、左ライトが一回点灯すればOKである。最後に「動作終了」ボタンを押して終了することに注意する。

プロッチのプログラムの基本

 ドリトルからプロッチを制御するプログラムは、次の形で記述する。先頭の行では、プロッチを使うプログラムを作成することを示している。以後、プロッチ本体を表す「プロッチ」11)というオブジェクトを使うことができるようになる。

システム!"protchrm"使う。
最初に実行=「
   ・・・
」。
繰り返し実行=「
   ・・・
」。

最初に実行の「…」の部分には、一度だけ実行したいプログラムを書く。

繰り返し実行の「…」の部分には、何度も繰り返して実行したいプログラムを書く。

LEDの利用

 プロッチに搭載しているLEDは点灯消灯を使うことで制御できる。プロッチにはLEDが2つ搭載しているため、左側のLEDは「左ライト」、右側のLEDは「右ライト」というオブジェクトがある。

LEDの命令一覧

命令 機能
点灯 LEDを点灯する
消灯 LEDを消灯する

 次のプログラムでは、左右のLEDを1秒間点灯し、消灯するプログラムである。

システム!"protchrm"使う。

最初に実行=「
 左ライト!点灯。
 右ライト!点灯。
 プロッチ!1 待つ。
 左ライト!消灯。
 右ライト!消灯。
」。

スイッチの利用

 プロッチに搭載しているスイッチは、接触?を使うことでスイッチのONとOFFを検出できる。スイッチは左右に搭載しているので左側のスイッチである「左スイッチ」、右側のスイッチである「右スイッチ」というオブジェクトがある。

スイッチの命令一覧

命令 機能
読む スイッチの入力を0か1で取得する
接触? スイッチの入力を0か1で取得する

 次のプログラムでは、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行に書いているため、何度の実行される。

システム! "protchrm" 使う。
繰り返し実行=「
  「左スイッチ! 接触?」! なら「
    左ライト! 点灯。
  」そうでなければ「
    左ライト! 消灯。
  」実行。
」。

 下図は、プロッチが箱に衝突し、左スイッチに接触しているので左ライトが点灯している。 protch_switch.jpg

光センサの利用

 プロッチに搭載している光センサは明るさ?を使うことで周辺の光量を取得できる。光センサは左右に搭載しているので左側の光センサである「左光センサ」、右側の光センサである「右光センサ」というオブジェクトがある。

光センサの命令一覧

命令 機能
読む 光量を0〜255の範囲で取得する。暗い程、取得する値は大きくなる
明るさ? 光量を0~255の範囲で取得する。暗い程、取得する値は大きくなる

 次のプログラムでは、周辺の光量が100より大きい時に左のライトが点灯する。プログラムは繰り返し実行に書いているため、何度の実行される。

システム! "protchrm" 使う。
繰り返し実行=「
  「(左光センサ! 明るさ?)>100」! なら「
    左ライト! 点灯。
  」そうでなければ「
    左ライト! 消灯。
  」実行。
」。

 下図は、左光センサを手で隠すと暗くなるのでLEDが点灯している。

サーボモータの利用

 プロッチにはサーボモータを接続するための端子がある。サーボモータは角度設定を使うことで角度を指定することができる。サーボモータは左右に接続でき、左側の端子の「左サーボモータ」、右側の端子の「右サーボモータ」というオブジェクトがある。サーボモータの接続方法は下図のとおりである。サーボモータを利用するときは、外部電源に電池ボックスを接続する必要がある。

protch_servo.jpg

  サーボモータの命令一覧

命令 機能
角度設定 0度~180度の間で角度を指定する

 次のプログラムでは、左右のサーボモータの角度を1秒ごとに180度と0度に動作する。

システム!"protchrm"使う。
最初に実行=「
 左サーボモータ!180 角度設定。
 右サーボモータ!180 角度設定。
 プロ!1 待つ。
 左サーボモータ!0 角度設定。
 右サーボモータ!0 角度設定。
」。

モータの利用

 プロッチには左右にタイヤにつながったモータが搭載している。次のプログラムでは、1秒ごとに前進、左折、右折、後進、停止をしている。

モータの命令一覧

命令 機能
前進 左右のモータを正回転する
後進 左右のモータを逆回転する
停止 左右のモータを停止する
左折 右側のモータを正回転する
右折 左側のモータを正回転する
左回り 右側のモータが標準の速度で正回転し、左側のDCモータが標準の速度/5の速度で正回転する
右回り 左側のモータが標準の速度で正回転し、右側のDCモータが標準の速度/5の速度で正回転する
速度設定 DC モータの速度を0 から255 までの値で設定する。標準では100になっている
システム! "protchrm" 使う。
最初に実行=「
  モータ! 1 前進。
  モータ! 1 左折。
  モータ! 1 右折。
  モータ! 1 後進。
  モータ! 1 停止。
」。

ラインセンサを使ったライントレース

 ライントレースカーは左右のDCモーターを使い、地面に描かれた線のコースに沿って動く。プロッチに搭載しているラインセンサを利用することで赤外線の反射量の値から線の上にいるかどうかを判断できる。ラインセンサは読むを使用することで、0〜255の値で検出できる。ラインセンサは左右に一つずつ搭載しており、左側のセンサの「左ラインセンサ」、右側のセンサの「右ラインセンサ」というオブジェクトがある。

ラインセンサの命令一覧

命令 機能
読む 赤外線の反射量を0〜255の範囲で取得する
明るさ? 赤外線の反射量を0〜255の範囲で取得する

 次のプログラムでは、左右のラインセンサを比較し、線の上にいなければ右折し、線の上にいれば左折する。

システム!"protchrm" 使う。

繰り返し実行=「
  「(左ラインセンサ!読む)<(右ラインセンサ!読む)」!なら「
    モータ!左回り。 
 」そうでなければ「
    モータ!右回り。
 」実行。
」。

距離センサの利用

 プロッチでは距離センサを利用可能である。距離センサは距離?を使うことで、プロッチの正面にあるモノまでの距離をmmで取得できる。次のプログラムでは、障害物が近くにあると停止する。

距離センサの命令一覧

命令 機能
読む 距離センサの計測値をmmで取得する
距離? 距離センサの計測値をmmで取得する
システム!"protchrm"使う。
繰り返し実行=「
  「(距離センサ!距離?)<40」!なら「
    モータ!1 停止。
  」そうでなければ「
    モータ!前進。
  」実行。
」。

双方向通信

 プロッチを2台使うことでチャットプログラミングが可能である。チャットプログラムは、ドリトルの画面に入力した文字を送信したり、受信した文字をドリトルの画面に表示したりするため接続モードでのみ利用可能な機能である。チャットプログラミングはシリアルオブジェクトの出力で文字を送信し、読むで送信された文字を取得できる。チャットプログラムをするためにプロッチ2台を下図のように線で繋ぐ必要がある。

protch_rm.jpg

シリアルオブジェクトの命令一覧

命令機能
出力文字を出力します
読む送信された文字を取得します

メッセージを送信する

 メッセージの送信には、シリアルオブジェクトを利用する。次のプログラムでは、「こんにちわ」を送信している。

システム! "protchrm" 使う。
最初に実行=「
 シリアル!"こんにちわ"出力。
」。

メッセージを受信する

 メッセージの送信には、シリアルオブジェクトを利用する。次のプログラムでは、「こんにちわ」を送信している。

システム! "protchrm" 使う。
受信ラベル=ラベル!""作る。
繰り返し実行=「
 受信ラベル!(シリアル!読む)書く。
」。

チャットプログラム

 

システム!"protchrm"使う。
最初に実行=「
  送信フィールド=フィールド! 作る。
  送信ボタン=ボタン!"送信"作る。
  受信エリア=テキストエリア! 作る。
  送信ボタン:動作=「シリアル! (送信フィールド! 読む)出力」。
  前回受信値="".
  「
   受信値=シリアル! 読む。
   「前回受信値! =受信値」! なら「
    受信エリア! (受信値)書く。
   」実行。
   前回受信値=受信。
   プロ!0.1 待つ。
  」! 1000 繰り返す。
」。

1)
プロッチの仕様については同社のサイト(http://protch.jp/)に詳しく掲載されている。
2)
赤色:センサ類、青色:モータ類、緑色:拡張パーツ、黒色:ロボットを動かすために必要な部分
3)
現在対応を進めている
4) , 8)
COM*の部分は環境によって異なる。
5)
「発行元を確認できませんでした。このソフトウェアを実行しますか?」のダイアログが出る場合は「このファイルを開く前に常に警告する(W)」のチェックを外してから「実行(R)」を選択する。
6)
通信プログラムは、一番最初に書き込むか、独立モードのプログラムを書き込んだ場合に転送が必要になる。
7)
「Windowsセキュリティの重要な警告」が表示された場合は「アクセスを許可する(A)」を選択する。
9)
5秒程度かかる。
10)
緑色の点灯は、電源を入れている状態を示す。
11)
「protch」「プロ」も使用できる。
ch_protch.1539427125.txt.gz · 最終更新: 2018/10/13 19:38 by klab