Undercity Lanyard - E Ink搭載バッジ表示システム
概要
「Undercity Lanyard」は、E Inkディスプレイ搭載のラニヤードバッジ(首掛けIDバッジ)向けに開発されたファームウェア及び関連ツールのオープンソースプロジェクトです。C言語で記述されており、ESP32系マイコンをベースに設計されています。主にmacOS環境での開発を想定し、Arduino CLIやAnacondaを利用して容易にファームウェアを書き込める仕組みが提供されています。バッジにはユーザーの名前や情報をBMPフォーマットの画像として表示できるため、イベントや展示会などでの利用に適しています。E Inkの低消費電力特性を活かし、長時間の運用が可能な点も魅力です。
リポジトリの統計情報
- スター数: 2
- フォーク数: 0
- ウォッチャー数: 2
- コミット数: 3
- ファイル数: 13
- メインの言語: C
主な特徴
- ESP32マイコンとGDEY029T94 E Inkディスプレイを使ったバッジ表示システム
- macOSでの環境構築とファームウェア書き込みの簡易スクリプトを提供
- BMP形式のバッジ画像を表示し、ユーザー情報を視覚的に表現可能
- Arduino CLIとAnacondaを利用したモダンな開発フロー
技術的なポイント
本プロジェクトの技術的な核は、ESP32マイコンとE Inkディスプレイ(GDEY029T94)を連携させるファームウェアにあります。ESP32はWi-FiやBluetoothを備えた強力なマイコンであり、低消費電力かつ高い処理性能を持つため、携帯型デバイスに適しています。E Inkディスプレイは電子ペーパー技術を用いており、表示内容が変わらない限り電力消費がほぼゼロである点が特徴です。このため、バッジのような長時間駆動が求められる用途に最適です。
ソースコードはC言語で記述されており、Arduino環境をベースにしています。Arduino CLIを使うことで、コマンドラインからビルド・書き込みが可能であり、GUIに依存しない柔軟な開発が可能です。macOS専用のアップロードスクリプト(upload.sh)が付属しており、Anacondaで環境を管理しつつ、依存ツールのインストールから書き込みまで一連の流れを自動化しています。これにより開発者は環境構築の手間を減らし、すぐにデバイスの動作検証に集中できます。
バッジに表示する情報はBMP形式の画像ファイルとして管理されており、見た目のカスタマイズが容易です。例えばユーザー名や所属、アイコンなどをあらかじめ用意したバッジ画像に反映させておき、E Inkディスプレイに描画します。この画像はファイルシステム上に置かれ、ファームウェアから読み込まれて表示されます。低解像度ながら視認性に優れた表示が可能で、イベント参加者の識別やプロモーション用途に活用できます。
また、ファイル構成を見ると、ハードウェア固有のヘッダファイル(Ap_29demo.h)やメインのArduinoスケッチ(GDEY029T94_Arduino.ino)が整備されており、開発者が拡張・修正しやすい設計になっています。READMEやUSER_INFO_DISPLAY.mdといったドキュメントも揃っており、導入手順やユーザー情報の編集方法が丁寧に解説されています。これらはOSSとしての利用促進に寄与しています。
プロジェクトの構成
主要なファイルとディレクトリ:
- Ap_29demo.h: ハードウェア制御用ヘッダファイル。E Inkディスプレイの制御ロジックなどを定義。
- GDEY029T94_Arduino.ino: メインのArduinoスケッチ。マイコンの初期化、画像読み込み、ディスプレイ更新の制御を実装。
- README.md: プロジェクト概要と導入手順を記載。
- USER_INFO_DISPLAY.md: ユーザー情報表示に関する詳細な説明やカスタマイズ方法を解説。
- badge.bmp: 表示用のバッジ画像ファイル。ユーザー情報を視覚的に表現。
- upload.sh: macOS環境用のファームウェア書き込みスクリプト。Anaconda・Arduino CLIの導入から書き込みまで自動化。
- その他 8 ファイル: 追加の画像ファイルや設定ファイル、ライセンス情報など。
まとめ
ESP32とE Inkを活用したシンプルかつ実用的なバッジ表示システム。
リポジトリ情報:
- 名前: undercity-lanyard
- 説明: 説明なし
- スター数: 2
- 言語: C
- URL: https://github.com/espcaa/undercity-lanyard
- オーナー: espcaa
- アバター: https://avatars.githubusercontent.com/u/122629939?v=4