はじめに
XYテーブル製作シリーズ 第1回
はじめに:電子工作の第一歩、LEDを1つ光らせる
前回(第0回)で Raspberry Pi OS のインストールを終えました。今回はいよいよ電子工作の第一歩、PythonでLEDを1つ光らせる「Lチカ」です。これができれば、GPIOの仕組み・Pythonでの制御方法・電子回路の基本が一通りつかめます。
この記事で分かること
- LEDと抵抗のブレッドボード配線(GPIO18 → 抵抗 → LED → GND)
- GPIO(General Purpose Input Output)を「出力」として使うとはどういうことか
nanoでled.pyを作り、RPi.GPIOでLEDを1秒ごとに点滅させるコード(ZIP配布)GPIO.setmode/setup/outputそれぞれの意味- 「光らない」ときのよくある配線ミス
用意するものとLEDの配線
LEDには必ず抵抗を入れてください。直接つなぐと過電流でLEDやGPIOが故障します。
LEDの足の見分け方と接続
- 長い足(アノード/+):GPIO18(物理ピン12)→ 抵抗 → LEDの長い足
- 短い足(カソード/−):LEDの短い足 → GND(物理ピン6)
GPIOとは
GPIO は General Purpose Input Output の略で、Raspberry Pi のピンを「電気のON/OFF」で制御できる機能です。今回はピンを「出力(Output)」として使い、HIGH(電気を流す)でLED点灯、LOW(止める)で消灯させます。
PythonでLEDを点滅させるコード(led.py)
Raspberry Pi でターミナルを開き、nano(Raspberry Pi標準のテキストエディタ)で led.py を新規作成します。
開いたら次のコードを入力します。
import RPi.GPIO as GPIO
import time
LED_PIN = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
try:
while True:
GPIO.output(LED_PIN, GPIO.HIGH)
time.sleep(1)
GPIO.output(LED_PIN, GPIO.LOW)
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()入力したら Ctrl + X → Y → Enter で保存して終了します。
実行とコード解説
ターミナルで次を実行します。
python3 led.py1秒ごとにLEDが点滅すれば成功です。終了は Ctrl + C。
コードの意味(今は「そういうもの」でOK)
GPIO.setmode(GPIO.BCM)… GPIO番号(BCM番号)で制御する設定GPIO.setup(LED_PIN, GPIO.OUT)… 18番ピンを出力モードに設定GPIO.output(LED_PIN, GPIO.HIGH)… 電気を流す(LED点灯)GPIO.output(LED_PIN, GPIO.LOW)… 電気を止める(LED消灯)except KeyboardInterrupt: GPIO.cleanup()… Ctrl+C で終了したときにピンの状態を戻す
よくある失敗
- LEDの向きが逆(長い足・短い足を逆に挿している)
- 抵抗を入れていない
- GNDにつながっていない
光らない場合、ほとんどが配線ミスです。ブレッドボードの列(縦の穴が内部でつながっている)も確認してください。
まとめと次回予告
これでGPIO制御・Pythonからの出力操作・電子回路の基本が体験できました。次回・第2回では、モータードライバー「A4988」を使ってステッピングモーターを回します。
次に読む記事
⚙️ 次回はこちら(第2回) ラズパイでステッピングモーターを回す方法|A4988の配線とPython制御・Vref調整 A4988の結線とVref調整、STEPパルスでモーターを回すコードまで。 → 🗺️ 全体像 自作XYテーブルの全手順ロードマップ|Raspberry Pi+ステッピングモーターで2軸制御 第0回〜第11回の全工程をまとめたロードマップ。 →よくある質問(FAQ)
QGPIO18(BCM)は物理ピンだと何番ですか?
A物理ピン12番です。GPIO.setmode(GPIO.BCM) を使うとコード上は「18」と書きます。GPIO.setmode(GPIO.BOARD) にすると物理ピン番号(12)で書きます。本シリーズはBCMで統一しています。
Q抵抗は何Ωを使えばいいですか?
A330Ω〜1kΩが目安です。抵抗値が大きいほどLEDは暗くなります。赤色LEDで3.3V駆動なら 220〜330Ω 程度が明るく点灯します。手持ちがあれば470Ωや1kΩでも問題なく光ります。
QRPi.GPIO がインストールされていないと言われます。
ARaspberry Pi OS には標準で入っていますが、無い場合は sudo apt install python3-rpi.gpio でインストールします。Bookworm(2023年以降)では RPi.GPIO が動かないことがあり、その場合は rpi-lgpio か gpiozero を使います。
QLEDが点きっぱなし/消えっぱなしになります。
A点きっぱなしはLEDの向きが合っていて配線は正しいがコードが HIGH のまま、消えっぱなしは向きが逆かGND未接続、抵抗の差し込み位置がずれている、などが原因です。まずLEDを裏返して試すと切り分けられます。
Qプログラムを止めたらGPIOがHIGHのまま残りました。
A強制終了などで GPIO.cleanup() が呼ばれないと、ピンの状態が残ります。次回起動時に setmode/setup し直せば上書きされます。明示的に戻したいときは python3 -c “import RPi.GPIO as GPIO; GPIO.cleanup()” を実行します。
XYテーブル製作シリーズ(全12回)
- Raspberry Pi ImagerでのOSインストール手順|microSD書き込みから初期設定まで
- ラズパイでLチカ|PythonとRPi.GPIOでLEDを点灯・点滅させる方法(この記事)
- ラズパイでステッピングモーターを回す方法|A4988の配線とPython制御・Vref調整
- ステッピングモーターをmm単位で動かす計算式とPython実装|step/mmの求め方
- PythonでX軸・Y軸のステッピングモーターを2軸制御する方法|A4988ドライバー2台
- ステッピングモーターの脱調を防ぐ加減速制御(台形駆動)をPythonで実装する方法
- Raspberry PiでXYテーブルを2軸同時制御|Pythonのthreadingでステッピングモーターを同時に動かす
- Raspberry Pi+PythonでXYテーブルの原点復帰(Homing)を実装|リミットスイッチ・バックオフ処理
- PythonのTkinterでXYテーブルをGUI操作する|移動量入力・XY同時実行・緊急停止ボタン
- PythonのGUIが固まる理由とThreadの使い方|Tkinterでモーター制御中もボタンを効かせる
- XYテーブルGUIに原点復帰・現在位置表示・ソフトリミットを実装|Queueでスレッド安全にGUI更新
- XYテーブル制御GUIに単軸動作・片道移動・安全なプログラム終了を実装
- 自作XYテーブルの完成構成と設計資料(図面・BOM・結線図)|完成版Pythonコード配布
補足記事
⚡ 第1.5回・補足 A4988の電流制限(Vref)調整方法|焼損を防ぐ計算式とテスターでの設定手順 モーターを回す前に必ずやる A4988 の電流調整。 → 🔀 番外編 L6470が動かない原因|A4988との違いとSPI通信・デイジーチェーンの罠 高機能ドライバ L6470 を A4988 と同じ感覚で使ってハマった話。 → 🗺️ 全体像 自作XYテーブルの全手順ロードマップ|Raspberry Pi+ステッピングモーターで2軸制御 第0回〜第11回の全工程をまとめたロードマップ。 →Follow me on X
本ブログの中の人「ニンジン🥕」はXやってます。新着記事はいち早くポストでお知らせしているので、見逃したくない方は @ninjin_py_vba をフォローしてみてください🥕
@ninjin_py_vba をフォローシリーズ記事一覧
電子工作・自動化ツールの製作記録をシリーズごとにまとめています。気になるテーマからお読みください。
-
FILE.01 — IoT
Raspberry Pi Pico W × GASラズパイPico W×GASで自作!「LINEで動く温湿度&スマートリモコン」完全ロードマップ
「外出中のペットの室温が心配…」そんな思いからスタートしたIoT自作プロジェクトの総集編。温湿度監視からエアコン遠隔操作まで、仕組みをゼロから作りたい方のための全5回の開発記録です。
シリーズを読む -
FILE.02 — CNC
Arduino × レーザー刻印CNCCNC自作シリーズ
高精度な加工を目指し、本格的な自作CNC製作に挑戦中。現在は基幹パーツであるオリエンタルモーターの納品を待つ「設計・準備編」を公開。ハードとソフトの両面から、理想のマシンを形にする過程をリアルタイムにお届けします。
シリーズを読む -
FILE.03 — XY軸制御
Raspberry Pi × ステッピングモーターXYテーブルシリーズ
Raspberry Piとステッパモーターを使い、ゼロから2軸制御に挑む記録。OS設定から回路設計、多軸制御のPythonコードまで、躓きやすいポイントを徹底図解。電子工作初心者が「動く感動」を味わうための実戦ガイドです。
シリーズを読む -
FILE.04 — 業務自動化
Python × Excel × CustomTkinter【Python開発記】NINJIN Mail制作記
PythonとExcelを連携させ、実務で即戦力となるメール送信ツールを開発。CustomTkinterによるUI構築や、ミスを防ぐテンプレート活用術など、現場の「痒い所に手が届く」自動化ノウハウを細部まで丁寧に解説します。
シリーズを読む -
FILE.05 — 業務自動化
Python × Excel × GUIアプリ化Invoice Maker(請求書・見積書自動作成)
手作業の請求書作成から卒業!PythonでExcelデータを読み込み一括PDF化する「Invoice_Maker」の作り方を全3回で解説。基本ロジックからGUIアプリ化まで、実務で役立つ自動化ノウハウが満載です。
シリーズを読む


コメント