この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
ch_protchembed [2019/03/16 01:48] klab [ラインセンサを使ったライントレース] |
ch_protchembed [2019/03/16 03:21] (現在) klab |
||
---|---|---|---|
ライン 16: | ライン 16: | ||
### 動作確認と利用方法について | ### 動作確認と利用方法について | ||
- | ここでは、動作環境が正しく準備できたかの確認と利用方法について説明する。動作確認には、次のプログラム(protch_led.dtl)を使用する。 | + | ここでは、動作環境が正しく準備できたかの確認と利用方法について説明する。動作確認には、次のプログラム(protch%%_%%led.dtl)を使用する。 |
<code> | <code> | ||
システム!"protch"使う。 | システム!"protch"使う。 | ||
最初に実行=「 | 最初に実行=「 | ||
+ | 左ライト!消灯。 | ||
+ | 」。 | ||
+ | |||
+ | 繰り返し実行=「 | ||
左ライト!点灯。 | 左ライト!点灯。 | ||
プロッチ!1 待つ。 | プロッチ!1 待つ。 | ||
ライン 28: | ライン 32: | ||
</code> | </code> | ||
- | 上記のプログラムを転送し、下図のようにプロッチのスイッチを一度押すことで転送したプログラムが実行される。左ライトが一回点灯すればOKである。 | + | 上記のプログラムを転送し、下図のようにプロッチのスイッチを一度押すことで転送したプログラムが実行される。左ライトが1秒ごとに点滅すれば正しく動作している。 |
{{:pasted:protch_stand.jpg}} | {{:pasted:protch_stand.jpg}} | ||
ライン 60: | ライン 64: | ||
|消灯 | LEDを消灯する | | |消灯 | LEDを消灯する | | ||
- | 次のプログラム(protch_led2.dtl)では、左右のLEDを1秒間点灯し、消灯するプログラムである。 | + | 次のプログラム(protch%%_%%led2.dtl)では、左右のLEDを1秒間点灯し、消灯するプログラムである。 |
<code> | <code> | ||
システム!"protch"使う。 | システム!"protch"使う。 | ||
最初に実行=「 | 最初に実行=「 | ||
- | 左ライト!点灯。 | + | 左ライト!点灯。 |
- | 右ライト!点灯。 | + | 右ライト!点灯。 |
- | プロッチ!1 待つ。 | + | プロッチ!1 待つ。 |
- | 左ライト!消灯。 | + | 左ライト!消灯。 |
- | 右ライト!消灯。 | + | 右ライト!消灯。 |
+ | プロッチ!1 待つ。 | ||
」。 | 」。 | ||
プロッチ!転送。 | プロッチ!転送。 | ||
ライン 81: | ライン 86: | ||
|接触? | スイッチの入力を0か1で取得する | | |接触? | スイッチの入力を0か1で取得する | | ||
- | 次のプログラム(protch_switch.dtl)では、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行に書いているため、何度の実行される。 | + | 次のプログラム(protch%%_%%switch.dtl)では、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行に書いているため、何度の実行される。 |
<code> | <code> | ||
ライン 105: | ライン 110: | ||
|明るさ? | 光量を0~255の範囲で取得する。暗い程、取得する値は大きくなる| | |明るさ? | 光量を0~255の範囲で取得する。暗い程、取得する値は大きくなる| | ||
- | 次のプログラム(protch_light.dtl)では、周辺の光量が100より大きい時に左のライトが点灯する。プログラムは繰り返し実行に書いているため、何度の実行される。 | + | 次のプログラム(protch%%_%%light.dtl)では、周辺の光量が100より大きい時に左のライトが点灯する。プログラムは繰り返し実行に書いているため、何度の実行される。 |
<code> | <code> | ||
ライン 132: | ライン 137: | ||
|角度 |0度~180度の間で角度を指定する| | |角度 |0度~180度の間で角度を指定する| | ||
- | 次のプログラム(protch_servo.dtl)では、左右のサーボモータの角度を1秒ごとに180度と0度に動作する。 | + | 次のプログラム(protch%%_%%servo.dtl)では、左右のサーボモータの角度を180度から0度に変更するプログラムである。 |
+ | サーボモータの動作には時間がかかる。 | ||
+ | このため、動作の完了までの待ち時間を作るために「プロッチ!1 待つ。」の命令で角度を180度に設定した後、1秒間の待ち時間を設けている。 | ||
+ | 繰り返すの命令で繰り返し回数の指定が可能になる。今回は、3回に指定している。 | ||
<code> | <code> | ||
システム!"protch"使う。 | システム!"protch"使う。 | ||
ライン 141: | ライン 149: | ||
左サーボ!180 角度。 | 左サーボ!180 角度。 | ||
プロッチ!1 待つ。 | プロッチ!1 待つ。 | ||
+ | 」!3 繰り返す。 | ||
」。 | 」。 | ||
プロッチ!転送。 | プロッチ!転送。 | ||
ライン 146: | ライン 155: | ||
### モータの利用 | ### モータの利用 | ||
- | プロッチには左右にタイヤにつながったモータが搭載している。次のプログラムでは、1秒ごとに前進、左折、右折、後進、停止をしている。 | + | プロッチには左右にタイヤにつながったモータが搭載している。次のプログラム(protch%%_%%motor.dtl)では、1秒ごとに前進、後退、左折、右折、左回り、右回り、停止をしている。 |
**モータ**の命令一覧 | **モータ**の命令一覧 | ||
^ 命令 ^ 機能 ^ | ^ 命令 ^ 機能 ^ | ||
|前進 | 左右のモータを正回転する| | |前進 | 左右のモータを正回転する| | ||
- | |後進 | 左右のモータを逆回転する | | + | |後退 | 左右のモータを逆回転する | |
|停止 | 左右のモータを停止する | | |停止 | 左右のモータを停止する | | ||
|左折 | 右側のモータを正回転する | | |左折 | 右側のモータを正回転する | | ||
ライン 162: | ライン 171: | ||
システム! "protch" 使う。 | システム! "protch" 使う。 | ||
最初に実行=「 | 最初に実行=「 | ||
- | プロッチ! 1 前進。 | + | プロッチ!1 前進。 |
- | プロッチ! 1 左折。 | + | プロッチ!1 後退。 |
- | プロッチ! 1 右折。 | + | プロッチ!1 左折。 |
- | プロッチ! 1 後進。 | + | プロッチ!1 右折。 |
- | プロッチ! 1 停止。 | + | プロッチ!1 左回り。 |
+ | プロッチ!1 右回り。 | ||
+ | プロッチ!1 停止。 | ||
+ | 」。 | ||
+ | プロッチ!転送。 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | また、次のプログラム(protch%%_%%speed.dtl)では、1秒ごとに速度を変更して前進している。 | ||
+ | <code> | ||
+ | システム! "protch" 使う。 | ||
+ | 繰り返し実行=「 | ||
+ | プロッチ!100 100 速度。 | ||
+ | プロッチ!1 前進。 | ||
+ | プロッチ!200 200 速度。 | ||
+ | プロッチ!1 前進。 | ||
」。 | 」。 | ||
プロッチ!転送。 | プロッチ!転送。 | ||
ライン 178: | ライン 202: | ||
|読む |赤外線の反射量を0〜255の範囲で取得する| | |読む |赤外線の反射量を0〜255の範囲で取得する| | ||
- | 次のプログラム(protch_linetrace.dtl)では、左右のラインセンサを比較し、線の上にいなければ右折し、線の上にいれば左折する。 | + | 次のプログラム(protch%%_%%linetrace.dtl)では、左右のラインセンサを比較し、線の上にいなければ右折し、線の上にいれば左折する。 |
<code> | <code> | ||
ライン 196: | ライン 220: | ||
### 超音波センサの利用 | ### 超音波センサの利用 | ||
- | プロッチでは超音波センサをつけることができる。超音波センサは**距離?**を使うことで、プロッチの正面にあるモノまでの距離をmmで取得できる。次のプログラム(protch_distance.dtl)では、障害物が近くにあると停止する。 | + | プロッチでは超音波センサをつけることができる。超音波センサは**距離?**を使うことで、プロッチの正面にあるモノまでの距離をmmで取得できる。次のプログラム(protch%%_%%distance.dtl)では、障害物が近くにあると停止する。 |
**超音波センサ**の命令一覧 | **超音波センサ**の命令一覧 | ||
ライン 216: | ライン 240: | ||
###音楽演奏 | ###音楽演奏 | ||
- | プロッチに搭載しているブザーを利用して音楽の演奏が可能である。次のプログラム(protch_buzzer.dtl)では、ブザーを使ってドレミの音階を鳴らしている。 | + | プロッチに搭載しているブザーを利用して音楽の演奏が可能である。次のプログラム(protch%%_%%buzzer.dtl)では、ブザーを使ってドレミの音階を鳴らしている。 |
**ブザーの命令一覧** | **ブザーの命令一覧** | ||
ライン 230: | ライン 254: | ||
</code> | </code> | ||
- | また、ブザーを用いてメロディの演奏が可能である。ここでは、譜面に相当するメロディオブジェクトに旋律を書き込み、それを演奏する。次のプログラム(protch_melody.dtl)では、「きらきらぼし」という名前のメロディオブジェクトを生成し、「"..."」の形で旋律を追加してから、ブザーに演奏させている。 | + | また、ブザーを用いてメロディの演奏が可能である。ここでは、譜面に相当するメロディオブジェクトに旋律を書き込み、それを演奏する。次のプログラム(protch%%_%%melody.dtl)では、「きらきらぼし」という名前のメロディオブジェクトを生成し、「"..."」の形で旋律を追加してから、ブザーに演奏させている。 |
**メロディの命令一覧** | **メロディの命令一覧** | ||
^命令^機能^ | ^命令^機能^ | ||
- | |作る|配列を作る| | + | |作る|メロディの旋律を作る| |
<code> | <code> | ||
システム!"protch"使う。 | システム!"protch"使う。 | ||
最初に実行=「 | 最初に実行=「 | ||
- | きらきらぼし=メロディ!"ドドソソララソ~ファファミミレレド~ソソファファミミレ~ソソファファミミレ~ドドソソララソ~ファファミミレレド~" 作る。 | + | きらきらぼし=メロディ!"ドドソソララソ・ファファミミレレド・ソソファファミミレ・ソソファファミミレ・ドドソソララソ・ファファミミレレド・" 作る。 |
ブザー!(きらきらぼし) 演奏。 | ブザー!(きらきらぼし) 演奏。 | ||
」。 | 」。 |