この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン | 次のリビジョン 両方とも次のリビジョン | ||
ch_protchrm [2018/10/20 19:40] klab |
ch_protchrm [2018/10/20 19:44] klab |
||
---|---|---|---|
ライン 72: | ライン 72: | ||
開発モードでは、ドリトルからプロッチを制御するための通信プログラムを転送しておく必要がある。通信プログラムは、独立モードのプログラムを転送しない限り一度だけ転送すればよい。通信プログラムの転送手順は(https://dolittle.eplang.jp/ch_protchrm/remote)を参照してください。 | 開発モードでは、ドリトルからプロッチを制御するための通信プログラムを転送しておく必要がある。通信プログラムは、独立モードのプログラムを転送しない限り一度だけ転送すればよい。通信プログラムの転送手順は(https://dolittle.eplang.jp/ch_protchrm/remote)を参照してください。 | ||
- | ### プログラムの入力から実行まで | + | ## プログラムの入力から実行まで |
ここではドリトルのプログラムの入力から実行までの手順を説明する。 | ここではドリトルのプログラムの入力から実行までの手順を説明する。 | ||
ライン 152: | ライン 152: | ||
|消灯 | LEDを消灯する | | |消灯 | LEDを消灯する | | ||
- | ### スイッチの利用 | + | ## スイッチの利用 |
プロッチに搭載しているスイッチは、**押された?**を使うことでスイッチのONとOFFを検出できる。スイッチは左右に搭載しており、左側のスイッチを制御するオブジェクトを「左スイッチ」、右側のスイッチを制御するオブジェクトを「右スイッチ」にした。\\ | プロッチに搭載しているスイッチは、**押された?**を使うことでスイッチのONとOFFを検出できる。スイッチは左右に搭載しており、左側のスイッチを制御するオブジェクトを「左スイッチ」、右側のスイッチを制御するオブジェクトを「右スイッチ」にした。\\ | ||
次のプログラムでは、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行に書いているため、何度の実行される。 | 次のプログラムでは、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行に書いているため、何度の実行される。 | ||
ライン 178: | ライン 178: | ||
|接触? | スイッチの入力を0か1で取得する | | |接触? | スイッチの入力を0か1で取得する | | ||
- | ### 光センサの利用 | + | ## 光センサの利用 |
プロッチに搭載している光センサは**明るさ?**を使うことで周辺の光量を取得できる。光センサは左右に搭載しているので左側の光センサを制御するオブジェクトを「左光センサ」、右側の光センサを制御するオブジェクトを「右光センサ」にした。\\ | プロッチに搭載している光センサは**明るさ?**を使うことで周辺の光量を取得できる。光センサは左右に搭載しているので左側の光センサを制御するオブジェクトを「左光センサ」、右側の光センサを制御するオブジェクトを「右光センサ」にした。\\ | ||
センサの計測値はドリトルの**ラベル**オブジェクトを使うとドリトルの実行画面で確認することできる。次のプログラムでは最初に実行で「計測結果」という名前のラベルを作り、繰り返し実行で光センサの**明るさ?**で取得した計測値を計測結果ラベルに書いている。 | センサの計測値はドリトルの**ラベル**オブジェクトを使うとドリトルの実行画面で確認することできる。次のプログラムでは最初に実行で「計測結果」という名前のラベルを作り、繰り返し実行で光センサの**明るさ?**で取得した計測値を計測結果ラベルに書いている。 | ||
ライン 217: | ライン 217: | ||
- | ### サーボモータの利用 | + | ## サーボモータの利用 |
プロッチにはサーボモータ用の端子がある。サーボモータは**角度**を使うことで指定した角度にモータを動かすことができる。端子は左右にあり、左側のサーボモータを制御するオブジェクトを「左サーボモータ」、右側のサーボモータを制御するオブジェクトを「右サーボモータ」にした。サーボモータの接続方法は下図のとおりである。サーボモータを利用するときは、外部電源に電池ボックスを接続する必要がある。 | プロッチにはサーボモータ用の端子がある。サーボモータは**角度**を使うことで指定した角度にモータを動かすことができる。端子は左右にあり、左側のサーボモータを制御するオブジェクトを「左サーボモータ」、右側のサーボモータを制御するオブジェクトを「右サーボモータ」にした。サーボモータの接続方法は下図のとおりである。サーボモータを利用するときは、外部電源に電池ボックスを接続する必要がある。 | ||
ライン 238: | ライン 238: | ||
|角度 |0度~180度の間で角度を指定する| | |角度 |0度~180度の間で角度を指定する| | ||
- | ### モータの利用 | + | ## モータの利用 |
プロッチのモータは**前進**・**後進**・**左折**・**右折**・**左回り**・**右回り**を使うことで動かすことができる。また、**停止**を使うことでモータを止めることができる。これらの命令は秒数を指定することでその時間だけ動作することができる。\\ | プロッチのモータは**前進**・**後進**・**左折**・**右折**・**左回り**・**右回り**を使うことで動かすことができる。また、**停止**を使うことでモータを止めることができる。これらの命令は秒数を指定することでその時間だけ動作することができる。\\ | ||
次のプログラムでは、1秒ごとに前進、後進、左折、右折、左回り、右回りをしている。 | 次のプログラムでは、1秒ごとに前進、後進、左折、右折、左回り、右回りをしている。 | ||
ライン 255: | ライン 255: | ||
</code> | </code> | ||
- | #### スイッチを使ってモータの速度を変更する | + | ### スイッチを使ってモータの速度を変更する |
モータの回転速度は**速度設定**を使うことで変更できる。モータの回転速度は0〜255の範囲で設定でき、標準では100に設定している。\\ | モータの回転速度は**速度設定**を使うことで変更できる。モータの回転速度は0〜255の範囲で設定でき、標準では100に設定している。\\ | ||
次のプログラムでは、左スイッチを押した時に回転速度を255にして1秒前進し、右スイッチを押した時に速度を100にして、1秒前進する。 | 次のプログラムでは、左スイッチを押した時に回転速度を255にして1秒前進し、右スイッチを押した時に速度を100にして、1秒前進する。 | ||
ライン 286: | ライン 286: | ||
|速度設定 | DC モータの速度を0 から255 までの値で設定する。標準では100になっている | | |速度設定 | DC モータの速度を0 から255 までの値で設定する。標準では100になっている | | ||
- | ### ラインセンサの利用 | + | ## ラインセンサの利用 |
プロッチに搭載しているラインセンサは赤外線を出し、物体から跳ね返ってきた赤外線の反射量を取得する仕組みである。**読む**を使うことで赤外線の反射量を取得できる。ラインセンサは左右に搭載しているので左側のラインセンサを制御するオブジェクトを「左ラインセンサ」、右側のラインセンサを制御するオブジェクトを「右ラインセンサ」にした。\\ | プロッチに搭載しているラインセンサは赤外線を出し、物体から跳ね返ってきた赤外線の反射量を取得する仕組みである。**読む**を使うことで赤外線の反射量を取得できる。ラインセンサは左右に搭載しているので左側のラインセンサを制御するオブジェクトを「左ラインセンサ」、右側のラインセンサを制御するオブジェクトを「右ラインセンサ」にした。\\ | ||
次のプログラムでは、ドリトルの画面でラインセンサが計測した値を確認できる。 | 次のプログラムでは、ドリトルの画面でラインセンサが計測した値を確認できる。 | ||
ライン 299: | ライン 299: | ||
」。 | 」。 | ||
</code> | </code> | ||
- | #### ライントレースカー | + | ### ライントレースカー |
ラインセンサの反射量は、物体の色によって変化する。この特性を使うことでラインの白と黒を判断することができる。ライントレースカーは、ラインセンサで地面に描かれた線(黒色)を判断し、コースに沿って動くようにモータを制御する。\\ | ラインセンサの反射量は、物体の色によって変化する。この特性を使うことでラインの白と黒を判断することができる。ライントレースカーは、ラインセンサで地面に描かれた線(黒色)を判断し、コースに沿って動くようにモータを制御する。\\ | ||
次のプログラムでは、左右のラインセンサを比較し、線の上にいなければ右折し、線の上にいれば左折する。 | 次のプログラムでは、左右のラインセンサを比較し、線の上にいなければ右折し、線の上にいれば左折する。 | ||
ライン 325: | ライン 325: | ||
|明るさ? |赤外線の反射量を0〜255の範囲で取得する| | |明るさ? |赤外線の反射量を0〜255の範囲で取得する| | ||
- | ### 距離センサの利用 | + | ## 距離センサの利用 |
プロッチでは距離センサをつけることができる。距離センサは**距離?**を使うことで、プロッチの正面にあるモノまでの距離をmmで取得できる。次のプログラムでは、障害物が近くにあると停止する。 | プロッチでは距離センサをつけることができる。距離センサは**距離?**を使うことで、プロッチの正面にあるモノまでの距離をmmで取得できる。次のプログラムでは、障害物が近くにあると停止する。 | ||
ライン 350: | ライン 350: | ||
- | ### 文字の交換 | + | ## 文字のやりとり |
プロッチを2台使うことで文字を送ることができる。文字の送受信はシリアルオブジェクトの**出力**で文字を送信し、**読む**で送信された文字を取得できる。プロッチ2台を下図のように線で繋ぐ必要がある。 | プロッチを2台使うことで文字を送ることができる。文字の送受信はシリアルオブジェクトの**出力**で文字を送信し、**読む**で送信された文字を取得できる。プロッチ2台を下図のように線で繋ぐ必要がある。 | ||
{{:pasted:protch_rm.jpg}} | {{:pasted:protch_rm.jpg}} | ||
- | #### メッセージを送信する | + | ### メッセージを送信する |
メッセージの送信には、シリアルオブジェクトの**出力**を使う。次のプログラムでは、「こんにちは」を送信している。 | メッセージの送信には、シリアルオブジェクトの**出力**を使う。次のプログラムでは、「こんにちは」を送信している。 | ||
<code> | <code> | ||
ライン 365: | ライン 365: | ||
</code> | </code> | ||
- | #### メッセージを受信する | + | ### メッセージを受信する |
メッセージの受信には、シリアルオブジェクトの**読む**を使う。取得した文字をラベルに書くことでドリトルの実行画面で確認できる。 | メッセージの受信には、シリアルオブジェクトの**読む**を使う。取得した文字をラベルに書くことでドリトルの実行画面で確認できる。 | ||
<code> | <code> | ||
ライン 383: | ライン 383: | ||
|読む|送信された文字を取得します| | |読む|送信された文字を取得します| | ||
- | #### チャットプログラム | + | ### チャットプログラム |
次のプログラムでは、フィールドオブジェクトに書いた文字をボタンの動作で出力している。また、読む命令を0.1秒間隔で実行することで受信した文字をテキストエリアに書いている。 | 次のプログラムでは、フィールドオブジェクトに書いた文字をボタンの動作で出力している。また、読む命令を0.1秒間隔で実行することで受信した文字をテキストエリアに書いている。 | ||