げーみんぐぴーしー
まあ、LEDがびっかびか光ればそれはゲーミングPC!。
前に色々やらかして、作りましたけれども。
自作PCにLEDを仕込んでみる(やらかし気味の)
https://elchika.com/article/b28d0977-17d9-4c35-8b88-739deb0c2e0f/
可搬型自作PCの組み立て
https://elchika.com/article/10cb5d78-5a52-4816-8be1-d86582025d2e/
こいつ、LEDの数を稼ぐため?に、「マトリックスなLEDパネル2枚装備、しかも128x64の高解像度!」な、割と無茶しているパソコンになっちゃってます。
内部的には、RaspberryPiでLEDを制御しており、いわゆるPC部とはUSB GadgetなEthernetで通信しPC側のステータスを取得している、という仕様。
今回は、このLEDパネル部を色々やってみようかな、と。
リモコン付きでね!。
完成品動画
手元の端末で、表示を色々切り替えられます!。
ソースと言語
ちょっとソース類が多くて、elchikaでハンドリングしきれんので。
githubに投げておきました。
このままインストールすれば動く的なものではないですが、ご参考まで、に。
https://github.com/eucalyhome/statuspanel
言語はpython3とArduinoです。
オイラは専門的なソフト知識を学んでいない為、まあ適当です。
メインとサブとステータス
今回は、LEDの表示要素を、3つに分けてみました。
ひとつは、「メイン」、正面のLEDパネルです。
この写真の「NZXTロゴ」が表示されてるパネル、ね。
次に、「サブ」、PC本体に内蔵しているLEDパネルです。
モザイク模様表示してるやーつ。
最後に、「ステータス」、これはLEDパネル単体ではなく、メインLEDパネルにオーバーラップ表示する、文字でのPCステータスです。
NZXTロゴに、ステータスを組み合わせるとこんな感じ。
LEDパネル表示部のソフト開発
RaspberryPOSの「bullseye」と、「Pyhon3」の組み合わせで開発することにしました。
直接LEDパネルに表示は、何かとかったるいので、まずWindows上で開発し、ある程度出来たら表示部をLEDに入れ替えてRaspberryPiに持っていく、感じで。
Windows開発時は、pythonに標準で入ってる「tkinker」を使い、GUI画面にLEDイメージを表示させて開発しましたとさ。
こんな感じ、Windows11だと角が丸まっちゃって、端っこまで表示できていないけどまあ、気にしない!。
メイン画面のバリエーション
モンスターパレード
素材は、「ヌー(Gnu)@damagedgold」様のドット絵素材を使用してます。
【ドット絵】モンスターキャラチップ素材(色違い版)
http://damagedgold.wp.xdomain.jp/2020/09/28/picsqmobchip/
【ドット絵素材】背景素材5種(差分あり)
http://damagedgold.wp.xdomain.jp/2018/04/06/pixelbbg5/
ステータスによる変化要素は・・・
ステータス | 変化要素 |
---|---|
CPU温度 | モンスターの歩行速度 |
CPU使用率 | モンスターの数 |
GPU温度 | 背景 ( 昼→夕方→夜) |
フィールド画面
素材は、「ぴぽや」様のウディタ用マップチップドット絵素材を使用しています。
マップチップ 16×16
https://pipoya.net/sozai/assets/map-chip_tileset16/
ステータスによる変化要素は・・・
ステータス | 変化要素 |
---|---|
CPU使用率 | フィールドオブジェクトの数 |
CPU温度 | フィールド背景 |
タイルモザイク
ステータスによる変化要素は・・・
ステータス | 変化要素 |
---|---|
CPU使用率 | RGBタイル生成数 |
GPU使用率 | YMCタイル生成数 |
バー
左右に2本のバーを表示します。
いやあ、なんとなく、ほら、「BeBox」みたいなのを狙ってみたの。
ステータスによる変化要素は・・・
ステータス | 変化要素 |
---|---|
CPU #1 のクロック | 左側バー長さ |
CPU #2 のクロック | 右側バー長さ |
*たまに左右が入れ替わります
サークル
円形なグラフで、ステータスを可視化。
まあ、使っているケース「NZXT H510i」シリーズは、標準では正面に光る12cmファンを2つ縦に並べるのがセオリーなので。
それに倣ってみたり、とか。
ステータスによる変化要素は・・・
ステータス | 変化要素 |
---|---|
CPU使用率 | 上側サークル |
GPU使用率 | 下側サークル |
ステータスストリーム
ステータスコード
ステータスストリームの、流れる向きを変えて、フォントを「Electroharmonix」という、「カタカナに見える英語フォント」に変えてみたよバージョン。
読めないんだけど、なんというかかっこよさげ!。
ロゴ
ま、NZXTのロゴを表示します。
実態は128x64のpngファイルを開いて、回転させてるだーけ。
サブ画面のバリエーション
ステータスストリーム
ステータスコード
タイル
ライフゲーム
ステータスによる変化要素は・・・
ステータス | 変化要素 |
---|---|
CPU温度 | 水色のライフゲームの追加シード数 |
GPU温度 | 緑色のライフゲームの追加シード数 |
ステータスのバリエーション
「小さいの」「大きいの」「OFF」を実装しました。
夫々こんな感じです。
メイン画面の表示要素と独立しているため、他のメイン画面にも被せられます。
m5stackなリモコン
画面切り替えを実装したかったのですが。
まあ液晶付きでタッチパネルな、「M5Stack Core2」をリモコンとして使ってみることに。
さくっと完成
画像は変換サイトで配列に埋め込み、ソースにインクルードしちゃってます。
https://lang-ship.com/tools/image2data/
M5StackのESP32は、プログラム用のROM領域が6MBくらいあるので、結構画像とかソースに突っ込めて、イイ感じ!。
設定はEEPROMへ書き込み、RaspberryPiとの通信はSerialでサクッと行いました。
RaspberryPi側から文字列を流し込んで表示できるようにしてあります。
CPUの使用率とか、送ってみたり。
できました!
気分によってLED画面かちゃかちゃ出来る、なかなかに楽し気なものが出来ました。
いやあ、ゲーミングPC、楽しいね!。
以上です。
投稿者の人気記事
-
eucaly
さんが
2022/04/07
に
編集
をしました。
(メッセージ: 初版)
ログインしてコメントを投稿する