はじめに
こんにちは!Python-VBA Labのニンジンです。皆さんは、電子工作や製造の現場で「部品の払い出
し」に苦労したことはありませんか?
何百、何千とある部品棚から、構成表に従って必要なパーツを探し出す作業……。慎重に
やっていても、棚の読み間違いや数量のミスは起きてしまうものです 。
そこで今回は、Raspberry PiとPython、そして「光るLED」を駆使して、誰でもミスなく
部品を取り出せるデジタルピッキングシステムを検討します。
従来の課題:部品が多すぎて配線が終わらない?
当初の構想では、部品IDとLEDを1対1で紐付け、IDを指定したらそのLEDが光る仕組みを考え
ました。しかし、ここで大きな問題に直面します 。
- 配線膨大問題:部品が1,000点あれば、LEDも1,000個。それぞれに線を引くのは現実的ではありません。
- 制御ピン不足:ラズパイのGPIOピンだけでは、これほど多くのLEDを個別に制御しきれません。
- ID判別:プログラムから「150番のLEDを光らせろ」と言っても、LED側に自分を識別する能力がなければ制御できません。
これらの問題をスマートに解決するのが、今回紹介する「アドレス指定型LED:WS2812B」です。
解決策:アドレス指定型LED(WS2812B)の採用

配線地獄を回避する切り札が、WS2812B(通称:NeoPixel)です。このLEDは1つ1つに制御IC
が内蔵されており、データ線1本で数珠つなぎに連結できます。
このシステムの仕組み:
- データ線1本でOK:
ラズパイのGPIOから1本の線を伸ばし、LEDテープを棚に沿って貼るだけです。 - 位置指定が可能:
プログラムから「3番目のLEDを緑に光らせる」といった指示が簡単に出せます。 - Excel連携:
棚番号とLEDのインデックスをExcelで管理すれば、数千点規模の部品も一括管理可能です。
今回の要素設計のゴール
ラズパイとLEDテープを繋ぎ、Excelデータ(MaseterとOrder)を読み取って、対応するLEDを、Flaskで立ち上げたサーバーを経由でスマホ操作で光らせる
ロードマップ
今回のデジタルピッキングシステムの要素設計ロードマップです。
前編となる本記事はSTEP1まで実施します
STEP1:環境構築
- ラズパイとLED(WS2812B)の物理接続
- Pythonライブラリ(rpi_ws281x等)のインストール
- プログラムからLEDを1個だけ光らせる(疎通確認)
STEP 2:要素技術の連携
- ExcelファイルをPythonで読み込む
- 入力したIDに紐づく特定のLEDを光らせる
- NEXT: Order シートを読み込んで「部品名・数量・LED番号」をセットで取得する
STEP 3:UI(操作画面)の実装
- Flask(Webサーバー)を立ち上げる
- タブレットのブラウザに「部品名」と「数量」を大きく表示する
- 「完了」ボタンを押すと次の部品に進むロジックを作る
システム構成と準備するもの
| 項目 | 役割 |
| Raspberry Pi(ラズパイ) | システムの司令塔。Excelの読み込みとLED制御を行います。 |
| WS2812B LEDテープ | 部品棚に設置。対象のパーツの場所を光で示します。 |
| 操作用端末(PC スマホ タブレット等) | ブラウザで操作画面(Flask)を表示し、進捗を確認します。 |
STEP 1:ハードウェア接続と点灯テスト
配線図の確認
| LEDピン | Raspberry Pi ピン |
| 5V(赤) | 5V (2番または4番ピン) |
| GND(黒) | GND (6番などのGroundピン) |
| DIN(中) | GPIO 18 (12番ピン) |
※接続ミスに注意: 5VとGNDを逆に繋ぐとLEDのICが一瞬で焼けます。
ライブラリ(rpi_ws281x、Pandas、OpenPyXl)のインストール
ラズパイ側のターミナルで、LED制御用のライブラリをインストールします。
最近のRaspberry Pi OS(Debian 12以降)では、OS自体の安定性を守るために
、pipでシステム領域に直接ライブラリを入れることが制限されるようになりました。
これを回避してインストールするには、「仮想環境(venv)」を作るのが
標準的なやり方ですが、実験だし、面倒なのでBreak systemで無理やりインストールします
Lチカテスト(Python)
正しく結線出来ているか確認するため
まずは、「3番目のLEDを緑に光らせる」だけのコードでテストします。
権限を持たせて実行

※実行には権限が必要です
ニンジンはラズパイ上でPythonを動かす場合はThonnyで動作させますが、単純にThonnyを立ち上げると動作しません。
「sudo」を付けてThonnyに権限を持たせて立ち上げます。
テストコード:test_led.py
import board
import neopixel
# 設定: ピン番号、LEDの数、輝度(0.0〜1.0)
pixel_pin = board.D18
num_pixels = 20
ORDER = neopixel.GRB
pixels = neopixel.NeoPixel(
pixel_pin, num_pixels, brightness=0.2, auto_write=False, pixel_order=ORDER
)
# 3番目(インデックスは2)を赤にする
pixels[2] = (0, 255, 0)
pixels.show()
テスト結果:test_led.py
まとめと次回予告
前編では、膨大な配線を不要にする「アドレス指定型LED」の導入と、ラズパイからの疎通確
認までを解説しました。これで「光る棚」の基礎ができましたね 。
次回の後編では、いよいよ本丸のソフトウェア実装に入ります。
- Excelデータの読み込み:数千点の部品リストをPythonで操る。
- FlaskによるWeb UI:タブレットから「次へ」ボタンで操作する仕組み。
- 自動巡回モード:効率的なピッキングルートを光でナビゲート。
お楽しみに!
後編の記事はこちら
【後編】数千点の部品管理を自動化!ラズパイで作るデジタルピッキングシステム(Excel連携&Web UI編)
シリーズ記事一覧
電子工作・自動化ツールの製作記録をシリーズごとにまとめています。気になるテーマからお読みください。
-
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アプリ化まで、実務で役立つ自動化ノウハウが満載です。
シリーズを読む






コメント