OLED_1in3_test.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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_1in3
  13. from PIL import Image,ImageDraw,ImageFont
  14. logging.basicConfig(level=logging.DEBUG)
  15. try:
  16. disp = OLED_1in3.OLED_1in3()
  17. logging.info("\r 1.3inch OLED ")
  18. # Initialize library.
  19. disp.Init()
  20. # Clear display.
  21. logging.info("clear display")
  22. disp.clear()
  23. # IN = disp.gpio_mode(2,disp.INPUT)
  24. # while True:
  25. # print(disp.digital_read(IN))
  26. # time.sleep(0.5)
  27. # Create blank image for drawing.
  28. image1 = Image.new('1', (disp.width, disp.height), "WHITE")
  29. draw = ImageDraw.Draw(image1)
  30. font1 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
  31. font2 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
  32. logging.info ("***draw line")
  33. draw.line([(0,0),(127,0)], fill = 0)
  34. draw.line([(0,0),(0,63)], fill = 0)
  35. draw.line([(0,63),(127,63)], fill = 0)
  36. draw.line([(127,0),(127,63)], fill = 0)
  37. logging.info ("***draw text")
  38. draw.text((20,0), 'Waveshare ', font = font1, fill = 0)
  39. draw.text((20,24), u'微雪电子 ', font = font2, fill = 0)
  40. image1 = image1.rotate(180)
  41. disp.ShowImage(disp.getbuffer(image1))
  42. time.sleep(3)
  43. logging.info ("***draw image")
  44. Himage2 = Image.new('1', (disp.width, disp.height), 255) # 255: clear the frame
  45. bmp = Image.open(os.path.join(picdir, '1in3.bmp'))
  46. Himage2.paste(bmp, (0,0))
  47. Himage2=Himage2.rotate(180)
  48. disp.ShowImage(disp.getbuffer(Himage2))
  49. time.sleep(3)
  50. disp.clear()
  51. except IOError as e:
  52. logging.info(e)
  53. except KeyboardInterrupt:
  54. logging.info("ctrl + c:")
  55. disp.module_exit()
  56. exit()