Advertisement
Guest User

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

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