今回はWAVESHAREから発売されている「1.51インチ透明 青色OLEDディスプレイ」の使い方について解説します。
透明OLEDディスプレイは通常のディスプレイとことなり、ガラスのような透明なディスプレイ上に文字や画像を表示することができます。
この透明OLEDディスプレイを使用することで、SF映画に登場するARグラスや戦闘機のコックピットのヘッドアップディスプレイのようなアプリケーションが作成できます。
WAVESHAREの製品は安価で、Raspberry Piでも使用できますのでぜひ試してみてください。
Raspberry Piの様々な活用方法について以下のページで解説していますので、あわせてご覧ください。

1.51inch Transparent OLED
製品パッケージ
WAVESHARE 1.51インチ透明 青色OLEDディスプレイは以下のように透明のディスプレイの文字や画像を描画することができます。

こちらがディスプレイを制御する画面です。

ジャンパーケーブルも付属していますので、それを使ってRaspberry Piなどのマイコンボードに接続して使用します。
1.51インチ透明 青色OLEDディスプレイの入手先
WAVESHARE製 1.51インチ透明 青色OLEDディスプレイはAmazonで購入することができます。

WAVESHARE公式wiki
以下のWAVESHARE公式サイトにて、インストールからでも実行までの手順が解説されています。

1.51インチ透明 青色OLEDディスプレイのセットアップ方法
ここからは、実際にRaspberry Piで1.51インチ透明 青色OLEDディスプレイを使用するためのセットアップ方法について解説していきます。
Raspberry PiのSPIインターフェースを有効にする
今回紹介するディスプレイはRaspberry PiとはSPI通信を使って接続されます。
まず最初に、Raspberry PiでSPI通信が使用できるように設定を変更します。
以下のコマンドをプロンプトで実行してください。
sudo raspi-config
設定画面が開いたら、[インターフェイス オプション] -> [SPI] -> [はい] を選択して、SPI インターフェイスを有効にします。
設定が完了したら、一旦再起動します。
sudo reboot
BCM2835のインストール
まず、GPIOのライブラリであるBCM2835
をインストールします。
BCM2835は、Raspberry PiのためのC言語ライブラリです。このライブラリは、Raspberry Piの低レベルハードウェア機能にアクセスするために使用され、GPIOピンの操作、SPI、I2C、PWMなどの機能を提供します。
効率的かつ直接的なハードウェア制御が可能で、組み込みシステムやハードウェア関連のプロジェクトに広く使用されています。
BCM2835
をダウンロード、解凍します。
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz
続いて、インストールを行います。
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
lgpioのインストール
lgpioのインストールを行います。lgpioは、Raspberry PiのためのモダンなGPIO制御ライブラリです。
主にLinux GPIOシステムを効率的に利用することを目的とし、PythonやC言語で利用可能です。
lgpioは、低レベルのハードウェアアクセスを提供し、GPIOピンの制御、PWM、SPI、I2C通信などをサポートします。
lgpioのリポジトリをダウンロード、解凍します。
cd
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
lgpioのインストールを実行します。
cd lg-master
sudo make install
Pythonのライブラリをインストール
続いてPythonの必要なライブラリをインストールします。
以下のコマンドを実行してください。
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo pip3 install spidev
sudo apt-get install python3-smbus
発生したエラー
私の環境では以下のようなエラーが発生しました。
error: externally-managed-environment
× This environment is externally managed
mq> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
For more information visit http://rptl.io/venv
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
エラーメッセージによると、システムにはPython環境が外部で管理されており、pip3
を使用してシステム全体にパッケージをインストールすることが推奨されていません。
このような場合、Pythonパッケージをインストールするための適切な方法は、システムのパッケージマネージャを使用するか、Pythonの仮想環境を作成してそこにパッケージをインストールすることです。
システムのパッケージマネージャを使用する
エラーメッセージの指示に従い、spidev
パッケージをシステムのパッケージマネージャ(apt
)を使ってインストールしてみましょう。以下のコマンドを実行してください:
sudo apt-get install python3-spidev

デモプログラムを実行する
ここからはデモプログラムを実行し、実際にディスプレイに表示を行う手順を解説します。
デモプログラムのダウンロード
WAVESHAREサイトからデモプログラムをダウンロードして解凍します。
sudo apt-get install p7zip-full
cd
sudo wget https://files.waveshare.com/upload/2/2c/OLED_Module_Code.7z
7z x OLED_Module_Code.7z
cd OLED_Module_Code/RaspberryPi
デモの実行
デモプログラムは画面サイズごとにpythonファイルが用意されているため、以下のコマンドを実行します。
cd python/example
sudo python3 OLED_1in51_test.py
プログラムが実行されると、ディスプレイにデモ画面が表示されます。

デモプログラムの解説
ライブラリに付属しているデモプログラムの処理内容については以下の記事で解説しています。
デモのプログラムを改変することですぐにオリジナルの画面表示が実装できますので、ぜひ試してみてください。

ディスプレイスタンドで液晶とケーブルを保護する
WAVESHAREの1.51インチ透明 青色OLEDディスプレイは、購入時の状態では画面部分を手に持っていないと使えなかったり、使用する際に液晶部分やケーブル(画面から剥離、断線)に負荷がかかり損傷する可能性があります。

ずっと手に持っていないといけないから使い道が…
そんな時におすすめなのが1.51インチ透明 青色OLEDディスプレイ用のディスプレイスタンドです。





うっかりラズパイを引っ張ってしまって、ディスプレイのケーブルが切れそうになったことがあるんだよね…
画面を固定するだけでなく、付属の基板も組付けられるためオレンジ色のフラットケーブルにテンション(負荷)がかかることが無くなり、保護することが可能です。


基板部分は付属のスペーサーを利用して、スタンド背面からビスでしっかりと固定することが可能です。


こちらがスタンドに固定した状態でディスプレイを表示した写真です。背面もくり抜かれているため、ディスプレイが透けて見えますので、背景を遮ることもありません。





このスタンドに固定すれば安心して使えそうだね。
WAVESHARE製1.51インチ透明 青色OLEDディスプレイのディスプレイスタンドは以下のWebショップで購入できます。
固定方法や破損が心配でお困りの方はぜひ使ってみてください。
まとめ
WAVESHARE 1.51インチ透明 青色OLEDディスプレイの使い方の使い方を解説しました。
サンプルプログラムの画像描画処理の部分を書き換えることで、様々な情報を表示できるようになりますので、ぜひ試してみてください。
それでは、また次の記事でお会いしましょう。




コメント