私たちのほとんどは、ユーザーに情報を表示するためにほとんどのプロジェクトで使用されている16×2ドットマトリックスLCDディスプレイに精通しているでしょう。しかし、これらのLCDディスプレイには多くの制限があります。このチュートリアルでは、OLEDディスプレイとRaspberryPiでの使用方法について学習 します。市場には多くの種類のOLEDディスプレイがあり、それらを機能させる方法はたくさんあります。Arduinoではすでに7ピンOLEDを使用しています。
必要なハードウェア:
- 128×64OLEDディスプレイモジュール(SSD1306)
- ラズベリーパイ
- ブレッドボード
- 接続線
- 電源
OLEDディスプレイについて知る:
OLEDという用語は「 有機発光ダイオード」の 略で、ほとんどのテレビで使用されているのと同じ技術を使用していますが、それらに比べてピクセル数が少なくなっています。これらのかっこいいディスプレイモジュールをRaspberryPiとインターフェイスさせると、プロジェクトがかっこよく見えるので、とても楽しいです。ここでは、OLEDディスプレイとそのタイプに関する記事全体を取り上げました。ここでは、 モノクロ4ピンSSD13060.96インチOLEDディスプレイを使用しています。このLCDはI2Cモードでのみ動作します。
以下は、OLEDとRaspberrypiの接続です:
OLEDピン | RPIピン |
VCC | 3.3v |
GND | GND |
SDA | SDA(物理ピン3) |
SCL | SCL(物理ピン5) |
回路図:
OLEDとRaspberryPiの接続:
RPIコミュニティは、これを非常に簡単にするために直接使用できる多くのライブラリをすでに提供しています。いくつかのライブラリを試してみたところ、Adafruit_SSD1306 OLEDライブラリは非常に使いやすく、グラフィックオプションがいくつかあるため、このチュートリアルでも同じものを使用します。
ステップ1:I2C通信を有効にする
Adafruit SSD1306ライブラリをインストールする前に、RaspberryPiでI2C通信を有効にする必要があります。
Raspberry Piコンソールでこのタイプを実行するには:
sudo raspi -config
そして、ブルースクリーンが表示されます。次に、インターフェイスオプションを選択します
この後、I2Cを選択する必要があります
この後、[はい]を選択し、Enterキーを押してから[OK]を押す必要があります
この後、以下のコマンドを発行して、ラズベリーパイを再起動する必要があります。
sodoリブート
ステップ2:OLEDI2Cアドレスを見つけて更新する
次に、指定されたコマンドを使用してOLED I2Cアドレスを見つける必要があり、16進アドレスが表示されます。
sudo i2cdetect –y 1
次に、指定されたコマンドを使用してRaspberryPiを更新します。
sudo apt-get update
ステップ3:python-pipとGPIOライブラリをインストールする
この後、指定されたコマンドを使用して pip を インストールする 必要があります。
sudo apt-get install build-essential python-dev python-pip
そして、Raspberry PiGPIOライブラリをインストールします
sudopipはRPi.GPIOをインストールします
ステップ4: Python ImagingLibrary と smbus ライブラリをインストールする
最後に、次のコマンドを使用して、 Python ImagingLibrary と smbus ライブラリをRaspberryPiにインストールする必要があります 。
sudo apt-get install python-imaging python-smbus
ステップ5: Adafruit SSD1306pythonライブラリをインストールします
次に、指定されたコマンドを使用して、Adafruit SSD1306Pythonライブラリのコードと例をインストールします。
sudo apt-get install git git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
これで、ユーザーはRaspberry PiでOLEDインターフェースのコードを見つけることができ、直接プレイしたり、自分でカスタマイズしたりできます。ここでは、デモンストレーション用にサンプルコードをカスタマイズしました。あなたは見つけることができ、完全なPythonコードを記事の最後に。
プログラミングの説明:
OLEDとRPiプロジェクトをインターフェースするためのプログラミング部分は簡単です。まず、いくつかの必要なライブラリをインポートする必要があります。
import time import Adafruit_GPIO.SPI as SPI import Adafruit_SSD1306 from PIL import Image from PIL import ImageDraw from PIL import ImageFont import subprocess
この後、表示を初期化します
RST = 0 disp = Adafruit_SSD1306.SSD1306_128_64(rst = RST)disp.begin()disp.clear()disp.display()width = disp.width height = disp.height image1 = Image.new( '1'、(width 、height))draw = ImageDraw.Draw(image1)draw.rectangle((0,0、width、height)、outline = 0、fill = 0)padding = -2 top = padding bottom = height-padding x = 0 font = ImageFont.load_default() この後、指定されたコードを使用してデータまたは画像をOLEDに送信できます
#2行のテキストを書きます。 disp.clear() disp.display() draw.text((x、top)、 "OLED Interfaceing"、font = font、fill = 255) draw.text((x、top + 8)、 "Circuit Digest"、 font = font、fill = 255) draw.text((x、top + 16)、 "For more Videos"、font = font、fill = 255) draw.text((x、top + 25)、 "Visit at" 、font = font、fill = 255) draw.text((x、top + 34)、 "www.circuitdigest.com"、font = font、fill = 255) #画像を表示します。 disp.image(image1) disp.display() time.sleep(2) if disp.height == 64: image = Image.open( 'img1.png')。convert( '1') else: image = Image。 open( 'img1.png')。convert( '1') disp.image(image) disp。display() time.sleep(2) if disp.height == 64: image = Image.open( 'img3.jpg')。convert( '1') else: image = Image.open( 'img3.jpg')。convert( '1')
このOLEDには2つのバリエーションがあります。1つは128 * 32で、もう1つは128 * 64であるため、ユーザーはOLEDの初期化中に誰でも選択できます。ここでは、両方のコードを記述しました。ユーザーは、次のように128 * 64ピクセルのOLEDを初期化するだけで済みます。
disp = Adafruit_SSD1306.SSD1306_128_64(rst = RST)
すべてのコードと関数は理解しやすく、それ以上の説明は必要ありません。高さ、幅、画像を試してみて、他の機能を試して、よりクールな幾何学図形を作成してください。
完全なPythonコードとデモンストレーションビデオを以下に示します。ここに、このプログラムで使用した画像があります。
ArduinoとのOLEDインターフェースも確認してください。