この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
ch_protchrm [2019/02/01 17:02] klab |
ch_protchrm [2019/03/07 02:22] klab [距離センサの利用] |
||
---|---|---|---|
ライン 69: | ライン 69: | ||
繰り返し実行=「 | 繰り返し実行=「 | ||
左ライト!点灯。 | 左ライト!点灯。 | ||
- | 左ライト!1 待つ。 | + | プロッチ!1 待つ。 |
左ライト!消灯。 | 左ライト!消灯。 | ||
- | 左ライト!1 待つ。 | + | プロッチ!1 待つ。 |
」。 | 」。 | ||
プロッチ!転送。 | プロッチ!転送。 | ||
ライン 150: | ライン 150: | ||
」実行。 | 」実行。 | ||
」。 | 」。 | ||
+ | プロッチ!転送。 | ||
</code> | </code> | ||
上記のプログラムでは、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行の中に書いているため、何度の実行される。例えば、プロッチが箱に衝突したことを知らせるために左ライトを点灯するなどができる。 | 上記のプログラムでは、左スイッチが押されている時に左ライトが点灯し、押されていないときは消灯する。プログラムは繰り返し実行の中に書いているため、何度の実行される。例えば、プロッチが箱に衝突したことを知らせるために左ライトを点灯するなどができる。 | ||
ライン 170: | ライン 171: | ||
計測結果!(左光センサ!明るさ?)書く。 | 計測結果!(左光センサ!明るさ?)書く。 | ||
」。 | 」。 | ||
+ | プロッチ!転送。 | ||
</code> | </code> | ||
ライン 185: | ライン 187: | ||
」実行。 | 」実行。 | ||
」。 | 」。 | ||
+ | プロッチ!転送。 | ||
</code> | </code> | ||
下図は、左光センサを手で隠すと暗くなるのでLEDが点灯している。 | 下図は、左光センサを手で隠すと暗くなるのでLEDが点灯している。 | ||
ライン 206: | ライン 209: | ||
システム!"protchrm"使う。 | システム!"protchrm"使う。 | ||
最初に実行=「 | 最初に実行=「 | ||
- | 左サーボモータ!180 角度。 | + | 左サーボ!180 角度。 |
- | 右サーボモータ!180 角度。 | + | 右サーボ!180 角度。 |
プロッチ!1 待つ。 | プロッチ!1 待つ。 | ||
- | 左サーボモータ!0 角度。 | + | 左サーボ!0 角度。 |
- | 右サーボモータ!0 角度。 | + | 右サーボ!0 角度。 |
」。 | 」。 | ||
+ | |||
+ | プロッチ!転送。 | ||
</code> | </code> | ||
ライン 225: | ライン 230: | ||
システム! "protchrm" 使う。 | システム! "protchrm" 使う。 | ||
最初に実行=「 | 最初に実行=「 | ||
- | モータ!1 前進。 | + | プロッチ!1 前進。 |
- | モータ!1 後進。 | + | プロッチ!1 後進。 |
- | モータ!1 左折。 | + | プロッチ!1 左折。 |
- | モータ!1 右折。 | + | プロッチ!1 右折。 |
- | モータ!1 左回り。 | + | プロッチ!1 左回り。 |
- | モータ!1 右回り。 | + | プロッチ!1 右回り。 |
- | モータ!停止。 | + | プロッチ!停止。 |
」。 | 」。 | ||
+ | |||
+ | プロッチ!転送。 | ||
</code> | </code> | ||
ライン 241: | ライン 248: | ||
システム! "protchrm" 使う。 | システム! "protchrm" 使う。 | ||
最初に実行=「 | 最初に実行=「 | ||
- | モータ!停止。 | + | プロッチ!停止。 |
」。 | 」。 | ||
繰り返し実行=「 | 繰り返し実行=「 | ||
- | 「左スイッチ!押された?」!なら「 | + | 「(左スイッチ!接触?)==はい」!なら「 |
- | モータ!255 255 速度設定。 | + | プロッチ!255 255 速度。 |
- | モータ!1 前進。 | + | プロッチ!1 前進。 |
- | 」そうでなければ「右スイッチ!押された?」なら「 | + | 」そうでなければ「(右スイッチ!押された?)==はい」なら「 |
- | モータ!100 100 速度設定。 | + | プロッチ!100 100 速度。 |
- | モータ!1 前進。 | + | プロッチ!1 前進。 |
」実行。 | 」実行。 | ||
」。 | 」。 | ||
+ | |||
+ | プロッチ!転送。 | ||
</code> | </code> | ||
- | **モータの命令一覧** | + | **プロッチのモータの命令一覧** |
^ 命令 ^ 機能 ^ | ^ 命令 ^ 機能 ^ | ||
|前進 | 左右のモータを正回転する| | |前進 | 左右のモータを正回転する| | ||
ライン 264: | ライン 273: | ||
|左回り | 右側のモータが標準の速度で正回転し、左側のDCモータが標準の速度/5の速度で正回転する | | |左回り | 右側のモータが標準の速度で正回転し、左側のDCモータが標準の速度/5の速度で正回転する | | ||
|右回り | 左側のモータが標準の速度で正回転し、右側のDCモータが標準の速度/5の速度で正回転する | | |右回り | 左側のモータが標準の速度で正回転し、右側のDCモータが標準の速度/5の速度で正回転する | | ||
- | |速度設定 | DC モータの速度を0 から255 までの値で設定する。標準では100になっている | | + | |速度 | DC モータの速度を0 から255 までの値で設定する。標準では100になっている | |
## ラインセンサの利用 | ## ラインセンサの利用 | ||
ライン 277: | ライン 286: | ||
繰り返し実行=「 | 繰り返し実行=「 | ||
計測結果!(左ラインセンサ!読む)書く。 | 計測結果!(左ラインセンサ!読む)書く。 | ||
+ | プロッチ!0.5 待つ。 | ||
」。 | 」。 | ||
</code> | </code> | ||
ライン 286: | ライン 296: | ||
システム!"protchrm" 使う。 | システム!"protchrm" 使う。 | ||
最初に実行=「 | 最初に実行=「 | ||
- | モータ!停止。 | + | プロッチ!停止。 |
」。 | 」。 | ||
繰り返し実行=「 | 繰り返し実行=「 | ||
「(左ラインセンサ!読む)<(右ラインセンサ!読む)」!なら「 | 「(左ラインセンサ!読む)<(右ラインセンサ!読む)」!なら「 | ||
- | モータ!左回り。 | + | プロッチ!左回り。 |
」そうでなければ「 | 」そうでなければ「 | ||
- | モータ!右回り。 | + | プロッチ!右回り。 |
」実行。 | 」実行。 | ||
」。 | 」。 | ||
+ | プロッチ!転送。 | ||
</code> | </code> | ||
ライン 311: | ライン 321: | ||
システム!"protchrm"使う。 | システム!"protchrm"使う。 | ||
最初に実行=「 | 最初に実行=「 | ||
- | モータ!停止。 | + | プロッチ!停止。 |
」。 | 」。 | ||
繰り返し実行=「 | 繰り返し実行=「 | ||
「(距離センサ!距離?)<40」!なら「 | 「(距離センサ!距離?)<40」!なら「 | ||
- | モータ!1 停止。 | + | プロッチ!1 停止。 |
」そうでなければ「 | 」そうでなければ「 | ||
- | モータ!前進。 | + | プロッチ!前進。 |
」実行。 | 」実行。 | ||
」。 | 」。 | ||
+ | プロッチ!転送。 | ||
</code> | </code> | ||
{{:pasted:protch_distance.png}} | {{:pasted:protch_distance.png}} | ||
ライン 342: | ライン 352: | ||
システム! "protchrm" 使う。 | システム! "protchrm" 使う。 | ||
最初に実行=「 | 最初に実行=「 | ||
- | シリアル!"こんにちは"出力。 | + | 通信端子!"こんにちは"送信。 |
」。 | 」。 | ||
ライン 352: | ライン 362: | ||
システム! "protchrm" 使う。 | システム! "protchrm" 使う。 | ||
最初に実行=「 | 最初に実行=「 | ||
- | 受信ラベル=ラベル!""作る。 | + | 受信ラベル=ラベル!作る。 |
」。 | 」。 | ||
繰り返し実行=「 | 繰り返し実行=「 | ||
- | 受信ラベル!(シリアル!読む)書く。 | + | 受信ラベル!(通信端子!受信)書く。 |
」。 | 」。 | ||
</code> | </code> | ||
ライン 366: | ライン 376: | ||
### チャットプログラム | ### チャットプログラム | ||
- | 次のプログラムでは、フィールドオブジェクトに書いた文字をボタンの動作で出力している。また、読む命令を0.1秒間隔で実行することで受信した文字をテキストエリアに書いている。 | + | 次のプログラムでは、フィールドオブジェクトに書いた文字をプロッチの左スイッッチの押下により送信している。また、 |
<code> | <code> | ||
ライン 372: | ライン 382: | ||
最初に実行=「 | 最初に実行=「 | ||
送信フィールド=フィールド! 作る。 | 送信フィールド=フィールド! 作る。 | ||
- | 送信ボタン=ボタン!"送信"作る。 | ||
受信エリア=テキストエリア! 作る。 | 受信エリア=テキストエリア! 作る。 | ||
- | 送信ボタン:動作=「シリアル! (送信フィールド! 読む)出力」。 | + | 」。 |
- | 前回受信値="". | + | |
- | 「 | + | 繰り返し実行=「 |
- | 受信値=シリアル! 読む。 | + | 「(左スイッチ!接触?)==はい」!なら「 |
- | 「前回受信値! =受信値」! なら「 | + | 通信端子! (送信フィールド! 読む)送信 |
+ | 」実行。 | ||
+ | 受信値=通信端子! 受信。 | ||
+ | 「受信値!=””」! なら「 | ||
受信エリア! (受信値)書く。 | 受信エリア! (受信値)書く。 | ||
- | 」実行。 | + | 」実行。 |
- | 前回受信値=受信。 | + | |
- | プロッチ!0.1 待つ。 | + | |
- | 」! 1000 繰り返す。 | + | |
」。 | 」。 | ||
+ | プロッチ!転送。 | ||
</code> | </code> | ||
上記のプログラムを実行すると下図のような実行画面が現れる。①はフィールドに記述した文字を「送信」ボタンを押すことで送信する。②は送られてきた文字が書かれる。 | 上記のプログラムを実行すると下図のような実行画面が現れる。①はフィールドに記述した文字を「送信」ボタンを押すことで送信する。②は送られてきた文字が書かれる。 |