Guest User

Raspberry Pi 4 Ubuntu Server 20.04 SPI LCD ILI9340 demo 改訂版

a guest
Jul 10th, 2020
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.45 KB | None | 0 0
  1. Raspberry Pi 4 Ubuntu Server 20.04 SPI LCD ILI9340 demo 改訂版
  2.  
  3. #  displaytext.py
  4. #
  5. #  DCピンはGPIO25に、RESETピンはGPIO24に差してます
  6. #  準備方法
  7. #  (SPIとGPIOを使えるようにします)
  8. #  spiグループの作成
  9. #  $ sudo groupadd spi
  10. #  ユーザubuntuをspiグループに追加
  11. #  $ sudo gpasswd -a ubuntu spi
  12. #  gpioグループの作成
  13. #  $ sudo groupadd gpio
  14. #  gpioグループにubuntuを追加
  15. #  $ sudo gpasswd -a ubuntu gpio
  16. #  /dev/spidev0.0をspiグループに所属してるユーザに対して読み書きできるようにする
  17. #  $ sudo chgrp spi /dev/spidev0.0
  18. #  $ sudo chmod g+rw /dev/spidev0.0
  19. #  /dev/gpiomemをgpioグループに所属してるユーザに対して読み書きできるようにする
  20. #  $ sudo chgrp gpio /dev/gpiomem
  21. #  $ sudo chmod g+rw /dev/gpiomem
  22. #  $ フォントのインストール
  23. #  $ sudo apt install fonts-takao
  24. #  Adafruit_Python_ILI9341のダウンロード
  25. #  (pip3 install Adafruit-ILI9341でも入ると思います)
  26. #  $ git clone https://github.com/adafruit/Adafruit_Python_ILI9341
  27. #  $ cp -r Adafruit_Python_ILI9341/Adafruit_ILI9341/ .
  28. #  GPIO用のライブラリをインストール
  29. #  $ sudo pip3 install RPi.GPIO
  30. #  $ sudo pip3 install Adafruit-PureIO
  31. #  $ sudo pip3 install Adafruit_GPIO
  32. #
  33. #  起動方法(spidev0.0とgpiomemのアクセス権は再起動するとリセットされるので再起動したら毎回行う)
  34. #  $ sudo chgrp spi /dev/spidev0.0
  35. #  $ sudo chmod g+rw /dev/spidev0.0
  36. #  $ sudo chgrp gpio /dev/gpiomem
  37. #  $ sudo chmod g+rw /dev/gpiomem
  38. #  $ python3 displaytext.py
  39.  
  40.  
  41. import time
  42.  
  43. import Adafruit_GPIO.SPI as SPI
  44. import Adafruit_GPIO as GPIO
  45. import Adafruit_ILI9341
  46.  
  47. from PIL import Image
  48. from PIL import ImageDraw
  49. from PIL import ImageFont
  50.  
  51. if __name__ == '__main__':
  52.     # Raspberry Piピン設定
  53.     PITFT_2_8 = 25
  54.  
  55.     CURRENT_PITFT = PITFT_2_8
  56.     DC = CURRENT_PITFT
  57.     RST = 24     # on the PiOLED this pin isnt used
  58.     SPI_PORT = 0
  59.     SPI_DEVICE = 0
  60.  
  61.     disp = Adafruit_ILI9341.ILI9341(DC, rst=RST, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=4000000))
  62.     disp.begin()
  63.  
  64.     # 画面消去
  65.     disp.clear((255,0,0))
  66.     disp.display()
  67.  
  68.     # イメージ作成
  69.     image1 = Image.new('RGB', (disp.width, disp.height), (255, 255, 0))
  70.     image2 = Image.new('RGB', (disp.height, disp.height), (255, 255, 0))
  71.     image3 = Image.new('RGB', (disp.width, disp.height), (255, 255, 0))
  72.     draw1 = ImageDraw.Draw(image1)
  73.     draw2 = ImageDraw.Draw(image2)
  74.     draw3 = ImageDraw.Draw(image3)
  75.     # fontの作成
  76.     font = ImageFont.truetype('/usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf', 20, encoding='unicode')
  77.     x = 10
  78.     top = 10
  79.  
  80.     while True:
  81.  
  82.         draw1.rectangle((0,0,disp.width,disp.height), outline=(255,0,0), fill=(255,0,0))
  83.         draw1.text((x, top), "20ポイント漢字縦表示",  font=font, fill=(255,255,255))
  84.         draw1.text((x, top+24), "TakaoPGothic.ttf",  font=font, fill=(255,255,255))
  85.         disp.display(image1)
  86.         time.sleep(5)
  87.  
  88.         # 90度回転
  89.         draw2.rectangle((0,0,disp.height,disp.width), outline=(255,0,0), fill=(255,0,0))
  90.         draw2.text((x, top), "20ポイント漢字横表示",  font=font, fill=(255,255,255))
  91.         draw2.text((x, top+24), "TakaoPGothic.ttf",  font=font, fill=(255,255,255))
  92.         image_t = image2.rotate(90)
  93.         image3.paste(image_t)
  94.         disp.display(image3)
  95.         time.sleep(5)
Add Comment
Please, Sign In to add comment