Difference between revisions of "BakeBit - OLED 128x64"
From FriendlyELEC WiKi
(→示例程序(2):UI Control via Joystick) |
(→相关资料) |
||
Line 168: | Line 168: | ||
A [[BakeBit - JoyStick]] module is needed in this test case. For more details about the joystick refer to the [[BakeBit - JoyStick]] page. | A [[BakeBit - JoyStick]] module is needed in this test case. For more details about the joystick refer to the [[BakeBit - JoyStick]] page. | ||
− | == | + | ==Resources== |
*[Schematic]([http://wiki.friendlyarm.com/wiki/images/f/f6/11-SCHEMATIC_OLED128x64.pdf BakeBit - OLED 128x64.pdf]) | *[Schematic]([http://wiki.friendlyarm.com/wiki/images/f/f6/11-SCHEMATIC_OLED128x64.pdf BakeBit - OLED 128x64.pdf]) | ||
*[Datasheet]([http://wiki.friendlyarm.com/wiki/images/a/af/096-30-SPEC_QG-2864KLBEG01_VER_C.pdf BakeBit - OLED 128x64 Datasheet.pdf]) | *[Datasheet]([http://wiki.friendlyarm.com/wiki/images/a/af/096-30-SPEC_QG-2864KLBEG01_VER_C.pdf BakeBit - OLED 128x64 Datasheet.pdf]) | ||
− | *[BakeBit | + | *[BakeBit Github Project Page](https://github.com/friendlyarm/BakeBit) |
− | *[BakeBit Starter | + | *[BakeBit Starter Kit User's Manual](http://wiki.friendlyarm.com/bakebit/bakebit_starter_kit_manual_en.pdf) |
+ | |||
+ | ==Update Log== | ||
+ | ===December-14-2016=== | ||
+ | * Released English version |
Revision as of 15:28, 14 December 2016
Contents
1 Introduction
- The BakeBit - OLED is a monochromatic OLED module. The OLED is 0.96" and its resoltuion is 128 x 64. Its interface is I2C.
- Users can set the I2C's address to either 0X3C or 0X3D and place two OLED modules on one I2C bus.
2 Hardware Spec
- Standard 2.0mm pitch 4-Pin BakeBit I2C Interface
- Resolution: 128 x 64
- Color: blue
- I2C's address configurable
- PCB dimension(mm): 24 x 42
- Pin Description:
Pin | Description |
GND | Ground |
5V | 5V Supply Voltage |
SDA | I2C-SDA |
SCL | I2C-SCL |
3 Code Sample(1): Display System Info
When you run this code sample the system’s information will be listed on the OLED.
3.1 Hardware Connection
Connect the OLED module to the NEO-Hub’s I2C interface:
3.2 Source Code
import time import bakebit import os import psutil from math import log import multiprocessing import platform import socket import bakebit_128_64_oled as oled oled.init() #initialze SEEED OLED display oled.clearDisplay() #clear the screen and set start position to top left corner oled.setNormalDisplay() #Set display to normal mode (i.e non-inverse mode) oled.setPageMode() #Set addressing mode to Page Mode byteunits = ('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB') def filesizeformat(value): exponent = int(log(value, 1024)) return "%.1f %s" % (float(value) / pow(1024, exponent), byteunits[exponent]) memUsage = psutil.phymem_usage() diskUsage = psutil.disk_usage('/') oled.setTextXY(0,0) oled.putString("%s" % socket.gethostbyname(socket.gethostname())) oled.setTextXY(0,1) oled.putString("Mem:%s" % filesizeformat(memUsage.total)) import time import bakebit import os import psutil from math import log import multiprocessing import platform import socket import bakebit_128_64_oled as oled oled.init() #initialze SEEED OLED display oled.clearDisplay() #clear the screen and set start position to top left corner oled.setNormalDisplay() #Set display to normal mode (i.e non-inverse mode) oled.setPageMode() #Set addressing mode to Page Mode byteunits = ('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB') def filesizeformat(value): exponent = int(log(value, 1024)) return "%.1f %s" % (float(value) / pow(1024, exponent), byteunits[exponent]) memUsage = psutil.phymem_usage() diskUsage = psutil.disk_usage('/') oled.setTextXY(0,0) oled.putString("%s" % socket.gethostbyname(socket.gethostname())) oled.setTextXY(0,1) oled.putString("Mem:%s" % filesizeformat(memUsage.total)) oled.setTextXY(0,2) oled.putString("Usage:%d%%" % memUsage.percent) oled.setTextXY(0,3) oled.putString("Disk:%s" % filesizeformat(diskUsage.total)) oled.setTextXY(0,4) oled.putString("Usage:%d%%" % diskUsage.percent) oled.setTextXY(0,5) oled.putString("CPU:%s" % platform.processor()) oled.setTextXY(0,6) oled.putString("Cores:%d" % multiprocessing.cpu_count()) with open("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq") as f: freq = int(f.readlines()[0])/1000 freqStr = "%d MHz" % freq if freq > 1000: freqStr = "%.1f GHz" % (float(freq)/1000.0) oled.setTextXY(0,7) oled.putString("Freq:%s" % freqStr) oled.setTextXY(0,2) oled.putString("Usage:%d%%" % memUsage.percent) oled.setTextXY(0,3) oled.putString("Disk:%s" % filesizeformat(diskUsage.total)) oled.setTextXY(0,4) oled.putString("Usage:%d%%" % diskUsage.percent) oled.setTextXY(0,5) oled.putString("CPU:%s" % platform.processor()) oled.setTextXY(0,6) oled.putString("Cores:%d" % multiprocessing.cpu_count()) with open("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq") as f: freq = int(f.readlines()[0])/1000 freqStr = "%d MHz" % freq if freq > 1000: freqStr = "%.1f GHz" % (float(freq)/1000.0) oled.setTextXY(0,7) oled.putString("Freq:%s" % freqStr)
3.3 Run Code Sample
Before you run the code sample you need to follow the steps in bakebit tutorial to install the BakeBit package.
Enter the "BakeBit/Software/Python" directory and run the "bakebit_prj_SystemInfo.py" program:
cd ~/BakeBit/Software/Python sudo python bakebit_prj_SystemInfo.py
3.4 Observation
This is what users expect to observe:
4 Code Sample(2): UI Control via Joystick
A BakeBit - JoyStick module is needed in this test case. For more details about the joystick refer to the BakeBit - JoyStick page.
5 Resources
- [Schematic](BakeBit - OLED 128x64.pdf)
- [Datasheet](BakeBit - OLED 128x64 Datasheet.pdf)
- [BakeBit Github Project Page](https://github.com/friendlyarm/BakeBit)
- [BakeBit Starter Kit User's Manual](http://wiki.friendlyarm.com/bakebit/bakebit_starter_kit_manual_en.pdf)
6 Update Log
6.1 December-14-2016
- Released English version