ブロックプログラミングの授業計画:8週間のArduinoロボット講座
教師向けのブロックプログラミング授業計画です。無料のブロックプロジェクトを使った40分×8週間のArduino授業、24人分の教材リスト、授業例、ルーブリックを紹介します。
ロボットプログラミングとは、ボードが周りの状況を感じ取り、判断し、何かを動かせるようにするプログラムを書くことです。ボタンや光センサーが感じ取り、Arduinoが判断し、LED、ブザー、モーターが反応します。このサイクルを教室で教えるいちばん簡単な方法は、ブロックプログラミングから始め、生徒がロジックを理解したら同じプログラムの実際のコードに進むことです。この記事は、教師、ロボットクラブ、家庭でワークショップを開く保護者のための、すぐに使えるブロックプログラミングの授業計画です。8週間、週1回40分の授業で、毎回BlueGraysの無料ブロックプロジェクトを1つ中心に据えています。
計画の各週には、目標、BlueGraysの無料プロジェクト、その週に生徒が出会う新しいブロック、そして実際のコードでそれに当たるものがあります。そのあとに、24人のクラス向けの教材リスト、分刻みの授業例、評価用のルーブリック、進みの速いグループと遅いグループへの工夫、ハードウェアなしでシミュレーターを使う方法、安全上の注意が続きます。計画はArduino Unoを中心に組み立てており、Raspberry Pi PicoとMicroPythonの週を任意で追加できます。
ロボットプログラミングとは?なぜブロックから始めるのか
ロボット講座と聞くとすぐにロボットカーを思い浮かべがちですが、どのロボットも同じ3つの仕事の上に成り立っています。感じ取る、判断する、動かす、の3つです。ボタンを読むのが「感じ取る」、「ボタンは押されている?」と問うのが「判断する」、LEDを点けたりブザーを鳴らしたりするのが「動かす」です。LEDとボタンでこの3ステップを理解した生徒にとって、同じロジックをモーターや距離センサーに移すのは、ほとんど部品を入れ替えるだけの話です。そのためこの計画はモーターではなくLEDとボタンから始め、最終週にHC-SR04距離センサーでロボットの「目」にたどり着きます。
なぜブロックから始めるのでしょうか。10〜14歳の生徒にとって、最初の授業の最大の敵はセミコロン、波かっこ、大文字と小文字の区別です。生徒はプログラムが何をするかではなく、なぜコードがコンパイルできないのかを考えることになってしまいます。ブロックならこうしたエラーがなくなり、注意がまっすぐロジックに向かいます。ただし、ブロックにとどまることが目的ではありません。現実の世界では、ArduinoはC++で、PicoはMicroPythonでプログラムします。BlueGraysのブロックはまさにこの橋渡しのために作られています。各ブロックは、ボードに書き込まれる実際のコードの1行と1対1で対応しています。生徒はまずブロックを読み、次に同じプログラムのコードを見て、各ブロックを対応する行と結びつけます。すべてのブロックプロジェクトとその仕組みはブロックプログラミングのページで見られます。
8週間のブロックプログラミング授業計画
各授業は40分、2〜3人のグループを想定しています。表のプロジェクトはブロックもコードも含めてすべてBlueGraysで完全に無料なので、生徒にプレミアムは必要ありません。順番には意図があります。まず出力(LED)、次にタイミング、変数、繰り返し、続いて入力(ボタン)と条件、状態の保持、アナログセンサー、配列とループ、最後に音と距離です。毎週、前の週の内容に新しい考え方を1つだけ加えていきます。
| 週 | 目標 | BlueGraysの無料プロジェクト | 新しいブロック・考え方 | 実際のコード |
|---|---|---|---|---|
| 1 | プログラムとは何か、デジタル出力 | LEDの点滅 | セットアップ(1回だけ実行)、ずっと繰り返す、ピン…を出力に設定、ピン…にHIGH / LOWを書き込む、… ms待つ | setup()、loop()、pinMode()、digitalWrite()、delay() |
| 2 | 命令の順番とタイミング | 2個のLEDを点灯、信号機 | 同じブロックを別のピンで順番に並べる、待ち時間を変える | 行の順番。2000 ms = 2秒 |
| 3 | 変数と回数を決めた繰り返し | LEDの警察車両風点滅 | グローバル変数(最初に宣言)、宣言:整数(int)delayTime = 60、「3回繰り返す」ブロック | int delayTime = 60;、for (int i = 0; i < 3; i++)(3回繰り返す) |
| 4 | 入力と条件 | ボタンでLEDを点灯(押している間のみ) | ピン…を入力に設定、ピン…を読み取る、「もし / そうでなければ」ブロック、=の比較 | pinMode(13, INPUT)、digitalRead()、if / else、== |
| 5 | 状態を覚える(トグル) | ボタンでLEDの点灯・消灯を切り替え | …に…を代入、≠の比較、ではない、50 ms待つ | ledState = !ledState、!=、ボタンのチャタリング対策 |
| 6 | アナログセンサーとしきい値 | LDRで光の強さを測定、LDRで作る常夜灯 | 「A0をアナログ読み取り」ブロック、シリアル開始と「シリアル出力」のブロック、<の比較 | analogRead(A0) 0〜1023、Serial.begin(9600)、Serial.println()、if (value < 50) |
| 7 | 配列とループ | 流れるLED、速度調整できる流れるLED | 「配列」ブロック(2 3 4 5 6 7)、「iを0から5まで1ずつ変えて数える」ループ、「ledPinsのi番目の要素」 | int ledPins[] = {2, 3, 4, 5, 6, 7};、for (int i = 0; i < 6; i++)(6回繰り返す) |
| 8 | 音と距離:ロボットの感覚 | ブザーの使い方、HC-SR04で距離を測定(シリアルモニタ表示) | 音を鳴らす・音を止めるブロック、マイクロ秒の待ち時間、パルス幅のブロック、「かつ」 | tone()、noTone()、delayMicroseconds(10)、pulseIn()、&& |
| 任意 | PicoとMicroPython | Picoで外付けLEDを点灯(GP14) | GP14を出力にする「ピンled:GP 14、出力」ブロック、「オンにする(on)」「オフにする(off)」ブロック、0.5秒待つ | Pin(14, Pin.OUT)、led.on()、time.sleep(0.5)、while True: |

計画を進めるときは、授業の最後に生徒が値を1つ変えることをルールにしてください。第1週では、LEDの点滅の100 msの待ち時間を1000 msにするとLEDがゆっくりになるのを見ることで、最初の授業から「プログラムを動かしているのは自分だ」という感覚が得られます。第3週では、LEDの警察車両風点滅の変数delayTimeを60から200に上げると、1つの数値が6つのブロックに一度に影響することがわかります。変数がなぜ存在するのかを説明するいちばんの近道です。第6週では、LDRで作る常夜灯のしきい値50を教室の明るさに合わせて調整することで、センサーの値が環境によって変わることを学べます。第7週では、速度調整できる流れるLEDのために各グループに10 kΩのポテンショメーターを配ってください。LEDの速さを手で変える場面は、たいていその週でいちばん盛り上がる瞬間になります。
24人のクラス向けの教材リスト
24人の生徒を3人ずつに分けると8グループになります。予備1つを含めて9キット用意すれば十分です。2人組にする場合は、数を12グループ分に増やしてください。はんだ付けは一切不要で、どの部品もブレッドボードに差し込むだけです。部品を1つずつ買うより、市販のスターターキットの中身をこのリストと比べてみてください。一般的なキットに何が入っているかはArduinoスターターキットのガイドで紹介しています。
| 品目 | 1グループあたり | クラス全体(8グループ+予備1) | 使う週 |
|---|---|---|---|
| Arduino Unoまたは互換ボード | 1 | 9 | 全週 |
| USBケーブル(UnoはUSB A-B) | 1 | 9 | 全週 |
| ブレッドボード(400穴または830穴) | 1 | 9 | 全週 |
| オス-オスのジャンパーワイヤー | 20 | 約200 | 全週 |
| 5 mm LED(赤・黄・緑・青の詰め合わせ) | 8 | 約80 | 1〜7 |
| 220 Ωの抵抗 | 8 | 約80 | 1〜7 |
| 10 kΩの抵抗 | 2 | 約25 | 4〜6 |
| 押しボタン(4ピン) | 2 | 約20 | 4〜5 |
| LDR(光センサー) | 1 | 10 | 6 |
| ブザー(音の高さを変えられるパッシブタイプ) | 1 | 10 | 8 |
| HC-SR04超音波距離センサー | 1 | 10 | 8 |
| 10 kΩのポテンショメーター(任意) | 1 | 10 | 7 |
| Raspberry Pi Pico+micro USBケーブル(任意) | 1 | 数台 | Picoの週 |
授業例:第5週、ボタンでLEDを切り替える
以下は40分の授業の流れで、同じ骨組みを毎週使い回せます。ウォームアップ、ブロックをみんなで読む、予想、回路、実際のコード、値を1つ変える、まとめの質問、という流れです。例には第5週のプロジェクトボタンでLEDの点灯・消灯を切り替えを使います。「プログラムは何かを覚えておける」という考え方は、ロボットプログラミングの大きな転換点のひとつだからです。
| 時間 | 段階 | 内容 |
|---|---|---|
| 0〜5分 | ウォームアップ | 質問:照明のスイッチを1回押すと明かりが点き、もう1回押すと消えます。スイッチはどうやって覚えているのでしょう?いくつかの答えを黒板に書きます。 |
| 5〜12分 | ブロックをみんなで読む | 「ブロックで表示」をオンにしてプロジェクトをプロジェクターに映します。ブロックを上から下へ声に出して読み、変数ledStateとlastButtonが何を保持しているかを話し合います。 |
| 12〜15分 | 予想 | 各グループが書き出します:ボタンを押し続けるとLEDはどうなる?「50 ms待つ」ブロックがなかったら何が変わる? |
| 15〜25分 | 回路を組む | ボタンをD13へ、さらに10 kΩを通してGNDへ(プルダウン)、LEDを220 Ωを通してD7へつなぎます。役割:組み立て係、確認係、読み上げ係。 |
| 25〜32分 | 実際のコードを書き込む | スイッチをオフにしてコードをArduino IDEにコピーし、ボードに書き込みます。予想を確かめます。 |
| 32〜37分 | 値を1つ変える | delay(50)をまず0に、次に300に変え、すばやく押したときにLEDがどう反応するかを見ます。希望するグループは、コードと回路の両方でLEDのピンを変えてもかまいません。 |
| 37〜40分 | まとめの質問 | 紙に1問:ledState = !ledStateの行は何をしていて、どのブロックに当たるでしょう? |

1int ledState = 0; // LED durumu: 0 = kapalı, 1 = açık / LED state: 0 = off, 1 = on
2int lastButton = 0; // Önceki buton okuması / Previous button reading
3
4void setup() {
5 pinMode(13, INPUT); // Buton girişi (harici pull-down) / Button input (external pull-down)
6 pinMode(7, OUTPUT); // LED çıkışı / LED output
7}
8
9void loop() {
10 int button = digitalRead(13); // Butonu oku / Read the button
11 if (button != lastButton) { // Buton durumu değişti / Button state changed
12 if (button == 1) { // Yalnız basış anında (LOW -> HIGH) / Only at the press (LOW -> HIGH)
13 ledState = !ledState; // Durumu tersine çevir / Flip the state
14 digitalWrite(7, ledState);
15 }
16 delay(50); // Sıçramayı atlamak için kısa bekleme / Short wait to skip the bounce
17 lastButton = button; // Bu okumayı sakla / Store this reading
18 }
19}
20ブロックとコードを並べると、対応関係はとてもはっきりしています。「グローバル変数(最初に宣言)」の中にある2つの「宣言:整数(int)」ブロックがコードの最初の2行で、「セットアップ(1回だけ実行)」はsetup()に、「ずっと繰り返す」はloop()になります。「buttonに(ピン13を読み取る)を代入」ブロックはint button = digitalRead(13)の行、「≠」の比較は!=、「ledStateではない」は!ledStateです。予想の段階では、ほとんどのグループが「ボタンを押し続けるとLEDが点滅する」と答えます。ところが試してみると、LEDは1回しか変わりません。外側の「もし」はボタンの状態が変わったときにしか実行されないからです。間違った予想が正される瞬間こそ、授業でいちばん学びの多い1分間です。delay(50)を0にすると、押しても2回反転して何も起きなかったように見えることがあると気づきます。これはボタンのチャタリングを説明する絶好のきっかけになります。ボタンがなぜ10 kΩを通してGNDにつながっているのか気になるグループには、Arduinoに押しボタンをつなぐ方法のガイドを見せてあげてください。
授業でBlueGraysを使う方法
- プロジェクトを開く:生徒は自分のスマートフォンやタブレットでその週のプロジェクトを開きます。プロジェクト一覧の「ブロック」バッジがブロックプロジェクトの目印で、絞り込みでブロックプロジェクトだけを表示することもできます。どのプロジェクトにも部品リストと回路図が付いています。
- 「ブロックで表示」:コード欄でこのスイッチをオンにすると、コードが同じプログラムのブロックに置き換わります。画像をタップすると全画面で開くので、プロジェクターでみんなで読むのに最適です。ブロックはアプリの言語で表示されます。
- 「ブロック解説」:このタブではプログラムをステップごとにたどり、各ステップのブロックとその働きだけを表示します。時間が必要なグループにとっては、指導補助のような役割を果たします。
- 実際のコードに切り替える:スイッチをオフにすると、同じプログラムのコードが表示されます。生徒はそれをArduino IDE(PicoならThonny)にコピーしてボードに書き込みます。
- 「コードガイド」:digitalWrite、if/else、forなどのコマンドの例がここにまとまっていて、どの例もブロックでも見られます。生徒はコマンドを忘れたとき、先生に聞く前にここで確認する習慣が身につきます。
- 「今日のクイズ」:A1〜C2のレベル別に1日5問出題され、週間ランキングとバッジもあります。授業と授業の間に、1日数分の復習として勧めてみてください。
ハードウェアがない?シミュレーターで教える
キットがまだ届いていない場合やオンラインで授業をする場合は、Tinkercad CircuitsやWokwiのようなブラウザで動くシミュレーターがよい代わりになります。どちらにもArduino Uno、ブレッドボード、LED、抵抗、ボタンのほか、さまざまなセンサーがそろっています。画面上で回路を組み、プロジェクトの実際のコードを貼り付けて動かします。流れは同じで、生徒はBlueGraysでブロックを読み、コードをシミュレーターに貼り付け、値を変えて結果を見ます。Tinkercadには独自のブロックエディターもあるので、最初の数週間をすべてそこで進める先生もいます。それでも、本物のLEDが点くのを見たり、ブレッドボードにワイヤーを差したりする体験はやる気を大きく高めます。シミュレーターはハードウェアの代わりではなく、ハードウェアの前段階として使うほうがうまくいきます。準備と最初の回路については、TinkercadでArduinoをシミュレーションとWokwiシミュレーションのガイドを参照してください。
評価:ブロックプログラミング授業のルーブリック
ロボットの授業では、結果と同じくらい過程が大切です。LEDを点けたグループと、なぜ点かないのかを突き止めたグループは、同じことを学んでいる可能性が十分にあります。下のルーブリックは、1回の授業で1つの観点に絞って使うと楽になります。8週間が終わるまでに、6つの観点それぞれについて全生徒を少なくとも1回ずつ観察できれば十分です。まとめの質問の答えも表に反映させます。
| 観点 | 1 – 初期段階 | 2 – 発展段階 | 3 – 定着段階 |
|---|---|---|---|
| 回路を組む | 手助けがあれば組めるが、配線ミスが多い | 回路図を見て組み、1〜2個のミスを自分で見つける | 回路図をほとんど見ずに組み、クラスメイトのミスにも気づく |
| ブロックを読む | ブロック名は読めるが、順番を説明できない | プログラムが全体として何をするかを説明できる | 各ブロックと、なぜその順番が大切なのかを説明できる |
| 予想と検証 | 予想も検証もしない | 予想を立てて結果を記録する | 予想が外れたときに理由を見つける |
| ブロックとコードの対応 | ブロックをコードの行と結びつけられない | ピン、出力、待ち時間のブロックをコードの中で見つけられる | if、for、変数の行も対応づけられる |
| 値を変える | 値を変えるが、その影響を説明できない | 値を変えて、その影響を説明できる | 変更を計画し、コンパイラのメッセージからエラーを見つける |
| チームワーク | 自分の役割をよく放り出す | 自分の役割を果たす | 役割を交代し、ほかのグループも手伝う |
進みの速いグループと遅いグループへの工夫
- 速いグループ、追加課題:信号機のコードに4つ目のフェーズ(たとえば赤と黄を同時に点灯。日本の信号機にはない表示です)を加えたり、実際の交差点に合わせてタイミングを計算し直したりします。Arduino IDEで自分でコードを変更し、ブロックは参考として使います。
- 速いグループ、組み合わせ:第8週に、HC-SR04で距離を測定(シリアルモニタ表示)とブザーの使い方を1つのプログラムにまとめ、距離が20 cmを下回るとブザーが鳴る簡単な駐車センサーを作ってみましょう。これは、ブロックを読む段階から自分のコードを書く段階への最初の本格的な一歩です。
- 速いグループ、プラットフォームの切り替え:PicoがあるグループはPicoで外付けLEDを点灯プロジェクトを開き、MicroPython版を第1週のC++のコードと比べます。
- 遅いグループ、組み立て済みの回路:あらかじめ組んだ回路を配るか、回路図を大きく印刷して机に置きます。これらのグループは、ブロックを読むことと予想することに時間を使います。
- 遅いグループ、ステップごとに:「ブロック解説」タブでプログラムをたどらせ、各ステップの最後に何が起きるかを1文で言ってもらいます。その日は値を1つ変えられれば、目標として十分です。
- 組み合わせの工夫:どのグループにも少なくとも1人「読み上げ係」がいるようにします。配線は速いが読むのが遅い生徒と、その逆の生徒を組ませると、2人とも伸びます。
ブロックからテキストへ:いつ、どう移行するか
移行する週は決まっていません。適切なタイミングは、生徒がブロックを見て、実行する前にプログラムが何をするかを言えるようになったときです。この計画では、ほとんどのクラスが第4週か第5週にその段階に達します。とはいえ、コードとの出会いは初日から始まっています。毎回の授業で実際のコードをボードに書き込むので、生徒は第1週からsetup()、loop()、digitalWrite()の行を目にしているからです。移行は「ブロックを見て、コードを書き込む」から「コードを読み、必要ならブロックで確かめる」へと少しずつ進みます。次の手順を踏むと、この移行がスムーズになります。
- ブロックとコードを並べ、各ブロックに対応する行をみんなで探します(第1〜3週)。
- ブロックを隠してコードだけを読み、プログラムが何をするかを予想します。そのあと「ブロックで表示」で確かめます(第4〜5週)。
- コードの中だけで値を変えます。待ち時間、ピン番号、しきい値などです。コンパイルエラーが出たら、最初の行を読みます(第5〜6週)。
- 新しいコードを1行書きます。たとえば流れるLEDの配列にLEDを1つ追加し、ループの上限を6から7に上げます(第7週)。
- 2つのプロジェクトを組み合わせて、自分だけの小さなプログラムを作ります。行き詰まったら「コードガイド」の例とブロックを確認します(第8週以降)。
安全のためのヒント
「ブロックからコードへ」シリーズのまとめ
- 第1回:ブロックプログラミングとは?、そしてブロックのプログラムが実際のコードにどう変わるのか。
- 第2回:ブロックプログラミングでLEDを点滅させる:最初のプログラム、ブロックとC++を並べて。
- 第3回:ifブロックとボタン:条件と、それに対応するif/else。
- 第4回:ループと変数:「ずっと繰り返す」とloop()、カウントとfor、配列、カウンター。
- 第5回:ブロックでセンサーを読む、そしてMicroPythonへ:シリアルポート、LDR、HC-SR04、Pico。
- 第6回:この記事。これまで学んだことを、教室で使える8週間のブロックプログラミング授業計画にまとめています。
これでシリーズは完結です。教室で始める前にもう一度ロジックを復習したい場合は、ブロックプログラミングとは?から読み直してください。計画にあるプロジェクトはすべて、BlueGraysアプリで回路図、部品リスト、コード付きで見られます。「ブロックで表示」で同じプログラムのブロック版に、「ブロック解説」でステップごとの解説に切り替えれば、プロジェクターを使って授業を楽に進められます。
よくある質問
ロボットプログラミングとは何ですか?
ロボットプログラミングとは、ボードがセンサーで周りの状況を感じ取り、判断し、LED、ブザー、モーターなどの部品で反応できるようにするプログラムを書くことです。学校では通常、Arduinoのようなボードとブロックプログラミングから始め、そのあとC++やMicroPythonのようなテキストベースの言語に進みます。
子どもは何歳からロボットプログラミングを始めればいいですか?
文字をすらすら読める9〜10歳以上の子どもなら、大人と一緒に始められます。この年齢では、ブロックプログラミングと、はんだ付けのいらないブレッドボードの回路が最適な出発点です。12歳ごろになると、ほとんどの生徒が実際のコードを読む準備ができています(日本では2020年度から小学校でプログラミング教育が必修化されています)。
ブロックプログラミングの授業計画はどう立てればいいですか?
各授業に新しい考え方を1つだけ設け、出力、タイミング、変数、入力、条件、センサー、ループの順に並べます。毎回同じ骨組みを保ちます。ウォームアップ、ブロックをみんなで読む、予想、回路、実際のコード、値を1つ変える、まとめの質問です。この記事の8週間の計画はこの構成に沿っています。
Arduinoの授業にはどんな教材が必要ですか?
1グループあたり、Arduino Unoまたは互換ボード、USBケーブル、ブレッドボード、ジャンパーワイヤー、LED、220 Ωと10 kΩの抵抗、ボタン、LDR、ブザー、HC-SR04距離センサーがあれば十分です。24人のクラスを3人ずつのグループに分けるなら、8キットと予備1キットを用意してください。
Arduinoがなくてもロボットプログラミングは教えられますか?
はい。Tinkercad CircuitsやWokwiのようなブラウザで動くシミュレーターなら、画面上で回路を組んでコードを動かせます。ただし本物のLEDを点けることは大きなやる気につながるので、シミュレーターはハードウェアの準備として使うのがいちばん効果的です。
生徒はいつブロックプログラミングからArduinoのコードに移ればいいですか?
生徒がブロックを見てプログラムが何をするかを言えるようになったら、そのときです。この計画では、ほとんどのクラスが第4週か第5週にその段階に達します。まずブロックとコードを並べて読み、次にコードの中だけで値を変え、最後に新しい行を書きます。
この記事を読んだ後に作れるプロジェクト
全プロジェクトを見る
LEDの点滅
電子工作の第一歩は、1個のLEDを点けたり消したりすることです。Arduinoで短い間隔で点灯と消灯を繰り返すと、LEDが素早く点滅します。ボードが光を制御する仕組みを最もシンプルな形で確かめ、これから取り組むプロジェクトの基礎を身につけます。

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

LEDの警察車両風点滅
警察車両の警光灯のように、赤いLEDが素早く3回点滅し、続いて青いLEDが3回点滅します。このパターンを途切れることなく繰り返します。Arduinoに2個のLEDと2個の抵抗をつなぐだけで、数分で組み立てられる、目を引く入門プロジェクトです。

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

ボタンでLEDの点灯・消灯を切り替え
部屋の照明スイッチのように、ボタンを1回押すと点灯し、もう1回押すと消灯します。Arduinoはボタンが押されるたびにLEDの状態を反転させます。ボタン内部の小さな接点の振動で誤動作しないよう、短い待ち時間も設けます。1つのボタンでオン・オフを切り替える、シンプルな仕組みです。

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

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

HC-SR04で距離を測定(シリアルモニタ表示)
HC-SR04センサーは、コウモリが暗闇で道を見つけるのと同じ仕組みで動作します。人には聞こえない音を出し、その反響を捉えて前方の物体までの距離を測ります。Arduinoは0.5秒ごとに距離をセンチメートル単位でコンピューターの画面に表示し、3〜100センチメートルの測定値を示します。駐車センサーや障害物を避けるロボットなどのプロジェクトの基礎になります。
ほかの記事
BlueGraysアプリ
この回路をスマホでステップごとに作る
回路図、コード、部品リストを1つの画面で確認できます。Arduino、ESP32、Picoのプロジェクトを200件以上用意しています。

