情報テクノロジー第6回 センサーを使ってみよう。

社情や情科も進んではいるんですが更新が追いつかず。
Webベースで授業すると自分でも振り返ったり、まとめるのが楽で良いなあ(本音
コレはおそらく生徒も一緒だと思います。

G-suite、なかなかどうして良いのでは!?


さて、第6回です。
今まではArduinoの使い方、出力の仕方、PWMについて、を学びましたので、
次は入力です。主に超音波センサーの信号を受信してみよう、という物でした。
例によって、課題をそのまま記載します。
サンプルコードは
http://deviceplus.jp/hobby/entry016/ さんの物を参考に一部加工したものです。


超音波センサーを使ってみよう。
【sensor】
#define trigPin 2
#define ehoPin 3

double Duration = 0; //受信した間隔
double Distance = 0; //距離
void setup() {
Serial.begin( 9600 );
pinMode( echoPin, INPUT );
pinMode( trigPin, OUTPUT );
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite( trigPin, HIGH ); //超音波を出力
delayMicroseconds( 10 ); //
digitalWrite( trigPin, LOW );
Duration = pulseIn( echoPin, HIGH ); //センサからの入力
if (Duration > 0) {
Duration = Duration/2; //往復距離を半分にする
Distance = Duration*340*100/1000000; // 音速を340m/sに設定
Serial.print(“Distance:”);
Serial.print(Distance);
Serial.println(” cm”);
}
delay(500);
}

まずは実装!!

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
課題1
距離が測定できている時に、LEDを光らせてみましょう

課題2
距離が一定数(50㎝とか)以上近付いた場合、LEDを光らせてみましょう


ここまででした。
今回はプログラム班と回路班を入れ替え、相互に教え合いながら作業させました。
※普段4~6名の各グループ内で役割分担をしている
※プログラムと回路それぞれ2~3人ずつの配置

流石に最初は難航し、お互いがお互いに思うようにいかずモヤモヤしていたようですが、15分もしたら完全に熱中して真剣に取り組んでおりました。

しかし、流石に時間ロスが大きく、課題1までが限界だったようです。
休み時間も使いましたが、課題2まで終わった班は皆無でした。
※まあ、IF文をきちんと復習していない所為でもある。

彼らが2年時に既習しているのはJavaScript,
今使っているのはC++。

そりゃあスンナリいかないよね。

でもいいんです。
色々ぶつかって、間違えに間違え尽くして、学習していただきたい。

なお、今回一番多く見られたミスは、
「pulseIn」のIが大文字ではなく小文字だったり、Lの小文字だったりしたことです。
私としてはコピペでも良いと言っているのに・・・。
まあでも、コレで次は間違えないね!

最後に例のごとく、提出された動画を載せておきます。
「距離が測れていると分かるように撮影しなさい」
と言いましたが、時間も無い中でなかなか難しかったようです。

うーん、撮影も惜しい!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です