Arduinoを学べるアプリ:ゼロから始める30日間の初心者ロードマップ
アプリでArduinoを30日で学ぶ方法。買うもの、アプリの各機能の役割、週ごとの無料プロジェクト、重要な命令、毎日30分の学習ルーティンを紹介します。
Arduinoを学べるアプリを探しているなら、まず1つの事実を押さえておきましょう。スマホのアプリだけでArduinoボードにプログラムを書き込むことはできません。コードはパソコンからUSBケーブル経由で、Arduino IDE(Raspberry Pi PicoならThonny)を使ってボードに書き込みます。ただ、それ以外の学習はスマホで十分にこなせます。どのプロジェクトから始めるかを選ぶ、回路図を読む、コードが何をしているかを1行ずつ理解する、抵抗値を計算する、学んだことを毎日復習する、といったことです。つまり、アプリでArduinoを学ぶことは可能です。スマホが先生とノートになり、パソコンはボードとやり取りする場所になります。
この記事は、BlueGraysアプリを使ってゼロから始める人のための30日間ロードマップです。買う必要があるもの、アプリの各セクションの役割、4週間でどの無料プロジェクトをどの順番で作るか、毎週覚える命令、1日30分の使い方、そして多くの人がつまずくポイントを紹介します。計画はすべて無料プロジェクトで組み立てています。プレミアムが本当に役立つのはどんなときかは、誇張せずに別のセクションで説明します。

アプリがすること、パソコンがすること
最初に作業を2つに分けておくと、正しい期待を持って始められます。Arduino UnoのマイコンATmega328Pにプログラムを入れるには、コードをコンパイルしてUSB経由でボードに転送する必要があります。これを行うのがArduino IDEで、Windows、macOS、Linuxのいずれかが動くパソコンが必要です。BlueGraysでは、プロジェクトのソースコードセクションでコピーを使ってコードを取得するか、リンクをコピーでパソコン上でコードを開けるリンクを取得できます。これで、手入力にありがちなセミコロンの抜けや大文字・小文字の間違いを避けられます。ブロックで表示スイッチを使うと同じプログラムをブロックで表示できますが、このブロックは読むためのものです。アプリ内でブロックを編集したり、ブロックをボードに書き込んだりすることはできません。
| 作業 | スマホで(BlueGrays) | パソコンで |
|---|---|---|
| プロジェクトを選ぶ | プロジェクトさがし、プロジェクト一覧と絞り込み | 不要 |
| 部品と回路を理解する | 必要な部品、拡大できる回路図 | 不要 |
| コードを理解する | コードを理解、ブロックで表示、コードガイド | 必要ならIDEで1行ずつ読む |
| コードを変更する | 自分で試すの課題とヒントを読む | Arduino IDE(PicoではThonny) |
| ボードに書き込む | できない | USBケーブル+Arduino IDE |
| センサーの値を見る | できない | Arduino IDEのシリアルモニタ |
| 計算する | ツール:カラーコード、LED用抵抗、オームの法則 | 不要 |
| 復習と自己テスト | 今日のクイズ、マイレベル | 不要 |
| 質問する | フォーラム | 不要 |
始める前に必要なものは?
30日間の計画に大きなキットは必要ありません。下のリストでロードマップ上のすべての無料プロジェクトをまかなえ、これらの部品の多くは市販のスターターキットに最初から入っています。ボードはArduino Unoをおすすめします。5 Vで動作し、Arduino IDEが追加パッケージなしで認識し、初心者向けのチュートリアルの多くがUnoを前提に書かれているからです。Nanoでも構いませんが、ピン配置が異なるため、回路図の接続を自分のボードのピンに置き換える必要があります。最後の列は、その部品が計画で初めて登場する日です。全部を一度に買う必要はありません。
| 品目 | 数量 | 用途 | 初めて使う日 |
|---|---|---|---|
| Arduino Uno(またはNano) | 1 | プログラムを動かすボード | 1 |
| USBケーブル(UnoにはUSB-B、データ通信用) | 1 | コードの書き込みとボードへの給電 | 1 |
| パソコン(Windows、macOS、Linux) | 1 | Arduino IDEでコードを書き込む | 1 |
| ブレッドボード(400穴または830穴) | 1 | はんだ付けなしで回路を組む | 1 |
| ジャンパーワイヤー(オス–オス) | 20 | 配線 | 1 |
| LED(赤、黄、緑) | 6〜8 | 出力、信号機、流れるLED | 1 |
| 220 Ωの抵抗 | 8 | LEDの電流制限 | 1 |
| 10 kΩの抵抗 | 4 | ボタン回路とLDR回路 | 8 |
| 押しボタン | 2 | デジタル入力 | 8 |
| ブザー(パッシブ型がおすすめ) | 1 | tone()で音を出す | 12 |
| LDR(フォトレジスタ) | 1 | アナログ読み取り | 15 |
| HC-SR04距離センサー | 1 | 距離の測定と第4週のプロジェクト | 22 |
| DHT11温湿度センサー(任意) | 1 | センサーモジュールからデータを読む | 25 |
アプリのセクション:それぞれ何に使う?
BlueGraysはiOSとAndroidで動作し、10言語に対応しています。下部のタブは発見、学ぶ、ツール、マイ工房、プロフィールです。プロジェクトと部品は発見タブ上部の「プロジェクト」と「部品」のセクションから、今日のクイズとコードガイドは学ぶ › レッスンから、フォーラムは「学ぶ」›「フォーラム」から開けます。下の表は、30日間でどのセクションを何に使うか、そして無料かどうかをまとめたものです。
| セクション | 用途 | 無料? |
|---|---|---|
| プロジェクトさがし | 作りたいもの、持っているボード、経験について3つの質問をし、いちばん合うプロジェクトと、同じ部品で作れる練習用プロジェクトを提案します | はい |
| プロジェクト | 200件以上のプロジェクト。検索に加え、難易度、プラットフォーム、価格、ブロック対応プロジェクトで絞り込めます | 一覧は誰でも見られます。60件のプロジェクト(各プラットフォーム20件)は完全無料で、残りはプレミアムです |
| コードを理解 | 「このコードの働き」の要約、ステップごとの解説、困ったときは、自分で試すの課題 | 無料プロジェクトでは開放、それ以外はプレミアム |
| ブロックで表示 | コードをブロックで表示します(100件以上のプロジェクト)。読むためのものです | ほとんどの無料プロジェクトで開放 |
| 一緒に作りましょう | 4ステップのガイド:部品を準備、回路を組む、コードを書き込む、動作させてテスト。中断したところから再開できます | 無料プロジェクトで開放 |
| 部品 | 説明とこの部品を使うプロジェクト一覧がある130の部品ページ | ほとんど開放、一部のページはプレミアム |
| マイ工房 | 持っている部品を保存し、作れるプロジェクトや部品が足りないプロジェクトを確認できます | 部品の管理(部品)はプレミアム。お気に入りとIoTデバイス1台は無料 |
| BlueGrays IoT | マイ工房 › マイデバイス › 新しいデバイスを追加で、ESP32やRaspberry Pi Pico Wをスマホから操作できます。8つのテンプレートがあり、アプリのマスコットOhmiがデバイスキー入りのコードを用意し、BlueGraysIoTライブラリを使ってArduino IDEから1回書き込めば、スイッチ、リアルタイムの値、グラフがスマホで使えます。2.4 GHzのWi-Fiが必要です | 無料:デバイス1台、グラフ1つ、24時間分の履歴。プレミアム:デバイス10台、グラフ20、30日分 |
| ツール | 18の電子工作計算ツール:抵抗のカラーコード、LED用抵抗、オームの法則、555タイマーなど | 7つは無料、11はプレミアム(ほとんどは計算例を表示) |
| 今日のクイズ | 毎日約3分の新しいセット、6つのレベル、レベル判定テスト、間違えた問題、週間ランキング | 基本機能は無料、一部の追加機能はプレミアム |
| コードガイド | 36枚のカード(Arduino C++が18枚、MicroPythonが18枚):構文、例、よくある間違い、ミニテスト | はい |
| フォーラム | 質問、アイデア、ガイドなどのカテゴリー。写真やコードを添付でき、回答を承認できます | はい |
1日目にどこから始めればいいかわからなければ、プロジェクトさがしを開きましょう。ボードの質問には「Arduino Uno / Nano」、経験の質問には「初めて作ります」と答えます。結果画面のまずは無料で練習カードに、同じ部品で始められる無料の練習用プロジェクトが表示されます。まだボードがない場合は「まだ持っていません」という選択肢もあります。プロジェクトさがしはこの記事の計画の代わりではなく、計画と一緒に使うものです。第4週に自分のプロジェクトを選ぶときにも、また役立ちます。
30日間のArduinoロードマップ
この計画では、毎週ちょうど1つずつ新しい考え方を加えます。まずボードに何かをさせ(出力)、次に外の世界に耳を傾けさせ(入力)、それから中間の値を測ったり処理を繰り返したりし(アナログ、シリアルポート、ループ)、最後にそれまでに学んだことを組み合わせます。各プロジェクトには2日かけましょう。1日目は回路を組んで動かし、2日目はコードを理解を読み終えて自分で試すの課題に取り組みます。7日目、14日目、21日目は新しいプロジェクトのない復習日です。表のプロジェクトはすべて、回路図、コード、ブロックを含めてBlueGraysで無料です。また、命令の列にある名前のほとんどには、コードガイドに専用のカードもあります。
| 日 | 目標 | 無料プロジェクト | その週の命令 | 今日のクイズ |
|---|---|---|---|---|
| 1〜7 | プログラムの骨組み、デジタル出力、タイミング | LEDの点滅、2個のLEDを点灯、信号機 | setup()、loop()、pinMode、digitalWrite、delay | 1日目:レベル判定テスト(15問)、その後は毎日約3分のセット。毎日のリマインダーを設定 |
| 8〜14 | デジタル入力、条件分岐、音 | ボタンでLEDを点灯(押している間のみ)、ボタンでLEDの点灯・消灯を切り替え、ブザーの使い方 | digitalRead、if / else、==、!、tone / noTone | 「問題のプログラミング言語」をArduinoに設定。週末に間違えた問題を片付ける |
| 15〜21 | アナログセンサー、シリアルポート、繰り返しと配列 | LDRで光の強さを測定、LDRで作る常夜灯、LEDの警察車両風点滅、流れるLED | analogRead、Serial.begin / println、int変数、for、配列 | 間違えた問題はトピックカードを開く。空いた日は練習を使う |
| 22〜30 | 距離センサー、2つのプロジェクトの組み合わせ、シェア | HC-SR04で距離を測定(シリアルモニタ表示)、任意でDHT11で温度と湿度を測定、自分のプロジェクト | pulseIn、delayMicroseconds、else if、自作の関数 | 連続記録を保つ。昇級試験のロックが解除されていれば挑戦(10問中9問正解) |
第1週(1〜7日目):LED、タイミング、プログラムの骨組み
1日目がいちばん大変です。作業の大半が準備だからです。Arduino IDEをインストールし、ボードをUSBでつなぎ、「ツール」メニューからボードとポートを選んで、LEDの点滅プロジェクトのコードを書き込みます。LEDが点滅すれば、最初の目標は達成です。2日目は同じプロジェクトでコードを理解を開きます。setup()は1回だけ、loop()は何度も繰り返し実行されます。pinModeはピンを出力にし、digitalWriteはそのピンにHIGHかLOWを書き込み、delayはミリ秒単位で待ちます。自分で試すの課題をやったら、delayの値を1000から200に下げて違いを見てみましょう。3〜4日目は2個のLEDを点灯です。同じ命令を2つのピンで使います。行の順番を入れ替えると動きがどう変わるかを確かめてください。5〜6日目は信号機です。赤2000 ms、黄300 ms、緑2000 msのようなタイミングで、3つのLEDを順番に点灯させます。7日目は新しいプロジェクトを開かず、信号機に自分なりのタイミングを設定し、コードガイドのpinMode、digitalWrite、delayの各カードにあるミニテストを解きましょう。
第2週(8〜14日目):ボタン、条件分岐、音
今週から、ボードが外の世界に耳を傾け始めます。ボタンでLEDを点灯(押している間のみ)では、ボタンを押している間だけLEDが点灯します。digitalReadはピンがHIGHかLOWかを読み取り、if / elseが何をするかを決めます。回路図でボタンの横に抵抗があるのには理由があります。ボタンが押されていないとき、どこにもつながっていない(フローティングの)ピンはランダムな値を読み取るため、抵抗でピンを決まったレベルに引っ張るのです。Arduinoに押しボタンをつなぐ方法のガイドでは、プルアップとプルダウンの違いと合わせてこれを説明しています。ボタンでLEDの点灯・消灯を切り替えはさらに一歩進みます。1回押すと点灯し、次に押すと消灯します。そのためにプログラムはLEDの状態を変数に覚えておき(ledState = !ledState)、50 msのような短い待ち時間でボタンのチャタリングを取り除く必要があります。12〜13日目はブザーの使い方です。tone()は指定した周波数で音を鳴らし、noTone()で音を止めます。14日目は復習日です。ボタンを押すとビープ音が鳴るような小さな変更に挑戦してみましょう。
第3週(15〜21日目):アナログセンサー、シリアルポート、ループ
ここまでは、すべてがHIGHかLOWのどちらかでした。LDRで光の強さを測定では、初めて中間の値を目にします。analogRead(A0)は0〜1023の数値を返し、Serial.begin(9600)で開いたシリアルポートのおかげで、その数値をパソコンのシリアルモニタで確認できます。LDRを手で覆って、数値が下がるのを見てみましょう。LDRで作る常夜灯では、同じ値をしきい値と比較し、部屋が暗くなるとLEDが点灯します。このしきい値を自分の部屋の明るさに合わせて調整するのが、この週でいちばん学びの多い作業です。18〜19日目はLEDの警察車両風点滅です。待ち時間をint変数に入れておき、forループで同じ点滅を何回か繰り返します。20〜21日目は流れるLEDです。6個のLEDのピン番号を配列に入れ、forループで順番に点灯させます。シリアルモニタに文字化けが出たら、ボーレートを確認してください。今週の助けになるのはArduinoのシリアルモニタのガイドです。
第4週(22〜30日目):2つのプロジェクトを組み合わせて自分のプロジェクトに
最後の週は新しいセンサーから始まります。HC-SR04で距離を測定(シリアルモニタ表示)は、センサーが出した超音波のパルスが戻ってくるまでの時間をpulseInで測り、センチメートルに換算してシリアルモニタに表示します。22〜23日目にこのプロジェクトを作って理解しましょう。センサーモジュールをもう少し練習したい場合は、任意のDHT11で温度と湿度を測定プロジェクトを加えてください。このようなセンサーは通常ライブラリを使って読み取るので、必要に応じてArduinoにライブラリを追加する方法のガイドを見てください。24〜29日目が本番です。すでに作った2つのプロジェクトを組み合わせて、小さな自分のプロジェクトにします。いちばん自然な組み合わせはHC-SR04とブザーで、障害物が近づくほどビープ音が速くなるミニ駐車センサーです。30日目にはプロジェクトをフォーラムでシェアします。手順は次のとおりです。
- 無料プロジェクトを2つ選び、まずはそれぞれを単独で動かします(ここではHC-SR04で距離を測定(シリアルモニタ表示)とブザーの使い方)。
- 両方のプロジェクトのコードを理解のステップから、どの行が何をしているかをメモします。一方は距離を測り、もう一方は音を鳴らします。
- ピンの重複を確認します。両方のプロジェクトが同じピンを使っている場合は、片方を空いているピンに移し、下のような小さなピン表を書きます。
- USBケーブルを抜いた状態で、組み合わせた回路を組みます。次に、setup()内のpinModeの行を1つのスケッチにまとめ、loop()で測定し、if / else if / elseで結果を音に変えます。
- 距離をシリアルモニタに表示し、10 cmと30 cmのしきい値を自分のテスト結果に合わせて調整します。
- 動いたら回路の写真を撮り、フォーラムの「ガイド」か「アイデア」カテゴリーでシェアします。コードはコードを追加で添付してください。
| 部品 | ピン | Arduino Uno |
|---|---|---|
| HC-SR04 | VCC | 5V |
| HC-SR04 | GND | GND |
| HC-SR04 | TRIG | D9 |
| HC-SR04 | ECHO | D10 |
| ブザー | + | D8 |
| ブザー | − | GND |
| 赤色LED | 長い足(220 Ωの抵抗経由) | D7 |
| 赤色LED | 短い足 | GND |
1// Gün 24-29 örneği: HC-SR04 + buzzer = mini park sensörü / Day 24-29 example: HC-SR04 + buzzer = mini parking sensor
2const int TRIG_PIN = 9; // HC-SR04 TRIG / HC-SR04 TRIG
3const int ECHO_PIN = 10; // HC-SR04 ECHO / HC-SR04 ECHO
4const int BUZZER_PIN = 8; // buzzer (+) bacağı / buzzer (+) leg
5const int LED_PIN = 7; // kırmızı LED, 220 ohm ile / red LED, with 220 ohm
6
7// Mesafeyi cm olarak ölçer, yankı yoksa -1 döner / Measures distance in cm, returns -1 if there is no echo
8long readDistanceCm() {
9 digitalWrite(TRIG_PIN, LOW);
10 delayMicroseconds(2);
11 digitalWrite(TRIG_PIN, HIGH); // 10 µs tetik darbesi / 10 µs trigger pulse
12 delayMicroseconds(10);
13 digitalWrite(TRIG_PIN, LOW);
14 long duration = pulseIn(ECHO_PIN, HIGH, 30000UL); // en fazla 30 ms bekle / wait at most 30 ms
15 if (duration == 0) return -1; // yankı yok / no echo
16 return duration / 58; // µs -> cm / µs -> cm
17}
18
19void setup() {
20 pinMode(TRIG_PIN, OUTPUT);
21 pinMode(ECHO_PIN, INPUT);
22 pinMode(BUZZER_PIN, OUTPUT);
23 pinMode(LED_PIN, OUTPUT);
24 Serial.begin(9600); // Seri Monitör'de 9600 seç / select 9600 in the Serial Monitor
25}
26
27void loop() {
28 long cm = readDistanceCm();
29 Serial.print("cm: ");
30 Serial.println(cm);
31
32 if (cm > 0 && cm < 10) { // çok yakın: sürekli ses / very close: continuous tone
33 digitalWrite(LED_PIN, HIGH);
34 tone(BUZZER_PIN, 1000);
35 delay(100);
36 } else if (cm > 0 && cm < 30) { // yakın: kesik bip / close: short beeps
37 digitalWrite(LED_PIN, HIGH);
38 tone(BUZZER_PIN, 1000, 80); // 80 ms bip / 80 ms beep
39 delay(80 + cm * 10); // yaklaştıkça bipler sıklaşır / beeps get faster as you get closer
40 digitalWrite(LED_PIN, LOW);
41 } else { // uzak ya da ölçüm yok: sessiz / far or no reading: silent
42 noTone(BUZZER_PIN);
43 digitalWrite(LED_PIN, LOW);
44 delay(100);
45 }
46}
47このコードで新しいのは、距離の測定をreadDistanceCm()という自作の関数に移したことです。これでloop()が短く読みやすくなります。10 cmより近いと連続音が鳴り、10〜30 cmでは距離に応じてビープ音が速くなり、それより遠いと鳴りません。delay(80 + cm * 10)の行は、障害物が近づくほど間隔を短くします。25 cmで330 ms、12 cmで200 msです。フォーラムでシェアするときは、回路の写真(1投稿につき最大5枚)、コード、「何をするものか」を一文で書けば十分です。改善したい点も書いておくと、より役立つコメントがもらえます。質問をして答えが見つかったら、解決済みにするでトピックを閉じましょう。
毎日30分の学習ルーティン
| 分 | やること | 場所 |
|---|---|---|
| 0〜3 | 今日のクイズのセットを解く | スマホ |
| 3〜8 | プロジェクトの「このコードの働き」の要約とステップごとの解説を読む | スマホ、コードを理解 |
| 8〜18 | 一緒に作りましょう:持っている部品にチェックを入れ、USBを抜いた状態で回路を組む | スマホ+ブレッドボード |
| 18〜23 | リンクをコピーでパソコンでコードを開き、Arduino IDEに貼り付けて書き込む | パソコン |
| 23〜28 | 自分で試す:値を1つ変えて、もう一度書き込み、結果を確認する | パソコン+スマホ |
| 28〜30 | 作りましたをタップし、明日やることを一文で書く | スマホ |
Arduino、ESP32、Raspberry Pi Picoのどれにする?
この計画がArduino Unoを前提にしているのは、初心者にとっていちばん想定外のことが起きにくいボードだからです。アプリのプロジェクトもそれを反映しています。200件以上のうち、Arduino向けが110件以上、ESP32向けが約50件、Raspberry Pi Pico向けが30件以上です。一方、無料プロジェクトは均等に分かれていて、60件のうちArduino向けが20件、ESP32向けが20件、Raspberry Pi Pico向けが20件です。実際的なアドバイスとしては、最初の30日間をArduino Unoでやり終え、Wi-FiやBluetoothを使いたくなったらESP32に移るのがおすすめです。ESP32をスマホから操作したい場合は、アプリのBlueGrays IoTで最初のデバイスが無料です。手順はESP32をスマホから操作するガイドで説明しています。ほとんどの命令はそのまま使え、ESP32の信号機のようななじみのあるプロジェクトから始められます。Pythonの道を選ぶなら、コードガイドにある18枚のMicroPythonカードと、今日のクイズのMicroPython設定が役立ちます。ピン、入力、出力、条件、ループの考え方は3つのボードすべてで同じです。電圧、メモリ、無線の違いはArduinoとESP32の違いは?で、PicoのMicroPythonのセットアップはRaspberry Pi Picoとは?で紹介しています。
| ボード | アプリ内のプロジェクト数(目安) | ソフトウェアと言語 | 選ぶべきとき | 最初の無料プロジェクト |
|---|---|---|---|---|
| Arduino Uno / Nano | 110 | Arduino IDE、C++ | ゼロから始めて、LED、センサー、モーター、ディスプレイで基礎を学びたい | LEDの点滅 |
| ESP32 | 50 | Arduino IDE+ESP32ボードパッケージ、C++ | Wi-FiやBluetoothでスマホから操作したい、IoT。ピンは3.3 V | ESP32でLEDを点滅 |
| Raspberry Pi Pico | 30+ | Thonny、MicroPython | Pythonを学びたい、または学校でPythonを使う | Raspberry Pi Picoの内蔵LEDを点滅(PicoとPico W) |
無料でできることと、プレミアムが役立つとき
この記事の30日間の計画は、すべて無料です。ロードマップにあるすべてのプロジェクトの回路図、部品リスト、コード、ブロック、「コードを理解」セクションが開放されています。さらに、7つの電子工作ツール(カラーコード、LED用抵抗、オームの法則など)、今日のクイズの基本機能、36枚のカードからなるコードガイド、フォーラム、プロジェクトさがしが使え、ほかのすべてのプロジェクトの一覧と紹介ページも見られます。つまり、プレミアムなしでも1か月間しっかり学習し、小さな自分のプロジェクトを作れます。プレミアムが役立つのはたいてい30日目以降で、特定のテーマに進もうとして無料プロジェクトが足りなくなってきたときです。個人向けプレミアムは月額または年額のサブスクリプションで提供されており、お住まいの国の現在の価格はアプリのサブスクリプション画面で確認できます。次のどれかに当てはまるなら、検討する価値があります。
- 具体的な目標(ロボットカー、ディスプレイ付きの時計、Wi-Fi経由のスマホ操作など)があり、そのプロジェクトの手順、コード、回路図が必要。
- 行き詰まったときに、プロジェクトページのトラブルシューティング一覧や、プレミアムプロジェクトのコードを理解セクションを使いたい。
- 直列・並列抵抗、分圧、555タイマーなど11のプレミアムツールを使い、保存した計算で結果をすべてのデバイスに残したい。
- マイ工房 › 部品に持っている部品を保存して、手持ちの部品で作れるプロジェクトを確認したい。
- どれにも当てはまらなければ、急ぐ必要はありません。最初の1か月は無料プロジェクトで過ごし、本当に必要なものがわかってから決めましょう。
よくあるつまずきと、アプリで見るべき場所
| つまずいている点 | 考えられる原因 | 助けになる場所 |
|---|---|---|
| コードが書き込めない、ポートが表示されない | 充電専用ケーブル、ボードやポートが未選択、ドライバがない | 一緒に作りましょうのステップ3にあるヒント、Arduinoに書き込めないとき |
| exit status 1、コンパイルエラー | 手入力時のセミコロン抜けや大文字・小文字の間違い | ソースコードのコピーまたはリンクをコピー、Arduinoのコンパイルエラー |
| LEDが点灯しない | LEDの向きが逆、ピンの間違い、抵抗を挿した列の間違い | 回路図を拡大して1列ずつ見比べる。LED抵抗計算ツール |
| ボタンが勝手にオン・オフする | フローティングのピン、またはボタンのチャタリング | コードを理解の困ったときは、ボタンのガイド |
| シリアルモニタに文字化けが出る | ボーレートがコードのSerial.beginと合っていない | コードガイドのSerial.begin / print / printlnのカード |
| コードをコピーしたけれど理解できない | 読まずに書き込む習慣 | ステップごとの解説、自分で試す、ブロックで表示 |
| 部品が何をするのかわからない | その部品を初めて見ている | 部品ページとこの部品を使うプロジェクト |
| 次に何を作ればいいかわからない | 計画が終わった、または次のテーマに興味がわかない | プロジェクトさがし、おまかせ、マイ工房の作れるプロジェクト |
| 何も動かない | 配線の見落としや部品の故障 | 回路の写真とコードを添えて、フォーラムの「質問」カテゴリーで聞く |
Arduinoを学ぶ秘訣は、一度にたくさんやることではなく、毎日小さな1ステップを本当に理解することです。LEDを点灯させ、なぜ点灯するのかを読み、値を1つ変え、翌日3分のクイズで復習する。この30日間が終わるころには、pinModeから自作の関数までの基本的な命令を使い、センサーからデータを読み取り、2つのプロジェクトを組み合わせた自分のプロジェクトをシェアしているはずです。この計画をスマホで持ち歩きたいなら、BlueGraysをダウンロードして、1日目にLEDの点滅プロジェクトを開いてください。このロードマップのプロジェクトはすべて、そこで無料で待っています。
よくある質問
スマホからArduinoをプログラムできますか?
この記事の方法ではできません。BlueGraysはボードにプログラムを書き込まず、コードはパソコンからUSBケーブル経由でArduino IDEを使って書き込みます。スマホはプロジェクト選び、回路図とコードの理解、計算、復習に使います。パソコンの準備が必要なのは1日目の1回だけで、その後はプロジェクトごとにコードをコピーして書き込むだけです。
Arduinoを身につけるにはどれくらいかかりますか?
1日30分取り組めば、約1か月でpinMode、digitalWrite、digitalRead、analogRead、Serial、forといった基本的な命令を使えるようになります。自分のアイデアをゼロから設計してコードにするには、数か月かけて定期的にプロジェクトを作る必要があります。一度にたくさんやるより、続けることのほうが大切です。
Arduinoを学ぶにはプログラミングの知識が必要ですか?
必要ありません。最初のプロジェクトはほんの少しの命令で動き、それぞれが何をするかはプロジェクトページの「コードを理解」セクションでステップごとに読めます。コードを書いたことがなければ、まず「ブロックで表示」でプログラムをブロックとして見ると、ロジックをつかみやすくなります。
BlueGraysは無料ですか?
アプリは無料でダウンロードでき、60件のプロジェクト(各プラットフォーム20件)が回路図、コード、ブロック、「コードを理解」セクションを含めて完全無料です。今日のクイズ、コードガイド、フォーラム、プロジェクトさがし、7つの電子工作ツールも無料です。そのほかのプロジェクト、プレミアムツール、マイ工房の部品管理(部品)にはBlueGraysプレミアムが必要です。
Arduinoを始めるには何が必要ですか?
最初の3週間は、Arduino Uno、データ通信対応のUSBケーブル、パソコン、ブレッドボード、ジャンパーワイヤー、LED数個、220 Ωと10 kΩの抵抗、ボタン、ブザー、LDRがあれば十分です。第4週にはHC-SR04距離センサーを追加します。これらのほとんどは市販のスターターキットに入っています。
ArduinoとRaspberry Pi Pico、どちらから始めるべきですか?
C++を使い、できるだけ想定外のことが少ない形で電子工作を始めたいならArduino Uno、Pythonを学びたいならRaspberry Pi Picoを選びましょう。BlueGraysにはArduinoのプロジェクトのほうがずっと多くあり、PicoのプロジェクトはThonnyとMicroPythonで動きます。ピン、入力、出力、ループの仕組みはどちらも同じなので、一方を覚えればもう一方への移行が楽になります。
この記事を読んだ後に作れるプロジェクト
全プロジェクトを見る
LEDの点滅
電子工作の第一歩は、1個のLEDを点けたり消したりすることです。Arduinoで短い間隔で点灯と消灯を繰り返すと、LEDが素早く点滅します。ボードが光を制御する仕組みを最もシンプルな形で確かめ、これから取り組むプロジェクトの基礎を身につけます。

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

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

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

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

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

ブザーの使い方
呼び鈴やアラームがどうやって音を出すのか、気になったことはありませんか?Arduinoが小さなブザーを短い間隔で鳴らし、音を出す、止める、を繰り返します。電気で音が生まれる仕組みを学び、メロディーを演奏するプロジェクトへの第一歩を踏み出せます。

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

