OLED_2in42_test.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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_2in42
  13. from PIL import Image,ImageDraw,ImageFont
  14. logging.basicConfig(level=logging.DEBUG)
  15. try:
  16. disp = OLED_2in42.OLED_2in42(spi_freq = 1000000)
  17. logging.info("\r2.42inch 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('1', (disp.width, disp.height), "WHITE")
  25. draw = ImageDraw.Draw(image1)
  26. font1 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
  27. font2 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
  28. logging.info ("***draw line")
  29. draw.line([(0,0),(127,0)], fill = 0)
  30. draw.line([(0,0),(0,63)], fill = 0)
  31. draw.line([(0,63),(127,63)], fill = 0)
  32. draw.line([(127,0),(127,63)], fill = 0)
  33. logging.info ("***draw text")
  34. draw.text((20,0), 'Waveshare ', font = font1, fill = 0)
  35. draw.text((20,24), u'微雪电子 ', font = font2, fill = 0)
  36. image1 = image1.rotate(180)
  37. disp.ShowImage(disp.getbuffer(image1))
  38. time.sleep(3)
  39. logging.info ("***draw image")
  40. Himage2 = Image.new('1', (disp.width, disp.height), 255) # 255: clear the frame
  41. bmp = Image.open(os.path.join(picdir, 'waveshare.bmp'))
  42. Himage2.paste(bmp, (0,0))
  43. Himage2=Himage2.rotate(180)
  44. disp.ShowImage(disp.getbuffer(Himage2))
  45. time.sleep(3)
  46. disp.clear()
  47. except IOError as e:
  48. logging.info(e)
  49. except KeyboardInterrupt:
  50. logging.info("ctrl + c:")
  51. disp.module_exit()
  52. exit()