ガイド · 読了まで11分

Arduinoのプロジェクト:初心者から上級者まで30のアイデア

レベル別に並べた30のArduinoプロジェクトを、短い説明と部品リスト付きで紹介します。初級10、中級10、上級10に加え、ESP32とPicoのアイデアもあります。

Arduinoのプロジェクトのアイデアを探していますか?ここがぴったりの場所です。このリストには初級、中級、上級の3レベルで30のプロジェクトがあり、表を見れば、それぞれが何をするのか、何が学べるのか、どの部品が必要なのかがわかります。LEDを点けることから障害物を避けるロボットまで、アイデアは少しずつ難しくなり、各レベルは前のレベルで学んだことの上に積み上がります。最後には、Wi-Fi対応のESP32とMicroPythonでプログラムするRaspberry Pi Pico向けの6つのおまけのアイデアと、プロジェクトを最初から最後まで計画する実践的な方法も紹介します。

このリストのいちばんよい使い方は、自分のレベルの表からプロジェクトを選び、まず基本の形を作り、それから小さな追加で改良していくことです。たとえば、常夜灯にブザーを加えたり、駐車センサーにディスプレイを加えたりするほうが、まったく新しいプロジェクトを一から始めるより多くを学べることがよくあります。表のプロジェクトのほとんどは、BlueGraysアプリにステップごとの回路図とコード付きで入っています。「BlueGraysでは」の列は、対応するプロジェクトを示しています。

Arduinoのプロジェクト用のはんだ不要のブレッドボード
ブレッドボード:はんだ付けなしで回路を組めます。このリストのほぼすべてのプロジェクトは、ブレッドボードで試せます。

始める前に:どんな部品が必要?

最初の7つのプロジェクトは、どれも1つの基本キットで作れます。Arduino Uno(またはNano)、ブレッドボード、オス-オスのジャンパーワイヤー、いくつかの色のLEDとRGB LED、220 Ωと10 kΩの抵抗、押しボタン、ポテンショメーター、LDR、パッシブブザーです。8〜10番のプロジェクトでは、HC-SR04距離センサー、SG90サーボ、PIR人感センサーを加えます。ほとんどのスターターキットには、この3つがすでに入っています。中級になると、DHT11、I2C LCD、赤外線受信モジュールとリモコン、7セグメントディスプレイ、WS2812B LEDテープなどのモジュールが登場します。上級では、モータードライバ、リレー、外部電源などの部品が必要です。どのキットを買うか決めるにはArduinoスターターキットのガイドを、ボード選びにはどのArduinoを買えばいい?を、ブレッドボードの内部の接続についてはブレッドボードとは?を読んでみてください。

Arduino Uno
Arduino Uno
LED
LED
HC-SR04距離センサー
HC-SR04距離センサー
SG90サーボ
SG90サーボ
I2C 16x2 LCD
I2C 16x2 LCD
DHT11温湿度センサー
DHT11温湿度センサー
レベル知っておくべきこと主な部品1プロジェクトの所要時間
初級pinMode、digitalWrite、digitalRead、analogRead、delayLED、抵抗、ボタン、LDR、ブザー、ポテンショメーター30分〜1時間
中級ライブラリのインストール、I2C、millis()、配列、関数HC-SR04、DHT11、LCD、赤外線受信モジュール、サーボ、WS2812B2〜4時間
上級ステートマシン、モータードライバ、外部電源、複数のモジュールの組み合わせL298N、リレー、キーパッド、RFID、OLED、ポンプ1〜3日

初級:かんたんなArduinoのプロジェクト10選

このレベルのプロジェクトでは、3つの基本のスキルを学びます。デジタル出力(LEDを点ける)、デジタル入力(ボタンを読む)、アナログ入力(センサーを読む)です。LEDの前には必ず抵抗を入れてください。5 Vで使う標準的な赤いLEDなら、220 Ωで約14 mAとなり安全です。ほかの色に合った値はLED抵抗計算ツールで求められます。

#プロジェクト何をして、何を学ぶか必要な部品BlueGraysでは
1LEDの点滅決まった間隔でLEDをオン・オフする。デジタル出力とタイミングを学ぶLED 1個、220 Ωの抵抗LEDの点滅
2信号機赤、黄、緑のLEDを本物と同じ順番で点ける。ステップごとの流れを学ぶLED 3個、220 Ωの抵抗 × 3信号機
3パトランプ赤と青のLEDを短く素早く点滅させる。forループによる繰り返しのパターンを学ぶ赤と青のLED、抵抗2本パトランプ
4ボタンでLEDを切り替え押すたびにLEDの状態を変える。デジタル入力とプルアップ抵抗を学ぶ押しボタン、LED、220 Ωの抵抗ボタンでLED(オン/オフ)
5自動常夜灯暗くなるとLEDを点ける。アナログの読み取りとしきい値を学ぶLDR、10 kΩの抵抗、LEDLDRを使った常夜灯
6ブザーのメロディー音の周波数から曲を演奏する。tone()関数を学ぶパッシブブザーブザーでトルコ国歌
7RGB LEDの色のフェード3つの色のチャンネルを混ぜて、なめらかに色を変える。PWMを学ぶRGB LED、抵抗3本RGB LEDでなめらかな色のフェード
8距離計超音波センサーで測った距離をシリアルモニタに表示するHC-SR04距離センサーHC-SR04で距離の測定(シリアルモニタ)
9ポテンショメーターでサーボつまみを回すと、サーボのアームが0〜180度回るポテンショメーター、SG90サーボポテンショメーターでサーボモーター
10動体検知器誰かが通るとLEDを点けるか、ブザーを鳴らすPIRセンサー、LEDまたはブザーPIRセンサーで動体検知器
  • LEDのプロジェクト(1〜3):LEDの長い足(アノード)をプラスに、短い足(カソード)をマイナスにつなぎます。足と抵抗の選び方のくわしい説明はLEDとは?と抵抗とは?にあります。信号機の黄色の時間を調整し、歩行者用ボタンを加えると、最初の改良にちょうどよいでしょう。
  • ボタンのプロジェクト(4):ボタンをINPUT_PULLUPで配線すれば、外付けの抵抗は不要です。1回の押下が何回にも数えられないよう、チャタリング対策は欠かせません。ボタンの配線の記事で両方の方法を解説しています。
  • 常夜灯(5):LDRと10 kΩの抵抗が分圧回路を作り、analogReadは0〜1023の値を返します。しきい値は自分の部屋で測って決めてください。くわしくはLDR光センサーの記事にあります。
  • メロディー(6):アクティブブザーは1つの音しか出せません。メロディーにはパッシブブザーが必要です。違いはブザーとは?で確認できます。
  • RGB LED(7):アノードコモンとカソードコモンのモデルは逆のロジックで動きます。種類を間違えると色が反転します。RGB LEDのガイドで両方の種類を解説しています。
  • センサーのプロジェクト(8〜10):HC-SR04、サーボモーター、PIRセンサーは次のレベルの部品です。まずそれぞれを単体で動かしておくと、中級のプロジェクトがずっと楽になります。

中級:Arduinoのプロジェクト10選

中級になると、部品を1つだけでなく、複数のモジュールを組み合わせて使います。センサーの読み取り値をディスプレイに表示したり、リモコンの命令でLEDを切り替えたり、測定値に応じてブザーを速めたりします。ここで大事になるスキルが2つあります。ライブラリのインストールと、millis()による時間管理です。delay()で書いた駐車センサーは、測定中にきちんと音を鳴らせませんが、millis()なら両方を同時にこなせます。

#プロジェクト何をして、何を学ぶか必要な部品BlueGraysでは
11駐車センサー障害物が近づくほどピッという音が速くなり、とても近いと鳴りっぱなしになるHC-SR04、パッシブブザー、LEDHC-SR04で駐車センサー
12温湿度表示器部屋の温度と湿度をディスプレイに表示するDHT11、I2C 16x2 LCDDHT11で温湿度、I2C LCDディスプレイ
13速度を変えられるナイトライダーLEDが往復し、ポテンショメーターで速度を設定する。配列とアナログの読み取りを組み合わせるLED 6〜8個、抵抗、ポテンショメーター速度を変えられるナイトライダーLED
14デジタル時計4桁の7セグメントディスプレイに時刻を表示する。RTCモジュールを加えれば停電しても時刻を保つ4桁の7セグメントディスプレイ、RTCモジュール(任意)4桁の7セグメントディスプレイでデジタル時計
15リモコンで操作するLEDテレビのリモコンのボタンでLEDをオン・オフする赤外線受信モジュール、リモコン、LED赤外線受信モジュールとリモコンでLEDのオン/オフ
16反応速度テスト光が点いてからどれだけ速くボタンを押したかをミリ秒で測るボタン、LED、ブザー音で知らせるArduinoの反応速度テスト
17電子サイコロボタンを押すと1〜6のランダムな数を表示する。random()関数を学ぶ7セグメントディスプレイまたはLED 7個、ボタンサイコロのプロジェクト
18スマートフォンからLEDを操作スマートフォンのBluetoothアプリから送った命令でLEDを点けるHC-05 Bluetoothモジュール、LEDBluetoothでスマートフォンからLEDを操作
19ドアアラームドアが開くと磁石が離れ、アラームが鳴るリードスイッチ、磁石、ブザーリードスイッチのドアセンサー
20NeoPixelのライトショーアドレス指定できるLEDテープで、流れる光やストロボのアニメーションを動かすWS2812B LEDテープまたはリング、5 Vの電源WS2812Bの使い方、WS2812Bでパトランプ
  • 駐車センサー(11):HC-SR04のエコーの時間(マイクロ秒)を58で割ると、距離がセンチメートルで求まります。このプロジェクトのブロッキングしないコードは、下の計画の章にあります。センサーのくわしい説明はHC-SR04の記事にあります。
  • 温度表示器(12):DHT11は1秒に1回より多く読まないでください。センサーが新しい値を作るのは1秒に1回までです。ディスプレイをI2Cでつなげば、配線は4本だけです。DHT11とI2C LCDディスプレイを参照してください。
  • デジタル時計とサイコロ(14、17):7セグメントディスプレイでは、アノードコモンとカソードコモンの違いが決定的です。7セグメントディスプレイの記事にセグメントの表があります。
  • リモコンとBluetooth(15、18):赤外線リモコンのボタンにはそれぞれ固有のコードがあるので、まずシリアルモニタでそのコードを読む必要があります。くわしくは赤外線受信モジュールとリモコンとHC-05 Bluetoothモジュールの記事にあります。
  • NeoPixel(20):WS2812BのLEDは1個あたり白で最大輝度にすると約60 mAを消費するので、30個のLEDのテープでは1.8 Aに達することがあります。くわしくはWS2812B NeoPixelの記事にあります。
サーボモーターやLEDテープは、Arduinoの5Vピンから給電するようにはできていません。パソコンのUSBポートが供給できるのはふつう約500 mAで、サーボを数個やNeoPixelの長いテープを使えば簡単に超えてしまい、ボードがリセットします。これらの部品は外部の5 Vの電源から給電し、その電源のGNDを必ずArduinoのGNDにつないでください。

上級:Arduinoのプロジェクト10選

上級のプロジェクトでは、複数のセンサー、モーター、現実の負荷を組み合わせます。ここではコードと同じくらい電源の設計と機構が重要です。モーターを別に給電する、リレーを安全に配線する、ケーブルをしっかり固定する、といったことです。コードでは、ステートマシンで考えると楽になります。たとえば、ロックの状態を「待機中、コード入力中、解錠、警報」のように別々に定義し、各状態ではその状態に属する処理だけを行います。

#プロジェクト何をして、何を学ぶか必要な部品BlueGraysでは
21キーパッドのドアロックキーパッドで入力したコードが正しければサーボのロックを開け、間違っていれば警告する4x4キーパッド、I2C LCD、SG90サーボ、ブザー4x4キーパッドとLCDの暗証番号アプリ、スマート電子金庫
22RFIDカードの入室管理登録済みのカードをかざすとドアを開け、知らないカードには警報を出すRC522 RFIDモジュール、カード、サーボ、LEDRFID認証
23障害物を避けるロボット前方に障害物を検知すると止まり、向きを変えて進み続けるロボットのシャーシ、DCモーター2個、L298N、HC-SR04、サーボ、電池障害物を避けるロボット
24Bluetoothで操作する車スマートフォンのアプリから前後左右に操作するDCモーター2個、L298N、HC-05、電池ボックスL298NとBluetoothで操作する車
25スマート灌水土が乾くとポンプを動かし、十分に湿ったら止める土壌水分センサー、リレー、ミニ水中ポンプスマート水やりステーション
26ガスと炎の警報器ガス漏れや炎を検知すると、音と光で警報を出すMQ-2ガスセンサー、炎センサー、ブザー、LED炎・ガスセンサーの警報器
27レーザーセキュリティシステムレーザー光が遮られると警報を鳴らすレーザーモジュール、LDR、ブザーレーザーセキュリティシステム
28OLEDのゲーム小さなOLEDディスプレイでポンや恐竜のランゲームを遊ぶ0.96インチSSD1306 OLED、ボタンポンゲーム - SSD1306、OLED T-Rexラン
29サイモンの記憶ゲームどんどん長くなる色と音の並びを繰り返させるLED 4個、ボタン4個、ブザーサイモンゲーム - Arduinoの記憶ゲーム
30ドットマトリクスの時計と気象観測所時刻、日付、温度をスクロール文字で表示するMAX7219 8x32ドットマトリクス、DS1307 RTC、温度センサードットマトリクスの時計、カレンダー、気象観測所(MAX7219、DS1307)
  • ロックのプロジェクト(21〜22):コードをプログラムに直接書かずにEEPROMに保存すれば、ボードの電源を切って入れ直しても設定が残ります。配線はキーパッドとRFID RC522の記事を参照してください。RC522は3.3 Vで動作することを忘れずに。
  • ロボット(23〜24):DCモーターはArduinoのピンに直接つなげず、L298Nのようなドライバが必要です。L298Nでは2 V以上の電圧降下があるので、6 Vのモーターは7〜9 Vの電源で動かしてください。くわしくはL298NでDCモーターを制御するの記事にあります。
  • スマート灌水(25):安価な抵抗式の土壌センサーは、常に給電していると腐食します。測定するときだけピンからセンサーに給電してください。ポンプにはリレーを使います。土壌水分センサーとリレーモジュールを参照してください。
  • ガス警報器(26):MQ-2のヒーターは、電源を入れるたびに温まるまで数分かかります。予熱後にきれいな空気の中で測ってしきい値を設定してください。くわしくはMQ-2ガスセンサーの記事にあります。
  • ゲーム(28〜29):OLEDの1 KBのフレームバッファはUnoの2 KBのRAMの半分を使うので、ゲームではメモリの使用量に気をつけてください。操作にはボタンの代わりにジョイスティックも使えます。ディスプレイについてはOLED SSD1306の記事を参照してください。
商用電源で動くランプやコンセントのプロジェクトは、命にかかわる危険があります。リレーモジュールの高電圧側をつなぐのは、経験者の監督のもと、密閉したケースの中で、ヒューズを付けた場合だけにしてください。学んでいる間は、12 VのLEDテープや小さなポンプのような低電圧の負荷で作業しましょう。安全な配線のために、リレーモジュールの記事を必ず読んでください。

ESP32とRaspberry Pi Picoで作るおまけのアイデア6選

プロジェクトでインターネットに接続したい、スマートフォンから操作したい、サーバーにデータを送りたいなら、Arduino UnoからESP32に切り替えるのがいちばん簡単です。Wi-FiとBluetoothを内蔵し、同じArduino IDEでプログラムできます。一方、Raspberry Pi Picoは安くて速く、MicroPythonでプログラムできるので、Pythonを学びたい人にぴったりです。どちらにするかはArduinoとESP32の違いは?の比較で決められ、ESP32とは?とRaspberry Pi Picoとは?の記事から始められます。

ESP32開発ボード
ESP32開発ボード
Raspberry Pi Picoボード
Raspberry Pi Picoボード
ボードプロジェクト何をするかBlueGraysでは
ESP32Wi-Fi Webサーバースマートフォンのブラウザで開いたページから、LEDやリレーを操作するESP32非同期Webサーバー(IPをLCDに表示)
ESP32インターネット時計NTPサーバーから時刻を取得し、設定不要で常に正しく表示するESP32 NTPでインターネットから正確な時刻
ESP32天気の表示インターネットから取得した天気のデータをOLEDディスプレイに表示するESP32 HTTPClient+天気API(SSD1306 OLED)
ESP32Telegramの動体アラーム動きを検知すると、スマートフォンにTelegramのメッセージを送るESP32動体アラームシステム(PIR+ブザー+LED+Telegram)
Pico4モードの信号機ボタンで4つの動作モードを切り替える。MicroPythonでステートマシンを学ぶRaspberry Pi Picoの信号機、ボタンで4モード選択
Pico呼吸するLEDPWMでLEDの明るさをゆっくり上げ下げするRaspberry Pi PicoのPWMでLEDのフェード(呼吸エフェクト、GP14)

プロジェクトを最初から最後までどう計画する?

  1. 何をするかを一文で書く:「障害物が50 cmより近ければ、ピッという音を速くする」。一文がはっきりしていれば、プロジェクトもはっきりします。
  2. 入力と出力を書き出す:入力はセンサーとボタン、出力はLED、ブザー、モーター、ディスプレイです。それぞれにピンを割り当てます。ボードのピン配置はピン配置ツールで確認できます。
  3. 電源の予算を計算する:各部品が消費する電流を合計します。Arduino Unoのピンが供給できるのは絶対最大定格で40 mAで、安全に使うには20 mAを超えないようにします。それ以上ならトランジスタ、リレー、ドライバを使ってください。計算にはオームの法則ツールが使えます。
  4. 各モジュールを単体でテストする:まずシリアルモニタでセンサーを読み、ブザーは別のスケッチで鳴らします。全部を一度に配線して動かないと、原因を見つけるのがずっと難しくなります。
  5. 部品を組み合わせる:delay()の代わりにmillis()を使ってコードを1つのloop()にまとめ、どのタスクも自分のタイミングで動くようにします。
  6. ケースに入れて記録を残す:動いた回路の写真を撮り、配線表とコードを保存しておきます。次のプロジェクトで同じ部品を使うときに、多くの時間を節約できます。

これらのステップを、中級の駐車センサーのプロジェクトに当てはめてみましょう。入力はHC-SR04(TRIGは9番ピン、ECHOは10番ピン)、出力はパッシブブザー(8番ピン)です。センサーの消費電流は約15 mAで、小さなパッシブブザーもピンの上限内に収まるため、合計の電流はUSBで十分まかなえます。次のコードは距離を1秒に約16回測り、障害物が50 cmより近いと、距離に比例してピッという音を速くします。1回の音とそのあとの無音は、それぞれ1センチメートルあたり10 msなので、40 cmで400 ms、10 cmで100 msです。5 cm未満では音が鳴りっぱなしになります。

C++ (Arduino IDE)
1const int TRIG = 9;
2const int ECHO = 10;
3const int BUZZER = 8;                       // pasif buzzer / passive buzzer
4
5unsigned long olcumZaman = 0, bipZaman = 0;
6long mesafe = 400;                          // cm
7bool bipAcik = false, sesCaliyor = false;
8
9long mesafeOlc() {
10  digitalWrite(TRIG, LOW);
11  delayMicroseconds(2);
12  digitalWrite(TRIG, HIGH);
13  delayMicroseconds(10);                    // 10 µs tetik darbesi / 10 µs trigger pulse
14  digitalWrite(TRIG, LOW);
15  unsigned long sure = pulseIn(ECHO, HIGH, 30000UL);  // en fazla 30 ms bekle / wait at most 30 ms
16  if (sure == 0) return 400;                // yankı yok: engel uzakta / no echo: obstacle is far
17  return sure / 58;                         // µs -> cm
18}
19
20void setup() {
21  pinMode(TRIG, OUTPUT);
22  pinMode(ECHO, INPUT);
23  pinMode(BUZZER, OUTPUT);
24}
25
26void loop() {
27  unsigned long simdi = millis();
28  if (simdi - olcumZaman >= 60) {           // saniyede yaklaşık 16 ölçüm / about 16 readings per second
29    olcumZaman = simdi;
30    mesafe = mesafeOlc();
31  }
32
33  bool sesli = false;
34  if (mesafe < 5) {                         // çok yakın: sürekli ses / very close: continuous tone
35    sesli = true;
36  } else if (mesafe < 50) {                 // yaklaştıkça bipler sıklaşır / beeps speed up as it gets closer
37    if (simdi - bipZaman >= (unsigned long)mesafe * 10) {
38      bipZaman = simdi;
39      bipAcik = !bipAcik;
40    }
41    sesli = bipAcik;
42  }
43
44  if (sesli != sesCaliyor) {                // yalnızca değişince çal ya da sustur / switch only on change
45    sesCaliyor = sesli;
46    if (sesli) tone(BUZZER, 2000);
47    else noTone(BUZZER);
48  }
49}

コードで注目すべき点が2つあります。まず、pulseIn()に30 msのタイムアウトを与えています。エコーが返ってこなくても、コードはいつまでも待たずに、距離を400 cmとして扱います。次に、tone()は音の状態が変わったときだけ呼ばれるので、毎回ブザーが鳴らし直されることがなく、音が割れません。プロジェクトを発展させるなら、距離をI2C LCDやOLEDディスプレイに表示したり、緑、黄、赤のLEDで警告バーを加えたりしてみましょう。

プロジェクトを選んで作るときのよくある間違い

間違い結果対処法
最初のプロジェクトにロボットカーを選ぶモーター、電源、コードの問題が一度に出て、やる気がなくなるまずモーターを使わないプロジェクトを4〜5個仕上げる
LEDを抵抗なしでつなぐLEDかArduinoのピンが壊れるどのLEDにも220〜330 Ωの直列抵抗を入れる
サーボやモーターを5Vピンから給電するボードがランダムにリセットし、USBの接続が切れる外部の5 Vの電源を使い、GNDを共通にする
回路全体を一度に組むどこが悪いのかわからない各モジュールを別々にテストしてから組み合わせる
すべてをdelay()で書くボタンの反応が遅れ、センサーのイベントを取りこぼすmillis()でブロッキングしないコードを書く
3.3 Vのモジュールを5 VにつなぐRC522などのモジュールが壊れることがあるモジュールの電源電圧を確認し、必要ならレベル変換モジュールを使う
コードを理解せずにコピーして動かすちょっとした変更でプロジェクトが動かなくなるコードを1行ずつ読み、値を変えて結果を観察する
プロジェクトを1つ仕上げたら、小さな「追加課題」を与えてみましょう。常夜灯に明るさの設定を、時計にアラームを、駐車センサーにディスプレイを加えるといった具合です。新しいプロジェクトに移る前に今の回路を一歩先へ進めることが、学んだことを身につけるもっとも効果的な方法です。

自分に合うプロジェクトは?興味別のおすすめ

興味初級中級上級
光と色信号機、RGB LEDNeoPixelのライトショードットマトリクスの時計
音と音楽ブザーのメロディー駐車センサー(音での警告)サイモンの記憶ゲーム
ホームオートメーションとセキュリティ常夜灯、動体検知器ドアアラーム、リモコンで操作するLEDキーパッドのロック、ガス警報器、スマート灌水
ロボットと動きポテンショメーターでサーボスマートフォンからBluetoothで操作障害物を避けるロボット、Bluetoothカー
測定とディスプレイ距離計温湿度表示器ドットマトリクスの気象観測所
ゲーム-電子サイコロ、反応速度テストOLEDのゲーム、サイモン

リストの30のプロジェクトをすべて終えれば、デジタルとアナログの入出力、PWM、I2C、時間管理、モーター制御、ステートマシンなど、Arduinoの基本の要素をほぼすべて使ったことになります。各センサーの用途を知るには、Arduinoセンサーガイドも見てみてください。BlueGraysアプリには、LEDの点滅から障害物を避けるロボットまで、スマート水やりステーションからESP32のWebサーバーまで、これらのアイデアのほとんどがステップごとの回路図と既製のコード付きでそろっているので、自分のレベルに合ったプロジェクトからすぐに始められます。

よくある質問

初心者にいちばん簡単なArduinoのプロジェクトは?

いちばん簡単なのはLEDの点滅(Blink)です。必要なのはLEDと220 Ωの抵抗だけで、Unoの13番ピンの内蔵LEDを使えば部品はまったく要りません。次は信号機、ボタンで操作するLED、LDRの常夜灯です。この4つのプロジェクトで、デジタル出力、デジタル入力、アナログの読み取りの基本が学べます。

Arduinoで何が作れますか?

Arduinoでは、光や音のエフェクトから測定器、ホームオートメーション、ロボットまで、センサーを読んで何かを制御するほぼすべてのプロジェクトを作れます。典型的な例は、駐車センサー、温度表示器、キーパッドのドアロック、スマート灌水システム、障害物を避けるロボットです。インターネット接続が必要なプロジェクトには、ESP32のようなWi-Fi対応ボードがよく選ばれます。

Arduinoのプロジェクトにはどのキットを買えばよいですか?

Arduino UnoかNano、ブレッドボード、ジャンパーワイヤー、LED(RGB LEDを含む)、抵抗、ボタン、ポテンショメーター、LDR、パッシブブザーが入ったキットで最初の7つのプロジェクトがまかなえます。HC-SR04、SG90サーボ、PIRセンサーを加えれば、最初の10個をすべて作れます。中級でよく追加するのは、DHT11、I2C LCD、赤外線受信モジュールとリモコン、7セグメントディスプレイです。モータードライバやリレーなどの部品は、上級のプロジェクトに進むときに買えば十分です。

Arduinoを学ぶにはプログラミングの知識が必要ですか?

必要ありません。プログラミングの経験がなくてもArduinoは始められます。最初のプロジェクトで使う命令はほんの数個(pinMode、digitalWrite、delay)です。コードはC/C++をもとにしており、既製の例を書き換えてみるのがいちばん早い学び方です。変数、if、for、関数などの概念は、プロジェクトを進めるうちに自然と身につきます。

学校の課題に向いたArduinoのプロジェクトは?

学校の課題では、現実の問題を解決するアイデアが目を引きます。スマート灌水システム、ガスと炎の警報器、駐車センサー、温湿度表示器、カードによる入室管理システムなどです。これらのプロジェクトは動かすと見栄えがよく、検知し、判断し、動作するという流れがはっきり伝わります。発表で回路図と測定結果を見せると、プロジェクトの説得力が増します。

プロジェクトはArduinoとESP32のどちらで始めるべきですか?

電子工作が初めてなら、Arduino Unoのほうが簡単です。5 Vで動作し、ほとんどのモジュールと直接つなげ、例も見つけやすいからです。プロジェクトにWi-Fi、Bluetooth、インターネットが必要なら、ESP32を選びましょう。同じArduino IDEでプログラムできますが、3.3 Vで動作するため配線には注意が必要です。

全プロジェクトを見る
信号機
#3初級

信号機

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

4.8(131)
397
LDRで作る常夜灯
#12初級

LDRで作る常夜灯

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

4.8(102)
205
HC-SR04で距離を測定(シリアルモニタ表示)
#27初級

HC-SR04で距離を測定(シリアルモニタ表示)

HC-SR04センサーは、コウモリが暗闇で道を見つけるのと同じ仕組みで動作します。人には聞こえない音を出し、その反響を捉えて前方の物体までの距離を測ります。Arduinoは0.5秒ごとに距離をセンチメートル単位でコンピューターの画面に表示し、3〜100センチメートルの測定値を示します。駐車センサーや障害物を避けるロボットなどのプロジェクトの基礎になります。

4.6(46)
71
DHT11で温度と湿度を測定
#55中級

DHT11で温度と湿度を測定

部屋の温度は何度で、空気は湿っているでしょうか、それとも乾燥しているでしょうか?DHT11センサーが温度と湿度を測定し、Arduinoが2行のLCDディスプレイに値を表示して、数秒ごとに更新します。センサーに異常があればエラーメッセージが表示されます。自分だけの小さな気象観測装置を作る第一歩です。

4.7(47)
73
HC-SR04で作る駐車センサー
#28中級
プレミアム

HC-SR04で作る駐車センサー

車の駐車センサーを小さく再現します。物体が近づくほど、ビープ音の間隔が短くなります。距離センサーが前方の物体までの距離を測り、20センチメートルより遠ければ緑のLEDが点灯します。近づくと赤いLEDが点滅してブザーが鳴り、さらに近づくほど警告の間隔が短くなります。車が壁にぶつからずに駐車できる仕組みを、机の上で確かめられます。

4.8(64)
85
Arduino記憶ゲーム(LED4個+ボタン4個+ブザー)
#93上級
プレミアム

Arduino記憶ゲーム(LED4個+ボタン4個+ブザー)

記憶力に自信はありますか?4色のLEDが順番に点灯し、それぞれの音を鳴らします。同じ順番でボタンを押して再現してください。正解するたびに新しい色が1つ追加され、短い勝利のメロディーが流れて、LCDディスプレイにスコアが表示されます。1回でも押し間違えると、悲しい音とともにゲームが終了し、最初からやり直しになります。

4.8(46)
69
障害物回避ロボット
#81上級
プレミアム

障害物回避ロボット

自分で進む道を見つける、賢い車を作ってみませんか?障害物回避ロボットは、前面の超音波センサーで周囲を常に調べます。障害物を見つけると停止し、サーボモーターで左右を確認して、最も障害物の少ない方向を選んで進みます。自動運転の基礎を学ぶのにぴったりの入門プロジェクトです。

5.0(38)
49
スマート水やりステーション
#83上級
プレミアム

スマート水やりステーション

旅行中も植物が枯れないよう、自動で水やりをするシステムです。土壌水分センサーで土の湿り具合を測定し、乾燥するとArduinoが給水ポンプを数秒間動かして、青いライトを点灯させます。水分が適切なときは緑のライトが点灯します。土がひどく乾燥すると、赤いライトが点滅し、ブザーが鳴って知らせます。

5.0(42)
57