From b5d3ab895b6e61c30617d4981ce4663dc0449307 Mon Sep 17 00:00:00 2001 From: Zion Orent Date: Mon, 23 Mar 2015 16:44:52 -0400 Subject: [PATCH] ssd1327: python example for ssd1327 OLED Display 0.96" Signed-off-by: Zion Orent Signed-off-by: Mihai Tudor Panu --- examples/python/oled_ssd1327.py | 191 ++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 examples/python/oled_ssd1327.py diff --git a/examples/python/oled_ssd1327.py b/examples/python/oled_ssd1327.py new file mode 100644 index 00000000..075db201 --- /dev/null +++ b/examples/python/oled_ssd1327.py @@ -0,0 +1,191 @@ +#!/usr/bin/python +# Author: Zion Orent +# Copyright (c) 2015 Intel Corporation. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Load i2clcd display module +import time, signal, sys +import pyupm_i2clcd as upmLCD + +myLCD = upmLCD.SSD1327(0, 0x3C); + +logoArr = [0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x60, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x06, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x07, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x07, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x01, 0xC0, +0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, +0x07, 0x80, 0x01, 0xE0, 0x08, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x20, 0x0F, 0x80, 0x01, 0xE0, +0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, +0x0F, 0x00, 0x01, 0xE0, 0x08, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x30, 0x0F, 0x00, 0x01, 0xE0, +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, +0x0F, 0x00, 0x01, 0xE0, 0x18, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x30, 0x0F, 0x00, 0x01, 0xE0, +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, +0x0F, 0x00, 0x01, 0xE0, 0x18, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x38, 0x0F, 0x00, 0x01, 0xE0, +0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, +0x0F, 0x80, 0x01, 0xE0, 0x38, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x0F, 0x80, 0x01, 0xE0, +0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, +0x0F, 0x80, 0x03, 0xE0, 0x78, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1E, 0x07, 0x80, 0x03, 0xE0, +0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, +0x07, 0x80, 0x03, 0xE0, 0xF0, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1F, 0x07, 0x80, 0x03, 0xC1, +0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, +0x87, 0xC0, 0x07, 0xC1, 0xF0, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0F, 0x83, 0xC0, 0x07, 0x83, +0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, +0xC3, 0xC0, 0x07, 0x87, 0xE0, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x07, 0xE1, 0xE0, 0x07, 0x0F, +0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, +0xF0, 0xE0, 0x0F, 0x0F, 0x80, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0xF8, 0xF0, 0x0E, 0x1F, +0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0xF8, 0x70, 0x1C, 0x3F, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xFC, 0x30, 0x18, 0x7E, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x7F, 0x18, 0x30, 0xFC, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x1F, 0x88, 0x21, 0xF0, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0F, 0xC4, 0x47, 0xE0, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x0F, 0x80, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF8, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xE0, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, +0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x6C, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, +0x00, 0x00, 0x60, 0x00, 0x7E, 0x3F, 0x0F, 0xC3, +0xF0, 0xFA, 0x0F, 0xDF, 0xE1, 0x9F, 0xEC, 0x7E, +0xE6, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x1C, 0xDF, +0xE1, 0xB9, 0xEC, 0xE7, 0xE0, 0x61, 0xD8, 0x66, +0x1B, 0x86, 0x1C, 0x06, 0x61, 0xB0, 0x6D, 0xC3, +0x7C, 0x7F, 0xFF, 0xFF, 0xFF, 0x06, 0x0F, 0x86, +0x61, 0xB0, 0x6D, 0x83, 0x3E, 0x7F, 0xFF, 0xFF, +0xFF, 0x06, 0x07, 0xC6, 0x61, 0xB0, 0x6D, 0x83, +0xC3, 0x61, 0x18, 0x46, 0x03, 0x86, 0x18, 0x66, +0x61, 0xB0, 0x6D, 0xC3, 0xFE, 0x7F, 0x9F, 0xE7, +0xF9, 0xFE, 0x1F, 0xE6, 0x3F, 0x9F, 0xEC, 0xFE, +0x7E, 0x3F, 0x0F, 0xC3, 0xF0, 0xFA, 0x0F, 0xC6, +0x3F, 0x9F, 0xEC, 0x7E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, +0x00, 0x20, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x44, 0x00, 0x00, 0x20, 0x82, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xF3, +0xCF, 0x70, 0x9E, 0x79, 0xE7, 0x80, 0x00, 0x00, +0x00, 0x00, 0x7D, 0x9E, 0x68, 0x20, 0xB2, 0xC8, +0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x9E, +0x6F, 0x20, 0xB2, 0xF9, 0xE7, 0x80, 0x00, 0x00, +0x00, 0x00, 0x46, 0x9A, 0x61, 0x20, 0xB2, 0xCB, +0x60, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xF3, +0xCF, 0x30, 0x9E, 0x79, 0xE7, 0x90, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x7C, 0x02, 0x00, 0x00, 0x82, 0x60, 0x00, 0x00, +0xF8, 0x00, 0x00, 0x40, 0x40, 0x02, 0x00, 0x00, +0x83, 0x60, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x40, +0x60, 0xB7, 0x79, 0xE7, 0x81, 0xC7, 0x92, 0x70, +0x89, 0xE7, 0x9E, 0x78, 0x7C, 0xE2, 0xC9, 0x2C, +0x81, 0xCC, 0xD2, 0x40, 0xFB, 0x21, 0xB2, 0x48, +0x40, 0x62, 0xF9, 0x2C, 0x80, 0x8C, 0xD2, 0x40, +0x8B, 0xE7, 0xB0, 0x48, 0x40, 0xE2, 0xC9, 0x2C, +0x80, 0x84, 0xD2, 0x40, 0x8B, 0x2D, 0x92, 0x48, +0x7D, 0xB3, 0x79, 0x27, 0x80, 0x87, 0x9E, 0x40, +0x8D, 0xE7, 0x9E, 0x48, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] + +SeeedLogo = upmLCD.uint8Array(len(logoArr)) + +for x in range(len(logoArr)): + SeeedLogo.__setitem__(x, logoArr[x]) + +# If you don't set the display to be white, the seeed logo will appear jagged +myLCD.setGrayLevel(12) +myLCD.draw(SeeedLogo, 96 * 96 / 8); + +for i in range(12): + myLCD.setCursor(i, 0) + myLCD.setGrayLevel(i) + myLCD.write('Hello World') + +myLCD.close() + +print "Exiting"