最近は、光るガンプラが販売されています
先駆者
こちらの記事の@ysakashitaさんが、試みていました。
こちらの記事では、電源のオンオフをダミー電池を用いることで、ユニコーンガンダムのLEDをオンオフして
異常検知に使うというものでした
今回のハック
先駆者の方法では、既にあるパターンで光らせるということしかできませんでした。
そこで今回、光るユニコーンガンダムの制御基盤及びLEDの仕様を調査し、Raspberry Pi経由で自由に光らせるようにしました。
光るユニコーンガンダムの仕様
この商品は、組み立て時にこのようなLEDシートを組み込むことで、発光を実現しています
このように組み込んでいき、足の下からLEDの電源供給用の線が出ています

発光演出は、下記の動画を見てもらうとよく分かると思います。
発光パターンは3種類から選べて、
台座のボタンを押すことで、パターンを切り替えることができます

LEDの仕様
LEDシートの回路を観察すると、LEDはフルカラーLEDではなく、赤と緑の2つのLEDが独立してそれぞれ13個直列に並んでいました。
制御基盤の仕様
制御基板からは、LEDに伸びている4本の線が接続されており
オシロで測定してみると、それぞれのLEDに対して、異なる電圧で矩形波が出力されていました。
緑のLEDに対しては、約35Vの電圧で矩形波が、
赤のLEDに対しては、約25Vの電圧で矩形波が出力されていました。
(オシロではなく、テスターで最初測定していたのですが、20V程度の電圧がかかっていると画面に表示され、矩形波であることに気付けませんでした。20VかけたらLED光るやろ、と思って試しても光らず、少しの期間悩んでいました)
ユニコーンガンダムは、明るくなったり、暗くなったりを繰り返す仕様ですが
LEDの明るさの制御を、矩形波のDuty比でPWM制御しているようです。
自由に光らせるための要件
上記で調べた、制御基板と同じことをできるようにする必要があります。つまり
- 25V及び35Vの電圧出力ができること
- 矩形波を出してPWM制御で明るさを調節できること
が必要です。汎用マイコンでは矩形波は出せても、20V超の電圧を出せないので、昇圧できる基盤が必要そうです。
使ったモジュール
そこで下記のモジュールを購入しました
- LM2733 昇圧型DC-DCコンバータモジュール(12V~最大36V) *2
- PWM調光機能付き定電流LEDドライバー NJW4617DL3 *2
- TO-252-5 SIP変換基板
- 基板用リードフレーム SHP-001
35Vもの昇圧ができるモジュールは限られていましたので、ストロベリーリナックスというサイトで購入しました。
それ以外は秋月で買いました。
1つ目のモジュールは昇圧を行うモジュールで、緑LEDと赤LEDで電圧が異なるので、2つ必要でした。
2つ目のモジュールはLED調光モジュールで、過度な電流が流れないよう調整するほか、外部入力の矩形波でLEDをPWM制御できるものです。これも緑と赤で1つずつ必要です。
その他の製品は、調光モジュールをDIPで扱えるようにするための部品です。
モジュールの説明
昇圧型DC-DCコンバータモジュール LM2733
昇圧モジュールLM2733は、入力電圧を12V~36Vまでの任意の電圧に昇圧できます。
PWM調光機能付き定電流LEDドライバー NJW4617DL3
調光モジュールNJW4617DL3は、5つの端子があります。
使い方は、2番にPWMの入力を入れること、4番に制限したい電流に応じて抵抗をGNDに接続すること、
4番にLEDのカソード側を接続することです。
こちらのサイトに詳しい説明が載っていますので、説明は省略します
https://zenn.dev/nanase_t/articles/49b71704c37d3f
回路の構成
この2つのモジュールを組み合わせて、Raspberry Piで制御できるように回路を作ります
実際の回路は下記の図のようになります。
この回路を赤、緑の2ch分作成し、それぞれ異なるGPIO、LEDに接続します

そのほか、昇圧モジュールのつまみで出力電圧を各LEDの適正電圧に調整しておきます
プログラム
まずは緑LEDを点滅させるプログラムです
緑LEDのVinをGPIO24に接続しています
from gpiozero import PWMOutputDevice
from time import sleep
# GPIO 24をPWM出力として設定
pwm = PWMOutputDevice(24)
try:
while True:
pwm.value = 80 / 100.0
sleep(0.2)
pwm.value = 0 / 100.0
sleep(0.2)
except KeyboardInterrupt:
# プログラムが終了したら、PWM出力を停止
pwm.off()
print("プログラムを終了します")
実行すると、本来の製品には無い点滅動作が確認できます
オレンジに発光させてみる
光るユニコーンガンダムには赤と緑のLEDが搭載されています。
緑と赤を同時に発光させると、黄色やオレンジの色になります
緑20, 赤100でPWMのデューティ比の矩形波を送ることで実現できます
from gpiozero import PWMOutputDevice
from time import sleep
green_pwm = PWMOutputDevice(24)
red_pwm = PWMOutputDevice(23)
try:
while True:
green_pwm.value = 20 / 100.0
red_pwm.value = 100 / 100.0
sleep(0.1)
except KeyboardInterrupt:
# プログラムが終了したら、PWM出力を停止
green_pwm.off()
red_pwm.off()
print("プログラムを終了します")
グラデーション
緑→黄色→オレンジ→赤の順でグラデーションさせてみます
プログラム的には、緑を0→100にする、赤を0→100にする、緑を100→0にする、赤を100→0にする
ということを行なっています
from gpiozero import PWMOutputDevice
from time import sleep
green_pwm = PWMOutputDevice(24)
red_pwm = PWMOutputDevice(23)
try:
while True:
for duty_cycle in range(0, 501):
green_pwm.value = duty_cycle / 500.0
sleep(0.01)
for duty_cycle in range(0, 501):
red_pwm.value = duty_cycle / 500.0
sleep(0.01)
for duty_cycle in range(500, -1, -1):
green_pwm.value = duty_cycle / 500.0
sleep(0.01)
for duty_cycle in range(500, -1, -1):
red_pwm.value = duty_cycle / 500.0
sleep(0.01)
except KeyboardInterrupt:
# プログラムが終了したら、PWM出力を停止
green_pwm.off()
red_pwm.off()
print("プログラムを終了します")
応用
プログラムで自由にユニコーンを光らせることができれば、いろんなことに応用ができます
緑と赤という分かりやすい色で光るので、正常系を緑、異常系を赤にして、監視系に組み込むことができます
私の家には、スイッチボットのCO2センサがあるのですが、CO2の表示が見えづらいので
代わりにユニコーンの色でCO2濃度を表現しても良さそうです
こんなこともできるので、やばい異常が会った時はこんなふうに光らせましょう
他の製品
光るユニコーンガンダムには、バンシィのものもあります
RG 1/144 ガンダムベース限定 ユニコーンガンダム2号機 バンシィ・ノルン (デストロイモード) (LIGHTING MODEL)
こちらはLEDが黄色と緑のようなので、表現できる色が変わるはずです。
黄色は光の三原色ではありませんので、ユニコーンよりも表現の幅は減るはずですが・・・
またMGEXの1/100スケールの光るユニコーンもあります
仕様を見るに、ほぼ同じなので、同様のハック方法が通用する可能性が高いです
MGEX 1/100 ガンダムベース限定 ユニコーンガンダム Ver.TWC
最後に
皆さんもユニコーンガンダムをハックして
システム監視やアラートなどにガンダムを取り入れていきましょう!










