平成25年2月16日(土)午前10時〜12時、中央公民館3階の学習室に於いて、当NPO法人が主催する先月に続く第2回目の『子どもロボット工作教室』を開催した。 先月は個人所有のPCにIDEソフトをインストールする事と、簡単なプログラム(スケッチの中からサンプルソフトを動かす)を使って、LEDを点滅させる実験を行った。そして2時間の講座の後、講師から宿題としてArduino基盤とブレッドボードを接続して、自宅でモーターを回す実験をするように部材を与えられた。 そして、第2回目となる2月の講座では主にプログラムについての説明が1時間ほど行われた。講師の方から何度も、説明でわからないところがあればいつでも質問をしてくださいと言っても、なかなか子ども達からは質問が出なかった。小学生低学年の子どもさんは、説明を聞いても理解が難しく興味がなさそうだった。 説明内容は以下の通り @マイコンボードArduinoについて ・USB端子と外部電源端子 ・デジタル入出力端子 ・アナログ入出力端子 ・電源端子とGND端子 ・ほかのタイプのArduino
AArduinoプログラミング ・define文 ・プログラムの例 ・DEFINE文について ・変数の初期設定 ・SETUP関数 ・入出力関数 ・DELAY関数 ・条件分岐 IF分、IF ELSE文 ・条件分岐の事例 ・比較演算子
@とAの説明を講師から聞いても、おそらく子どもたちにとってはチンプンカンプンであろう。今は呪文の様な事でも、だんだん実際にロボットを組み立てて設計通りに動かしていくためには、その内一つ一つの意味や動作の指示方法をこのプログラミング学習から、必要に応じて子どもたちが身に着けていくのではないかと思っている。 一応、講師の方の説明が終わって、やっと前回宿題としていたモーターを回す宿題については、残念ながら自宅でこの宿題を解いた子どもはいなかった。 講師やアシスタントの人たちの助けを借りながら、まず前回配ったモーターを回転させるための部材を机の上に取り出して、実体配線図を見ながら電子回路組み立てていく。半田こてを使う必要もなく、線材や部品をブレッドボードの上に配置していくだけなので、小学校低学年の子どもできる。 早速、組み立てた電子回路とモーターをつないで、プログラムをPCからArduino基盤に転送して、実際にモーターを回すようになると、とたんに子どもたちの目は生き生きとして組み立てに没頭していた。 2時間ほどの講座もあっと言う間に過ぎてしまって、次回までに新しい宿題が与えられた。それは光センサー(CdSセンサー)とMOSトランジスターを使って、電池の電圧を制御してモーターを一定時間回転と停止を繰り返すプログラムに、今度はCdsセンサーを組み合わせて、光が当たっている間は、プログラム通り一定間隔でモーターが回転したり、停止する動作を繰り返す。そしてCdSセンサーの上に手をかざして、光を遮るとモーターはその間停止する。手をよけて再びCdSセンサーに光が当たると、モーターは先ほどの動作を繰り返す。 以下は、CdSセンサーを使って、モーターの回転を停止させたり回転させたりするプログラムである。 //EXAMP : Rotation of Motor controled by CdS diode #define X 11 #define Y 13 int val = 0; void setup() { pinMode(X, INPUT); pinMode(Y, OUTPUT); } void loop() { val = digitalRead(X); if (val == HIGH) { digitalWrite(Y, HIGH); delay(2000); digitalWrite(Y, LOW); delay(2000); } else { digitalWrite(Y, LOW); delay(4000); } }
プログラミングと回路組立の手順: プログラムを書くときにはAruduinoのIDEソフトをご自分のPCから立ち上げて、画面の「ファイル」を開いて「新規ファイル」をクリックします。 @ すると新しい何も書かれていない白い画面が表示されて、そこにsketchのファイル名=sketch_feb17a(名前が自動的に付けられますので皆さんのPCで付けられたファイル名が同じでなくても構いません)が自動的に付けられます。 A 次に、同封をした「宿題について」の書類の中にモーターを光センサーで回したり止めたりするプログラムが書かれていますので、それを@で開いた新しい画面にご自分のPCから入力してください。 B プログラムを書くときには、少しでも記入間違いがあるとプログラムは完成しません。 正しく記入されたプログラムが出来たら、そのプログラムをArduinoに送るためのコンパイル(機械語に翻訳)します。 C IDEソフト(Arduino)の上部のメニュー画面に「スケッチ」ボタンがありますので、これをクリックすると「検証・コンパイル」のサブメニューが表示されます。そしてこの「検証・コンパイル」をクリックすると、書いたプログラムをコンパイルしてくれます。画面下部にコンパイルしている状況が、緑の棒で示されます。正しくコンパイルできれば「コンパイル後のスケッチサイズ:1,286バイト」と表示されるはずです。もし、プログラムの記入が間違っていると赤い文字で表示が出るので、その時は再度入力したプログラムに間違いがないか確認して、間違っていれば修正して、再度「検証・コンパイル」を実行してください。 D 正しくプログラムがコンパイルされたら、今度はこのプログラムに名前を付けて保存をしてください。 E 保存方法は「ファイル」→「名前を付けて保存」をクリックします。スケッチフォルダーの保存先を指定する画面が開きますので、「ファイル名」の欄にプログラム名を入力して「保存」ボタンをクリックします。 F これで、モーターを回転・停止させるためのプログラムはスケッチとして保存されました。Arduino基盤にこのプログラムを転送するときはUSBケーブルでPCとArduino基盤をつないで、メニュー画面の上部にある丸いで囲まれた⇒矢印にマウスを載せると「マイコンボードに書き込む」が表示されるので、これをクリックすればプログラムはArduino基盤に転送されます。 G 次に実体配線図の通りに光センサーと半導体、モーターを結線(配線)してください。配線の色はもし、同じ長さで同じ色の線材が無くても他のもので代用しても構いません。また同封した説明書の中に5KΩの抵抗が一本入っていますので、それを使って配線してください。ブレッドボードに光センサーと保護用の抵抗をつなぐことを忘れないでください。 (注)同封した実体配線図は、ブレッドボードの上下に電源端子(+と-極)がありますので、皆さんのお使いのブレッドボードとは異なりますので配線に注意してください。 もし、うまく動作しない場合は「かまがや地域情報の窓」HPに第2回子どもロボット工作教室として配線をしたものや、実際に動かした様子を掲載しておきます。 H 実体配線図通りに配線が出来たら、Arduino基盤の端子に指示通り結線してください。 手順: (1) X 11端子 (2) Y 13端子 (3) GND 端子 (4) 5V端子 (5) モーターの片方(赤)を電池の3V端子につなぎ、もう片方(青)をトランジスターの真ん中の端子に繋がっている穴にリードを挿入します。 (6) ブレッドボードの上部にあるピンに電池のプラス(赤)とマイナス(黒)をそれぞれ接続します。光センサーが動作する電圧は3Vでないと正常にON OFF機能が働きませんのでご注意ください。
以上でArduino基盤とブレッドボードを接続すれば、モーターは回転するはずです。光センサーの上に手をかざすと光が遮られるので、その間はモーターの回転は停止します。手をセンサーの上から外すとモーターは回転し、先ほどの回転と停止の動作を繰り返します。 (レポート:S.K) |