工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

ホットグルー棒で作るLEDマトリックスランプ - カラフルなディスプレイを自作

必要な部品と材料

部品数量備考
WS2812B アドレサブルLEDストリップ(IP60、60LED/m、非防水)128個(16本×8LED)総LED数128
Arduino Nano R31
3A ミニDC-DCステップダウンコンバーター1出力5Vに設定必須
抵抗 10kΩ1
抵抗 330Ω1データ線保護用
コンデンサー 470µF 10V(ロープロファイル)1電源安定化用
10kΩ リニアスライドポテンショメーター(45mm、ストローク30mm)1Bourns PTA3043等
小型プッシュボタン1モード切替用
小型ロッカースイッチ1電源ON/OFF用
DC電源ソケット(パネルマウント)1
7mm×100mm グルースティック64本光ファイバー代わりに使用

必要な工具と機器

使用アプリとオンラインサービス

プロジェクト概要

このランプは、jbumstead氏の「Fiber Optic LED Matrix」をベースにしています。OpenSCADで設計し、元設計の12mm拡散RGB LEDを安価なWS2812Bストリップに置き換え、ケースをできるだけ薄くして安価な7mmグルースティックが使えるようにしました。

ステップ1: ケースの3Dプリント

サポート材が必要なのは「Hot Glue Matrix - Bottom.stl」のみ。層高さ0.2mm、インフィル15%でプリント。プリント後、19/64インチドリルで穴を拡張するとグルースティックの挿入が容易になります。

ステップ2: ランプ部の組み立て

  1. WS2812Bストリップを8LEDずつ16本にカット
  2. 平らな面に8本貼り付け、中心間隔15mmで配置。隣り合うストリップは向きを交互に(DINが左上になるよう)
  3. 配線:GND、DIN、+5Vを各ストリップ間で接続。上段と下段を繋ぐ3本線を長めに確保
  4. 「Hot Glue Matrix - Holder Top」フォームの穴に3本線を通し、ストリップを裏返してチャンネルにはめ込む。ブルーペインターテープで固定
  5. 下段プレートも同様に配線(DOUTが右上)。VCC、DIN、GNDに長い線を半田付けしてからストリップを配置
  6. グルースティック挿入までは上下の配線を接続しない

ステップ3: グルースティックの挿入

7mmグルースティック(約100mm長)は長さにバラつきがあるため、64本を同程度の長さに揃える必要があります。穴をドリルで拡張済みなら挿入しやすくなります。上下をつなぐ3本線は透明ストローに通して保護します。

片側から順に1列ずつ挿入。全て挿入後、四隅の上下間距離が完全に一致するよう調整。一致したら四隅のグルースティックを一旦抜き、少量の瞬間接着剤で固定(LEDに付かないよう注意)。これで構造が頑強になります。

ステップ4: 上下ストリップの接続

下段ストリップを穴付近で持ち上げ、3本線をトリミングして半田付け:+5V同士、DIN(上)→DOUT(下)、GND同士。

ステップ5: PCBの製作

Eagleファイルを提供。基板業者に発注するか、トナーメソッドで自作可能。回路はシンプルなのでユニバーサル基板でも組めます。取り付け穴は2.5mmドリルで穴あけ後、M3タップを立て、6mm M3ネジで固定。

重要:DCレギュレーターの出力を5Vに設定してから基板に取り付けてください。

ステップ6: 最終配線

スライドポテンショメーター、プッシュスイッチ、ロッカースイッチ、DCソケットを回路図通りに配線。LEDストリップからの線をPCBに接続。

ステップ7: ソフトウェア

テスト用アニメーションを複数内蔵。ボタンでアニメーション切替、ポテンショメーターで速度調整。

提供コード

GlueMatrixTest.ino(メインスケッチ)

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#include "Button.h"

#define PIN_LED 2
#define PIN_SWITCH 3
#define PIN_POT A0
#define LEDS 128

Adafruit_NeoPixel strip = Adafruit_NeoPixel(LEDS, PIN_LED, NEO_GRB + NEO_KHZ800);
Button mode = Button(PIN_SWITCH);
bool modePressed = false;

// LED物理マッピング(下段・上段それぞれ8x8マトリクス)
const uint8_t botLED[] PROGMEM = {
  64,49,48,33,32,17,16,1,
  63,50,47,34,31,18,15,2,
  62,51,46,35,30,19,14,3,
  61,52,45,36,29,20,13,4,
  60,53,44,37,28,21,12,5,
  59,54,43,38,27,22,11,6,
  58,55,42,39,26,23,10,7,
  57,56,41,40,25,24,9,8
};
const uint8_t topLED[] PROGMEM = {
  65,80,81,96,97,112,113,128,
  66,79,82,95,98,111,114,127,
  67,78,83,94,99,110,115,126,
  68,77,84,93,100,109,116,125,
  69,76,85,92,101,108,117,124,
  70,75,86,91,102,107,118,123,
  71,74,87,90,103,106,119,122,
  72,73,88,89,104,105,120,121
};

int red = 128, green = 128, blue = 128;
int pattern = 1;

void setup() {
  Serial.begin(115200);
  pinMode(PIN_LED, OUTPUT);
  pinMode(PIN_SWITCH, INPUT);
  pinMode(PIN_POT, INPUT);
  strip.begin();
  strip.show();
  Button::PinChangeSetup(PIN_SWITCH);
}

void loop() {
  if (modePressed) {
    pattern = (pattern % 8) + 1;
    strip.clear();
  }
  modePressed = false;
  
  switch (pattern) {
    case 1: colorWipe(strip.Color(255, 0, 0)); break; // 赤
    case 2: colorWipe(strip.Color(0, 255, 0)); break; // 緑
    case 3: colorWipe(strip.Color(0, 0, 255)); break; // 青
    case 4: theaterChase(strip.Color(127, 127, 127)); break; // 白
    case 5: rainbow(); break;
    case 6: rainbowDifference(); break;
    case 7: rainbowCycle(); break;
    case 8: rainbowCycleDifference(); break;
    case 9: theaterChaseRainbow(); break;
  }
  if (!modePressed) modePressed = mode.Pressed();
}

// 以下、各アニメーション関数(colorWipe, rainbow, theaterChase等)と割り込み処理が続く
// 完全なコードは元記事参照

Button.h / Button.cpp

デバウンス処理、長押しリピート、ピンチェンジ割り込み対応のボタンライブラリ。PCINT2ベクタ(D0-D7)を使用。

3Dプリント用STLファイル

「stl_files_vSNeOCJWDn.zip」として提供

回路図・PCBデータ

Eagle形式で「eagle_files_D8oAM5ngf5.zip」として提供

製造プロセス

  1. ハロゲンランプ:技術、歴史、そして未来——専門家の視点
  2. 接着剤の歴史、製造、未来:古代アデシブから現代イノベーションへ
  3. ホットドッグ:歴史、製造、栄養、未来のトレンド
  4. ラバランプ:歴史、設計、製造の秘密
  5. 熱気球:モンゴルフィエ兄弟から現代フライトまで
  6. 瞬間接着剤:化学、製造、品質管理
  7. PIRセンサー連動 インタラクティブLEDマトリクスドアディスプレイ - ホリデーグリーティング
  8. 音声反応型 8 LED ライトディスプレイ
  9. スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
  10. Arduino Nanoで8×8 LEDマトリックスをドライバー/ライブラリなしで直接制御
  11. 革新的材料が次世代LEDデータ通信を駆動