TA的每日心情 | 奋斗 2021-6-9 11:33 |
---|
签到天数: 460 天 连续签到: 1 天 [LV.9]以坛为家II
|
本次要和大家分享的经验是香蕉派BPI-M2Z加装OLED模块SSD1306来显示时间,先上图。
我们之前已经实现了香蕉派BPI-M2Z的桌面系统安装,详情请参考我的经验:香蕉派BPI-M2Z刷基于Ubuntu16.04的Armbian桌面系统
这一次我们直接使用UART来快速操作一波,跳过桌面系统。
一、SSD1306OLED模块简介
其实没有特别的地方,SSD1306就是一块OLED液晶显示屏,强调一下我这个屏是I2C接口的。
二、luma-oled模块的安装
luma-oled模块是在python下使用的一个模块,可以直接操作SSD1306 / SSD1322 / SSD1325 / SSD1331 / SSD1351 / SH1106型号的屏。这个项目挂在github上,感兴趣的朋友们可以跳到这个链接:https://github.com/rm-hull/luma.oled
这里我们使用python2.7版本,安装代码如下:
sudo apt-get install python-dev python-pip libfreetype6-dev libjpeg-dev build-essentialsudo -H pip install --upgrade luma.oled这样luma-oled就安装好了,之后是接线,查了官方的资料,这里我们使用I2C1的这几个引脚,注意接线,不要错了。
CON2-P01 VCC-3V3CON2-P06 GNDCON2-P27 TWI1-SDA CON2-P28 TWI1-SCK然后我们去Armbian里打开I2C功能,注意用的是i2c1,输入
armbian-config进到系统设置界面,依次选择:System->Hardware->i2c1。
然后系统会提示重启,重启之后我们输入:
i2cdetect -y 1查看设备是否被识别到,图中显示3c这个地址,就表示识别到了。
最后就是心心念念的编写代码的时候啦,直接上代码:
import timefrom luma.core.interface.serial import i2cfrom luma.core.render import canvasfrom luma.oled.device import ssd1306from PIL import ImageFontserial = i2c(port=1, address=0x3C)device = ssd1306(serial)while 1: with canvas(device) as draw: draw.rectangle(device.bounding_box, outline="white", fill="black") draw.text((10, 18), str(time.strftime("%Y-%m-%d",time.localtime())),fill="white") draw.text((15, 18), str(time.strftime("%H:%M:%S",time.localtime())),fill="white") draw.text((20,40),"---------------",fill="white") draw.text((8,50),"jingyan.eeboard.com",fill="white")运行一下,很好,效果很完美~
今天的分享就到这里啦,喝杯咖啡,我们下次再见哦!
作者:Litthins
日期:2018年6月24日 |
|