光センサの使い方

ボールを見つけよう
光センサーの使い方
室蘭工業大学
情報工学科 B3 佐々木 一洋
http://d.hatena.ne.jp/dustytrombone
JRS2007
AGENDA
•  プログラムの保存
•  プログラムを印刷する
1. 
2. 
3. 
4. 
光センサーとは
光センサーの使い方
条件分岐とループ
しきい値を測定する
JRS2007
第1話
光センサーとは
JRS2007
はじめまして
光センサーです
JRS2007
光センサーは
明るさを
数値で表す
JRS2007
明るい → 数字が大きい
暗い → 数字が小さい
JRS2007
1が最も暗い
100が最も明るい
JRS2007
20
暗いとき
JRS2007
80
明るいとき
JRS2007
80
ボールから赤外線
JRS2007
80
センサーがボールの方を向いている
JRS2007
30
センサーがボールの方を向いていない
JRS2007
実験!!
JRS2007
センサーを蛍光灯に向けて
値が大きくなるのを確かめよう。
JRS2007
第2話 光センサーの使い方
JRS2007
80
ボールから赤外線
JRS2007
80
センサーがボールの方を向いている
JRS2007
30
センサーがボールの方を向いていない
JRS2007
ボールを見つけるには?
JRS2007
ロボットの向きを変えながら
センサーの値が大きいところを探す
JRS2007
暗い
暗い
明るい
回転しながら
→ボールを
発見
明るいところ
を探す
JRS2007
ロボットの向いている方向を調べるには?
JRS2007
30
80
暗い
明るい
サッカーフィールド
JRS2007
明るくなっていく
サッカーフィールド
センサーの値
60 55 52 40 30 12 5 0
JRS2007
グラデーションの検出は明日
JRS2007
休憩
JRS2007
第3話 条件分岐とループ
∼条件分岐篇∼
JRS2007
条件分岐ってなに?
JRS2007
何らかの条件が成立したときだけ
文の並びを実行する制御構文
フリー百科事典 WikiPediaより
JRS2007
C言語では・・・
JRS2007
#include<stdio.h>
int main(int argc,char *argv){
int count = 10;
while(count--) {
if(count %3 == 0){
printf( fizz\n
}
else{
printf( buzz\n
}
}
}
JRS2007
);
);
難しい??
JRS2007
たとえば・・・
JRS2007
明日は日曜日、
JRS2007
晴れ
もし
ならば
水族館
JRS2007
もし
雨
ならば
家でゲーム
JRS2007
つまり・・・
JRS2007
もし
○○○
ならば
△△△する
これが分岐
JRS2007
図で書いてみると・・・
JRS2007
NO
天気が良いか??
YES
水族館に行く
JRS2007
ゲームをする
ロボットに応用すると?
JRS2007
その前におさらい
JRS2007
80
センサーがボールの方を向いている
→明るい
JRS2007
30
センサーがボールの方を向いていない
→暗い
JRS2007
暗い
暗い
明るい
回転しながら
→ボールを
発見
明るいところ
を探す
JRS2007
ボールが見つからない→暗い
ボールを発見→明るい
JRS2007
方向転換
直進
条件分岐
この3つを使ってボールを探す
JRS2007
暗い
突進!!
暗い
明るい
→ボールを
発見
回転中
JRS2007
これを文章にすると・・・
JRS2007
もし
センサーが明るい
ならば
直進する
そうでなければ
向きを変える
JRS2007
センサーが明るいか?
NO
YES
直進する
JRS2007
向きを変える
次はROBOLABで
JRS2007
関数パレットから
ストラクチャ
を選択
JRS2007
分岐
を選択する
JRS2007
光センサー分岐
を選択する
JRS2007
前に進む
左右同じ
向きを変える
左右逆向き
JRS2007
分岐合流
を選択する
JRS2007
前に進む
左右同じ
向きを変える
左右逆向き
JRS2007
さらにループを追加する
JRS2007
JRS2007
第4話
しきい値を
測定する
JRS2007
ところで・・・
JRS2007
センサーの値が
どのくらいのときに
「明るい」
と
判断したらいいのか?
JRS2007
30は明るい?
50は暗い??
JRS2007
明るい、暗いの境目→しきい値
センサーの値
60 55 52 40 30 12 5 0
明るい
暗い
JRS2007
実験!!
JRS2007
ボールを見つけるために
ちょうど良い
しきい値を
調べよう
JRS2007
本日のラスボス
JRS2007
ボールを探して追いかける
プログラムを作れ!!
JRS2007
ヒント
•  条件分岐とループを使う
‒  ボールが見つかれば直進
‒  見つからなければ方向転換
•  明るい→しきい値より大きい
•  暗い→しきい値より小さい
JRS2007
解答例
JRS2007
JRS2007
おつかれさまでした
•  置いていくもの
‒  カード
‒  名札
•  持って帰るもの
‒  テキスト
JRS2007