【Raspberry Pi】透明OLEDディスプレイで遊んでみたよ

コンピュータ・IT

はじめに

ラズパイに興味を持ったきっかけ

Twitter(現X)をぼーっと眺めていたらこのようなものを見つけました。

なにこれかっこいい

普段、他人の作品を見ても「すげー!」で終わるのですが、何故かこれは「自分でも作ってみたい」と思ってしまいました。

購入したもの

有線キーマウ:
 Amazon | Perixx PERIDUO-212B ミニキーボード・マウスセット USB ブラック有線日本語配列 | Perixx | マウス 通販

ラズパイキット:
 Amazon.co.jp: TRASKIT Raspberry Pi 4B /ラズベリーパイ4B 8GB 技適マーク付/SDカード128GB NOOBSプリインストール/透明ケース/5.1V/3A Type-C 電源/2つのMicroHDMI-to-HDMIケーブルライン/ヒートシンクと2つの透明静音冷却ファン/カードリーダ /GPIOリファレンスカード/説明書 : パソコン・周辺機器

透明青色OLEDディスプレイ:
 1.51インチ透明 青色OLEDディスプレイ(128×64 SPI/I2C) — スイッチサイエンス (switch-science.com)

作業用モニターは家にあるテレビを使用しました。

TRASKITの注意事項

Amazonレビューにもある通り、ケースが非常に硬く不親切設計となっています。
基盤そのものを着脱することも難しいですが、なんといっても一度刺したmicroSDカードを抜くことが至難の業です……
SDカードにはちょっと古いOSが書き込まれているので、ラズパイにSDカードを刺す前に作業用PCで最新のOSに書き換えましょう
OSの書き換えにはRaspberry Pi Imagerを利用しました。(参考:【2024年最新版】OSインストールから初期設定まで|ラズベリーパイ セットアップ手順のすべて | sozorablog)

ラズパイを触ろう

セットアップ

接続してセットアップ開始後、操作可能になるまで1時間以上かかった気がします。余計なクリックはせずにゆったりまったり待機しましょう。

コーディングするぞするぞ

ちなみに私はPythonを書いたことがありませんが、それでもやってみます。やってみたいから。

【近未来的】ラズパイで透明OLEDディスプレイを使いこなそう | sozorablog
コーディング全般こちらの記事を参考にしています。この記事がないと何もできません。

luma.oledとPillowのライブラリをインストールする際に「error: externally-managed-environment……..(略)」というエラーが発生して頓挫しましたが、この問題は「–break-system-packages」オプションをつけて実行すると可能になりました。(参考:俺流!PEP668とうまくやっていく方法 | スクエニ ITエンジニア ブログ (square-enix.com))
ターミナルにめちゃくちゃ怒られてる気がしますし、字面からしてやっちゃいけない香りがプンプンしますが今回はこれで解決したことにします。

完成品

いろいろとサンプルコードを実行し、なんとなーく理解した気になったのでキャラクターに瞬きさせるだけのプログラムを作りました。出来上がったものはこんな感じ↓↓

コードはこっち↓↓
fewlio-LLUNA/raspberry_oled: ラズパイとOLEDディスプレイを繋げて遊んでみたもの (github.com)

1~10秒毎に瞬きアニメーションを表示させるだけが今の限界でした。

挨拶文は時間指定によって場合分けしているものの、プログラム実行時の時間取得しかできておらず…… やりたいことを色々と実現するにはPythonの文法勉強しなきゃだめだなと感じました(あたりまえ体操)。
天気情報とか占い情報とかを取得してキャラに代弁してもらいたいな~という希望はあります。すぐには実現できなさそうですが、隙間時間見つけて解決方法を見つけ出していきたいです。

おわりに

内容は大したことないものの、透明OLEDディスプレイに好きなものを映し出せたので満足度の高い経験ができました。

このディスプレイに表示させるコンテンツを充実させるようにしつつ、将来的には電子ペーパーを使って「捲らなくても良い卓上カレンダー」を制作してみたいです。
ラズパイといえばサーバー構築!ということでゲーム用サーバーを立てることにも挑戦しようとしましたが、集合住宅だしポート開放面倒じゃない?ということでボツになりました。ラズパイを知ったきっかけがシン・テレワークシステムなので、通信面でも使ってみたいという気持ちはあったのですが……とりあえずは後回しで考えていこうと思います。

なにはともあれ、Pythonをもっともっと使えるようにならないといけない。がんばるぞ。