文档章节

用官方的SSD1306.py 驱动 OLED

shaoziyang
 shaoziyang
发布于 2017/04/23 17:01
字数 560
阅读 171
收藏 5
点赞 1
评论 0

这几天看了一下micropython的I2C OLED驱动(SPI的类似),发现有几个版本。一个是官方的版本,还有早期网上流传的版本。

网上的版本使用了pyb.I2C驱动,是将Arduino的OLED驱动移植过来,只能用在STM32上;而官方的驱动使用了machine.I2C,这样有更好的兼容性,适合不同的硬件平台,还可以用软件I2C。

因为没有看到有人介绍官方的SSD1306驱动,所以我就简单的介绍一下I2C接口的OLED使用方法,SPI的也是类似的。下面以比较常见的0.96寸的128x64 I2C OLED为例:

  • 从github下载micropython的源码(或者只下载其中的ssd1306.py文件),然后将ssd1306.py复制到PYB Nano或其它micropython板
  • 连接I2C和电源到I2C的OLED上,如果没有硬件I2C,使用任意GPIO也可以。
  • 在终端里输入下面代码
from machine import I2C
i2c=machine.I2C(-1, sda=machine.Pin("PB9"), scl=machine.Pin("PB8"), freq=400000)  

from ssd1306 import SSD1306_I2C
oled = SSD1306_I2C(128, 64, i2c)
oled.text("Hello PYB Nano", 0, 0)
oled.show()


如果可以看到Hello这一段文字,就说明驱动成功了。

 

SSD1306.py中带有的函数不多,主要函数有:

  • text(string, x, y),在(x, y)处显示字符串,注意text()函数内置的字体是8x8的,暂时不能替换
  • poweroff(),关闭OLED显示
  • poweron(),空函数,无任何效果。可以用 write_cmd(0xAF) 代替
  • fill(n),n=0,清空屏幕,n大于0,填充屏幕
  • contrast(),调整亮度。0最暗,255最亮
  • invert(),奇数时反相显示,偶数时正常显示
  • pixel(x, y, c),在(x, y)处画点
  • show(),更新显示内容。前面大部分函数只是写入数据到缓冲区,并不会直接显示到屏幕,需要调用show()后才能显示出来。


另外还有部分功能可以用下面方法实现:

  • framebuf.line(x1,y1,x2,y2,c),画直线
  • framebuf.hline(x,y,w,c),画水平直线
  • framebuf.vline(x,y,w,c),画垂直直线
  • framebuf.fill_rect(x,y,w,h,c),画填充矩形
  • framebuf.rect(x,y,w,h,c),画空心矩形

大家也可以自己封装一下,甚至加入画园、字体选择、显示logo等功能。

© 著作权归作者所有

共有 人打赏支持
shaoziyang
粉丝 11
博文 75
码字总数 25881
作品 0
武汉
程序员
【应用笔记】小白也能玩转RT-Thread之 SPI设备

本应用笔记以驱动SPI接口的OLED显示屏为例,说明了如何添加SPI设备驱动框架及底层硬件驱动,使用SPI设备驱动接口开发应用程序。并给出了在正点原子STM32F4探索者开发板上验证的代码示例。 本...

RTThread物联网操作系统
04/13
0
0
PYB Nano驱动OLED显示

这是论坛网友hbzjt2012的作品: http://www.micropython.org.cn/forum.php?mod=viewthread&tid=408&extra= 这次使用PYB Nano驱动0.96寸OLED显示屏,此次参考了国外网友的例程,OLED可以使用S...

shaoziyang
2016/12/05
42
0
开源穿戴套件(DA14580)

开源穿戴套件(DA14580) DA14580具有业界最低的功率消耗。这些高度集成的解决方案所需的外部组件比其它任何蓝牙智能解决方案都要少,而且无需外部处理器即可支持完全托管的应用。 DA14580 是世...

kevinrliu
2015/05/27
7.3K
3
CubeMX+KEIL+stm32 c8t6驱动正交编码器显示在OLED1306上

先说点废话 编码器比电位器旋钮高级多了,可以无限旋转下去。正转数值增大,反转数值减小。 很多高级MP3还有相机在用,咯噔一下跳一下计数。工业上几乎所有的闭环电机都得有编码器,当然是光...

geekker
2017/06/22
0
0
年度智能电视丨索尼 A1 :顶级画质与黑科技加身,它是电视界的标杆之作

摘要 等级的画面显示效果,以及「让屏幕发声」的黑科技,索尼 A1 系列堪称行业中的标杆产品。 「年度产品评选」是极客之选每年年底的保留节目。小到耳机,大到汽车,我们会从产品的体验、前瞻...

豆腐店店长丶
2017/12/28
0
0
NuttX 5.6 发布,嵌入式操作系统

Nuttx 是一个实时嵌入式操作系统(RTOS),它有一个小巧是在微控制器的环境中使用。这是完全可扩展,从小型(8位)至中型嵌入式(32位)系统。它的目的还 在于要完全符合标准,完全实时,并完...

红薯
2010/06/06
357
0
柔性半导体新突破:传输速度已足够驱动OLED像素

  将二硫化钼作为 2D 半导体材料有一项非常优异的性能,那就是它们很容易弯曲。电子在这样的半导体中可以快速移动。同时,因为只有大约一个原子的厚度,这类半导体是透明的。这些特点让它们...

DeepTech深科技
04/26
0
0
hznupeter/maker17

17Maker arduino库-mixly版 17Maker libary for mixly. Author :hznupeter E-mail:qiujiongtao@163.com website: http://wiki.17maker.org 使用方法 1.打开mixly 软件,点击导入库。 2.选中1......

hznupeter
2017/01/16
0
0
用 NodeJS 驱动硬件 - oneDevice

oneDevice.js 用 NodeJS 驱动硬件。 这是什么? 这是一个旨在用NodeJS驱动硬件的驱动包。开箱即用、完善的文档、持续更新、友好的API。用树莓派打造自己的智能家居。 我对智能家居非常感兴趣...

LanFly
04/24
0
0
LG无缘苹果面板供应之争 2018年押注OLED胜算几何

  对于LG的面板业务来说,2018年必然是个重要节点。   在2017年最后一周,LG的显示屏部分LG Display(以下简称LGD)相继披露了两个消息。2017年12月30日,LGD在一份监管文件中表示,今年...

a2ni5kfdaio1e6
01/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell及python脚本方式登录服务器

一、问题 在工作过程中,经常会遇见需要登录服务器,并且因为安全的原因,需要使用交互的方式登录,而且shell、python在工作中也经常用到,并且可以提供交互的功能。都是利用了expect、spawn...

yangjianzhou
8分钟前
0
0
upstream sent too big header while reading...

nginx 报错:1736 upstream sent too big header while reading response header from upstream 1. 一般处理 location ~ \.php$ { #增加下面两句 fastcgi_buffer_size 128k; ......

dubox
19分钟前
0
0
Python解析配置文件模块:ConfigPhaser

import configparser as pa# [SectionA]# a = aa# b = bb# c = cc# [SectionB]# optionint = 1# optionfloat = 1.1# optionstring = string#https://www.cnblogs.com/a......

易野
25分钟前
0
0
Java基础——面向对象

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 Object的方法: clone() Object 克隆 to Strin...

凯哥学堂
27分钟前
0
0
rabbitmq学习记录(八)消息发布确认机制

RabbitMQ服务器崩了导致的消息数据丢失,已经持久化的消息数据我们可以通过消息持久化来预防。但是,如果消息从生产者发送到vhosts过程中出现了问题,持久化消息数据的方案就无效了。 Rabbit...

人觉非常君
31分钟前
0
0
毕业5年,我是怎么成为年薪30W的运维工程师

#转载# 我在大学读的是计算机专业,但大学毕业之后,进入到一家私企进行工作,工作的内容类似于网管,会经常的去修电脑,去做水晶头等内容。刚开始工作,也没想太多,最想的是丰富自己的工作...

Py爱好
38分钟前
1
0
大数据基础知识,大数据学习,涉及的知识点

一、什么是大数据 一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流 转、多样的数据类型和价值密度低四大特征。...

董黎明
54分钟前
0
0
Linux CentOS 7上安装极点五笔

话说几天前在新买的惠普笔记本上成功地安装了Linux CentOS 7操作系统、Nvidia Quandro P600驱动程序及X Window,并在VMware下安装Red Hat教学环境,彻底跳出Windows的苦海,但仍然有一件事不...

大别阿郎
今天
17
0
2018年7月20日集群课程

一、集群介绍 集群,简单地说是指一组(若干个)相互独立的计算机,利用高速通信网络组成一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。 ...

人在艹木中
今天
0
0
spark开发机中调试snappy

目的 在Idea中的点击运行,使spark可以直接读取snappy 自己编译hadoop,以支持snappy的压缩。 自己编译的目的就是要得到支持snappy文件读写的动态链接库。如果可以在网上下载,可以跳过自行编...

benny周
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部