ガイド · 読了まで19分

プログラミング授業のウォームアップ:Arduinoですぐ使える15のアイデア

Arduinoやロボットプログラミングの授業の最初の10分に使えるウォームアップを紹介します。準備不要の15のアイデア、テーマ別の対応表、8週間の計画つきです。

いちばんよいプログラミング授業のウォームアップは、その日のテーマに直接つながり、準備がいらず、教室の全員が同時に参加できる5〜10分の短い課題です。Arduinoの授業なら、黒板に書いた4行のコードが何をするかを予想する、生徒と一緒にsetup()とloop()を演じる、抵抗のカラーコードの帯を読む、1行だけのバグを見つける、といった活動が考えられます。ウォームアップの目的は楽しませることではありません。散らばった注意を集め、授業の本当の問いへの橋をかけることです。信号機を作る日なら「黄色の光はなぜ一瞬しか点かないのでしょう?」と問いかけ、ボタンの授業ならストップ&ゴーのゲーム、LDRの授業ならセンサーの値を予想してもらいます。

この記事はアクティビティ集です。まず15のウォームアップの所要時間、用意するもの、進め方、ねらいとする考え方を1つの表にまとめ、続いてそれぞれの具体例、どの週のテーマにどのウォームアップが合うかを示す対応表、BlueGraysアプリをプロジェクターに映してウォームアップを行う方法、遠隔授業向けの版、そしてコピーして使える8週間のウォームアップ計画を紹介します。例は生徒24人、40分のArduino Unoの授業を想定しており、どれも黒板、プロジェクター、または数枚の紙があればできます。週ごとのテーマの順番は「8週間のロボットプログラミング授業計画」を、レベルの違う生徒を同じ授業で進める方法は「さまざまなレベルが混ざったクラス」の記事を参考にしてください。

ウォームアップの選び方:4つの原則

たとえば、休み時間から戻った24人の生徒がばらばらに教室に入ってくるとします。半分はまだ前の授業の話をしていて、何人かはキットの箱を早く開けたくてうずうずし、1人はスマホを見ています。最初の10分で行う活動は、このエネルギーを授業のテーマに向けなければなりません。そのために、各ウォームアップを次の4つの基準で選んでください。どれか1つでも満たさない活動は、授業の始めよりも、授業の終わりやクラブの時間に向いています。

  • テーマとつながっている:ウォームアップは、その授業で出てくる考え方の小さな予告編であるべきです。ボタンとif/elseを扱う日はストップ&ゴーのゲーム、forループを扱う日はループダンスにします。テーマと関係のないなぞなぞはクラスを目覚めさせますが、授業が始まると結局ゼロから説明し直すことになります。
  • 5〜10分:タイマーをセットし、残り時間を生徒にも見せましょう。40分の授業で10分を超えるウォームアップは、回路を組んでテストする時間を奪います。一方、3分のウォームアップは、たいてい出席確認のように過ぎてしまいます。
  • 全員が参加する:1人の生徒が黒板で答え、残りの23人が見ているだけの活動はウォームアップではありません。全員が何かを書く、指で示す、席から立つといった形式を選びましょう。予想を書く紙、ミニホワイトボード、手の合図、ペアでの話し合いなどです。
  • 準備不要、または長くても2分の準備:このアクティビティ集の大半は、黒板に書く数行か、プロジェクターに映す1画面でできます。カードや図が必要なものは一度印刷すれば、1年中使えます。

どのウォームアップも、1つの橋渡しの文で終えましょう。「今、delay(300)を0.3秒と読みましたね。今日はこの数字を自分たちで変えます。」この一言がウォームアップと授業の残りをつなぎ、なぜこのゲームをしたのかを生徒に伝えます。ウォームアップを成績に使ってはいけません。間違った予想こそ、ウォームアップから得られるいちばん価値のあるデータです。誰がどの考え方でつまずいているかがわかるので、授業が始まったら最初にその生徒の机へ行けます。ウォームアップで出た間違いを黒板の隅にメモしておくと、授業の最後のまとめの質問も選びやすくなります。

いちばん多い失敗は、ウォームアップを長引かせることです。生徒が楽しんでいると「もう1回!」という声が上がり、10分がいつの間にか20分になります。見えるタイマーを使い、時間になったらいちばん盛り上がっている瞬間でも止めて、残った問題はまとめの質問に回しましょう。途中で終わったゲームは、次の授業の最初の1分を自然に温めてくれます。

15のウォームアップ:すぐ使えるアクティビティ集

表の所要時間は24人のクラスの場合です。用意するものの列が「なし」のものは黒板とペンだけでできます。「プロジェクター」とあるものは、スマホやタブレットの画面をプロジェクターに映すだけでよく、生徒がスマホを開く必要はありません。最後の列は、その活動がその日のどの考え方の準備になるかを示しています。続く4つのセクションでは、活動を種類ごとにまとめ、それぞれを具体例で説明します。

アクティビティ時間用意するもの進め方準備になる考え方
1.人間Arduino8〜10分カード4枚(setupとloopのステップ)1人がArduinoになってカードを読み、もう1人がLEDになります。HIGHで手を上げ、LOWで手を下げます。setupのカードは1回だけ、loopのカードは何度も繰り返し読みます。setup()とloop()、命令の順番
2.予想しよう:このコードは何をする?5〜7分プロジェクタープロジェクトの「コードを理解」にあるコードの一部を、解説を読む前に見せます。全員が予想を書き、そのあと解説を一緒に読みます。コードの読み方、delay()、変数
3.カラーコード競争6〜8分ペアごとに抵抗5本、または黒板に色の並び5つペアで帯を読んで値を書き、結果をプロジェクターの「カラーコード」ツールで確認します。抵抗、Ωとk Ω
4.バグを探せ5分なし間違いのある1行を黒板に書きます。30秒黙って考えたあと、全員が同時に間違いの場所を指さします。構文、コンパイルエラー
5.今日の1問5分プロジェクター「今日のクイズ」のセットから1問を一緒に読み、全員が指で選択肢を示し、多数派の答えをタップします。その日の問題のテーマ
6.ブロックからコードへ7〜10分プロジェクタープロジェクトの「ブロックで表示」の画面を映します。ペアで同じプログラムをC++の行で紙に書き、本物のコードと比べます。ブロックとテキストのコードの対応
7.オームの三角形6〜8分なし黒板にV、I、Rの三角形を描き、3つの短い問題を出します。最後の1問はLEDの抵抗の計算です。V = I × R、LED用の抵抗
8.ピン探し5〜7分Arduino Unoのボード「PWMピンを示して」「アナログ入力を示して」などの指示に合わせて、ペアがボード上のピンを指さします。デジタル、PWM、アナログ、電源のピン
9.ストップ&ゴーの合図ゲーム5〜7分なし黒板にルールを書きます。「もし手が上がっていたら立つ、そうでなければ座る。」ルールは毎回少しずつ変わります。if / else、条件
10.ループダンス5〜7分なし黒板のforの行に従って、クラス全員が1周ごとに1回手をたたき、カウンターの値を言います。そのあと上限と増分を変えます。forループ、カウンター、配列の範囲
11.センサーの値当て6〜8分先生の机に組んだLDRの回路、プロジェクターにシリアルモニタ画面を隠したまま3つの状況でのLDRの値を予想し、そのあと画面を見せます。analogRead()、0〜1023の範囲
12.間違い回路図6〜8分印刷した、または黒板に描いた間違いのある回路わざと3つの間違いを入れて描いた回路で、ペアが間違いを丸で囲み、直し方を書きます。回路の読み方、LEDの向き、ピンとコードの一致
13.millisをひと言で5分付箋全員がmillis()をひと言で書き、付箋を黒板でグループに分けて話し合います。タイミング、delay()との違い
14.ミニ発表:前回のプロジェクト6〜9分生徒の回路やスマホ事前に選んだ3人が前回の授業のプロジェクトを1人2分ずつ発表し、クラスは発表ごとに1つ質問します。思い出す力、説明する力
15.逆からまとめの質問5分なし前回のまとめの質問の答えを黒板に書き、生徒が元の質問を考えます。前回の授業の復習

コードを読むウォームアップ:予想、バグ、ひと言

予想しよう:このコードは何をする?は、準備がいちばん少なく、いちばん効果のあるウォームアップです。材料がすでにそろっているからです。BlueGraysでは、どのプロジェクトにもコードを理解タブがあり、そのステップごとの解説でコードを部分に分け、それぞれの下に説明を付けています。たとえば無料の信号機プロジェクトには、4行からなるステップがあります。ピン2とピン4にLOW、ピン3にHIGH、続いてdelay(300)です。この部分を黒板に書くか、プロジェクターでコードだけが見えるように拡大して、「どのLEDが何秒点きますか?」と聞きます。全員が答えを書いたら、解説を一緒に読みましょう。解説には、黄色は0.3秒しか点かないこと、本物の信号機ではもっと長く点いていることが書かれています。橋渡しの文は自然に出てきます。「今日はこの時間を変えましょう。」同じプロジェクトの自分で試すの課題でも、青(緑)のあとの黄色を1.5秒にするよう求めているので、ウォームアップがそのまま授業の最初の課題になります。

バグを探せでは、黒板に1行だけ書きます。全員が30秒で読めるよう短くしましょう。まず30秒黙って考え、それから全員が同時に、指で、または紙に印をつけて間違いの場所を示します。答えは先生が言わないでください。正しく見つけた生徒に、Arduino IDEがどんなメッセージを出すかを予想してもらいます。次の5行は、初心者の授業でとくによく見かける間違いで、それぞれ何が起きるかを添えています。コンパイルエラーが画面でどう見えるかはexit status 1の記事にまとめました。

  • digitalWrite(13, HIGH)の行末にセミコロンがない:コンパイラはたいてい次の行でエラーを報告するので、生徒は違う行を見てしまいます。
  • digitalwrite(13, HIGH);が小文字のwで書かれている:Arduinoは大文字と小文字を区別するため、「'digitalwrite' was not declared in this scope」(宣言されていない)というエラーになります。
  • if (value = 50)のイコールが1つだけ:コードはコンパイルできますが、valueに50が代入され、条件は毎回真とみなされます。比較には==が必要です。
  • for (int i = 0; i < 6; i++);のかっこの後にセミコロンがある:ループの中身が空になり、下の波かっこの中でiを使っているので、コンパイラは「'i' was not declared in this scope」(宣言されていない)と表示します。
  • if (analogRead(A0) > 1100)はけっして真になりません。Arduino UnoのanalogRead()が返す値は最大1023だからです。コードはコンパイルできるのにLEDがまったく点かない、いちばんやっかいな種類のバグです。

millisをひと言では、タイミングの授業の前に、生徒の頭の中にあるイメージを引き出します。全員に付箋を1枚配り、「millis()と聞いて思い浮かぶ言葉を1つ書いてください」と言います。出てくる言葉はたいてい3つのグループに分かれます。「時計」「ストップウォッチ」「カウンター」のように正しい方向のもの、「待つ」「止まる」のようにmillis()をdelay()と混同しているもの、そして「わからない」です。付箋を黒板でこの3つに分けて集め、1文でまとめます。millis()はボードが起動してから何ミリ秒たったかを教えてくれるもので、ボードを止めません。詳しくは「millis()とdelay()の違い」の記事にあります。逆からまとめの質問は前回の授業の復習です。前回のまとめの質問の答え、たとえば「しきい値を大きくするほど、それほど暗くならなくてもLEDが点く」を黒板に書いて、「質問は何だったでしょう?」と聞きます。質問を組み立て直すうちに先週の考え方を思い出し、正しい質問が複数出てくれば、短くて有意義な話し合いになります。

体を動かすウォームアップ:人間Arduino、ストップ&ゴー、ループダンス

人間Arduinoは、最初の授業で、画面を使わずにプログラムがどう動くかを見せます。カードを5枚用意します。「setup:ピン9を出力にする」「loop 1:ピン9にHIGHを書き込む」「loop 2:心の中で3つ数える」「loop 3:ピン9にLOWを書き込む」「loop 4:心の中で3つ数える」。1人がArduinoになってカードを声に出して読み、もう1人がピン9のLEDになります。HIGHで手を上げ、LOWで手を下げます。Arduino役はsetupのカードを1回読んだら脇に置き、loopのカードは順番に何度も繰り返し読みます。3周したら「setupのカードはなぜもう一度読まれなかったのでしょう?」と聞きます。次に「3つ数える」のカードを2枚とも外します。LED役の生徒はものすごい速さで手を上げ下げしなければならず、クラスは笑い出します。これが、待ち時間がないとLEDが点滅ではなく、暗めに点きっぱなしに見える理由を説明するいちばん簡単な方法です。カードは無料のLEDの点滅プロジェクトのコードと1行ずつ一致しています。別のピンを担当する2人目のLED役を加えると、2個のLEDを点灯プロジェクトへの橋渡しになります。

ストップ&ゴーの合図ゲームは、if/elseを体で練習するものです。黒板に「もし先生の手が上がっていたら立つ、そうでなければ座る」と書きます。最初の2回は簡単です。3回目はルールを「もし手が上がっていて、かつ赤いペンを持っていたら」に変え、4回目はelseの部分を「そうでなければ右手を上げる」に変えます。間違った動きはどれも、条件かelseの部分を読み違えたことを示します。最後に、ボタンの授業ではif (digitalRead(13) == HIGH)の行で同じ構造に出会うと伝えて終えましょう。この行は、無料のボタンでLEDを点灯(押している間のみ)プロジェクトの条件そのものです。ループダンスはforループ用です。黒板にfor (int i = 0; i < 4; i++)と書き、クラスは1周ごとに1回手をたたいてiの値を大きな声で言います。0、1、2、3。次にi < 4の代わりにi <= 4と書き、「何回たたく?」と聞きます。そのあとi++の代わりにi = i + 2にします。この2つの変更で、配列を扱うときの典型的な「1つずれ」の間違いを前もって捕まえられます。流れるLEDプロジェクトの6個のLEDを使うforループに進むと、生徒は自分でi < 6と書く理由を説明します。配列には0から5まで6つの要素があるからです。

体を動かすゲームでは机をそのままにしておきましょう。ストップ&ゴーは座ったままでもできます(立つ代わりに両手を机に置きます)。ルールは毎回黒板に書いたままにしておきます。生徒が記憶ではなく黒板を読んでルールを当てはめれば、ゲームは本当にコードを読む練習になります。人数の多いクラスでは、LED役とArduino役を毎回違う生徒に任せ、見ているだけの人が出ないようにしましょう。

回路と計算のウォームアップ:カラーコード、オーム、ピン、回路図、センサー

カラーコードの帯が見えるカーボン皮膜抵抗
カラーコード競争には5つの値で十分です:220 Ω、330 Ω、1 kΩ、4.7 kΩ、10 kΩ。

カラーコード競争は、キットの抵抗を紹介するいちばん手早い方法です。各ペアに抵抗を5本配るか、黒板に色の並びを5つ書きます。赤・赤・茶(220 Ω)、橙・橙・茶(330 Ω)、茶・黒・赤(1 kΩ)、黄・紫・赤(4.7 kΩ)、茶・黒・橙(10 kΩ)です。ペアは3分で値を書き、そのあと無料の「カラーコード」ツールを使ってプロジェクターで一緒に確認します。帯を選ぶと値が画面に表示されます。この競争のポイントは読む向きです。4本目の帯はたいてい金色で、その反対側から読み始めます。このウォームアップを最初の回路の授業の前に行えば、220 Ωと10 kΩを取り違えて、LEDがまったく点かない、またはとても暗く点くという問題がほとんどなくなります。

オームの三角形では、黒板に三角形を描き、上の角にV、下の角にIとRを書きます。指で隠した文字が求める量です。Rを隠すと、VをIで割った形が残ります。続いて3つの問題を出します。5 Vの電源につないだ250 Ωの抵抗には何ミリアンペア流れるでしょう?(20 mA。)9 Vの電池で30 mAを流したいなら、抵抗はいくつにすればよいでしょう?(300 Ω。)最後の問題はその日の授業につながります。5 Vのピンで、約2 Vが降下する赤色LEDに20 mAを流したいなら、抵抗は(5 − 2) / 0.02 = 150 Ωです。キットに150 Ωがなければ、1つ上の220 Ωを使います。電流は約14 mAに下がりますが、LEDは十分明るく点きます。結果は無料の「オームの法則」ツールと「LED用抵抗」ツールで確かめましょう。オームの法則にまる1回の授業を使いたい場合は、「オームの法則の授業アクティビティ」の記事にすぐ使える計画があります。ピン探しは、ブレッドボードに進む前にボードを紹介する活動です。「PWMピンを示して」(Unoでは~の印がある3、5、6、9、10、11)、「アナログ入力を示して」(A0〜A5)、「パソコンと通信する2本のピンを示して」(0と1、RXとTX)、「GNDを示して」。指示のたびにペアが自分のボードのピンを指さし、先生は机の間を回って確認します。ボード全体は「Arduino Unoのピン配置」の記事で解説しています。

間違い回路図は、回路を読むことをゲームに変えます。LEDの回路を、わざと3つの間違いを入れて描きます。LEDが逆向き(短い足がピンにつながっている)、抵抗がまったくない、そしてLEDはピン9につながっているのに、その下に書いたコードはピン13を点灯させる、という3つです。ペアは間違いを丸で囲み、それぞれの横に直し方を書きます。3つとも見つけたペアは黒板に来て、そのうち1つを説明します。いちばん価値があるのは3つ目の間違いです。回路とコードが一致していなければならないことを示すからです。回路図の記号をまだ知らないクラスでは、先に「回路図の読み方」の記事に目を通しておきましょう。センサーの値当てはアナログ読み取りの準備になります。授業の前に、無料のLDRで光の強さを測定プロジェクトの回路を自分の机に組んでおきます。コードは0.5秒ごとにLDRの値をシリアルモニタに表示します。画面を隠したまま、3つの状況での予想を聞きます。教室のふだんの明るさ、LDRを手で覆ったとき、スマホのライトを近づけたときです。予想は0から1023の間になるはずです。この範囲を知らない生徒は5000や-20と書き、まさに学ぶべきことが見えてきます。この回路ではLDRが5 V側にあるので、光が強いほど値が大きくなります。正確な数字は部屋によって変わるため、3つの予想の順番を正しく並べたペアの勝ちとします。

アプリと共有のウォームアップ:今日の1問、ブロックからコードへ、ミニ発表

今日の1問のウォームアップでは、BlueGraysの今日のクイズを使います。毎日00:00に5問の新しいセットが届き、問題は概念、コードの出力、バグを探す、回路、計算、ブロックなど10種類から選ばれます。スマホをプロジェクターに映し、セットの次の問題を開いてクラスに読み上げます。全員が30秒考え、同時に指で選択肢を示します。指1本がA、2本がB、3本がC、4本がDです。多数派の答えを先生がタップすると、アプリがすぐに正解を短い解説つきで表示します。問題の下にこの問題の出典プロジェクトのカードが出たら、そのプロジェクトを開き、問題に出てきた行を本物のコードの中から一緒に探しましょう。トピックカードのリンクからは、コードガイドの該当するカードに移れます。セットは1日5問なので、同じ日に5つのクラスでそれぞれ1問ずつ使えます。問題はアカウントのレベルに合わせて選ばれるため、クラスのレベルより難しいこともあります。その場合は、みんなで選択肢を消していくのもよいウォームアップです。詳しくは「今日のクイズ」の記事で説明しています。

「LEDの点滅」プロジェクトの英語のブロック:setupでピン9をOUTPUTに設定し、loop foreverの中でピン9にHIGHを書き込み、100 ms待ち、ピン9にLOWを書き込み、100 ms待つ
「ブロックからコードへ」のウォームアップには1画面で十分です。生徒はこの6つのブロックを、setup()、loop()、pinMode()、digitalWrite()、delay()の行として紙に書きます。

ブロックからコードへでは、無料のLEDの点滅プロジェクトを開き、コード欄のブロックで表示をオンにします。コードの代わりに、同じプログラムのブロックが表示されます。ブロックを映している間に、ペアは同じプログラムをC++で紙に書きます。「セットアップ(1回だけ実行)」はsetup()に、「ピン 9 を 出力 に設定」はpinMode(9, OUTPUT)に、「100 ms待つ」はdelay(100)になります。5分たったら切り替えをオフにして本物のコードを見せ、各ペアに自分の紙と1行ずつ比べてもらいます。よく出る違いはセミコロンと大文字で、この違いこそがその日のコードを書く場面へのいちばんの近道です。以前にブロックを見たことのあるクラスでは逆にして、コードを見せてブロックを予想させましょう。ブロックとコードの対応の完全な一覧は「ブロックからC++への対応表」にあります。ミニ発表:前回のプロジェクトは、プロジェクトの週にとてもよく機能します。3人の生徒が、前回の授業で組んだ回路やスマホのプロジェクトを1人2分ずつ発表します。ルールは簡単で、「何をしたか、何を変えたか、どこでつまずいたか」です。クラスは発表ごとに1つだけ質問します。準備できるよう、発表者は前回の授業の終わりに選んでおきましょう。9分で復習ができ、控えめな生徒も、みんなの前で短く安心して話す経験ができます。

どのテーマにどのウォームアップ?対応表

次の表は、Arduino入門の学期でよく扱うテーマと、それぞれに合うメインのウォームアップ1つと予備1つを示しています。予備の列は、同じテーマに2回目の授業を使うときや、メインのウォームアップがそのクラスに合わなかったときに役立ちます。橋渡しの質問はウォームアップの最後の一言で、その答えは授業の最初の課題で明らかになります。表のプロジェクトはすべて、BlueGraysで回路図、コード、「コードを理解」つきで無料です。

テーマメインのウォームアップ予備のウォームアップ橋渡しの質問
最初の授業:プログラムとボード人間Arduinoピン探し「setupのカードはなぜ1回しか読まれなかった?」
デジタル出力とdelay():LEDの点滅ブロックからコードへ予想しよう「100を1000に変えたら、LEDはどう点滅する?」
順番とタイミング:信号機予想しよう人間Arduino(LED役3人)「黄色の光はなぜこんなに短く点くの?」
抵抗とLEDの配線カラーコード競争間違い回路図「LEDのそばになぜ220 Ωを入れるの?」
オームの法則オームの三角形カラーコード競争「抵抗を大きくすると、LEDはどうなる?」
ボタンとif/else:ボタンでLEDを点灯(押している間のみ)ストップ&ゴーの合図ゲームバグを探せ(ifの中の=が1つ)「ボタンを押していないとき、プログラムはどちらの分岐に進む?」
forループと配列:流れるLEDループダンスブロックからコードへ「6個のLEDなら、iはいくつからいくつまで数える?」
アナログ読み取り:LDRで光の強さを測定センサーの値当て今日の1問「LDRを覆うと、数字はどう変わる?」
しきい値と判断:LDRで作る常夜灯逆からまとめの質問ストップ&ゴーの合図ゲーム「ライトはどの値より下で点くべき?」
ポテンショメーターで速度調整:速度調整できる流れるLEDセンサーの値当て(ポテンショメーターを回す)予想しよう「ポテンショメーターをいっぱいまで回すと、LED1個は何ミリ秒点く?」
millis()と処理を止めないコードmillisをひと言でバグを探せ「delay()の間、ボタンを押してもときどき反応しないのはなぜ?」
デバッグの授業バグを探せ間違い回路図「コンパイラはなぜ1行下でエラーを報告したの?」
プロジェクトの週と発表ミニ発表:前回のプロジェクト今日の1問「今日はプロジェクトにどんな機能を1つ加える?」

BlueGraysでウォームアップを行う:プロジェクター向けのヒント

  • 今日のクイズ:画面下の学ぶタブのレッスンセクションから開きます。セットは毎日新しくなり、無料です。Arduinoの授業では「問題のプログラミング言語」をArduinoにしておくと、セットにMicroPythonのコードが出てきません。同じ日にもっと問題がほしい場合は練習がありますが、練習はプレミアムの機能です。
  • 「コードを理解」のステップ:無料のプロジェクトでは利用できます。このコードの働きの要約は1文の予想ゲーム、ステップごとの解説は部分ごとの予想、困ったときはは「この症状はなぜ起きる?」という問い、自分で試すの課題はウォームアップから授業へ移るためのすぐ使える材料になります。この画面の構成は「「コードを理解」のガイド」の記事で説明しています。
  • 無料のツール:電子工作ツールの18種類のうち7種類が無料です。「カラーコード」、SMDコード、「オームの法則」、「LED用抵抗」、コンデンサコード、インダクタコード、LEDの電圧です。カラーコード競争とオームの三角形にはこれで十分です。すべてのツールは「電子工作の計算アプリ」の記事で紹介しています。
  • ブロックで表示:ブロック表示のあるプロジェクトで、コード欄にある切り替えです。オンにするとコードを理解タブがブロック解説になります。ブロックは読むためのもので、アプリ内でブロックを並べることはできず、ボードにも書き込まれません。「ブロックからコードへ」のウォームアップには、まさにそれが好都合です。プロジェクト一覧の絞り込みで、ブロック対応のプロジェクトだけを表示できます。
  • プロジェクターの準備:スマホをケーブルかワイヤレスの画面ミラーリングでつなぎ、画面の明るさを上げ、後ろの席からも読めるようにコードを拡大しましょう。ウォームアップで使う画面は休み時間のうちに開いておけば、授業の最初の1分をメニュー操作で失わずにすみます。
この記事のウォームアップには、生徒がプレミアムを使う必要はありません。例はすべて無料のプロジェクトと無料のツールで組み立てています。注意点は2つです。ピン配置ツールはプレミアムです(ピン探しはボードそのものを使って行いましょう)。また、プレミアムのプロジェクトではコードを理解はプレミアムで利用できます。アプリにはクラス管理画面もありません。ウォームアップでの生徒の答えは一覧として先生に届かないので、紙や挙手で集めます。クラスの一部にプレミアムのプロジェクトを開放したい場合は、1回限りの支払いの教育者向けパッケージを「授業向けのまとめ買いプレミアムコード」の記事で説明しています。

遠隔授業・オンライン授業でのウォームアップ

オンラインでは、ウォームアップはさらに重要です。カメラをオフにしている生徒が本当に授業に入っているかどうか見えないからです。ほとんどの活動は少し変えるだけで遠隔でも使えます。基本のルールは同じく、全員が同時に答えることです。チャットを使いますが、「答えを書いて、先生が『はい』と言ったらEnterを押してください」と伝えましょう。そうすれば最初に出た答えを写す人がいなくなります。オンライン授業のそのほかの部分(準備、生徒にはっきりした回路の写真を頼む方法、グループの運営)は「オンラインのArduino授業」の記事を参考にしてください。

アクティビティオンライン版
人間Arduinoカメラはオン。Arduino役の生徒がカードを声に出して読み、LED役の生徒はカメラに向かって手を上げます。カメラがオフの生徒はチャットに1か0を書きます。
予想しようとバグを探せコードの一部を画面共有で見せ、予想は同時にチャットに書きます。
今日の1問スマホの画面を共有し、選択肢をチャットに文字で書くか、授業で使うプラットフォームの投票機能で聞きます。
カラーコード競争抵抗の写真を共有し、生徒が値を書いたあと、画面上で「カラーコード」ツールを一緒に使います。
センサーの値当てカメラを自分の回路に向けてシリアルモニタを共有し、LDRを覆う手順とライトを当てる手順をライブで行います。
ミニ発表:前回のプロジェクト生徒が自分の回路の写真や短い動画を共有し、2分間話します。

コピーして使える8週間のウォームアップ計画

この計画は、毎週1つの無料プロジェクトを軸にした8週間の入門の学期向けに作りました。各行には、その週のテーマ、メインのウォームアップとその時間、予備のウォームアップ、授業前の準備、ウォームアップを締めくくる橋渡しの質問があります。表は自分の授業ノートにコピーして使えます。テーマが違う場合は、対応表から新しいウォームアップを選んでください。下のチェックリストは、毎回の授業の前に2分で確認できるように書いています。

週テーマとプロジェクトメインのウォームアップ予備準備橋渡しの質問
1週目プログラムとは、最初のLED:LEDの点滅人間Arduino(10分)ピン探しカード5枚:setup、HIGH、3つ数える、LOW、3つ数える「setupのカードはなぜ1回しか読まれなかった?」
2週目順番とタイミング:信号機予想しよう(7分)ブロックからコードへ「コードを理解」で黄色のステップを開いておく「黄色を1.5秒にするには、どの行を変える?」
3週目抵抗と2個のLED:2個のLEDを点灯カラーコード競争(8分)オームの三角形ペアごとに抵抗5本、「カラーコード」ツールを開いておく「2個のLEDには抵抗が何本必要?」
4週目ボタンとif/else:ボタンでLEDを点灯(押している間のみ)ストップ&ゴーの合図ゲーム(6分)バグを探せ黒板にルールを4つ書いておく「ボタンを押していないとき、どの行が実行される?」
5週目forループと配列:流れるLEDループダンス(6分)ブロックからコードへ黒板にforの行を書いておく「6個のLEDなら、i < 6?それともi <= 6?」
6週目アナログ読み取り:LDRで光の強さを測定センサーの値当て(8分)今日の1問机にLDRの回路を組み、シリアルモニタを開いておく「値はどの範囲に収まっている?」
7週目しきい値と判断:LDRで作る常夜灯逆からまとめの質問(5分)+今日の1問(5分)間違い回路図先週のまとめの答えを黒板に書いておく「しきい値は50と300のどちらにすべき?」
8週目自分なりの改造と発表ミニ発表:前回のプロジェクト(9分)millisをひと言で前回の授業で発表者を3人選んでおく「今日はプロジェクトにどんな機能を1つ加える?」
  • ウォームアップの名前と時間を黒板の隅に書き、タイマーを準備している。
  • プロジェクターで使う画面(「コードを理解」のステップ、「今日のクイズ」、「ブロックで表示」、またはツール)を授業の前に開いている。
  • 必要なカード、抵抗の箱、付箋をドアのそばの机に置いている。
  • 全員が同時に答える方法(指、紙、ミニホワイトボード、チャット)を決めている。
  • 橋渡しの質問を書いておき、授業の最初の課題とつなげている。
  • ウォームアップでつまずいた生徒をメモする小さな紙を用意し、最初の見回りをその机から始めるようにしている。
  • 時間になったら、途中の問題をまとめの質問に回すことにしている。

ウォームアップ集を一度印刷すれば、1年間新しく準備するものはありません。毎週、対応表から1行選び、橋渡しの質問を黒板に書くだけです。そのうち、どのウォームアップが自分のクラスに合うかがわかり、自分のメモで表を充実させていけます。「予想しよう」「ブロックからコードへ」「今日の1問」のウォームアップで使う無料のプロジェクト、「コードを理解」のステップ、ツールは、授業の前にBlueGraysアプリで開いて、プロジェクターに映せるように準備しておけます。

よくある質問

プログラミングの授業はどう始めればいいですか?

最初の5〜10分を、その日のテーマにつながるウォームアップに使いましょう。短いコードが何をするかを予想する、setup()とloop()を演じる、1行のバグを見つける、といった活動です。全員が同時に参加できる形式を選び、授業の最初の課題につながる質問でウォームアップを締めくくります。

ウォームアップは何分くらいがよいですか?

40分の授業なら5〜10分で十分です。それより長いと、回路を組んでテストする時間が削られます。見えるタイマーを使い、途中の問題はまとめの質問に回しましょう。

パソコンを使わないプログラミングのウォームアップにはどんなものがありますか?

人間Arduino、ストップ&ゴーの合図ゲーム、ループダンス、バグを探せ、逆からまとめの質問は、黒板と紙だけでできます。これらの活動は、setup/loop、if/else、forループといった考え方を、画面を見ずに体や紙の上で表現します。

ロボットプログラミングの授業で生徒の注意を集めるには?

授業の最初の1分で、全員が何かを書いたり示したりする課題を出しましょう。予想を書く紙、指で選択肢を示す、ペアで短く話し合う、などです。ウォームアップが終わるまでキットの箱を閉じておき、残り時間を見えるタイマーで示すのも効果があります。

ウォームアップを成績に使うべきですか?

使わないほうがよいです。ウォームアップでの間違った予想は、誰がどの考え方でつまずいているかを示すいちばん価値のある情報で、成績への不安はそれを隠してしまいます。ウォームアップは見取りに使い、成績は授業で組んだ回路と生徒の説明に基づいてつけましょう。

これらのウォームアップにBlueGraysプレミアムは必要ですか?

必要ありません。「今日のクイズ」、無料のプロジェクトの「コードを理解」と「ブロックで表示」、そして「カラーコード」「オームの法則」「LED用抵抗」を含む7種類のツールは無料です。プレミアムが必要なのは、「ピン配置」ツール、「練習」、プレミアムのプロジェクトの「コードを理解」です。

全プロジェクトを見る
LEDの点滅
#1初級

LEDの点滅

電子工作の第一歩は、1個のLEDを点けたり消したりすることです。Arduinoで短い間隔で点灯と消灯を繰り返すと、LEDが素早く点滅します。ボードが光を制御する仕組みを最もシンプルな形で確かめ、これから取り組むプロジェクトの基礎を身につけます。

4.6(188)
1127
信号機
#3初級

信号機

毎日道路で見かける信号機の小さな模型です。赤が2秒点灯し、黄が一瞬点灯した後、緑が2秒点灯します。その後、再び黄を経て赤に戻り、この動作を繰り返します。3個のLEDを順番に点けたり消したりしながら、タイミングの組み立て方を学びます。

4.8(131)
397
ボタンでLEDを点灯(押している間のみ)
#9初級

ボタンでLEDを点灯(押している間のみ)

呼び鈴のように、押している間は点灯し、離すと消灯します。Arduinoはボタンの状態を常に読み取り、押されている間はLEDを点灯させ、指を離した瞬間に消灯させます。このシンプルな回路で、ボードが外部からの操作を検知する仕組みを学べます。

4.8(113)
229
流れるLED
#5中級

流れるLED

LEDが次々に点灯し、光が走るように進みます。Arduinoが6個のLEDを1個ずつ短く点灯して消灯させることで、光が端から端へと移動し、また最初に戻ります。この簡単なプロジェクトで、1つのパターンで複数の光を制御する方法を学びます。

4.6(85)
207
LDRで光の強さを測定
#11初級

LDRで光の強さを測定

部屋の明るさを数値で見てみませんか?光に反応する小さな部品、LDRで周囲の光を測定し、Arduinoが0.5秒ごとにその値をコンピューターの画面に表示します。手で覆うと数値が変わる様子を確認できます。自動で点灯する常夜灯などのプロジェクトへの第一歩です。

4.6(81)
139
LDRで作る常夜灯
#12初級

LDRで作る常夜灯

暗くなると自動で点灯し、朝になると消灯する小さな常夜灯です。光センサーが部屋の明るさを測定し、Arduinoが十分に暗くなったらLEDを点灯させ、明るくなったら消灯させます。街灯が夕方になると自動で点灯する仕組みも理解できます。

4.8(102)
205
2個のLEDを点灯
#2初級

2個のLEDを点灯

2個のLEDが素早く交互に点滅します。一方が点くともう一方が消え、まるでボールを投げ合っているようです。ArduinoがそれぞれのLEDを5分の1秒ずつ点灯させ、次のLEDに切り替えます。1個のLEDの次に、複数の光をまとめて制御する方法を学ぶのに最適なステップです。

4.6(105)
343
速度調整できる流れるLED
#7中級

速度調整できる流れるLED

6個のLEDが順番に点滅し、光が端から端へ走るように見えます。ポテンショメーターのつまみを回すと、その速さがすぐに変わります。一方に回すと光が素早く進み、反対に回すと各LEDが1秒近く点灯します。つまみで動きの速さを調整する仕組みを目で確かめられます。

4.6(72)
146