Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Raspberry Pi 4 Ubuntu Server 20.04 SPI LCD ILI9340 demo 改訂版
- # displaytext.py
- #
- # DCピンはGPIO25に、RESETピンはGPIO24に差してます
- # 準備方法
- # (SPIとGPIOを使えるようにします)
- # spiグループの作成
- # $ sudo groupadd spi
- # ユーザubuntuをspiグループに追加
- # $ sudo gpasswd -a ubuntu spi
- # gpioグループの作成
- # $ sudo groupadd gpio
- # gpioグループにubuntuを追加
- # $ sudo gpasswd -a ubuntu gpio
- # /dev/spidev0.0をspiグループに所属してるユーザに対して読み書きできるようにする
- # $ sudo chgrp spi /dev/spidev0.0
- # $ sudo chmod g+rw /dev/spidev0.0
- # /dev/gpiomemをgpioグループに所属してるユーザに対して読み書きできるようにする
- # $ sudo chgrp gpio /dev/gpiomem
- # $ sudo chmod g+rw /dev/gpiomem
- # $ フォントのインストール
- # $ sudo apt install fonts-takao
- # Adafruit_Python_ILI9341のダウンロード
- # (pip3 install Adafruit-ILI9341でも入ると思います)
- # $ git clone https://github.com/adafruit/Adafruit_Python_ILI9341
- # $ cp -r Adafruit_Python_ILI9341/Adafruit_ILI9341/ .
- # GPIO用のライブラリをインストール
- # $ sudo pip3 install RPi.GPIO
- # $ sudo pip3 install Adafruit-PureIO
- # $ sudo pip3 install Adafruit_GPIO
- #
- # 起動方法(spidev0.0とgpiomemのアクセス権は再起動するとリセットされるので再起動したら毎回行う)
- # $ sudo chgrp spi /dev/spidev0.0
- # $ sudo chmod g+rw /dev/spidev0.0
- # $ sudo chgrp gpio /dev/gpiomem
- # $ sudo chmod g+rw /dev/gpiomem
- # $ python3 displaytext.py
- import time
- import Adafruit_GPIO.SPI as SPI
- import Adafruit_GPIO as GPIO
- import Adafruit_ILI9341
- from PIL import Image
- from PIL import ImageDraw
- from PIL import ImageFont
- if __name__ == '__main__':
- # Raspberry Piピン設定
- PITFT_2_8 = 25
- CURRENT_PITFT = PITFT_2_8
- DC = CURRENT_PITFT
- RST = 24 # on the PiOLED this pin isnt used
- SPI_PORT = 0
- SPI_DEVICE = 0
- disp = Adafruit_ILI9341.ILI9341(DC, rst=RST, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=4000000))
- disp.begin()
- # 画面消去
- disp.clear((255,0,0))
- disp.display()
- # イメージ作成
- image1 = Image.new('RGB', (disp.width, disp.height), (255, 255, 0))
- image2 = Image.new('RGB', (disp.height, disp.height), (255, 255, 0))
- image3 = Image.new('RGB', (disp.width, disp.height), (255, 255, 0))
- draw1 = ImageDraw.Draw(image1)
- draw2 = ImageDraw.Draw(image2)
- draw3 = ImageDraw.Draw(image3)
- # fontの作成
- font = ImageFont.truetype('/usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf', 20, encoding='unicode')
- x = 10
- top = 10
- while True:
- draw1.rectangle((0,0,disp.width,disp.height), outline=(255,0,0), fill=(255,0,0))
- draw1.text((x, top), "20ポイント漢字縦表示", font=font, fill=(255,255,255))
- draw1.text((x, top+24), "TakaoPGothic.ttf", font=font, fill=(255,255,255))
- disp.display(image1)
- time.sleep(5)
- # 90度回転
- draw2.rectangle((0,0,disp.height,disp.width), outline=(255,0,0), fill=(255,0,0))
- draw2.text((x, top), "20ポイント漢字横表示", font=font, fill=(255,255,255))
- draw2.text((x, top+24), "TakaoPGothic.ttf", font=font, fill=(255,255,255))
- image_t = image2.rotate(90)
- image3.paste(image_t)
- disp.display(image3)
- time.sleep(5)
Add Comment
Please, Sign In to add comment