本日の内容④ 自律制御ロボットの組立て、動作確認 ソフトウェアの操作方法の説明 順次と繰り返しのプログラム
Beauto Racer(ビュート レーサー) 授業で用いる制御ロボットについて ① Beauto Racer(ビュート レーサー) ② ①.センサ=赤外線センサ 物や床の状況をみる ②.コンピュータ=PICマイコン 命令を覚えたり、行動を考える ③ ③.アクチュエータ=モーター、LED ロボットを動かす。 点灯・点滅する。
組み立て動画 ロボットの組み立て ※部品を落として、壊したりなくしたりしないよう 広い机の真ん中で組立てましょう。 広い机の真ん中で組立てましょう。 ワークシート③ページでチェックしながら 進めてください。
ロボットの組み立て ○ × 奥まで押し込む。 パチッ 押し込むのが かたい場合は、 部品をセットし、 基板をひっく返し、 基板を押すと、 入れやすいです。 先にプッシュリベットを押し込むと、基板に入れれなくなります。
ロボットの組み立て
ロボットの組み立て パチッ
ロボットの組み立て
ロボットの組み立て OK 金具が上向き タイヤが回らない。 うまく入っていない 手でタイヤが回るか、確認をしてください。 モータの軸とタイヤが強く接触し、タイヤが回らない。 → モータホルダからモータを取り外し、付けなおす。 タイヤが回らない。 うまく入っていない 金具が上向き OK 手でタイヤが回るか、確認をしてください。
ロボットの組み立て パチッ 電池ホルダがある面
モータホルダ挿入の注意点 ・モータの端子がはみ出している → モータホルダをはずし、 端子を戻してから基板に付けなおす。 → モータホルダをはずし、 端子を戻してから基板に付けなおす。 ・モータホルダがきちんとつけられていない → モータホルダのつめを基板に引っ掛ける モータの端子がはみ出している。 部品のつめが かかっていない
ロボットの組み立て 電源スイッチ ※電池の向きををまちがえないよう注意!
ロボットの動作確認
モータが回らない場合(原因と対応) 1. 2. 3. モータの端子の接触が悪い。 → モータホルダを取り外し 1. 2. 3. モータの端子の接触が悪い。 → モータホルダを取り外し モータの端子を起こし、付けなおす。 → 裏側よりモータを少しずらしてみる。 接触がよくなる場合があります。 部品のつめが かかっていない モータの端子がはみ出している。 モータを少しずらす。
ライントレースの用紙を広げて、輪のコースを走らせてみましょう ※用紙はなるべく平らになるように手で伸ばしてください。 ロボットを動かしてみよう ライントレースの用紙を広げて、輪のコースを走らせてみましょう センサで黒いラインを認識し、 モータの駆動を制御しています。 ※用紙はなるべく平らになるように手で伸ばしてください。 ※ロボットが机から落ちないように注意!
・順次 ・繰り返し ・分岐 ロボットのプログラミング プログラミングには主に の3つの手順があります。 ・順次 ・繰り返し ・分岐 の3つの手順があります。 ワークシート4ページを埋めてください。
順次処理のプログラム 開始 仕事1 仕事を順番に並べ、一つずつ 実行するようなプログラムを 「順次」のプログラムといいます。 終了 仕事1 仕事2 仕事3 仕事を順番に並べ、一つずつ 実行するようなプログラムを 「順次」のプログラムといいます。 もっとも単純なプログラムです。
車型のアイコン「cl_edit_r.exe」を ソフトウェア BeautoBuilderRの起動 ダブル クリック! 車型のアイコン「cl_edit_r.exe」を ダブルクリックします。 BeautoBuilder Rの画面
パソコンとロボットを接続する 「接続中」になる ※ロボットをケーブルにつないだ状態で グラグラ動かしたりすると、ケーブルの接触が 小さい方はパソコンへ コネクタの接続向きに注意 「接続中」になる 電源はOFF ※ロボットをケーブルにつないだ状態で グラグラ動かしたりすると、ケーブルの接触が 不安定になって通信が途切れることがあります。
前進のプログラミング(順次) 「1.5秒前進」 <ワークシート5ページ 課題1>
プログラムの書き込み 青いメーターが一瞬で右端まで届き、画面が消えたら書き込み終了。 書き込みに10秒以上かかる場合は失敗しているので、 「書込」ボタンを クリック! 書き込みが終わるまで待つ 青いメーターが一瞬で右端まで届き、画面が消えたら書き込み終了。 書き込みに10秒以上かかる場合は失敗しているので、 「中断」をクリックし、一度ケーブルを抜き差しして書き込みなおす
プログラムの実行 机の真ん中 ON←OFF ※ロボットが落ちないよう、 机の中央、または床の上で プログラムを実行してください。 USBよりロボットを抜きます。 ONにすると、すぐに1.5秒間前進 机の真ん中 ON←OFF ※ロボットが落ちないよう、 机の中央、または床の上で プログラムを実行してください。 電源スイッチをONにすると すぐにプログラムが始まる
設定を変更したら、もう一度「書き込み」を行ないます。 【まっすぐに行かない場合】モータ速度の調整 調整 調整 「設定」→「モーターの設定」を選択。 「OK」をクリック 右モーター が速い。 左に曲がる場合、右モーターの数値を 2~3少なくする。「OK」をクリック。 左 右 設定を変更したら、もう一度「書き込み」を行ないます。
課題 15cm前進するプログラムを作ろう 15cm 前進 次の点を整理してプログラミング しましょう。 ①前進の時間をどう設定するか プログラムをスタートしたら、 15cm前進するプログラムを 作りましょう。 15cm 前進 次の点を整理してプログラミング しましょう。 ①前進の時間をどう設定するか スタート <ワークシート5ページ 課題2>
前進のプログラム 時間の変更 命令をクリックすると、 左下の「設定エリア」の 表示が変わります。 ① クリック 表示が 切り替わる 前進のプログラム 時間の変更 命令をクリックすると、 左下の「設定エリア」の 表示が変わります。 ① クリック 表示が 切り替わる クリックすると 進む時間が変わる
前進以外のブロックでは、ロボットがどのように 動作するのか確かめてください。(5分間程度) 他のブロックの動きを確認 前進以外のブロックでは、ロボットがどのように 動作するのか確かめてください。(5分間程度)
【作成例】他のブロックの動きを確認 前進や旋回のブロックを使用、 動作時間を変更する。 <ワークシート5ページ 課題3>
課題 1周するプログラムを作ろう 次の点を整理してプログラミングしましょう。 ①どの命令が必要なのか ②どういう順番でつなげるのか 課題 1周するプログラムを作ろう プログラムをスタートしたら、 1秒間前進して180度回り、 もう一度1秒前進して180度回り、 スタート地点に戻るプログラムを 作りましょう。 180度ターン! 1秒前進 1秒前進 次の点を整理してプログラミングしましょう。 ①どの命令が必要なのか ②どういう順番でつなげるのか ③時間をどう設定するか スタート& ゴール 180度ターン! <ワークシート5ページ 復習1>
課題 解答例 180度ターンは旋回の命令を使います。 課題 解答例 180度ターンは旋回の命令を使います。 180度ターンを行なうには、旋回の秒数を変えながら何度もプログラムを実行して、正しい時間を調べる必要があります。 ◆ロボットが速すぎて動作が安定しない →「モーターの設定」で、動作が安定するまで スピードを落としましょう。 (モータ速度「50」付近) ◆ロボットのモータが動かない →モータの端子の曲げやモータホルダの取り付け を確認しましょう。 →モータのスピードの設定が遅すぎると 動かなくなる場合があるため、 動くまでスピードを上げるように調整しましょう。
繰り返しのプログラミング 5周 1周するプログラムを改造して、ロボットが5周 走るには? <ワークシート6ページ 課題4> 同じ命令を5個並べると作成できますが、手間がかかりプログラムも見づらくなります。 また、もし10周に増やしたい場合は、更に手間がかかります。 このように同じ命令を何度も実行する場合は、「繰り返し」を使います。 一周目 二周目 5周 5周目まで続く…
繰り返しブロックの使い方 繰り返しブロックは、「繰り返しの始まり」と「終わり」の二つがセットになっています。繰り返す回数を自由に設定できます。 繰り返しブロックで挟まれた命令を 設定した回数だけ繰り返します。 繰り返し回数を設定
5周する 繰り返しのプログラミング 課題1で作成したプログラムに 繰り返しブロックを追加してみよう。 課題1を5回繰り返すプログラム 課題1で作成したプログラムに 繰り返しブロックを追加してみよう。 繰り返しの命令を活用すると、効率よくプログラミングできます。 同じような命令がいくつも出てくる場合は、共通する部分を繰り返しの命令でうまくまとめてみよう。 繰り返しは 5回に設定
繰り返しプログラミングの応用 「繰り返し」の中に「繰り返し」を 使うというような複雑な構造も できます。 繰り返しの中で繰り返しを使う プログラム 「繰り返し」の中に「繰り返し」を 使うというような複雑な構造も できます。
繰り返し命令の注意点 繰り返し命令は、「繰り返しの始まり」から「終わり」に 正しくつながらないと、おかしな動作になります。 一度も繰り返さずに終了してしまう 繰り返しのはじめがおかしくなってしまう 繰り返しの途中で止まってしまう
課題 ジグザグに走るプログラム 次の点を整理してプログラミングを行いましょう。 ①どの部分を繰り返すと良いのか 課題 ジグザグに走るプログラム プログラムをスタートしたら、 3回ジグザグに進んで、最後に 1秒前進するプログラムを作り なさい。ただし、必ず繰り返し を使い、前進・右旋回(0.5秒) 左旋回(0.5秒)はそれぞれ 一つしか使ってはいけません。 ゴール 1秒 3回 2回 次の点を整理してプログラミングを行いましょう。 ①どの部分を繰り返すと良いのか ②どの部分を繰り返してはいけないのか 1回 スタート <ワークシート6ページ 課題5>
課題 解答例 最初に右旋回・左旋回の命令をつなげて、それを繰り返しブロックで囲みます。 課題 解答例 最初に右旋回・左旋回の命令をつなげて、それを繰り返しブロックで囲みます。 前進は最後に一回だけなので、繰り返しに入れないように注意。
① ② ③ 【まとめ4】 ①センサ ②コンピュータ ③アクチュエータ ロボットは、 という要素を持っています。 ①.センサ=赤外線センサ 物や床の状況をみる ②.コンピュータ=PICマイコン 命令を覚えたり、行動を考える ③ ③.アクチュエータ=モーター、LED ロボットを動かす。 点灯・点滅する。
本日の内容⑤ ・分岐のプログラム ・様々なライントレースコースに 挑戦!! 開始 終了 仕事1 仕事2 仕事3 【順次】
分岐のプログラミング 条件によって処理の内容を変えたい場合に、「分岐」を使います。 → センサに指を近づけると タイヤが回るプログラミング 分岐のプログラミング 条件によって処理の内容を変えたい場合に、「分岐」を使います。 例えば、自動ドアで は、センサで感知し ドアの前に人がいる場合、「開く」 ドアの前に人がいない場合、「閉じる」 という処理が行なわれています。 次にロボットのセンサを用いた分岐の プログラミングを行ないます。 → センサに指を近づけると タイヤが回るプログラミング 分岐 YES NO 仕事A 仕事B 分岐ブロック <ワークシート7ページ 課題6>
ロボットのセンサとインターフェースについて 赤外線センサを搭載 赤外線センサは、赤外線を出す部分と 反射した赤外線を受ける部分を持ちます。 指 赤外線を出す部分 赤外線を 受ける部分 反射した赤外線を受けて物体を感知する インターフェースが、赤外線センサのアナログ信号を、ロボット内のコンピュータが処理するためにデジタル信号に変換しています。 ※ インターフェースとは情報のやり取りを仲介するもの、その仕組みのこと センサ‐インターフェースA‐コンピュータ‐インターフェースB‐アクチュエータという関係になります。
センサ値の計測 指でセンサを押さえて反応を確かめましょう。 ●センサを指で押さえると、数値はいくつになる? →センサ値[ ] パソコンにロボットを接続するとセンサの値がセンサエリアに表示されます。 センサエリア 指でセンサを押さえて反応を確かめましょう。 ●センサを指で押さえると、数値はいくつになる? →センサ値[ ] ●指をはなすと、数値はいくつになる? → センサ値[ ]
【赤外線センサ メモ】 指 センサと指の距離によって センサ値が変化します。 物体が遠いと反射する赤外線が 減少し、受ける赤外線も減少する。 白熱灯や太陽光には赤外線が多く含まれるため、赤外線センサは、これらの外光によって誤反応する場合があります。 指 赤外線を出す部分 赤外線を 受ける部分
分岐ブロック 【しきい値の決定方法について】 分岐ブロック 【しきい値の決定方法について】 ・指を押さえているとき センサ値=10付近 ・指を離しているとき センサ値=150付近 センサ値は、ノイズや電源の影響で、実際には若干 変化します。 ノイズなどの影響を踏まえ、「指を押さえているとき」と「指を離しているとき」の状態を分けるしきい値は2つのセンサ値の真ん中にするようにします。 しきい値=80 (10+150)÷2=80 10 ~ 80 ~ 150 +70 +70 しきい値
左センサに指を近づけるとタイヤが回るプログラミング しきい値は80 【 左センサ<80 】 ・センサを押さえる(10付近) 前進 左センサが80よりも小さい→「はい」 タイヤ回る ・センサから離す(150付近) 左センサが80よりも大きい→「いいえ」 止まる タイヤが回る 止まる
左センサに指を近づけるとタイヤが回るプログラミング プログラムを繰り返すので ループを使用する。(無限) 設定できたらプログラムを 実行してみましょう。 パソコンからロボットを抜き、 電源をONにします。
課題 左回りのライントレースを作成しなさい。 課題 左回りのライントレースを作成しなさい。 ・左センサを使用します。 ・左センサが白色のとき、前進 ・左センサが黒色のライン上のとき、 どちらに曲がる? 左回り
ライントレース:ラインの計測 白 黒 白・黒や濃淡の計測 白い 黒い 黒色は光を吸収する性質が あるため反射光が少なくなります。 白 黒 白・黒や濃淡の計測 白い 黒い ●白色・黒色ではセンサの値は いくらになりますか? 白色 → センサ値[ ] 黒色 → センサ値[ ] ●グラデーションのところでは どのように数値が変化する? 黒色は光を吸収する性質が あるため反射光が少なくなります。
ライントレース(左回り):分岐動作について 【カーブに来たとき】 左センサにラインが かかれば、左に曲がる 左センサ=160 (黒) ラインにかからない 場合、そのまま前進 左センサ=10 (白) 左センサが白の上(85より小さい) → 前進 左センサが黒の上(85より小さくない) → 左旋回
繰り返しの設定 同じ動作をずっと 繰り返しさせたいので、 Loopは「無限」の 繰り返しで設定する。
センサへの反応を早める方法 前進(1.5秒)または左旋回(1.5秒) している間は、センサで検知されない。
センサへの反応を早める方法 前進(1.5秒)というブロック 実は、3つのブロックから出来ています。 「前進」+「3秒続ける」+「止まる」 前進(1.5秒)を「前進」のみにすることで 無駄な処理がなくなり、 センサへの反応を早めることが出来ます。 (左旋回も同様です。)
センサへの反応を早める方法 「前に進む」をチェックする 「左に曲がる」をチェックする
ライントレースのプログラミング(左回り) ライントレースさせてみましょう
課題 解答例 右センサを使用 ・右センサが白色のとき → 前進 ・右センサが黒色のライン上のとき → 右旋回
課題 S字のライントレースを作成しなさい。 <ワークシート7ページ 課題8>
課題 ヒント ライントレースを行なう際、ロボットには4つの状況があります。 左センサが白 右センサが白 ⇒前進 左センサが白 右センサが黒 課題 ヒント ライントレースを行なう際、ロボットには4つの状況があります。 左センサが白 右センサが白 ⇒前進 左センサが白 右センサが黒 ⇒右旋回 左センサが黒 右センサが白 ⇒左旋回 左センサが黒 右センサが黒 ⇒停止
課題 ヒント 左センサで計測してから、 右センサで計測するようになっています。
課題 答え① 白・白 前進 白・黒 右旋回 黒・白 左旋回 黒・黒 停止
課題 答え②
課題 白黒が逆転したライントレース(左・右周り) 課題 白黒が逆転したライントレース(左・右周り) <ワークシート8ページ 課題10>
ヒント 白黒が逆転したライントレース 左センサが白 右センサが白 ⇒前進 左センサが白 右センサが黒 ⇒左旋回 左センサが黒 右センサが白 ヒント 白黒が逆転したライントレース 左センサが白 右センサが白 ⇒前進 左センサが白 右センサが黒 ⇒左旋回 左センサが黒 右センサが白 ⇒右旋回 左センサが黒 右センサが黒 ⇒前進
解答例1 白黒が逆転したライントレース 白・白 前進 白・黒 左旋回 黒・白 右旋回 黒・黒 前進
解答例1 白黒が逆転したライントレース
解答例2 白黒が逆転したライントレース 白 黒 白 黒 「小さい値?」のとき 白の上 センサ値10=[はい]の方向へ 解答例2 白黒が逆転したライントレース 白 黒 白 黒 「小さい値?」のとき 白の上 センサ値10=[はい]の方向へ 黒の上 センサ値160=[いいえ]の方向へ 黒 白 「大きい値?」に変更すると 黒の上 センサ値160=[はい]の方向へ 白の上 センサ値10=[いいえ]の方向へ
GOAL 課題 START 自分でコースを考え、クリアするためのプログラムを作成しなさい。 課題 自分でコースを考え、クリアするためのプログラムを作成しなさい。 黒のビニールテープや黒のマジック(2cm幅)は、認識可能です。 START 直線コース 黒いゴールエリアで ストップする GOAL
【まとめ5】 コンピュータは、順次や繰り返し・分岐などのプログラムによって 処理を行ない、我々の生活において計測や制御で重要な役割を 果たしています。 今後もコンピュータの発展に伴い、生活に役立つたくさんの コンピュータ制御機器が出てくることでしょう。