OLED_1in5_test.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/usr/bin/python
  2. # -*- coding:utf-8 -*-
  3. import sys
  4. import os
  5. picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
  6. libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
  7. if os.path.exists(libdir):
  8. sys.path.append(libdir)
  9. import logging
  10. import time
  11. import traceback
  12. from waveshare_OLED import OLED_1in5
  13. from PIL import Image,ImageDraw,ImageFont
  14. logging.basicConfig(level=logging.DEBUG)
  15. try:
  16. disp = OLED_1in5.OLED_1in5()
  17. logging.info("\r 1.5inch OLED ")
  18. # Initialize library.
  19. disp.Init()
  20. # Clear display.
  21. logging.info("clear display")
  22. disp.clear()
  23. # Create blank image for drawing.
  24. image1 = Image.new('L', (disp.width, disp.height), 0)
  25. draw = ImageDraw.Draw(image1)
  26. font = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 12)
  27. font1 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
  28. font2 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
  29. logging.info ("***draw line")
  30. draw.line([(0,0),(127,0)], fill = 15)
  31. draw.line([(0,0),(0,127)], fill = 15)
  32. draw.line([(0,127),(127,127)], fill = 15)
  33. draw.line([(127,0),(127,127)], fill = 15)
  34. logging.info ("***draw text")
  35. draw.text((20,0), 'Waveshare ', font = font1, fill = 15)
  36. draw.text((20,24), u'微雪电子 ', font = font2, fill = 11)
  37. draw.text((20,64), 'Waveshare ', font = font1, fill = 7)
  38. draw.text((20,92), u'微雪电子 ', font = font2, fill = 3)
  39. image1 = image1.rotate(0)
  40. disp.ShowImage(disp.getbuffer(image1))
  41. time.sleep(3)
  42. logging.info ("***draw rectangle")
  43. image1 = Image.new('L', (disp.width, disp.height), 0)
  44. draw = ImageDraw.Draw(image1)
  45. for i in range(0, 16):
  46. draw.rectangle([(0, 8*i), (128, 8*(i+1))], fill = i)
  47. disp.ShowImage(disp.getbuffer(image1))
  48. time.sleep(3)
  49. logging.info ("***draw image")
  50. Himage2 = Image.new('L', (disp.width, disp.height), 0) # 0: clear the frame
  51. bmp = Image.open(os.path.join(picdir, '1in5.bmp'))
  52. Himage2.paste(bmp, (0,0))
  53. Himage2=Himage2.rotate(0)
  54. disp.ShowImage(disp.getbuffer(Himage2))
  55. time.sleep(3)
  56. disp.clear()
  57. except IOError as e:
  58. logging.info(e)
  59. except KeyboardInterrupt:
  60. logging.info("ctrl + c:")
  61. disp.module_exit()
  62. exit()