I2C接口的OLED在树莓派3上的应用
来源:互联网 发布:精准扶贫数据平台登录 编辑:程序博客网 时间:2024/05/16 11:33
试了下在树莓派3b上使用I2C接口的128x64 OLED小显示屏,成功了。这个模块可以用3.3V供电。
接线很简单,有母对母杜邦线的话甚至可以不用面包板。
从https://github.com/rm-hull/ssd1306 下载了ssd1306-master.zip,解压,
cd ssd1306-master
sudo setup.py install
进入examples目录,几个DEMO都很有意思。尤其是显示logo的那个pi_logo.py,非常简洁,而且不用取字模,只要提供张png即可。但是我还没研究这个png有什么条件,反正随便做了一张png图片没能被成功显示,报错了。回头再研究吧。
-- 更新:--
好像Photoshop里另存为PNG的时候,选项选“交错”即可。
以下代码脱胎于DEMO中的sys_info.py。自己建了一个目录/etc/ttf,把字体文件复制到了它下面,加了权限,代码里把路径改为绝对路径了,DEMO中是相对路径。其实Raspbian自带的ttf字体很多也是可以用的,在/usr/share/fonts/truetype下面。
#!/usr/bin/env python
from datetime import datetime
from oled.device import ssd1306, sh1106
from oled.render import canvas
from PIL import ImageDraw, ImageFont
import socket
import fcntl
import struct
import commands
def getIP(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15])
)[20:24])
def stats(oled):
font = ImageFont.load_default()
font2 = ImageFont.truetype('/etc/ttf/C&C Red Alert [INET].ttf', 18)
with canvas(oled) as draw:
draw.text((2, 5), "IP: " + getIP("wlan0"), font=font2, fill=255)
def main():
oled = ssd1306(port=1, address=0x3C)
stats(oled)
if __name__ == "__main__":
main()
- I2C接口的OLED在树莓派3上的应用
- I2C接口的Lcd1602在树莓派3上的应用
- I2C接口硬件加密芯片SMEC98SP在STM32F103C8T6系统上的应用
- 树莓派3做的OLED小时钟
- 在龙芯1c上使用RT-Thread统一标准的i2c接口
- arduino的i2c接口
- 带I2C接口的数字温度传感器TMP101及其应用
- Linux的I2C 设备驱动 -- mini2440 上i2c接口触摸屏驱动
- Linux的I2C 设备驱动 -- mini2440 上i2c接口触摸屏驱动
- Linux的I2C 设备驱动 -- mini2440 上i2c接口触摸屏驱动
- Linux的I2C 设备驱动 -- mini2440 上i2c接口触摸屏驱动
- 枚举在接口的应用
- OLED的驱动程序
- OLED的学习
- 颠覆OLED的技术:石墨烯将大规模应用
- I2C和AT24C256的应用
- 应用层对i2c通用驱动接口与eeprom的i2c驱动接口从应用层到内核层调用区别和联系
- 移植OPENCORES上的I2C MASTER到AXI接口处理器层面实现驱动 之一
- [python]判断列表为空
- 字符串移位包含的问题
- CococaPods 前前后后
- 操作系统-处理机调度
- C++new分配内存空间
- I2C接口的OLED在树莓派3上的应用
- 通过ng-Img-Crop实现头像截取
- c语言:指针错题
- Session
- NOIP提高组 被粉碎的线段树
- 数组学习笔记(一)
- JAVA基础再回首(二十)——File类概述、创建、删除、重命名、判断、获取、文件名称过滤器
- CSS3中@keyframes规则
- android中jni的使用步骤及日志打印方法