Added calibration function

This commit is contained in:
Ace 2020-01-18 16:05:05 +01:00 committed by GitHub
parent d78fb3f180
commit fa5b122ae9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,8 +22,8 @@ background_colour = 'white'
text_colour = 'black' text_colour = 'black'
"""Set some display parameters""" """Set some display parameters"""
e_paper = importlib.import_module('drivers.'+model) driver = importlib.import_module('drivers.'+model)
display_height, display_width = e_paper.EPD_WIDTH, e_paper.EPD_HEIGHT display_height, display_width = driver.EPD_WIDTH, driver.EPD_HEIGHT
"""Check if the display supports 3 colours""" """Check if the display supports 3 colours"""
if 'colour' in model: if 'colour' in model:
@ -216,3 +216,32 @@ def split_colours(image):
buffer_black[red2 != 0] = [255,255,255] # white buffer_black[red2 != 0] = [255,255,255] # white
black_im = Image.fromarray(buffer_black).convert('1', dither=True).rotate(270,expand=True) black_im = Image.fromarray(buffer_black).convert('1', dither=True).rotate(270,expand=True)
return black_im, red_im return black_im, red_im
def calibrate_display(no_of_cycles):
"""How many times should each colour be calibrated? Default is 3"""
epaper = driver.EPD()
epaper.init()
white = Image.new('1', (display_width, display_height), 'white')
black = Image.new('1', (display_width, display_height), 'black')
print('----------Started calibration of E-Paper display----------')
if 'colour' in model:
for _ in range(no_of_cycles):
print('Calibrating black...')
epaper.display(epaper.getbuffer(black), epaper.getbuffer(white))
print('Calibrating red/yellow...')
epaper.display(epaper.getbuffer(white), epaper.getbuffer(black))
print('Calibrating white...')
epaper.display(epaper.getbuffer(white), epaper.getbuffer(white))
print('Cycle {0} of {1} complete'.format(_+1, no_of_cycles))
else:
for _ in range(no_of_cycles):
print('Calibrating black...')
epaper.display(epaper.getbuffer(black))
print('Calibrating white...')
epaper.display(epaper.getbuffer(white)),
print('Cycle {0} of {1} complete'.format(_+1, no_of_cycles))
print('-----------Calibration complete----------')
epaper.sleep()