ウィークリーレポ:2025/09/29

まだ、真夏日があるけど、風が涼しくなってきたのでずいぶん涼しく感じるようになってきた。

Rokusai(六彩)

JPEGとPNGからe-Paper(Spectra6)で表示する6色(黒、白、黄、赤、緑、青)へディザリングするプログラムを作成した。

https://github.com/aquaxis/rokusai

出力はBitmapとPNGでBitmapであれば画像データそのものをe-Paperに転送するとそのまま表示できるデータ形式である。

主な機能

  • 複数画像形式対応: JPEG/PNGの入力、BMP/PNGの出力
  • ホワイトバランス調整: グレーワールド法による自動・手動調整
  • 色強調処理: 彩度・コントラスト・明度・ガンマ・色相の調整
  • Floyd-Steinbergディザリング: 7色パレットへの高品質変換
  • アスペクト比保持リサイズ: 白背景での中央配置

機能

ホワイトバランス

  • 自動ホワイトバランス: グレーワールド法による色温度補正
  • 手動調整: RGB各チャンネルのゲイン個別設定
  • ゲインクリッピング: 0.5-2.5の範囲で安全な補正

色強調

  • 彩度調整: 色の鮮やかさの制御
  • コントラスト調整: 明暗差の強調・緩和
  • 明度調整: 全体の明るさ補正
  • ガンマ補正: 階調特性の調整(ルックアップテーブル最適化)
  • 色相シフト: 色味の回転調整

リサイズ機能

  • アスペクト比保持: 元画像の縦横比を維持
  • 中央配置: リサイズした画像を出力キャンバスの中央に配置
  • 白余白埋め: 余った領域を白色で埋める
  • バイリニア補間: 高品質なリサイズアルゴリズム

画像処理

  • 高精度処理: 浮動小数点演算による精度保持
  • メモリ効率: 最適化されたメモリ管理
  • エラーハンドリング: 堅牢なメモリ管理

README.mdのなかでは7色パレットを記載しているが、パレットのインデックス番号を0~6まで使用しており、白を2個使っているためである。

写真をそのままディザリングすると画像が結構荒くなるのでいったん、ポスタリゼーションを挟もうかと思っている。

e-Paper 13.3inch ラズパイ用アプリ

e-Paper 13.3(Spectra6)に表示するRaspberry Pi用アプリをアップデートした。

https://github.com/aquaxis/e-Paper13.3

インデックスカラーのPNG対応だったがインデックスカラーのBitmapに変更した。

reTerminal E1002向けアプリ

reTerminal E1002向けアプリもアップデートした。

https://github.com/aquaxis/reTerminal

SDカードに4bitインデックスカラーのtest.bmpを入れておくと電源Onでe-Paperに表示する。

それとWiFi接続を追加した。

HTTPでファイルの送信とe-Paperの更新に対応させた。

ステルスSSIDにも対応させた。

これが欲しかったんだよね。

今後は省電力モードとタイマー書き換えを追加していく予定だ。

e-Paper E1002(2台目)

Seeed Studioから1台目のE-Paperは1st Lotで輝度を改善したものが出来上がったから無償送付するということで2代目がやってきた。

特に見た目は変わらず、繋げてからアプリを書きこんだけどアプリ的には変わらずだった。

e-Paper自体は1代目より黄みがかっているかなって感じでこれはe-Paperの個体差だろう。

なので、何が変わったかあまりわからなかった。

2025/09/29 10:00:00(Permanent Link)

 


ウィークリーレポ:2025/09/22

先週はESP32をいぢっていた。

13.3inchのe-PaperとreTerminalのアプリを作成していた。

成果物はGithubで公開中で、初版レベルなので継続的メンテをして機能をアップデートしていく。

13.3inch e-Paper向けアプリ

GithubにWaveShare 13.3inch E Ink Spectra 6 (E6) Full color E-Paper Displayのアプリケーションを追加した。

https://github.com/aquaxis/e-Paper13.3

つぎの仕様の画像ファイルを入力するとe-Paperに画像を転送する。

  • ラズパイ向け
  • 入力はBitmap
  • 6色のインデックスカラーのみ
  • サイズは1200 x 1600固定

E InkのSpectra6シリーズの画像転送アプリの参考になるだろう。

reTerminal向けアプリ

こちらもGithubにreTerminal E1002のアプリを追加した。

つぎの仕様の画像ファイルをreTerminalに画像を表示する。

  • ESP32-S3
  • 入力はBitmap
  • 6色のインデックスカラーのみ
  • サイズは800 x 480固定

https://github.com/aquaxis/reTerminal

開発環境はESP-IDF環境である。

現状はSDカードに入っているtest.bmpのみ読み込むようになっている。

今週のAI

最近はAIエージェントを使うことが普通のことになってきている。

PerprexityやCopilot、Geminiなどがあるけど、問いかけるときはほぼつぎのように入力することがテンプレ化している。

「xxを調査し詳細に解説してください。」

「xxを調査し詳細な一覧表にまとめてください。」

どのように回答してほしいかで使い分けるけど、ほぼこの二択である。

つぎのような問いかけではAIエージェントの検索範囲が狭まるようだ。

「xxを教えて下さい。」

今週の気になりガジェット:小さなKVM

WaveShareから新しいKVMがリリースされた。

Luckfox PicoKVM Lightweight IP KVM Remote Management Tool

Luckfox PicoKVM

価格は$55.99(執筆時で約8,200円)でスペックはつぎのとおりだ。

  • HDMI(1920x1080@60fps)
  • HID(USB-C)
  • Ethernet(100Mbps)
  • SD Card
  • GPIO
  • Size: 48.5mm x 48.5mm x 29.0mm

CPUはRockChipのRV1106G3でCortex-A7@1.2GHzで動作する。

ケースなしだとつぎのようになる。

Sipeed NanoKVM PiKVM

Sipeedもすでに小さなKVMをリリースしていて、これは使用している。

Sipeed NanoKVM PiKVM

Githubでソースコードも公開されている。

https://github.com/sipeed/NanoKVM

価格は3,732円(執筆時)、ただ、他の販売店を見ると3,000円以下で購入できる場合がある。

スペックはつぎのとおりである。

  • HDMI(1920x1080@60fps)
  • HID(USB-C)
  • Ethernet(100MHz)
  • GPIO
  • Power USB-C
  • Size: 40.0mm x 36.0mm x 36.0mm

CPUはSOPHGOのSG2002で1GHzのRISC-V C906コアが動作しているようだ。

Luckfox PicoKVMの方は電源をホストから供給されなければいけないので、ホストのUSB電源供給は必須機能になるうえに、ホストの電源が致命的に落ちた場合、KVMにアクセスできなくなる。

どちらが良いかというと、価格的にも半値というところはあるが、仕様的に別の外部電源を取れるSipeedのNanoKVMのほうが良い。

2025/09/22 10:00:00(Permanent Link)

 


今週もガジェット祭り

WaveShare ESP32-C6-DEV-KIT-N16-M

千石電商でWaveShare ESP32-C6-DEV-KIT-N16-Mを購入してきた。

ESP32-C6のボードが欲しかったのでこれにしたのですが、千石電商には本家スイッチサイエンスのSSCI-096621も販売している。

決め手となったのはUSBとUARTをUSB-Cで使えることだった。

seed studio reTerminal E Series ePaper Display

ESP32でe-Paperの環境を作るためのサンプルとしてreTerminal E Series ePaper Displayを購入した。

USB-C、ボタンが3つにLEDが1つ、I/Oが6本出ていて、SDカードもある。

これだけでフォトフレームとしては良い出来だと思う。

ただ、見た目からするとちょっと重いんだよね。

バッテリーのせいかな?

Arduino IDEで環境を整えたら単色が全然、表示されなかった。

フルスクラッチでソースコードを起こしてみたけど、コントローラICのデータシートがないのでネットで拾えるソースコードから推測するしかなかったんだけど、ソースコード自体は間違えなさそうだった。

あれこれやっていると、表示されるようになった。

SDカードの電源をEnableにしておかないとMOSIが安定してなさそうです。

表示されるようになって、ディザリングはしてないけどこんな風に表示できた。

ここから、必要な機能を追加していく。

Radxa ROCK-5C向けeMMC 16GB

ROCK-5Cを持っているんだけど、SDカード起動だと処理がやたらと遅い。

ラズパイ5より、ランクが上のCPUのわりにはラズパイ4よりもっさり感がある。

そこでeMMC起動にしようと思って調達した。

プリキュアオールスターズまるごと大図鑑

プリキュアオールスターズまるごと大図鑑を入手した。

87人は多い!

フォント

コーディングフォントをIntel One Monoに変更した。

このフォントを使うと遠くから見ても識別性が良い。

フォントはつぎのURLからダウンロードできる。

https://github.com/intel/intel-one-mono

フォントの見え方はこんな感じだ。

2025/09/15 10:00:00(Permanent Link)

 


E-Paperで遊んだ

週末はフォトフレームを作成して遊んでいた。

フォトフレーム

ラズパイZEROを回収してきて、E-Paperを組み上げてみた。

ざっと、仮組みしてこのような感じになった。

PP版で裏板を追加してE-PaperのFPCケーブルに負担をかけないようにしている。

13.3inch e-Paper HAT+の下側にラズパイZEROが隠れている。

ホストからラズパイ経由でE-Paperを描画する。

13.3inch E-Paperは黒・白・黄・赤・緑・青の6色なので写真や画像をディザリングするアプリを作成して、ホストPCからWiFi経由でラズパイを操作してこのように見える。

ディザリングでの色の感触は特に問題ないが若干、暗めに見えるだろうか?

ひとまず環境が整ったのでつぎのアプリを作成していきたい。

  • 写真の自動更新
  • カレンダー表示
  • ディープスリープモード

ディザリングは問題ないので画像のホワイトバランスと色強調は追加したほうが良さそうだ。

画像の見せ方とかアプリが整ったら、ESP32への接続を行ってみたい。

E-Paperを入れるフレームや材料をダイソーで購入したけど、あとでセリアに行ったらセリアのほうが種類が豊富で選択肢が多かった。

そうそう、仮組みができたとWaveShareのページを見ていたら、7.3インチのE-Paperディスプレイが$109.00でリリースされていた。

現在は$10 OFFで$99.00になっている。

reTerminal E1002 Full-color ePaper Display

これはこれで試してみたいので購入した。

13.3インチのE-Paperは画素が1200x1600で7.3インチは800x480でサイズ比での画素数の少なさは気になるところだけど、そこは用途しだいだろうとおもう。

ESP32-P4

フォトフレームの制御マイコンにESP32を使おうと思っているのだけど、ESP32はM5Stack以来、久々なので最新を型番を手に入れてみた。

購入したのはWaveShareのESP32-P4の2種類だ。

  • ESP32-P4-WIFI6-DEV-KIT
  • ESP32-P4-NANO

写真の上がESP32-P4-WIFI6-DEV-KIT、下がESP32-P4-NANOである。

ESP32-P4のガジェットには別のESP32が載っていてこれがWiFiやBlueToothと通信するらしい。

どうしてESP32-P4単体で通信しないのだろうとデータシートを見てみたら、ESP32-P4は無線関係のモジュールは未実装だった。

フォトフレーム用には無線通信が欲しいのでESP32-C6-WROOM-1を選定すべきだったんだなというところだ。

ESP32-C6-WROOM-1については後日、調達しよう。

ESP32-P4についてはちょっとマイコンパワーが必要なところに低消費電力という環境で使えるかどうか探っていきたい。

ドラレコ

スマホの拡大写真でMicroUSBのパターンが剥がれてそうに見えていた件だが、拡大鏡のある環境で作業してきた。

半田ごてを当てると簡単にパターンが取れてしまいスマホの拡大写真で見えていたとおりだった。

USB電源さえ繋ぎ直せば使えるはずなんだがこのサイズで修正するのが面倒くさい。

すぐに使いたいわけでもないので先送りにしよう。

2025/09/08 10:00:00(Permanent Link)

 


E-Paper

もう9月になってしまった。

年を取ったせいか、1年があっという間に去っていくようになってきました。

そうそう、AliExpressからE-Paperが着弾した。

WaveShare 13.3inch E-Paper

AliExpressでWaveShareの13.3インチ E-Paperを購入した。

13.3inch E Ink Spectra 6 (E6) Full color E-Paper Display, 1600×1200 Pixels, SPI Communication, Optional For HAT+ Standard Driver HAT, E-ink Display

いい感じの箱で届いた。

実際にはもう一回り大きい箱の中にこれが入って二重梱包の状態で届いた。

中身はこんな感じで緩衝材で守られている。

HAT+で購入したのでRaspberry Piに繋げることができる。

目的はデジタルフォトフレームで朝はカレンダーと予定などを表示して、昼は写真のみ、夜は次の日の予定と写真を表示を切り替えて表示させたい。

E-Paperは電源が切れても最後の絵を表示できるのでその点が良い。

最終的にはESP32で低消費電力で動かすものに仕上げたい。

アプリを作成したいが仕様書なるドキュメントはあるものの、E-PaperのSPIプロトコルの詳細が掲載されているドキュメントが見当たらない。

サンプルコードから抜き出せということなのだろうか?

つぎのところにWikiがあるけど、見つけられていない。

https://www.waveshare.com/wiki/13.3inch_e-Paper_HAT+_(E)

サンプルコードはつぎのgithubのリポジトリにあるけど、13.3インチのものはないのかな?

https://github.com/waveshareteam/e-Paper/

そう思ったら、Wikiの中にサンプルコードがつぎのところにあると書いてあった。

https://files.waveshare.com/wiki/13.3inch%20e-Paper%20HAT%2B/13.3inch_e-Paper_E.zip

ここを見て作成するかな…

そう思って手持ちのラズパイを探したら全部出払っているようだな。

遊休になっているラズパイを回収してこなきゃいけないなぁ。

GooDisplay ESP32-133C02

13.3インチのE-PaperドライバボードもAliExpressで購入した。

中身はコレ、こちらもE-Paperと同じようにこの箱の一回り大きな箱に入って二重梱包だった。

AliExpressの業者でもちゃんとしているところはちゃんと梱包してくれる。

こちらは簡易的にE-Paperを使えればというつもりで入手した。

E-Paperと接続して動作確認ができたところでひとまず、終了。

ダイソーのフォトフレーム

E-Paperを収めるためにダイソーのフォトフレームを購入した。

裏面の板はE-PaperのFPDを通せるように1mmカットする。

線を描いたところがカットするところ。

こんな感じにカットした。

これがまた、ぴったりなサイズで…

BLOOMIN8という商品がINDIEGOGOでクラファンされているんだけど、内枠は必要ないんだよね。

電源部品

家の掃除機とドラレコの電源部分が故障した。

掃除機は電源プラグの付け根の部分、ドラレコはMicroUSBで電源を取っているんだけど、そのコネクタ部分が故障箇所。

掃除機の電源プラグの付け根で断線するのは仕方ないことで、付け根部分だけではなくて電源コードのいたるところで断線の疑いがある。

ドラレコはUSBコネクタを揺らすと電源が入るのでおそらく、MicroUSBコネクタの電源ピンのハンダが外れていると想定できる。

どちらも買い替えてもいいんだけど、まだ、十分使えるので修理することにした。

可動部の故障だったら買い替えでいいんだけど、こういう電源部品の故障だけで買い替えってもったいないなぁと思っている。

掃除機は電源コードを大元から交換しようと思って、掃除機を開けてみたら電源コードの取り回しに余裕がなさそうで、掃除機なので内部も結構汚れてていて時間ができたときにじっくりオーバーホールも兼ねて交換しようと思う。

とりあえず、応急処置で電源プラグの付け根を切り落として、新しい電源プラグに交換した。

ドラレコは分解して開けてみて、スマホで拡大して見たら、案の定、MicroUSBコネクタの電源ピンが浮いてそうな感じ、ハンダが完全に乗り切っていない。

あっ!、写真見たらパターンが剥がれてるわ。

半田ごてを取り出して付けようと思ったけど、部品が細かくて老眼が入ってるヲジサンには見えないよ。

これも拡大鏡のあるところでじっくり修理しよう…

2025/09/01 10:00:00(Permanent Link)