電子工作とプログラミング入門|初心者は何から始める?

プログラミング・電子工作






電子工作とプログラミング入門|初心者は何から始める?







入門 / ロードマップ

電子工作とプログラミング入門|初心者は何から始める?

電子工作にも、プログラミングにも興味がある。でも、何から手をつければいいか分からない。そんな方は多いはずです。本記事では、まず大切な整理をします。「どのハードウェアを使うか」と「どの言語を使うか」は、別々の軸です。ArduinoとPythonを並べて考えるのではありません。Arduino・Raspberry Pi・ESP32といったハードウェアの選択肢と、C++・Pythonという言語の選択肢を、それぞれ公平に見ていきます。電源・回路の基礎から、実際に動くコードまで、丁寧に紹介します。

YOFUKASI LAB編集部
公開日:2026年9月12日
読了目安:26分

執筆・実機検証:YOFUKASI LAB運営者

理学療法士/Arduino・Pythonを使った医療機器制作・学会発表経験あり

Chapter 01 / Two Axes

01「ハードウェア」と「言語」は別の軸で考える

電子工作の入門記事には、よくある流れがあります。「Arduinoの次はPythonへ」という並べ方です。しかし、これは少し誤解を招きます。Arduinoは「ハードウェア(ボード)」の名前です。Pythonは「プログラミング言語」の名前です。この2つは、そもそも比較する対象がずれています。正しく対比してみましょう。ハードウェアは、Arduino・Raspberry Pi・ESP32などです。言語は、C++・Pythonなどです。それぞれ、別のリストとして扱うべきです。

よくある組み合わせを整理する

実際には、ハードウェアごとに相性の良い言語があります。Arduinoは、C++をベースにした書き方で動きます。Raspberry Piには、事情があります。Linuxという、本格的なOSの上で動くのです。そのため、Pythonで書かれることが非常に多いです。ESP32にも特徴があります。Arduino用のソフトを使います。C++系の書き方が一般的です。つまり、こういうことです。「Arduino×C++」「Raspberry Pi×Python」。この組み合わせが、もっとも自然な入り口になります。

ハードウェア もっとも一般的な言語 正体
Arduino C++(Arduino独自の簡略化あり) OSを持たない、専用のマイコンボード
Raspberry Pi Python Linuxが動く、小さなパソコン
ESP32 C++(Arduino IDE経由が主流) 無線機能付きのマイコンボード

※あくまで「もっとも一般的な組み合わせ」です。ArduinoでMicroPythonを使う選択肢もあります。Raspberry PiでC++を使う選択肢もあります。

本記事の進め方

この整理を踏まえて、話を進めます。2章でハードウェアを紹介します。3章で言語を紹介します。それぞれ独立して扱います。そのあと、電源の基礎に触れます。実際のコード例へも進みます。ArduinoとRaspberry Piに、優劣はありません。目的に応じた、道具の違いです。公平に扱っていきます。



Chapter 02 / Hardware

02ハードウェアの選択肢|代表的な4つのボード

Arduino・Raspberry Pi・ESP32・micro:bitの特徴と選び方

ここでは、代表的な4つのボードを紹介します。優劣はつけません。それぞれ、生まれた目的が違います。得意なことも異なります。

Arduino|電子回路の仕組みを学ぶための定番

Arduinoには、大きな特徴があります。OS(基本ソフト)を持たないのです。非常にシンプルな構造です。電源を入れると、どうなるでしょうか。書き込まれたプログラムが、すぐに動き出します。余計な処理が挟まりません。そのため、電気信号の流れを、直感的に理解しやすいのです。価格も手頃です。情報量も、世界でもっとも豊富な部類です。「電子回路そのものを学びたい」。そんな目的に、もっとも適したボードです。

Raspberry Pi|Linuxが動く、本格的な小型コンピュータ

Raspberry Piは、Arduinoとは根本的に違います。Linuxという、パソコンと同じ系統のOSが動くのです。ディスプレイやキーボードをつなげば、どうなるでしょうか。そのままパソコンとして作業できます。GPIOと呼ばれるピンもあります。これを使えば、LEDやセンサーを直接つなげます。つまり、こういう存在です。「パソコンとしての機能」と「電子工作の入出力」。両方を兼ね備えています。得意なことも多くあります。カメラモジュールを使った撮影・録画です。センサーデータのCSV保存や分析もできます。複数のプログラムを、同時に動かすこともできます。OSの力を活かした処理が得意です。ネットワークにもつなぎやすい特徴があります。Webサーバーを立てる使い方も可能です。

ESP32|無線通信を標準搭載したマイコン

ESP32は、Arduinoに近い感覚で扱えます。もっとも大きな特徴があります。Wi-FiとBluetoothです。追加のモジュールなしで、最初から内蔵しています。Arduinoで無線通信をしたい場合はどうでしょうか。外部モジュールを追加する必要があります。ESP32なら、その手間がありません。スマートフォンから操作する装置。インターネット経由でデータを送受信する仕組み。こうした作品と相性が良いボードです。

micro:bit・M5Stackなど|完成度が高い選択肢

micro:bitは、イギリス生まれの教育用ボードです。LEDの表示があります。加速度センサーもあります。最初から本体に内蔵されています。ブラウザだけでプログラムを組めます。もっとも手軽に始められる部類です。M5Stackにも特徴があります。ESP32をベースにしています。ディスプレイやボタン、バッテリーまで、1つの箱にまとまっています。配線に自信がない方でも大丈夫です。電源を入れるだけで、多くの機能を試せます。どちらも、あるニーズに応えます。「まず動くものに触れたい」というニーズです。

結局、何を基準に選べばいいか

基準は、シンプルです。「何を作りたいか」です。回路の仕組みそのものを理解したいなら、Arduinoです。カメラや画像処理、データ分析をしたいなら、Raspberry Piです。無線でスマートフォンやネットとつなげたいなら、ESP32です。すぐに動くものに触れたいなら、micro:bitやM5Stackです。1つに絞り込む必要はありません。多くの電子工作愛好家は、目的に応じて、複数のボードを使い分けています。

Chapter 03 / Language

03言語の選択肢|C++とPythonの違い

電子工作のハードウェアとC++・Pythonなどプログラミング言語の違い

次に、プログラミング言語の側を見てみましょう。ハードウェアの選択とは、切り離して考えられます。

C++(Arduinoでの書き方)

C++は、歴史のあるプログラミング言語です。Arduinoでは、この言語をベースにしています。電子工作向けに、使いやすく整えられています。変数の型を、はっきりと指定する必要があります。文の終わりにセミコロン(;)を付けます。処理のまとまりは、波かっこ({ })で囲みます。動作は、機械に近い性質を持ちます。無駄のない、速い処理が可能です。C++の公式チュートリアルも、体系的に学びたい方には参考になります。

Python(Raspberry Piでの書き方)

Pythonは、読みやすさを重視した言語です。波かっこの代わりに、字下げ(インデント)を使います。これで処理のまとまりを表すのです。変数の型も、多くの場合、厳密に指定する必要はありません。この読みやすさには、理由があります。教育用途で広く使われています。データ分析やAI関連の分野でも同様です。世界的に人気の高い言語です。Raspberry Piの多くの入門記事は、Pythonを前提に書かれています。Python公式チュートリアルには、日本語版も用意されています。

どちらが「簡単」なのか

一般的な評価があります。Pythonの方が、文法がシンプルだという評価です。初心者には、とっつきやすいと言われます。しかし、事情が少し違います。Arduinoで使うC++は、初心者向けに簡略化されています。多くの部分が、あらかじめ整えられているのです。そのため、実際の難易度の差は、それほど大きくありません。むしろ、大切なことがあります。共通する考え方を、早くつかむことです。「if文」「for文」「変数」。こうした発想は、言語をまたいで共通しています。この考え方さえ身につければ、どうなるでしょうか。C++からPythonへ、あるいはその逆へ。比較的スムーズに移行できます。



Chapter 04 / Getting Started

04必要なものと始め方

Arduinoで始める場合

Arduino電子工作を始めるために必要な本体・USBケーブル・ブレッドボード・部品

必要なものは、シンプルです。Arduino本体、USBケーブル、ブレッドボードとジャンパーワイヤ。これだけで、多くのことを試せます。パソコンには、Arduino IDEをインストールします。無料のソフトです。特別な設定は、ほとんど必要ありません。USBケーブルでつなぐだけです。それで、書き込みの準備が整います。

Raspberry Piで始める場合

Raspberry Pi本体に加えて、いくつか用意します。microSDカードです。電源用のケーブルです。最初のセットアップには、さらに必要な物があります。ディスプレイ・キーボード・マウスです。OSは、公式ツールを使って準備します。Raspberry Pi Imagerというツールです。これで、SDカードに書き込みます。起動後は、どうなるでしょうか。パソコンとほぼ同じ感覚で、Pythonのプログラムを書いて実行できます。GPIOピンを使った電子工作もあるでしょう。その場合は、Arduinoと同じです。ブレッドボードやジャンパーワイヤも用意しましょう。

費用感の目安

Arduino本体と基本部品セットは、数千円程度から始められます。Raspberry Piは、事情が少し違います。SDカードや電源も必要です。そのため、初期費用はやや高くなる傾向があります。ただし、考え方を変えてみましょう。Raspberry Piは、そのままパソコンとしても使えます。用途の幅を考えると、決して割高ではありません。

Chapter 05 / Electricity Basics

05電源・回路の基礎(どのボードでも共通)

🚰

「電圧」「電流」「抵抗」って何?:水道にたとえると分かりやすいです。電圧は「水を押し出す力の強さ」、電流は「実際に流れる水の量」、抵抗は「水が通るホースの細さ」です。ホースが細いほど、同じ力でも水は流れにくくなります。電気も、まったく同じ仕組みで動いています。

電圧・電流・抵抗という3つの言葉があります。オームの法則という、簡単な計算式もあります。これらは、Arduinoでも登場します。Raspberry PiのGPIOでも、同じように登場します。ハードウェアが変わっても、電気の基本法則は変わりません。LEDに抵抗が必要な理由も、両方で共通です。SparkFunのオームの法則解説も、実例つきで分かりやすくまとまっています。

電流の上限には要注意

ここで、両者の違いを1つ知っておきましょう。Arduinoのデジタルピンには、上限があります。1本あたり最大40mA程度です。一方、Raspberry PiのGPIOピンは違います。1本あたり約16mAです。全体でも、約50mAが上限とされています。Raspberry Piの方が、電流の上限がかなり低いのです。これには理由があります。Raspberry Piは、そもそも別の設計思想を持っています。「センサーやLEDを直接駆動するための設計」ではないのです。「小型コンピュータのおまけ機能」として、GPIOを備えています。大きな電流が必要な部品もあるでしょう。モーターなどです。その場合、どちらのボードでも同じ対応が必要です。駆動回路やモータードライバーを、別途はさむ必要があります。



Chapter 06 / LED Example

06実践1:LEDを光らせる(ArduinoとRaspberry Piで比較)

百聞は一見にしかずです。同じ処理を、比較してみましょう。「LEDを1秒おきに点滅させる」処理です。Arduino(C++)とRaspberry Pi(Python)、両方のコードで見比べます。

Arduino(C++)

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

Raspberry Pi(Python)

from gpiozero import LED
from time import sleep

led = LED(17)

while True:
    led.on()
    sleep(1)
    led.off()
    sleep(1)

コードを見比べて分かること

Arduino側には、決まった箱があります。setup()loop()です。Raspberry Pi側のPythonコードには、そうした箱はありません。代わりに、別の書き方をします。while True:という書き方です。これで「ずっと繰り返す」処理を、自分で作っています。Raspberry Pi側には、便利な道具もあります。gpiozeroというライブラリです。初心者向けに作られています。これにより、驚くほど直感的な命令が使えます。led.on()led.off()です。書き方の見た目は違います。しかし、発想は同じです。「点ける→待つ→消す→待つ→くり返す」。この流れは、共通しています。

電流を流す向きの配線は共通

LEDには、長い足と短い足があります。長い足(アノード)は、抵抗経由でピンへつなぎます。短い足(カソード)は、GNDへつなぎます。この配線の考え方は、両方で同じです。Arduinoでも、Raspberry Piでも変わりません。電気の仕組みという土台があります。ボードが変わっても、この仕組みは揺らぎません。

Chapter 07 / Sensor Example

07実践2:ボタンとセンサーを扱う

次は、条件分岐の例です。ボタンが押されたときだけ、LEDを点けます。基本の型を確認してみましょう。「入力を感じ取る→判断する→出力で反応する」という型です。両方のコードで見てみます。

Arduino(C++)

void setup() {
  pinMode(13, OUTPUT);
  pinMode(2, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(2) == LOW) {
    digitalWrite(13, HIGH);
  } else {
    digitalWrite(13, LOW);
  }
}

Raspberry Pi(Python)

from gpiozero import LED, Button

led = LED(17)
button = Button(2)

while True:
    if button.is_pressed:
        led.on()
    else:
        led.off()

Arduinoの書き方を見てみましょう。if (digitalRead(2) == LOW)のように書きます。ピンの状態を、自分で確認しています。Raspberry Pi側は、少し違います。Buttonという、専用のクラスがあります。button.is_pressedと書くだけです。まるで英語の文章のような書き方です。状態を確認できます。どちらにも共通点があります。土台にあるのは、if文の考え方です。「もし〜だったら」という発想です。

センサーを増やしても、型は変わらない

温度センサーを使うこともあるでしょう。光センサーを使うこともあるでしょう。どちらでも、この流れは変わりません。「入力→判断→出力」という、3段階の流れです。Arduinoで身につけた、この型があります。Raspberry Piでのプログラミングにも、そのまま応用できます。逆もまた同じです。1つのハードウェアで身につけた考え方は、決して無駄になりません。



Chapter 08 / Combining Boards

08ArduinoとRaspberry Piを組み合わせる

ここまで、両者を対等な選択肢として紹介してきました。しかし、実際の現場では違います。「どちらか一方を選ぶ」だけではありません。「両方を組み合わせる」という使い方も、非常によく行われています。

役割分担という考え方

Arduinoには、得意なことがあります。リアルタイム性の高い、シンプルな入出力です。センサーの値を、一定間隔で読み取り続ける処理に向いています。寸分の狂いもなく、です。Raspberry Piにも、得意なことがあります。複雑な計算です。データの保存です。画像処理です。ネットワーク通信です。この2つを組み合わせると、役割分担ができます。Arduinoが、現場でセンサーの値を取得します。シリアル通信で、Raspberry Piに送ります。Raspberry Pi側は、受け取ったデータを活用します。グラフ化することもできます。インターネット経由で、クラウドに送信することもできます。

組み合わせの具体例

具体例を挙げてみましょう。温度センサーのデータを、Arduinoで読み取ります。シリアル通信で、Raspberry Piに送ります。Raspberry Pi側には、Pythonプログラムがあります。データを受け取ります。CSVファイルに記録します。同時に、グラフとして画面に表示します。この役割分担には、分かりやすい例えがあります。「Arduinoは現場の感覚器官、Raspberry Piは頭脳」という例えです。どちらか一方を選ぶ、という発想にとらわれないでください。必要に応じて、両方を使いこなす視点を持ちましょう。それが、電子工作という分野を、広く楽しむコツです。

Chapter 09 / Learning Order

09学ぶ順番の考え方

電子工作初心者が目的別にArduino・Raspberry Pi・ESP32・micro:bitを選ぶ方法

「結局、何から手をつければいいのか」。この疑問に、あらためて答えておきましょう。答えは、身も蓋もないものです。「作りたいものによる」という答えです。それでも、いくつかの目安は示せます。

やりたいこと 最初の一歩
電気・回路の仕組みを基礎から理解したい Arduino+C++から始める
データ分析や画像処理に興味がある Raspberry Pi+Pythonから始める
ゲームやアプリのプログラミングに興味がある Pythonから始め、あとで電子工作を足す
とにかく早く何か動くものを見たい micro:bitやM5Stackから始める

どこから始めても、遠回りにはなりません。共通の土台があるからです。電圧・電流・抵抗といった、電気の基礎です。if文やfor文といった、プログラミングの基礎です。どのボードを選んでも、これらは活きてきます。どの言語を選んでも、同じです。1つの分野を極めてから次へ、とは考えないでください。気になったものから、気軽に手を伸ばしてみましょう。



Chapter 10 / Overcoming Obstacles

10よくある挫折ポイントと乗り越え方

最初の1個が動かない壁

配線ミスがあるかもしれません。コードの小さな誤りもあるかもしれません。最初のLED点灯すら、うまくいかないことがあります。Arduinoであれば、方法があります。シリアルモニタで、値を確認する方法です。Raspberry Piであれば、こちらです。print()文で、状態を表示しながら確認します。原因を、少しずつ切り分けていきましょう。焦らないことが大切です。配線を1本ずつ確認する習慣が、もっとも確実な近道です。

どちらのボードを選ぶか迷い続ける壁

比較記事を読むことがあるでしょう。読めば読むほど、決められなくなることがあります。そんなときは、シンプルに考えましょう。「値段が手頃な方」で構いません。「先に情報を見つけた方」でも構いません。どちらから始めても大丈夫です。学んだことは、もう一方に必ず活きてきます。選ぶこと自体に、時間をかけすぎないようにしましょう。

1人で悩みすぎてしまう壁

調べても解決しないエラーもあるでしょう。何時間も向き合ってしまうことがあります。そんなときは、一度離れてみましょう。翌日に見直すだけで、あっさり解決することも珍しくありません。ArduinoもRaspberry Piも、世界中に利用者がいます。エラーメッセージそのものを、検索してみましょう。同じ壁にぶつかった、先人の記録が見つかります。たいていの場合は、そうです。

編集部想定シナリオ

電子工作を始めたばかりのYさんがいた。最初のLED点灯だけで、丸1日を費やしてしまった。何度確認しても、原因が分からなかった。心が折れかけたという。しかし、翌朝もう一度見直してみた。すると、原因はすぐに見つかった。抵抗の足が、隣の穴にずれて刺さっていただけだった。振り返ってみると、この経験こそが一番の学びになった。Yさんは、そう話す。うまくいかない時間も、決して無駄にはなりません。

Chapter 11 / FAQ

11よくある質問

基本のQ&A

Q.結局、ArduinoとRaspberry Pi、どちらを買えばいいですか?
A.電子回路そのものの仕組みをじっくり学びたいなら、Arduinoから始めるのがおすすめです。カメラや画像処理、データ分析、ネットワーク連携など、パソコン的な処理をしたいなら、Raspberry Piが向いています。将来的には、両方を1つずつ持っておくと、できることの幅が大きく広がります。

Q.PythonはArduinoでも使えますか?
A.Arduino本体の上で直接Pythonを動かすことは、基本的にはできません。Arduinoは主にC++系の言語で書きます。ただし、Arduinoとパソコンをシリアル通信でつなぎ、パソコン側のPythonでデータを受け取る、という組み合わせ方は広く使われています。

応用のQ&A

Q.C++とPython、プログラミング初心者にはどちらが簡単ですか?
A.一般的には、Pythonの方が文法がシンプルで、初心者にはとっつきやすいとされています。ただし、Arduinoで使うC++は、あらかじめ多くの部分が簡略化されているため、実際にはそれほど大きな差を感じないことも多いです。どちらを先に学んでも、もう一方への応用は難しくありません。

Q.予算はどれくらい見ておけばいいですか?
A.Arduino本体と基本部品セットは、数千円程度から始められます。Raspberry Piは、本体に加えて、SDカードや電源、必要であればディスプレイやキーボードも用意するため、Arduinoよりもやや初期費用がかかる傾向があります。最初は片方から始め、必要に応じて買い足す進め方が無駄がありません。

参考資料

  1. Arduino公式サイト「Getting Started」, https://www.arduino.cc/en/Guide
  2. Raspberry Pi公式ドキュメント「GPIO Basics」, https://www.raspberrypi.com/documentation/computers/os.html
  3. gpiozero公式ドキュメント, https://gpiozero.readthedocs.io/
  4. C++公式チュートリアル, https://cplusplus.com/doc/tutorial/
  5. Python公式チュートリアル(日本語版), https://docs.python.org/ja/3/tutorial/
  6. SparkFun Learn「Voltage, Current, Resistance, and Ohm’s Law」, https://learn.sparkfun.com/tutorials/voltage-current-resistance-and-ohms-law/all

※本記事は個人の学習・電子工作用途を対象にしています。実際の製品や医療機器へ組み込む場合は、電気安全・製品規格の専門家に別途ご相談ください。


関連記事

特集記事

コメント

この記事へのコメントはありません。

TOP
CLOSE